in crypto/s2n_hmac.c [124:141]
int s2n_hmac_xor_pad_size(s2n_hmac_algorithm hmac_alg, uint16_t *xor_pad_size)
{
POSIX_ENSURE(S2N_MEM_IS_WRITABLE_CHECK(xor_pad_size, sizeof(*xor_pad_size)), S2N_ERR_PRECONDITION_VIOLATION);
switch(hmac_alg) {
case S2N_HMAC_NONE: *xor_pad_size = 64; break;
case S2N_HMAC_MD5: *xor_pad_size = 64; break;
case S2N_HMAC_SHA1: *xor_pad_size = 64; break;
case S2N_HMAC_SHA224: *xor_pad_size = 64; break;
case S2N_HMAC_SHA256: *xor_pad_size = 64; break;
case S2N_HMAC_SHA384: *xor_pad_size = 128; break;
case S2N_HMAC_SHA512: *xor_pad_size = 128; break;
case S2N_HMAC_SSLv3_MD5: *xor_pad_size = 48; break;
case S2N_HMAC_SSLv3_SHA1: *xor_pad_size = 40; break;
default:
POSIX_BAIL(S2N_ERR_HMAC_INVALID_ALGORITHM);
}
return S2N_SUCCESS;
}