summaryrefslogtreecommitdiff
path: root/usr/src/lib/libcryptoutil
diff options
context:
space:
mode:
authorizick <none@none>2005-10-11 09:48:17 -0700
committerizick <none@none>2005-10-11 09:48:17 -0700
commitf66d273d14eede3a1bb803a39414588d8f143a98 (patch)
treefb49f3bd8b354ac0bd09ac4547c7ff307fa352cd /usr/src/lib/libcryptoutil
parent04755704f18cda4928299108c358d38435b94617 (diff)
downloadillumos-gate-f66d273d14eede3a1bb803a39414588d8f143a98.tar.gz
PSARC 2005/572 PKCS#11 v2.20
4920408 PKCS#11 v2.20 support for the Crypto Framework 6287425 residual bzero's in hmac part of sha2 6287428 add sha2 to the i.kcfconfbase upgrade script
Diffstat (limited to 'usr/src/lib/libcryptoutil')
-rw-r--r--usr/src/lib/libcryptoutil/common/mechkeytype.c49
-rw-r--r--usr/src/lib/libcryptoutil/common/mechstr.c38
2 files changed, 84 insertions, 3 deletions
diff --git a/usr/src/lib/libcryptoutil/common/mechkeytype.c b/usr/src/lib/libcryptoutil/common/mechkeytype.c
index ab26d9567c..64018de320 100644
--- a/usr/src/lib/libcryptoutil/common/mechkeytype.c
+++ b/usr/src/lib/libcryptoutil/common/mechkeytype.c
@@ -20,7 +20,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2003 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -31,7 +31,7 @@
/*
* Get the key type for the given mechanism
*
- * All mechanisms in PKCS #11 v2.11 are listed here.
+ * All mechanisms in PKCS #11 v2.20 are listed here.
*/
CK_RV
pkcs11_mech2keytype(CK_MECHANISM_TYPE mech_type, CK_KEY_TYPE *ktype)
@@ -48,6 +48,12 @@ pkcs11_mech2keytype(CK_MECHANISM_TYPE mech_type, CK_KEY_TYPE *ktype)
case CKM_MD2_RSA_PKCS:
case CKM_MD5_RSA_PKCS:
case CKM_SHA1_RSA_PKCS:
+ case CKM_SHA256_RSA_PKCS:
+ case CKM_SHA384_RSA_PKCS:
+ case CKM_SHA512_RSA_PKCS:
+ case CKM_SHA256_RSA_PKCS_PSS:
+ case CKM_SHA384_RSA_PKCS_PSS:
+ case CKM_SHA512_RSA_PKCS_PSS:
case CKM_RIPEMD128_RSA_PKCS:
case CKM_RIPEMD160_RSA_PKCS:
case CKM_RSA_PKCS_OAEP:
@@ -104,6 +110,15 @@ pkcs11_mech2keytype(CK_MECHANISM_TYPE mech_type, CK_KEY_TYPE *ktype)
case CKM_SHA_1:
case CKM_SHA_1_HMAC:
case CKM_SHA_1_HMAC_GENERAL:
+ case CKM_SHA256:
+ case CKM_SHA256_HMAC:
+ case CKM_SHA256_HMAC_GENERAL:
+ case CKM_SHA384:
+ case CKM_SHA384_HMAC:
+ case CKM_SHA384_HMAC_GENERAL:
+ case CKM_SHA512:
+ case CKM_SHA512_HMAC:
+ case CKM_SHA512_HMAC_GENERAL:
case CKM_GENERIC_SECRET_KEY_GEN:
case CKM_FASTHASH:
case CKM_PKCS5_PBKD2:
@@ -118,6 +133,13 @@ pkcs11_mech2keytype(CK_MECHANISM_TYPE mech_type, CK_KEY_TYPE *ktype)
case CKM_TLS_MASTER_KEY_DERIVE:
case CKM_TLS_KEY_AND_MAC_DERIVE:
case CKM_TLS_MASTER_KEY_DERIVE_DH:
+ case CKM_TLS_PRF:
+ case CKM_WTLS_PRE_MASTER_KEY_GEN:
+ case CKM_WTLS_MASTER_KEY_DERIVE:
+ case CKM_WTLS_MASTER_KEY_DERIVE_DH_ECC:
+ case CKM_WTLS_PRF:
+ case CKM_WTLS_SERVER_KEY_AND_MAC_DERIVE:
+ case CKM_WTLS_CLIENT_KEY_AND_MAC_DERIVE:
case CKM_CONCATENATE_BASE_AND_KEY:
case CKM_CONCATENATE_BASE_AND_DATA:
case CKM_CONCATENATE_DATA_AND_BASE:
@@ -130,6 +152,9 @@ pkcs11_mech2keytype(CK_MECHANISM_TYPE mech_type, CK_KEY_TYPE *ktype)
case CKM_RIPEMD160_HMAC:
case CKM_RIPEMD160_HMAC_GENERAL:
case CKM_SHA1_KEY_DERIVATION:
+ case CKM_SHA256_KEY_DERIVATION:
+ case CKM_SHA384_KEY_DERIVATION:
+ case CKM_SHA512_KEY_DERIVATION:
case CKM_MD5_KEY_DERIVATION:
case CKM_MD2_KEY_DERIVATION:
/* not sure the following 2 should be CKK_DES or not */
@@ -164,6 +189,12 @@ pkcs11_mech2keytype(CK_MECHANISM_TYPE mech_type, CK_KEY_TYPE *ktype)
case CKM_DES_CBC_PAD:
case CKM_PBE_MD2_DES_CBC:
case CKM_PBE_MD5_DES_CBC:
+ case CKM_DES_OFB64:
+ case CKM_DES_OFB8:
+ case CKM_DES_CFB64:
+ case CKM_DES_CFB8:
+ case CKM_DES_ECB_ENCRYPT_DATA:
+ case CKM_DES_CBC_ENCRYPT_DATA:
*ktype = CKK_DES;
break;
@@ -179,6 +210,8 @@ pkcs11_mech2keytype(CK_MECHANISM_TYPE mech_type, CK_KEY_TYPE *ktype)
case CKM_DES3_MAC_GENERAL:
case CKM_DES3_CBC_PAD:
case CKM_PBE_SHA1_DES3_EDE_CBC:
+ case CKM_DES3_ECB_ENCRYPT_DATA:
+ case CKM_DES3_CBC_ENCRYPT_DATA:
*ktype = CKK_DES3;
break;
@@ -279,9 +312,21 @@ pkcs11_mech2keytype(CK_MECHANISM_TYPE mech_type, CK_KEY_TYPE *ktype)
case CKM_AES_MAC:
case CKM_AES_MAC_GENERAL:
case CKM_AES_CBC_PAD:
+ case CKM_AES_ECB_ENCRYPT_DATA:
+ case CKM_AES_CBC_ENCRYPT_DATA:
*ktype = CKK_AES;
break;
+ case CKM_BLOWFISH_KEY_GEN:
+ case CKM_BLOWFISH_CBC:
+ *ktype = CKK_BLOWFISH;
+ break;
+
+ case CKM_TWOFISH_KEY_GEN:
+ case CKM_TWOFISH_CBC:
+ *ktype = CKK_TWOFISH;
+ break;
+
default:
rv = CKR_MECHANISM_INVALID;
break;
diff --git a/usr/src/lib/libcryptoutil/common/mechstr.c b/usr/src/lib/libcryptoutil/common/mechstr.c
index fc3ab9c16f..3523332c9c 100644
--- a/usr/src/lib/libcryptoutil/common/mechstr.c
+++ b/usr/src/lib/libcryptoutil/common/mechstr.c
@@ -20,7 +20,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -53,6 +53,9 @@ static const struct {
{ "CKM_MD2_RSA_PKCS", CKM_MD2_RSA_PKCS },
{ "CKM_MD5_RSA_PKCS", CKM_MD5_RSA_PKCS },
{ "CKM_SHA1_RSA_PKCS", CKM_SHA1_RSA_PKCS },
+ { "CKM_SHA256_RSA_PKCS", CKM_SHA256_RSA_PKCS },
+ { "CKM_SHA384_RSA_PKCS", CKM_SHA384_RSA_PKCS },
+ { "CKM_SHA512_RSA_PKCS", CKM_SHA512_RSA_PKCS },
{ "CKM_RIPEMD128_RSA_PKCS", CKM_RIPEMD128_RSA_PKCS },
{ "CKM_RIPEMD160_RSA_PKCS", CKM_RIPEMD160_RSA_PKCS },
{ "CKM_RSA_PKCS_OAEP", CKM_RSA_PKCS_OAEP },
@@ -70,6 +73,12 @@ static const struct {
{ "CKM_X9_42_DH_DERIVE", CKM_X9_42_DH_DERIVE },
{ "CKM_X9_42_DH_HYBRID_DERIVE", CKM_X9_42_DH_HYBRID_DERIVE },
{ "CKM_X9_42_MQV_DERIVE", CKM_X9_42_MQV_DERIVE },
+ { "CKM_SHA256_RSA_PKCS", CKM_SHA256_RSA_PKCS },
+ { "CKM_SHA384_RSA_PKCS", CKM_SHA384_RSA_PKCS },
+ { "CKM_SHA512_RSA_PKCS", CKM_SHA512_RSA_PKCS },
+ { "CKM_SHA256_RSA_PKCS_PSS", CKM_SHA256_RSA_PKCS_PSS },
+ { "CKM_SHA384_RSA_PKCS_PSS", CKM_SHA384_RSA_PKCS_PSS },
+ { "CKM_SHA512_RSA_PKCS_PSS", CKM_SHA512_RSA_PKCS_PSS },
{ "CKM_RC2_KEY_GEN", CKM_RC2_KEY_GEN },
{ "CKM_RC2_ECB", CKM_RC2_ECB },
{ "CKM_RC2_CBC", CKM_RC2_CBC },
@@ -97,6 +106,10 @@ static const struct {
{ "CKM_CDMF_MAC", CKM_CDMF_MAC },
{ "CKM_CDMF_MAC_GENERAL", CKM_CDMF_MAC_GENERAL },
{ "CKM_CDMF_CBC_PAD", CKM_CDMF_CBC_PAD },
+ { "CKM_DES_OFB64", CKM_DES_OFB64 },
+ { "CKM_DES_OFB8", CKM_DES_OFB8 },
+ { "CKM_DES_CFB64", CKM_DES_CFB64 },
+ { "CKM_DES_CFB8", CKM_DES_CFB8 },
{ "CKM_MD2", CKM_MD2 },
{ "CKM_MD2_HMAC", CKM_MD2_HMAC },
{ "CKM_MD2_HMAC_GENERAL", CKM_MD2_HMAC_GENERAL },
@@ -112,6 +125,15 @@ static const struct {
{ "CKM_RIPEMD160", CKM_RIPEMD160 },
{ "CKM_RIPEMD160_HMAC", CKM_RIPEMD160_HMAC },
{ "CKM_RIPEMD160_HMAC_GENERAL", CKM_RIPEMD160_HMAC_GENERAL },
+ { "CKM_SHA256", CKM_SHA256 },
+ { "CKM_SHA256_HMAC", CKM_SHA256_HMAC },
+ { "CKM_SHA256_HMAC_GENERAL", CKM_SHA256_HMAC_GENERAL },
+ { "CKM_SHA384", CKM_SHA384 },
+ { "CKM_SHA384_HMAC", CKM_SHA384_HMAC },
+ { "CKM_SHA384_HMAC_GENERAL", CKM_SHA384_HMAC_GENERAL },
+ { "CKM_SHA512", CKM_SHA512 },
+ { "CKM_SHA512_HMAC", CKM_SHA512_HMAC },
+ { "CKM_SHA512_HMAC_GENERAL", CKM_SHA512_HMAC_GENERAL },
{ "CKM_CAST_KEY_GEN", CKM_CAST_KEY_GEN },
{ "CKM_CAST_ECB", CKM_CAST_ECB },
{ "CKM_CAST_CBC", CKM_CAST_CBC },
@@ -162,11 +184,15 @@ static const struct {
{ "CKM_TLS_MASTER_KEY_DERIVE", CKM_TLS_MASTER_KEY_DERIVE },
{ "CKM_TLS_KEY_AND_MAC_DERIVE", CKM_TLS_KEY_AND_MAC_DERIVE },
{ "CKM_TLS_MASTER_KEY_DERIVE_DH", CKM_TLS_MASTER_KEY_DERIVE_DH },
+ { "CKM_TLS_PRF", CKM_TLS_PRF },
{ "CKM_SSL3_MD5_MAC", CKM_SSL3_MD5_MAC },
{ "CKM_SSL3_SHA1_MAC", CKM_SSL3_SHA1_MAC },
{ "CKM_MD5_KEY_DERIVATION", CKM_MD5_KEY_DERIVATION },
{ "CKM_MD2_KEY_DERIVATION", CKM_MD2_KEY_DERIVATION },
{ "CKM_SHA1_KEY_DERIVATION", CKM_SHA1_KEY_DERIVATION },
+ { "CKM_SHA256_KEY_DERIVATION", CKM_SHA256_KEY_DERIVATION },
+ { "CKM_SHA384_KEY_DERIVATION", CKM_SHA384_KEY_DERIVATION },
+ { "CKM_SHA512_KEY_DERIVATION", CKM_SHA512_KEY_DERIVATION },
{ "CKM_PBE_MD2_DES_CBC", CKM_PBE_MD2_DES_CBC },
{ "CKM_PBE_MD5_DES_CBC", CKM_PBE_MD5_DES_CBC },
{ "CKM_PBE_MD5_CAST_CBC", CKM_PBE_MD5_CAST_CBC },
@@ -226,6 +252,16 @@ static const struct {
{ "CKM_AES_MAC", CKM_AES_MAC },
{ "CKM_AES_MAC_GENERAL", CKM_AES_MAC_GENERAL },
{ "CKM_AES_CBC_PAD", CKM_AES_CBC_PAD },
+ { "CKM_BLOWFISH_KEY_GEN", CKM_BLOWFISH_KEY_GEN },
+ { "CKM_BLOWFISH_CBC", CKM_BLOWFISH_CBC },
+ { "CKM_TWOFISH_KEY_GEN", CKM_TWOFISH_KEY_GEN },
+ { "CKM_TWOFISH_CBC", CKM_TWOFISH_CBC },
+ { "CKM_DES_ECB_ENCRYPT_DATA", CKM_DES_ECB_ENCRYPT_DATA },
+ { "CKM_DES_CBC_ENCRYPT_DATA", CKM_DES_CBC_ENCRYPT_DATA },
+ { "CKM_DES3_ECB_ENCRYPT_DATA", CKM_DES3_ECB_ENCRYPT_DATA },
+ { "CKM_DES3_CBC_ENCRYPT_DATA", CKM_DES3_CBC_ENCRYPT_DATA },
+ { "CKM_AES_ECB_ENCRYPT_DATA", CKM_AES_ECB_ENCRYPT_DATA },
+ { "CKM_AES_CBC_ENCRYPT_DATA", CKM_AES_CBC_ENCRYPT_DATA },
{ "CKM_DSA_PARAMETER_GEN", CKM_DSA_PARAMETER_GEN },
{ "CKM_DH_PKCS_PARAMETER_GEN", CKM_DH_PKCS_PARAMETER_GEN },
{ "CKM_X9_42_DH_PARAMETER_GEN", CKM_X9_42_DH_PARAMETER_GEN },