+ const void *id, SilcIdType type);
+
+/****f* silccore/SilcAuthAPI/silc_auth_public_key_auth_verify
+ *
+ * SYNOPSIS
+ *
+ * bool silc_auth_public_key_auth_verify(SilcAuthPayload payload,
+ * SilcPublicKey public_key,
+ * SilcHash hash,
+ * const void *id, SilcIdType type);
+ *
+ * DESCRIPTION
+ *
+ * Verifies the authentication data. Returns TRUE if authentication was
+ * successful.
+ *
+ ***/
+bool silc_auth_public_key_auth_verify(SilcAuthPayload payload,
+ SilcPublicKey public_key, SilcHash hash,
+ const void *id, SilcIdType type);
+
+/****f* silccore/SilcAuthAPI/silc_auth_public_key_auth_verify_data
+ *
+ * SYNOPSIS
+ *
+ * bool silc_auth_public_key_auth_verify_data(const unsigned char *payload,
+ * SilcUInt32 payload_len,
+ * SilcPublicKey public_key,
+ * SilcHash hash,
+ * const void *id,
+ * SilcIdType type);
+ *
+ * DESCRIPTION
+ *
+ * Same as silc_auth_public_key_auth_verify but the payload has not
+ * been parsed yet. This will parse it. Returns TRUE if authentication
+ * was successful.
+ *
+ ***/
+bool silc_auth_public_key_auth_verify_data(const unsigned char *payload,
+ SilcUInt32 payload_len,
+ SilcPublicKey public_key,
+ SilcHash hash,
+ const void *id, SilcIdType type);
+
+/****f* silccore/SilcAuthAPI/silc_auth_verify
+ *
+ * SYNOPSIS
+ *
+ * bool silc_auth_verify(SilcAuthPayload payload,
+ * SilcAuthMethod auth_method,
+ * const void *auth_data, SilcUInt32 auth_data_len,
+ * SilcHash hash, const void *id, SilcIdType type);
+ *
+ * DESCRIPTION
+ *
+ * Verifies the authentication data directly from the Authentication
+ * Payload. Supports all authentication methods. If the authentication
+ * method is passphrase based then the `auth_data' and `auth_data_len'
+ * are the passphrase and its length. If the method is public key
+ * authentication then the `auth_data' is the SilcPublicKey and the
+ * `auth_data_len' is ignored.
+ *
+ ***/
+bool silc_auth_verify(SilcAuthPayload payload, SilcAuthMethod auth_method,
+ const void *auth_data, SilcUInt32 auth_data_len,
+ SilcHash hash, const void *id, SilcIdType type);
+
+/****f* silccore/SilcAuthAPI/silc_auth_verify_data
+ *
+ * SYNOPSIS
+ *
+ * bool silc_auth_verify_data(const unsigned char *payload,
+ * SilcUInt32 payload_len,
+ * SilcAuthMethod auth_method,
+ * const void *auth_data,
+ * SilcUInt32 auth_data_len, SilcHash hash,
+ * const void *id, SilcIdType type);
+ *
+ * DESCRIPTION
+ *
+ * Same as silc_auth_verify but the payload has not been parsed yet.
+ * Verifies the authentication data directly from the Authentication
+ * Payload. Supports all authentication methods. If the authentication
+ * method is passphrase based then the `auth_data' and `auth_data_len'
+ * are the passphrase and its length. If the method is public key
+ * authentication then the `auth_data' is the SilcPublicKey and the
+ * `auth_data_len' is ignored.
+ *
+ ***/
+bool silc_auth_verify_data(const unsigned char *payload, SilcUInt32 payload_len,
+ SilcAuthMethod auth_method, const void *auth_data,
+ SilcUInt32 auth_data_len, SilcHash hash,
+ const void *id, SilcIdType type);
+
+/****f* silccore/SilcAuthAPI/silc_key_agreement_payload_parse
+ *
+ * SYNOPSIS
+ *
+ * SilcKeyAgreementPayload
+ * silc_key_agreement_payload_parse(const unsigned char *payload,
+ * SilcUInt32 payload_len);
+ *
+ * DESCRIPTION
+ *
+ * Parses and returns an allocated Key Agreement payload.
+ *
+ ***/
+SilcKeyAgreementPayload
+silc_key_agreement_payload_parse(const unsigned char *payload,
+ SilcUInt32 payload_len);
+
+/****f* silccore/SilcAuthAPI/silc_key_agreement_payload_encode
+ *
+ * SYNOPSIS
+ *
+ * SilcBuffer silc_key_agreement_payload_encode(char *hostname,
+ * SilcUInt32 port);
+ *
+ * DESCRIPTION
+ *
+ * Encodes the Key Agreement protocol and returns the encoded buffer
+ *
+ ***/
+SilcBuffer silc_key_agreement_payload_encode(const char *hostname,
+ SilcUInt32 port);
+
+/****f* silccore/SilcAuthAPI/silc_key_agreement_payload_free
+ *
+ * SYNOPSIS
+ *
+ * void silc_key_agreement_payload_free(SilcKeyAgreementPayload payload);
+ *
+ * DESCRIPTION
+ *
+ * Frees the Key Agreement protocol and all data in it.
+ *
+ ***/