Licensing Information

Open Source Used In Cisco Nexus 9000 Series 7.0(3)I5(1)
3223
case CRYPTO_3DES_CBC:
ixp->ixp_cipher_alg = cri->cri_alg;
ixp->ixp_ctx.cipherCtx.cipherAlgo = IX_CRYPTO_ACC_CIPHER_3DES;
ixp->ixp_ctx.cipherCtx.cipherMode = IX_CRYPTO_ACC_MODE_CBC;
ixp->ixp_ctx.cipherCtx.cipherKeyLen = (cri->cri_klen + 7) / 8;
ixp->ixp_ctx.cipherCtx.cipherBlockLen = IX_CRYPTO_ACC_DES_BLOCK_64;
ixp->ixp_ctx.cipherCtx.cipherInitialVectorLen =
IX_CRYPTO_ACC_DES_IV_64;
memcpy(ixp->ixp_ctx.cipherCtx.key.cipherKey,
cri->cri_key, (cri->cri_klen + 7) / 8);
break;
case CRYPTO_RIJNDAEL128_CBC:
ixp->ixp_cipher_alg = cri->cri_alg;
ixp->ixp_ctx.cipherCtx.cipherAlgo = IX_CRYPTO_ACC_CIPHER_AES;
ixp->ixp_ctx.cipherCtx.cipherMode = IX_CRYPTO_ACC_MODE_CBC;
ixp->ixp_ctx.cipherCtx.cipherKeyLen = (cri->cri_klen + 7) / 8;
ixp->ixp_ctx.cipherCtx.cipherBlockLen = 16;
ixp->ixp_ctx.cipherCtx.cipherInitialVectorLen = 16;
memcpy(ixp->ixp_ctx.cipherCtx.key.cipherKey,
cri->cri_key, (cri->cri_klen + 7) / 8);
break;
case CRYPTO_MD5:
case CRYPTO_MD5_HMAC:
ixp->ixp_auth_alg = cri->cri_alg;
ixp->ixp_ctx.authCtx.authAlgo = IX_CRYPTO_ACC_AUTH_MD5;
ixp->ixp_ctx.authCtx.authDigestLen = AUTH_LEN(cri, MD5_HASH_LEN);
ixp->ixp_ctx.authCtx.aadLen = 0;
/* Only MD5_HMAC needs a key */
if (cri->cri_alg == CRYPTO_MD5_HMAC) {
ixp->ixp_ctx.authCtx.authKeyLen = (cri->cri_klen + 7) / 8;
if (ixp->ixp_ctx.authCtx.authKeyLen >
sizeof(ixp->ixp_ctx.authCtx.key.authKey)) {
printk(
"ixp4xx: Invalid key length for MD5_HMAC - %d bits\n",
cri->cri_klen);
ixp_freesession(NULL, i);
return EINVAL;
}
memcpy(ixp->ixp_ctx.authCtx.key.authKey,
cri->cri_key, (cri->cri_klen + 7) / 8);
}
break;
case CRYPTO_SHA1:
case CRYPTO_SHA1_HMAC:
ixp->ixp_auth_alg = cri->cri_alg;