updates.
[silc.git] / lib / silccore / silcauth.h
index c691722c1e6e93c1717a2f6c2c512363b1b30496..3181a0ebeb175d6c0b5b947af97ecc9a2a4e89f9 100644 (file)
@@ -41,22 +41,35 @@ 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,
+                                       unsigned int data_len);
 SilcBuffer silc_auth_payload_encode(SilcAuthMethod method,
                                    unsigned char *random_data,
                                    unsigned short random_len,
                                    unsigned char *auth_data,
                                    unsigned short 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,
+                                 unsigned int *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, unsigned int auth_data_len, 
+                    SilcHash hash, void *id, SilcIdType type);
+int silc_auth_verify_data(unsigned char *payload, unsigned int payload_len,
+                         SilcAuthMethod auth_method, void *auth_data,
+                         unsigned int 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);