X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilccrypt%2Fsilchmac.h;h=66d82349b2279091c6fa1484d67619539a3c62c4;hb=e7b6c157b80152bf9fb9266e6bdd93f9fb0db776;hp=7b853d91092ddb46757e08ce9222dd5814aca4fd;hpb=cdedc07c65bab8467f6f5b1ef4b38982c2c77571;p=silc.git diff --git a/lib/silccrypt/silchmac.h b/lib/silccrypt/silchmac.h index 7b853d91..66d82349 100644 --- a/lib/silccrypt/silchmac.h +++ b/lib/silccrypt/silchmac.h @@ -1,10 +1,10 @@ /* - silchmac.h + silchmac.h Author: Pekka Riikonen - Copyright (C) 1999 - 2002 Pekka Riikonen + Copyright (C) 1999 - 2006 Pekka Riikonen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -26,7 +26,7 @@ * * This is the interface for HMAC, or the keyed hash values, that are * used for packet and message authentication. These routines uses - * already implemented hash functions from the SilcHashAPI. These + * already implemented hash functions from the SilcHashAPI. These * routines were created according to RFC 2104. * ***/ @@ -34,7 +34,7 @@ /****s* silccrypt/SilcHMACAPI/SilcHmac * * NAME - * + * * typedef struct SilcHmacStruct *SilcHmac; * * DESCRIPTION @@ -50,7 +50,7 @@ typedef struct SilcHmacStruct *SilcHmac; /****s* silccrypt/SilcHMACAPI/SilcHmacObject * * NAME - * + * * typedef struct { ... } SilcHmacObject; * * DESCRIPTION @@ -84,7 +84,7 @@ extern DLLAPI const SilcHmacObject silc_default_hmacs[]; * * SYNOPSIS * - * bool silc_hmac_register(const SilcHmacObject *hmac); + * SilcBool silc_hmac_register(const SilcHmacObject *hmac); * * DESCRIPTION * @@ -97,13 +97,13 @@ extern DLLAPI const SilcHmacObject silc_default_hmacs[]; * that are builtin the sources. Returns FALSE on error. * ***/ -bool silc_hmac_register(const SilcHmacObject *hmac); +SilcBool silc_hmac_register(const SilcHmacObject *hmac); /****f* silccrypt/SilcHMACAPI/silc_hmac_unregister * * SYNOPSIS * - * bool silc_hmac_unregister(SilcHmacObject *hmac); + * SilcBool silc_hmac_unregister(SilcHmacObject *hmac); * * DESCRIPTION * @@ -112,13 +112,13 @@ bool silc_hmac_register(const SilcHmacObject *hmac); * error. * ***/ -bool silc_hmac_unregister(SilcHmacObject *hmac); +SilcBool silc_hmac_unregister(SilcHmacObject *hmac); /****f* silccrypt/SilcHMACAPI/silc_hmac_register_default * * SYNOPSIS * - * bool silc_hmac_register_default(void); + * SilcBool silc_hmac_register_default(void); * * DESCRIPTION * @@ -131,26 +131,26 @@ bool silc_hmac_unregister(SilcHmacObject *hmac); * used). * ***/ -bool silc_hmac_register_default(void); +SilcBool silc_hmac_register_default(void); /****f* silccrypt/SilcHMACAPI/silc_hmac_unregister_all * * SYNOPSIS * - * bool silc_hmac_unregister_all(void); + * SilcBool silc_hmac_unregister_all(void); * * DESCRIPTION * * Unregisters all registered HMACs. * ***/ -bool silc_hmac_unregister_all(void); +SilcBool silc_hmac_unregister_all(void); /****f* silccrypt/SilcHMACAPI/silc_hmac_alloc * * SYNOPSIS * - * bool silc_hmac_alloc(const char *name, SilcHash hash, + * SilcBool silc_hmac_alloc(const char *name, SilcHash hash, * SilcHmac *new_hmac); * * DESCRIPTION @@ -162,7 +162,7 @@ bool silc_hmac_unregister_all(void); * FALSE if such HMAC does not exist. * ***/ -bool silc_hmac_alloc(const char *name, SilcHash hash, SilcHmac *new_hmac); +SilcBool silc_hmac_alloc(const char *name, SilcHash hash, SilcHmac *new_hmac); /****f* silccrypt/SilcHMACAPI/silc_hmac_free * @@ -182,14 +182,14 @@ void silc_hmac_free(SilcHmac hmac); * * SYNOPSIS * - * bool silc_hmac_is_supported(const char *name); + * SilcBool silc_hmac_is_supported(const char *name); * * DESCRIPTION * * Returns TRUE if the HMAC indicated by the `name' exists. * ***/ -bool silc_hmac_is_supported(const char *name); +SilcBool silc_hmac_is_supported(const char *name); /****f* silccrypt/SilcHMACAPI/silc_hmac_get_supported * @@ -266,6 +266,21 @@ const char *silc_hmac_get_name(SilcHmac hmac); void silc_hmac_set_key(SilcHmac hmac, const unsigned char *key, SilcUInt32 key_len); +/****f* silccrypt/SilcHMACAPI/silc_hmac_get_key + * + * SYNOPSIS + * + * const unsigned char * + * silc_hmac_get_key(SilcHmac hmac, SilcUInt32 *key_len); + * + * DESCRIPTION + * + * Returns the key data from the `hmac' set with silc_hamc_set_key. + * The caller must not free the returned pointer. + * + ***/ +const unsigned char *silc_hmac_get_key(SilcHmac hmac, SilcUInt32 *key_len); + /****f* silccrypt/SilcHMACAPI/silc_hmac_make * * SYNOPSIS @@ -277,7 +292,7 @@ void silc_hmac_set_key(SilcHmac hmac, const unsigned char *key, * DESCRIPTION * * Computes a MAC from a data buffer indicated by the `data' of the - * length of `data_len'. The returned MAC is copied into the + * length of `data_len'. The returned MAC is copied into the * `return_hash' pointer which must be at least the size of the * value silc_hmac_len returns. The returned length is still * returned to `return_len'. @@ -292,7 +307,7 @@ void silc_hmac_make(SilcHmac hmac, unsigned char *data, * SYNOPSIS * * void silc_hmac_make_with_key(SilcHmac hmac, unsigned char *data, - * SilcUInt32 data_len, + * SilcUInt32 data_len, * unsigned char *key, SilcUInt32 key_len, * unsigned char *return_hash, * SilcUInt32 *return_len); @@ -305,7 +320,7 @@ void silc_hmac_make(SilcHmac hmac, unsigned char *data, * ***/ void silc_hmac_make_with_key(SilcHmac hmac, unsigned char *data, - SilcUInt32 data_len, + SilcUInt32 data_len, unsigned char *key, SilcUInt32 key_len, unsigned char *return_hash, SilcUInt32 *return_len); @@ -314,8 +329,8 @@ void silc_hmac_make_with_key(SilcHmac hmac, unsigned char *data, * * SYNOPSIS * - * void silc_hmac_make_truncated(SilcHmac hmac, - * unsigned char *data, + * void silc_hmac_make_truncated(SilcHmac hmac, + * unsigned char *data, * SilcUInt32 data_len, * SilcUInt32 truncated_len, * unsigned char *return_hash); @@ -335,8 +350,8 @@ void silc_hmac_make_with_key(SilcHmac hmac, unsigned char *data, * truncations. * ***/ -void silc_hmac_make_truncated(SilcHmac hmac, - unsigned char *data, +void silc_hmac_make_truncated(SilcHmac hmac, + unsigned char *data, SilcUInt32 data_len, SilcUInt32 truncated_len, unsigned char *return_hash); @@ -355,7 +370,7 @@ void silc_hmac_make_truncated(SilcHmac hmac, * put them into a buffer and compute the MAC from the buffer by * calling the silc_hmac_make, or you can use the silc_hmac_init, * silc_hmac_update and silc_hmac_final to do the MAC. This function - * prepares the allocated HMAC context for this kind of MAC + * prepares the allocated HMAC context for this kind of MAC * computation. The caller must have been called the function * silc_hmac_set_key before calling this function. To add the * data to be used in the MAC computation call the silc_hmac_update @@ -419,7 +434,7 @@ void silc_hmac_update(SilcHmac hmac, const unsigned char *data, * DESCRIPTION * * This function is used to produce the final MAC from the data - * that has been added to the HMAC context by calling the + * that has been added to the HMAC context by calling the * silc_hmac_update function. The MAC is copied in to the * `return_hash' pointer which must be at least the size that * the silc_hmac_len returns. The length of the MAC is still