updates.
[silc.git] / lib / silccore / silcauth.h
index a7a74a5a8011c847289b31274242b6e076e3d988..3181a0ebeb175d6c0b5b947af97ecc9a2a4e89f9 100644 (file)
@@ -24,6 +24,9 @@
 /* Forward declaration of the Authentication Payload */
 typedef struct SilcAuthPayloadStruct *SilcAuthPayload;
 
+/* Forward declaration of the Key Agreement Payload */
+typedef struct SilcKeyAgreementPayloadStruct *SilcKeyAgreementPayload;
+
 /* Authentication method type */
 typedef unsigned short SilcAuthMethod;
 
@@ -38,18 +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,
+                                       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,
-                                             SilcHash hash);
-int silc_auth_public_key_auth_verify(SilcAuthPayload paylaod,
-                                    SilcPKCS pkcs, SilcHash hash);
+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,
+                                    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);
+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);
 
 #endif