diff options
Diffstat (limited to 'Source/charon/transforms/hashers/hasher.h')
-rw-r--r-- | Source/charon/transforms/hashers/hasher.h | 56 |
1 files changed, 38 insertions, 18 deletions
diff --git a/Source/charon/transforms/hashers/hasher.h b/Source/charon/transforms/hashers/hasher.h index e207b30f1..00ea0a724 100644 --- a/Source/charon/transforms/hashers/hasher.h +++ b/Source/charon/transforms/hashers/hasher.h @@ -1,7 +1,7 @@ /** * @file hasher.h * - * @brief Interface for hasher_t. + * @brief Interface hasher_t. * */ @@ -26,22 +26,36 @@ #include <types.h> + typedef enum hash_algorithm_t hash_algorithm_t; /** * @brief Algorithms to use for hashing. + * + * Currently only the following algorithms are implemented and therefore supported: + * - HASH_MD5 + * - HASH_SHA1 + * + * @ingroup hashers + * */ enum hash_algorithm_t { HASH_MD2, - HASH_MD5, /* supported */ - HASH_SHA1, /* supported */ + /** + * Implemented in class md5_hasher_t. + */ + HASH_MD5, + /** + * Implemented in class sha1_hasher_t. + */ + HASH_SHA1, HASH_SHA256, HASH_SHA384, HASH_SHA512, }; /** - * string mappings for hash_algorithm_t + * String mappings for hash_algorithm_t. */ extern mapping_t hash_algorithm_m[]; @@ -52,37 +66,43 @@ typedef struct hasher_t hasher_t; * @brief Generic interface for all hash functions. * * @b Constructors: - * - hasher_create() + * - hasher_create() + * - md5_hasher_create() + * - sha1_hasher_create() + * + * @see + * - md5_hasher_t + * - sha1_hasher_t * - * @see md5_hasher_t, sha1_hasher_t + * @todo Implement more hash algorithms * * @ingroup hashers */ struct hasher_t { /** - * @brief hash data and write it in the buffer + * @brief Hash data and write it in the buffer. * * If the parameter hash is NULL, no result is written back * an more data can be appended to already hashed data. - * If not, the result is written back and the hasher is reset. + * If not, the result is written back and the hasher is reseted. * * @warning: the hash output parameter must hold at least * hash_t.get_block_size bytes. * - * @param this calling hasher + * @param this calling object * @param data data to hash - * @param [out]buffer pointer where the hash will be written + * @param [out]hash pointer where the hash will be written */ void (*get_hash) (hasher_t *this, chunk_t data, u_int8_t *hash); /** - * @brief hash data and allocate space for the hash + * @brief Hash data and allocate space for the hash. * * If the parameter hash is NULL, no result is written back * an more data can be appended to already hashed data. - * If not, the result is written back and the hasher is reset. + * If not, the result is written back and the hasher is reseted. * - * @param this calling hasher + * @param this calling object * @param data chunk with data to hash * @param [out]hash chunk which will hold allocated hash */ @@ -91,23 +111,23 @@ struct hasher_t { /** * @brief Get the block size of this hashing function. * - * @param this calling hasher + * @param this calling object * @return block size in bytes */ size_t (*get_block_size) (hasher_t *this); /** * @brief Resets the hashers state, which allows - * computation of a completly new hash. + * computation of a completely new hash. * - * @param this calling hasher + * @param this calling object */ void (*reset) (hasher_t *this); /** * @brief Destroys a hasher object. * - * @param this hasher_t object to destroy + * @param this calling object */ void (*destroy) (hasher_t *this); }; @@ -117,7 +137,7 @@ struct hasher_t { * * @param hash_algorithm Algorithm to use for hashing * @return - * - hasher_t if successfully + * - hasher_t object * - NULL if algorithm not supported * * @ingroup hashers |