updates. New data types.
[silc.git] / lib / silccore / silcauth.h
index c691722c1e6e93c1717a2f6c2c512363b1b30496..ba74230805f8c70194a5636c101adaa7ceee4b12 100644 (file)
@@ -28,7 +28,7 @@ typedef struct SilcAuthPayloadStruct *SilcAuthPayload;
 typedef struct SilcKeyAgreementPayloadStruct *SilcKeyAgreementPayload;
 
 /* Authentication method type */
-typedef unsigned short SilcAuthMethod;
+typedef uint16 SilcAuthMethod;
 
 /* Authentication methods in SILC protocol */
 #define SILC_AUTH_NONE        0
@@ -41,27 +41,40 @@ typedef unsigned short SilcAuthMethod;
 #define SILC_AUTH_FAILED      1
 
 /* Prototypes */
-SilcAuthPayload silc_auth_payload_parse(SilcBuffer buffer);
+SilcAuthPayload silc_auth_payload_parse(unsigned char *data,
+                                       uint32 data_len);
 SilcBuffer silc_auth_payload_encode(SilcAuthMethod method,
                                    unsigned char *random_data,
-                                   unsigned short random_len,
+                                   uint16 random_len,
                                    unsigned char *auth_data,
-                                   unsigned short auth_len);
+                                   uint16 auth_len);
 void silc_auth_payload_free(SilcAuthPayload payload);
-SilcBuffer silc_auth_public_key_auth_generate(SilcPKCS pkcs,
+SilcAuthMethod silc_auth_get_method(SilcAuthPayload payload);
+unsigned char *silc_auth_get_data(SilcAuthPayload payload,
+                                 uint32 *auth_len);
+SilcBuffer silc_auth_public_key_auth_generate(SilcPublicKey public_key,
+                                             SilcPrivateKey private_key,
                                              SilcHash hash,
                                              void *id, SilcIdType type);
 int silc_auth_public_key_auth_verify(SilcAuthPayload payload,
-                                    SilcPKCS pkcs, SilcHash hash,
+                                    SilcPublicKey public_key, SilcHash hash,
                                     void *id, SilcIdType type);
 int silc_auth_public_key_auth_verify_data(SilcBuffer payload,
-                                         SilcPKCS pkcs, SilcHash hash,
+                                         SilcPublicKey public_key, 
+                                         SilcHash hash,
                                          void *id, SilcIdType type);
+int silc_auth_verify(SilcAuthPayload payload, SilcAuthMethod auth_method,
+                    void *auth_data, uint32 auth_data_len, 
+                    SilcHash hash, void *id, SilcIdType type);
+int silc_auth_verify_data(unsigned char *payload, uint32 payload_len,
+                         SilcAuthMethod auth_method, void *auth_data,
+                         uint32 auth_data_len, SilcHash hash, 
+                         void *id, SilcIdType type);
 SilcKeyAgreementPayload silc_key_agreement_payload_parse(SilcBuffer buffer);
 SilcBuffer silc_key_agreement_payload_encode(char *hostname,
-                                            unsigned int port);
+                                            uint32 port);
 void silc_key_agreement_payload_free(SilcKeyAgreementPayload payload);
 char *silc_key_agreement_get_hostname(SilcKeyAgreementPayload payload);
-unsigned int silc_key_agreement_get_port(SilcKeyAgreementPayload payload);
+uint32 silc_key_agreement_get_port(SilcKeyAgreementPayload payload);
 
 #endif