58 void *
key,
size_t *key_len ) {
64 *key_len =
digest->digestsize;
81 void *
key,
size_t *key_len ) {
82 unsigned char k_ipad[
digest->blocksize];
86 if ( *key_len >
sizeof ( k_ipad ) )
90 memset ( k_ipad, 0,
sizeof ( k_ipad ) );
92 for ( i = 0 ; i <
sizeof ( k_ipad ) ; i++ ) {
116 void *
key,
size_t *key_len,
void *hmac ) {
117 unsigned char k_opad[
digest->blocksize];
121 if ( *key_len >
sizeof ( k_opad ) )
125 memset ( k_opad, 0,
sizeof ( k_opad ) );
127 for ( i = 0 ; i <
sizeof ( k_opad ) ; i++ ) {
static void digest_update(struct digest_algorithm *digest, void *ctx, const void *data, size_t len)
void hmac_final(struct digest_algorithm *digest, void *digest_ctx, void *key, size_t *key_len, void *hmac)
Finalise HMAC.
static void digest_final(struct digest_algorithm *digest, void *ctx, void *out)
struct md4_digest digest
Digest of data already processed.
void * memcpy(void *dest, const void *src, size_t len) __nonnull
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)
Keyed-Hashing for Message Authentication.
static void digest_init(struct digest_algorithm *digest, void *ctx)
static void hmac_reduce_key(struct digest_algorithm *digest, void *key, size_t *key_len)
Reduce HMAC key length.
void hmac_init(struct digest_algorithm *digest, void *digest_ctx, void *key, size_t *key_len)
Initialise HMAC.
A message digest algorithm.
void * memset(void *dest, int character, size_t len) __nonnull