--- a/cryptoapi/v2.0/nss_cryptoapi.c +++ b/cryptoapi/v2.0/nss_cryptoapi.c @@ -896,7 +896,7 @@ struct aead_alg cryptoapi_aead_algs[] = */ .base = { .cra_name = "echainiv(authenc(hmac(sha1),cbc(aes)))", - .cra_driver_name = "nss-hmac-sha1-cbc-aes", + .cra_driver_name = "nss-hmac-sha1-cbc-aes-echainiv", .cra_priority = 10000, .cra_flags = CRYPTO_ALG_ASYNC, .cra_blocksize = AES_BLOCK_SIZE, @@ -961,7 +961,7 @@ struct aead_alg cryptoapi_aead_algs[] = */ .base = { .cra_name = "echainiv(authenc(hmac(sha256),cbc(aes)))", - .cra_driver_name = "nss-hmac-sha256-cbc-aes", + .cra_driver_name = "nss-hmac-sha256-cbc-aes-echainiv", .cra_priority = 10000, .cra_flags = CRYPTO_ALG_ASYNC, .cra_blocksize = AES_BLOCK_SIZE, @@ -1070,7 +1070,7 @@ struct aead_alg cryptoapi_aead_algs[] = */ .base = { .cra_name = "echainiv(authenc(hmac(sha384),cbc(aes)))", - .cra_driver_name = "nss-hmac-sha384-cbc-aes", + .cra_driver_name = "nss-hmac-sha384-cbc-aes-echainiv", .cra_priority = 10000, .cra_flags = CRYPTO_ALG_ASYNC, .cra_blocksize = AES_BLOCK_SIZE, @@ -1093,7 +1093,7 @@ struct aead_alg cryptoapi_aead_algs[] = */ .base = { .cra_name = "echainiv(authenc(hmac(sha512),cbc(aes)))", - .cra_driver_name = "nss-hmac-sha512-cbc-aes", + .cra_driver_name = "nss-hmac-sha512-cbc-aes-echainiv", .cra_priority = 10000, .cra_flags = CRYPTO_ALG_ASYNC, .cra_blocksize = AES_BLOCK_SIZE, @@ -1116,7 +1116,7 @@ struct aead_alg cryptoapi_aead_algs[] = */ .base = { .cra_name = "echainiv(authenc(hmac(sha1),cbc(des3_ede)))", - .cra_driver_name = "nss-hmac-sha1-cbc-3des", + .cra_driver_name = "nss-hmac-sha1-cbc-3des-echainiv", .cra_priority = 300, .cra_flags = CRYPTO_ALG_ASYNC, .cra_blocksize = DES3_EDE_BLOCK_SIZE, @@ -1139,7 +1139,7 @@ struct aead_alg cryptoapi_aead_algs[] = */ .base = { .cra_name = "echainiv(authenc(hmac(sha256),cbc(des3_ede)))", - .cra_driver_name = "nss-hmac-sha256-cbc-3des", + .cra_driver_name = "nss-hmac-sha256-cbc-3des-echainiv", .cra_priority = 300, .cra_flags = CRYPTO_ALG_ASYNC, .cra_blocksize = DES3_EDE_BLOCK_SIZE, @@ -1160,7 +1160,7 @@ struct aead_alg cryptoapi_aead_algs[] = { .base = { .cra_name = "authenc(hmac(sha1),cbc(aes))", - .cra_driver_name = "nss-hmac-sha1-cbc-aes", + .cra_driver_name = "nss-hmac-sha1-cbc-aes-auth", .cra_priority = 10000, .cra_flags = CRYPTO_ALG_ASYNC, .cra_blocksize = AES_BLOCK_SIZE, @@ -1183,7 +1183,7 @@ struct aead_alg cryptoapi_aead_algs[] = */ .base = { .cra_name = "authenc(hmac(sha256),cbc(aes))", - .cra_driver_name = "nss-hmac-sha256-cbc-aes", + .cra_driver_name = "nss-hmac-sha256-cbc-aes-auth", .cra_priority = 10000, .cra_flags = CRYPTO_ALG_ASYNC, .cra_blocksize = AES_BLOCK_SIZE, @@ -1206,7 +1206,7 @@ struct aead_alg cryptoapi_aead_algs[] = */ .base = { .cra_name = "authenc(hmac(sha384),cbc(aes))", - .cra_driver_name = "nss-hmac-sha384-cbc-aes", + .cra_driver_name = "nss-hmac-sha384-cbc-aes-auth", .cra_priority = 10000, .cra_flags = CRYPTO_ALG_ASYNC, .cra_blocksize = AES_BLOCK_SIZE, @@ -1298,7 +1298,7 @@ struct aead_alg cryptoapi_aead_algs[] = */ .base = { .cra_name = "rfc4106(gcm(aes))", - .cra_driver_name = "nss-rfc4106-gcm", + .cra_driver_name = "nss-rfc4106-gcm-aes128", .cra_priority = 10000, .cra_flags = CRYPTO_ALG_ASYNC, .cra_blocksize = AES_BLOCK_SIZE, @@ -1321,7 +1321,7 @@ struct aead_alg cryptoapi_aead_algs[] = */ .base = { .cra_name = "seqiv(rfc4106(gcm(aes)))", - .cra_driver_name = "nss-rfc4106-gcm", + .cra_driver_name = "nss-seqiv-rfc4106-gcm", .cra_priority = 10000, .cra_flags = CRYPTO_ALG_ASYNC, .cra_blocksize = AES_BLOCK_SIZE, @@ -2166,6 +2166,7 @@ static const struct file_operations ctx_ void nss_cryptoapi_add_ctx2debugfs(struct nss_cryptoapi_ctx *ctx) { char buf[NSS_CRYPTOAPI_DEBUGFS_MAX_NAME] = {0}; + struct dentry *existing; if (!g_cryptoapi.root) { nss_cfi_err("%px: DebugFS root directory missing(%px)\n", &g_cryptoapi, ctx); @@ -2173,6 +2174,16 @@ void nss_cryptoapi_add_ctx2debugfs(struc } snprintf(buf, sizeof(buf), "ctx%d", ctx->sid); + + /* Check if the directory already exists */ + existing = debugfs_lookup(buf, g_cryptoapi.root); + if (existing) { + /* Directory already exists, store it and return */ + ctx->dentry = existing; + nss_cfi_info("%px: Context debugfs entry already exists for ctx%d\n", ctx, ctx->sid); + return; + } + ctx->dentry = debugfs_create_dir(buf, g_cryptoapi.root); if (!ctx->dentry) { nss_cfi_err("%px: Unable to create context debugfs entry", ctx);