svn commit: r339666 - head/sys/dev/cxgbe/crypto
John Baldwin
jhb at FreeBSD.org
Tue Oct 23 18:31:40 UTC 2018
Author: jhb
Date: Tue Oct 23 18:31:39 2018
New Revision: 339666
URL: https://svnweb.freebsd.org/changeset/base/339666
Log:
Support the SHA224 HMAC algorithm in ccr(4).
MFC after: 2 months
Sponsored by: Chelsio Communications
Modified:
head/sys/dev/cxgbe/crypto/t4_crypto.c
Modified: head/sys/dev/cxgbe/crypto/t4_crypto.c
==============================================================================
--- head/sys/dev/cxgbe/crypto/t4_crypto.c Tue Oct 23 18:07:37 2018 (r339665)
+++ head/sys/dev/cxgbe/crypto/t4_crypto.c Tue Oct 23 18:31:39 2018 (r339666)
@@ -1667,6 +1667,7 @@ ccr_attach(device_t dev)
ccr_sysctls(sc);
crypto_register(cid, CRYPTO_SHA1_HMAC, 0, 0);
+ crypto_register(cid, CRYPTO_SHA2_224_HMAC, 0, 0);
crypto_register(cid, CRYPTO_SHA2_256_HMAC, 0, 0);
crypto_register(cid, CRYPTO_SHA2_384_HMAC, 0, 0);
crypto_register(cid, CRYPTO_SHA2_512_HMAC, 0, 0);
@@ -1717,6 +1718,10 @@ ccr_copy_partial_hash(void *dst, int cri_alg, union au
for (i = 0; i < SHA1_HASH_LEN / 4; i++)
u32[i] = htobe32(auth_ctx->sha1ctx.h.b32[i]);
break;
+ case CRYPTO_SHA2_224_HMAC:
+ for (i = 0; i < SHA2_256_HASH_LEN / 4; i++)
+ u32[i] = htobe32(auth_ctx->sha224ctx.state[i]);
+ break;
case CRYPTO_SHA2_256_HMAC:
for (i = 0; i < SHA2_256_HASH_LEN / 4; i++)
u32[i] = htobe32(auth_ctx->sha256ctx.state[i]);
@@ -1897,6 +1902,7 @@ ccr_newsession(device_t dev, crypto_session_t cses, st
for (c = cri; c != NULL; c = c->cri_next) {
switch (c->cri_alg) {
case CRYPTO_SHA1_HMAC:
+ case CRYPTO_SHA2_224_HMAC:
case CRYPTO_SHA2_256_HMAC:
case CRYPTO_SHA2_384_HMAC:
case CRYPTO_SHA2_512_HMAC:
@@ -1912,6 +1918,12 @@ ccr_newsession(device_t dev, crypto_session_t cses, st
auth_mode = CHCR_SCMD_AUTH_MODE_SHA1;
mk_size = CHCR_KEYCTX_MAC_KEY_SIZE_160;
partial_digest_len = SHA1_HASH_LEN;
+ break;
+ case CRYPTO_SHA2_224_HMAC:
+ auth_hash = &auth_hash_hmac_sha2_224;
+ auth_mode = CHCR_SCMD_AUTH_MODE_SHA224;
+ mk_size = CHCR_KEYCTX_MAC_KEY_SIZE_256;
+ partial_digest_len = SHA2_256_HASH_LEN;
break;
case CRYPTO_SHA2_256_HMAC:
auth_hash = &auth_hash_hmac_sha2_256;
More information about the svn-src-all
mailing list