CCA does not support DES ECB and the EP11 token lacks DES anyway.
So now the ses_mgnt test uses an AES key instead of the old-fashioned
DES stuff and so now the testcase does not fail any more with
CKR_MECHANISM_INVALID. Btw. moved the mech_to_str file from crypto
to the testcase include dir so every testcase can include it and
make the output more human readable :-)

Signed-off-by: Harald Freudenberger <fre...@linux.vnet.ibm.com>
---
 testcases/crypto/mech_to_str.h  |  431 ---------------------------------------
 testcases/include/mech_to_str.h |  431 +++++++++++++++++++++++++++++++++++++++
 testcases/pkcs11/sess_mgmt.c    |   49 +++--
 3 files changed, 461 insertions(+), 450 deletions(-)
 delete mode 100644 testcases/crypto/mech_to_str.h
 create mode 100644 testcases/include/mech_to_str.h

diff --git a/testcases/crypto/mech_to_str.h b/testcases/crypto/mech_to_str.h
deleted file mode 100644
index fec1f64..0000000
--- a/testcases/crypto/mech_to_str.h
+++ /dev/null
@@ -1,431 +0,0 @@
-#ifndef _MECH_TO_STR_
-#define _MECH_TO_STR_
-#include "pkcs11types.h"
-
-/*
- * List generate with:
- *
- * grep CKM_ ../../usr/include/pkcs11/pkcs11types.h |
- *   awk '/^#/ { printf("\tif (mech == %s)\n\t\treturn \"%s\";\n", $2, $2); }'
- *
- */
-static inline const char *
-mech_to_str(CK_ULONG mech)
-{
-       if (mech == CKM_RSA_PKCS_KEY_PAIR_GEN)
-               return "CKM_RSA_PKCS_KEY_PAIR_GEN";
-       if (mech == CKM_RSA_PKCS)
-               return "CKM_RSA_PKCS";
-       if (mech == CKM_RSA_9796)
-               return "CKM_RSA_9796";
-       if (mech == CKM_RSA_X_509)
-               return "CKM_RSA_X_509";
-       if (mech == CKM_MD2_RSA_PKCS)
-               return "CKM_MD2_RSA_PKCS";
-       if (mech == CKM_MD5_RSA_PKCS)
-               return "CKM_MD5_RSA_PKCS";
-       if (mech == CKM_SHA1_RSA_PKCS)
-               return "CKM_SHA1_RSA_PKCS";
-       if (mech == CKM_RIPEMD128_RSA_PKCS)
-               return "CKM_RIPEMD128_RSA_PKCS";
-       if (mech == CKM_RIPEMD160_RSA_PKCS)
-               return "CKM_RIPEMD160_RSA_PKCS";
-       if (mech == CKM_RSA_PKCS_OAEP)
-               return "CKM_RSA_PKCS_OAEP";
-       if (mech == CKM_RSA_X9_31_KEY_PAIR_GEN)
-               return "CKM_RSA_X9_31_KEY_PAIR_GEN";
-       if (mech == CKM_RSA_X9_31)
-               return "CKM_RSA_X9_31";
-       if (mech == CKM_SHA1_RSA_X9_31)
-               return "CKM_SHA1_RSA_X9_31";
-       if (mech == CKM_RSA_PKCS_PSS)
-               return "CKM_RSA_PKCS_PSS";
-       if (mech == CKM_SHA1_RSA_PKCS_PSS)
-               return "CKM_SHA1_RSA_PKCS_PSS";
-       if (mech == CKM_DSA_KEY_PAIR_GEN)
-               return "CKM_DSA_KEY_PAIR_GEN";
-       if (mech == CKM_DSA)
-               return "CKM_DSA";
-       if (mech == CKM_DSA_SHA1)
-               return "CKM_DSA_SHA1";
-       if (mech == CKM_DH_PKCS_KEY_PAIR_GEN)
-               return "CKM_DH_PKCS_KEY_PAIR_GEN";
-       if (mech == CKM_DH_PKCS_DERIVE)
-               return "CKM_DH_PKCS_DERIVE";
-       if (mech == CKM_X9_42_DH_KEY_PAIR_GEN)
-               return "CKM_X9_42_DH_KEY_PAIR_GEN";
-       if (mech == CKM_X9_42_DH_DERIVE)
-               return "CKM_X9_42_DH_DERIVE";
-       if (mech == CKM_X9_42_DH_HYBRID_DERIVE)
-               return "CKM_X9_42_DH_HYBRID_DERIVE";
-       if (mech == CKM_X9_42_MQV_DERIVE)
-               return "CKM_X9_42_MQV_DERIVE";
-       if (mech == CKM_SHA256_RSA_PKCS)
-               return "CKM_SHA256_RSA_PKCS";
-       if (mech == CKM_SHA384_RSA_PKCS)
-               return "CKM_SHA384_RSA_PKCS";
-       if (mech == CKM_SHA512_RSA_PKCS)
-               return "CKM_SHA512_RSA_PKCS";
-       if (mech == CKM_RC2_KEY_GEN)
-               return "CKM_RC2_KEY_GEN";
-       if (mech == CKM_RC2_ECB)
-               return "CKM_RC2_ECB";
-       if (mech == CKM_RC2_CBC)
-               return "CKM_RC2_CBC";
-       if (mech == CKM_RC2_MAC)
-               return "CKM_RC2_MAC";
-       if (mech == CKM_RC2_MAC_GENERAL)
-               return "CKM_RC2_MAC_GENERAL";
-       if (mech == CKM_RC2_CBC_PAD)
-               return "CKM_RC2_CBC_PAD";
-       if (mech == CKM_RC4_KEY_GEN)
-               return "CKM_RC4_KEY_GEN";
-       if (mech == CKM_RC4)
-               return "CKM_RC4";
-       if (mech == CKM_DES_KEY_GEN)
-               return "CKM_DES_KEY_GEN";
-       if (mech == CKM_DES_ECB)
-               return "CKM_DES_ECB";
-       if (mech == CKM_DES_CBC)
-               return "CKM_DES_CBC";
-       if (mech == CKM_DES_MAC)
-               return "CKM_DES_MAC";
-       if (mech == CKM_DES_MAC_GENERAL)
-               return "CKM_DES_MAC_GENERAL";
-       if (mech == CKM_DES_CBC_PAD)
-               return "CKM_DES_CBC_PAD";
-       if (mech == CKM_DES_OFB64)
-               return "CKM_DES_OFB64";
-       if (mech == CKM_DES_CFB64)
-               return "CKM_DES_CFB64";
-       if (mech == CKM_DES_CFB8)
-               return "CKM_DES_CFB8";
-       if (mech == CKM_DES2_KEY_GEN)
-               return "CKM_DES2_KEY_GEN";
-       if (mech == CKM_DES3_KEY_GEN)
-               return "CKM_DES3_KEY_GEN";
-       if (mech == CKM_DES3_ECB)
-               return "CKM_DES3_ECB";
-       if (mech == CKM_DES3_CBC)
-               return "CKM_DES3_CBC";
-       if (mech == CKM_DES3_MAC)
-               return "CKM_DES3_MAC";
-       if (mech == CKM_DES3_MAC_GENERAL)
-               return "CKM_DES3_MAC_GENERAL";
-       if (mech == CKM_DES3_CBC_PAD)
-               return "CKM_DES3_CBC_PAD";
-       if (mech == CKM_CDMF_KEY_GEN)
-               return "CKM_CDMF_KEY_GEN";
-       if (mech == CKM_CDMF_ECB)
-               return "CKM_CDMF_ECB";
-       if (mech == CKM_CDMF_CBC)
-               return "CKM_CDMF_CBC";
-       if (mech == CKM_CDMF_MAC)
-               return "CKM_CDMF_MAC";
-       if (mech == CKM_CDMF_MAC_GENERAL)
-               return "CKM_CDMF_MAC_GENERAL";
-       if (mech == CKM_CDMF_CBC_PAD)
-               return "CKM_CDMF_CBC_PAD";
-       if (mech == CKM_MD2)
-               return "CKM_MD2";
-       if (mech == CKM_MD2_HMAC)
-               return "CKM_MD2_HMAC";
-       if (mech == CKM_MD2_HMAC_GENERAL)
-               return "CKM_MD2_HMAC_GENERAL";
-       if (mech == CKM_MD5)
-               return "CKM_MD5";
-       if (mech == CKM_MD5_HMAC)
-               return "CKM_MD5_HMAC";
-       if (mech == CKM_MD5_HMAC_GENERAL)
-               return "CKM_MD5_HMAC_GENERAL";
-       if (mech == CKM_SHA_1)
-               return "CKM_SHA_1";
-       if (mech == CKM_SHA_1_HMAC)
-               return "CKM_SHA_1_HMAC";
-       if (mech == CKM_SHA_1_HMAC_GENERAL)
-               return "CKM_SHA_1_HMAC_GENERAL";
-       if (mech == CKM_RIPEMD128)
-               return "CKM_RIPEMD128";
-       if (mech == CKM_RIPEMD128_HMAC)
-               return "CKM_RIPEMD128_HMAC";
-       if (mech == CKM_RIPEMD128_HMAC_GENERAL)
-               return "CKM_RIPEMD128_HMAC_GENERAL";
-       if (mech == CKM_RIPEMD160)
-               return "CKM_RIPEMD160";
-       if (mech == CKM_RIPEMD160_HMAC)
-               return "CKM_RIPEMD160_HMAC";
-       if (mech == CKM_RIPEMD160_HMAC_GENERAL)
-               return "CKM_RIPEMD160_HMAC_GENERAL";
-       if (mech == CKM_SHA256)
-               return "CKM_SHA256";
-       if (mech == CKM_SHA256_HMAC)
-               return "CKM_SHA256_HMAC";
-       if (mech == CKM_SHA256_HMAC_GENERAL)
-               return "CKM_SHA256_HMAC_GENERAL";
-       if (mech == CKM_SHA384)
-               return "CKM_SHA384";
-       if (mech == CKM_SHA384_HMAC)
-               return "CKM_SHA384_HMAC";
-       if (mech == CKM_SHA384_HMAC_GENERAL)
-               return "CKM_SHA384_HMAC_GENERAL";
-       if (mech == CKM_SHA512)
-               return "CKM_SHA512";
-       if (mech == CKM_SHA512_HMAC)
-               return "CKM_SHA512_HMAC";
-       if (mech == CKM_SHA512_HMAC_GENERAL)
-               return "CKM_SHA512_HMAC_GENERAL";
-       if (mech == CKM_CAST_KEY_GEN)
-               return "CKM_CAST_KEY_GEN";
-       if (mech == CKM_CAST_ECB)
-               return "CKM_CAST_ECB";
-       if (mech == CKM_CAST_CBC)
-               return "CKM_CAST_CBC";
-       if (mech == CKM_CAST_MAC)
-               return "CKM_CAST_MAC";
-       if (mech == CKM_CAST_MAC_GENERAL)
-               return "CKM_CAST_MAC_GENERAL";
-       if (mech == CKM_CAST_CBC_PAD)
-               return "CKM_CAST_CBC_PAD";
-       if (mech == CKM_CAST3_KEY_GEN)
-               return "CKM_CAST3_KEY_GEN";
-       if (mech == CKM_CAST3_ECB)
-               return "CKM_CAST3_ECB";
-       if (mech == CKM_CAST3_CBC)
-               return "CKM_CAST3_CBC";
-       if (mech == CKM_CAST3_MAC)
-               return "CKM_CAST3_MAC";
-       if (mech == CKM_CAST3_MAC_GENERAL)
-               return "CKM_CAST3_MAC_GENERAL";
-       if (mech == CKM_CAST3_CBC_PAD)
-               return "CKM_CAST3_CBC_PAD";
-       if (mech == CKM_CAST5_KEY_GEN)
-               return "CKM_CAST5_KEY_GEN";
-       if (mech == CKM_CAST128_KEY_GEN)
-               return "CKM_CAST128_KEY_GEN";
-       if (mech == CKM_CAST5_ECB)
-               return "CKM_CAST5_ECB";
-       if (mech == CKM_CAST128_ECB)
-               return "CKM_CAST128_ECB";
-       if (mech == CKM_CAST5_CBC)
-               return "CKM_CAST5_CBC";
-       if (mech == CKM_CAST128_CBC)
-               return "CKM_CAST128_CBC";
-       if (mech == CKM_CAST5_MAC)
-               return "CKM_CAST5_MAC";
-       if (mech == CKM_CAST128_MAC)
-               return "CKM_CAST128_MAC";
-       if (mech == CKM_CAST5_MAC_GENERAL)
-               return "CKM_CAST5_MAC_GENERAL";
-       if (mech == CKM_CAST128_MAC_GENERAL)
-               return "CKM_CAST128_MAC_GENERAL";
-       if (mech == CKM_CAST5_CBC_PAD)
-               return "CKM_CAST5_CBC_PAD";
-       if (mech == CKM_CAST128_CBC_PAD)
-               return "CKM_CAST128_CBC_PAD";
-       if (mech == CKM_RC5_KEY_GEN)
-               return "CKM_RC5_KEY_GEN";
-       if (mech == CKM_RC5_ECB)
-               return "CKM_RC5_ECB";
-       if (mech == CKM_RC5_CBC)
-               return "CKM_RC5_CBC";
-       if (mech == CKM_RC5_MAC)
-               return "CKM_RC5_MAC";
-       if (mech == CKM_RC5_MAC_GENERAL)
-               return "CKM_RC5_MAC_GENERAL";
-       if (mech == CKM_RC5_CBC_PAD)
-               return "CKM_RC5_CBC_PAD";
-       if (mech == CKM_IDEA_KEY_GEN)
-               return "CKM_IDEA_KEY_GEN";
-       if (mech == CKM_IDEA_ECB)
-               return "CKM_IDEA_ECB";
-       if (mech == CKM_IDEA_CBC)
-               return "CKM_IDEA_CBC";
-       if (mech == CKM_IDEA_MAC)
-               return "CKM_IDEA_MAC";
-       if (mech == CKM_IDEA_MAC_GENERAL)
-               return "CKM_IDEA_MAC_GENERAL";
-       if (mech == CKM_IDEA_CBC_PAD)
-               return "CKM_IDEA_CBC_PAD";
-       if (mech == CKM_GENERIC_SECRET_KEY_GEN)
-               return "CKM_GENERIC_SECRET_KEY_GEN";
-       if (mech == CKM_CONCATENATE_BASE_AND_KEY)
-               return "CKM_CONCATENATE_BASE_AND_KEY";
-       if (mech == CKM_CONCATENATE_BASE_AND_DATA)
-               return "CKM_CONCATENATE_BASE_AND_DATA";
-       if (mech == CKM_CONCATENATE_DATA_AND_BASE)
-               return "CKM_CONCATENATE_DATA_AND_BASE";
-       if (mech == CKM_XOR_BASE_AND_DATA)
-               return "CKM_XOR_BASE_AND_DATA";
-       if (mech == CKM_EXTRACT_KEY_FROM_KEY)
-               return "CKM_EXTRACT_KEY_FROM_KEY";
-       if (mech == CKM_SSL3_PRE_MASTER_KEY_GEN)
-               return "CKM_SSL3_PRE_MASTER_KEY_GEN";
-       if (mech == CKM_SSL3_MASTER_KEY_DERIVE)
-               return "CKM_SSL3_MASTER_KEY_DERIVE";
-       if (mech == CKM_SSL3_KEY_AND_MAC_DERIVE)
-               return "CKM_SSL3_KEY_AND_MAC_DERIVE";
-       if (mech == CKM_SSL3_MASTER_KEY_DERIVE_DH)
-               return "CKM_SSL3_MASTER_KEY_DERIVE_DH";
-       if (mech == CKM_TLS_PRE_MASTER_KEY_GEN)
-               return "CKM_TLS_PRE_MASTER_KEY_GEN";
-       if (mech == CKM_TLS_MASTER_KEY_DERIVE)
-               return "CKM_TLS_MASTER_KEY_DERIVE";
-       if (mech == CKM_TLS_KEY_AND_MAC_DERIVE)
-               return "CKM_TLS_KEY_AND_MAC_DERIVE";
-       if (mech == CKM_TLS_MASTER_KEY_DERIVE_DH)
-               return "CKM_TLS_MASTER_KEY_DERIVE_DH";
-       if (mech == CKM_SSL3_MD5_MAC)
-               return "CKM_SSL3_MD5_MAC";
-       if (mech == CKM_SSL3_SHA1_MAC)
-               return "CKM_SSL3_SHA1_MAC";
-       if (mech == CKM_MD5_KEY_DERIVATION)
-               return "CKM_MD5_KEY_DERIVATION";
-       if (mech == CKM_MD2_KEY_DERIVATION)
-               return "CKM_MD2_KEY_DERIVATION";
-       if (mech == CKM_SHA1_KEY_DERIVATION)
-               return "CKM_SHA1_KEY_DERIVATION";
-       if (mech == CKM_SHA256_KEY_DERIVATION)
-               return "CKM_SHA256_KEY_DERIVATION";
-       if (mech == CKM_PBE_MD2_DES_CBC)
-               return "CKM_PBE_MD2_DES_CBC";
-       if (mech == CKM_PBE_MD5_DES_CBC)
-               return "CKM_PBE_MD5_DES_CBC";
-       if (mech == CKM_PBE_MD5_CAST_CBC)
-               return "CKM_PBE_MD5_CAST_CBC";
-       if (mech == CKM_PBE_MD5_CAST3_CBC)
-               return "CKM_PBE_MD5_CAST3_CBC";
-       if (mech == CKM_PBE_MD5_CAST5_CBC)
-               return "CKM_PBE_MD5_CAST5_CBC";
-       if (mech == CKM_PBE_MD5_CAST128_CBC)
-               return "CKM_PBE_MD5_CAST128_CBC";
-       if (mech == CKM_PBE_SHA1_CAST5_CBC)
-               return "CKM_PBE_SHA1_CAST5_CBC";
-       if (mech == CKM_PBE_SHA1_CAST128_CBC)
-               return "CKM_PBE_SHA1_CAST128_CBC";
-       if (mech == CKM_PBE_SHA1_RC4_128)
-               return "CKM_PBE_SHA1_RC4_128";
-       if (mech == CKM_PBE_SHA1_RC4_40)
-               return "CKM_PBE_SHA1_RC4_40";
-       if (mech == CKM_PBE_SHA1_DES3_EDE_CBC)
-               return "CKM_PBE_SHA1_DES3_EDE_CBC";
-       if (mech == CKM_PBE_SHA1_DES2_EDE_CBC)
-               return "CKM_PBE_SHA1_DES2_EDE_CBC";
-       if (mech == CKM_PBE_SHA1_RC2_128_CBC)
-               return "CKM_PBE_SHA1_RC2_128_CBC";
-       if (mech == CKM_PBE_SHA1_RC2_40_CBC)
-               return "CKM_PBE_SHA1_RC2_40_CBC";
-       if (mech == CKM_PKCS5_PBKD2)
-               return "CKM_PKCS5_PBKD2";
-       if (mech == CKM_PBA_SHA1_WITH_SHA1_HMAC)
-               return "CKM_PBA_SHA1_WITH_SHA1_HMAC";
-       if (mech == CKM_KEY_WRAP_LYNKS)
-               return "CKM_KEY_WRAP_LYNKS";
-       if (mech == CKM_KEY_WRAP_SET_OAEP)
-               return "CKM_KEY_WRAP_SET_OAEP";
-       if (mech == CKM_SKIPJACK_KEY_GEN)
-               return "CKM_SKIPJACK_KEY_GEN";
-       if (mech == CKM_SKIPJACK_ECB64)
-               return "CKM_SKIPJACK_ECB64";
-       if (mech == CKM_SKIPJACK_CBC64)
-               return "CKM_SKIPJACK_CBC64";
-       if (mech == CKM_SKIPJACK_OFB64)
-               return "CKM_SKIPJACK_OFB64";
-       if (mech == CKM_SKIPJACK_CFB64)
-               return "CKM_SKIPJACK_CFB64";
-       if (mech == CKM_SKIPJACK_CFB32)
-               return "CKM_SKIPJACK_CFB32";
-       if (mech == CKM_SKIPJACK_CFB16)
-               return "CKM_SKIPJACK_CFB16";
-       if (mech == CKM_SKIPJACK_CFB8)
-               return "CKM_SKIPJACK_CFB8";
-       if (mech == CKM_SKIPJACK_WRAP)
-               return "CKM_SKIPJACK_WRAP";
-       if (mech == CKM_SKIPJACK_PRIVATE_WRAP)
-               return "CKM_SKIPJACK_PRIVATE_WRAP";
-       if (mech == CKM_SKIPJACK_RELAYX)
-               return "CKM_SKIPJACK_RELAYX";
-       if (mech == CKM_KEA_KEY_PAIR_GEN)
-               return "CKM_KEA_KEY_PAIR_GEN";
-       if (mech == CKM_KEA_KEY_DERIVE)
-               return "CKM_KEA_KEY_DERIVE";
-       if (mech == CKM_FORTEZZA_TIMESTAMP)
-               return "CKM_FORTEZZA_TIMESTAMP";
-       if (mech == CKM_BATON_KEY_GEN)
-               return "CKM_BATON_KEY_GEN";
-       if (mech == CKM_BATON_ECB128)
-               return "CKM_BATON_ECB128";
-       if (mech == CKM_BATON_ECB96)
-               return "CKM_BATON_ECB96";
-       if (mech == CKM_BATON_CBC128)
-               return "CKM_BATON_CBC128";
-       if (mech == CKM_BATON_COUNTER)
-               return "CKM_BATON_COUNTER";
-       if (mech == CKM_BATON_SHUFFLE)
-               return "CKM_BATON_SHUFFLE";
-       if (mech == CKM_BATON_WRAP)
-               return "CKM_BATON_WRAP";
-       if (mech == CKM_ECDSA_KEY_PAIR_GEN)
-               return "CKM_ECDSA_KEY_PAIR_GEN";
-       if (mech == CKM_EC_KEY_PAIR_GEN)
-               return "CKM_EC_KEY_PAIR_GEN";
-       if (mech == CKM_ECDSA)
-               return "CKM_ECDSA";
-       if (mech == CKM_ECDSA_SHA1)
-               return "CKM_ECDSA_SHA1";
-       if (mech == CKM_ECDH1_DERIVE)
-               return "CKM_ECDH1_DERIVE";
-       if (mech == CKM_ECDH1_COFACTOR_DERIVE)
-               return "CKM_ECDH1_COFACTOR_DERIVE";
-       if (mech == CKM_ECMQV_DERIVE)
-               return "CKM_ECMQV_DERIVE";
-       if (mech == CKM_JUNIPER_KEY_GEN)
-               return "CKM_JUNIPER_KEY_GEN";
-       if (mech == CKM_JUNIPER_ECB128)
-               return "CKM_JUNIPER_ECB128";
-       if (mech == CKM_JUNIPER_CBC128)
-               return "CKM_JUNIPER_CBC128";
-       if (mech == CKM_JUNIPER_COUNTER)
-               return "CKM_JUNIPER_COUNTER";
-       if (mech == CKM_JUNIPER_SHUFFLE)
-               return "CKM_JUNIPER_SHUFFLE";
-       if (mech == CKM_JUNIPER_WRAP)
-               return "CKM_JUNIPER_WRAP";
-       if (mech == CKM_FASTHASH)
-               return "CKM_FASTHASH";
-       if (mech == CKM_AES_KEY_GEN)
-               return "CKM_AES_KEY_GEN";
-       if (mech == CKM_AES_ECB)
-               return "CKM_AES_ECB";
-       if (mech == CKM_AES_CBC)
-               return "CKM_AES_CBC";
-       if (mech == CKM_AES_MAC)
-               return "CKM_AES_MAC";
-       if (mech == CKM_AES_MAC_GENERAL)
-               return "CKM_AES_MAC_GENERAL";
-       if (mech == CKM_AES_CBC_PAD)
-               return "CKM_AES_CBC_PAD";
-       if (mech == CKM_AES_CTR)
-               return "CKM_AES_CTR";
-       if (mech == CKM_AES_GCM)
-               return "CKM_AES_GCM";
-       if (mech == CKM_AES_OFB)
-               return "CKM_AES_OFB";
-       if (mech == CKM_AES_CFB128)
-               return "CKM_AES_CFB128";
-       if (mech == CKM_AES_CFB64)
-               return "CKM_AES_CFB64";
-       if (mech == CKM_AES_CFB8)
-               return "CKM_AES_CFB8";
-       if (mech == CKM_DSA_PARAMETER_GEN)
-               return "CKM_DSA_PARAMETER_GEN";
-       if (mech == CKM_DH_PKCS_PARAMETER_GEN)
-               return "CKM_DH_PKCS_PARAMETER_GEN";
-       if (mech == CKM_X9_42_DH_PARAMETER_GEN)
-               return "CKM_X9_42_DH_PARAMETER_GEN";
-       if (mech == CKM_VENDOR_DEFINED)
-               return "CKM_VENDOR_DEFINED";
-
-       return "(unknown mech)";
-}
-
-#endif
diff --git a/testcases/include/mech_to_str.h b/testcases/include/mech_to_str.h
new file mode 100644
index 0000000..fec1f64
--- /dev/null
+++ b/testcases/include/mech_to_str.h
@@ -0,0 +1,431 @@
+#ifndef _MECH_TO_STR_
+#define _MECH_TO_STR_
+#include "pkcs11types.h"
+
+/*
+ * List generate with:
+ *
+ * grep CKM_ ../../usr/include/pkcs11/pkcs11types.h |
+ *   awk '/^#/ { printf("\tif (mech == %s)\n\t\treturn \"%s\";\n", $2, $2); }'
+ *
+ */
+static inline const char *
+mech_to_str(CK_ULONG mech)
+{
+       if (mech == CKM_RSA_PKCS_KEY_PAIR_GEN)
+               return "CKM_RSA_PKCS_KEY_PAIR_GEN";
+       if (mech == CKM_RSA_PKCS)
+               return "CKM_RSA_PKCS";
+       if (mech == CKM_RSA_9796)
+               return "CKM_RSA_9796";
+       if (mech == CKM_RSA_X_509)
+               return "CKM_RSA_X_509";
+       if (mech == CKM_MD2_RSA_PKCS)
+               return "CKM_MD2_RSA_PKCS";
+       if (mech == CKM_MD5_RSA_PKCS)
+               return "CKM_MD5_RSA_PKCS";
+       if (mech == CKM_SHA1_RSA_PKCS)
+               return "CKM_SHA1_RSA_PKCS";
+       if (mech == CKM_RIPEMD128_RSA_PKCS)
+               return "CKM_RIPEMD128_RSA_PKCS";
+       if (mech == CKM_RIPEMD160_RSA_PKCS)
+               return "CKM_RIPEMD160_RSA_PKCS";
+       if (mech == CKM_RSA_PKCS_OAEP)
+               return "CKM_RSA_PKCS_OAEP";
+       if (mech == CKM_RSA_X9_31_KEY_PAIR_GEN)
+               return "CKM_RSA_X9_31_KEY_PAIR_GEN";
+       if (mech == CKM_RSA_X9_31)
+               return "CKM_RSA_X9_31";
+       if (mech == CKM_SHA1_RSA_X9_31)
+               return "CKM_SHA1_RSA_X9_31";
+       if (mech == CKM_RSA_PKCS_PSS)
+               return "CKM_RSA_PKCS_PSS";
+       if (mech == CKM_SHA1_RSA_PKCS_PSS)
+               return "CKM_SHA1_RSA_PKCS_PSS";
+       if (mech == CKM_DSA_KEY_PAIR_GEN)
+               return "CKM_DSA_KEY_PAIR_GEN";
+       if (mech == CKM_DSA)
+               return "CKM_DSA";
+       if (mech == CKM_DSA_SHA1)
+               return "CKM_DSA_SHA1";
+       if (mech == CKM_DH_PKCS_KEY_PAIR_GEN)
+               return "CKM_DH_PKCS_KEY_PAIR_GEN";
+       if (mech == CKM_DH_PKCS_DERIVE)
+               return "CKM_DH_PKCS_DERIVE";
+       if (mech == CKM_X9_42_DH_KEY_PAIR_GEN)
+               return "CKM_X9_42_DH_KEY_PAIR_GEN";
+       if (mech == CKM_X9_42_DH_DERIVE)
+               return "CKM_X9_42_DH_DERIVE";
+       if (mech == CKM_X9_42_DH_HYBRID_DERIVE)
+               return "CKM_X9_42_DH_HYBRID_DERIVE";
+       if (mech == CKM_X9_42_MQV_DERIVE)
+               return "CKM_X9_42_MQV_DERIVE";
+       if (mech == CKM_SHA256_RSA_PKCS)
+               return "CKM_SHA256_RSA_PKCS";
+       if (mech == CKM_SHA384_RSA_PKCS)
+               return "CKM_SHA384_RSA_PKCS";
+       if (mech == CKM_SHA512_RSA_PKCS)
+               return "CKM_SHA512_RSA_PKCS";
+       if (mech == CKM_RC2_KEY_GEN)
+               return "CKM_RC2_KEY_GEN";
+       if (mech == CKM_RC2_ECB)
+               return "CKM_RC2_ECB";
+       if (mech == CKM_RC2_CBC)
+               return "CKM_RC2_CBC";
+       if (mech == CKM_RC2_MAC)
+               return "CKM_RC2_MAC";
+       if (mech == CKM_RC2_MAC_GENERAL)
+               return "CKM_RC2_MAC_GENERAL";
+       if (mech == CKM_RC2_CBC_PAD)
+               return "CKM_RC2_CBC_PAD";
+       if (mech == CKM_RC4_KEY_GEN)
+               return "CKM_RC4_KEY_GEN";
+       if (mech == CKM_RC4)
+               return "CKM_RC4";
+       if (mech == CKM_DES_KEY_GEN)
+               return "CKM_DES_KEY_GEN";
+       if (mech == CKM_DES_ECB)
+               return "CKM_DES_ECB";
+       if (mech == CKM_DES_CBC)
+               return "CKM_DES_CBC";
+       if (mech == CKM_DES_MAC)
+               return "CKM_DES_MAC";
+       if (mech == CKM_DES_MAC_GENERAL)
+               return "CKM_DES_MAC_GENERAL";
+       if (mech == CKM_DES_CBC_PAD)
+               return "CKM_DES_CBC_PAD";
+       if (mech == CKM_DES_OFB64)
+               return "CKM_DES_OFB64";
+       if (mech == CKM_DES_CFB64)
+               return "CKM_DES_CFB64";
+       if (mech == CKM_DES_CFB8)
+               return "CKM_DES_CFB8";
+       if (mech == CKM_DES2_KEY_GEN)
+               return "CKM_DES2_KEY_GEN";
+       if (mech == CKM_DES3_KEY_GEN)
+               return "CKM_DES3_KEY_GEN";
+       if (mech == CKM_DES3_ECB)
+               return "CKM_DES3_ECB";
+       if (mech == CKM_DES3_CBC)
+               return "CKM_DES3_CBC";
+       if (mech == CKM_DES3_MAC)
+               return "CKM_DES3_MAC";
+       if (mech == CKM_DES3_MAC_GENERAL)
+               return "CKM_DES3_MAC_GENERAL";
+       if (mech == CKM_DES3_CBC_PAD)
+               return "CKM_DES3_CBC_PAD";
+       if (mech == CKM_CDMF_KEY_GEN)
+               return "CKM_CDMF_KEY_GEN";
+       if (mech == CKM_CDMF_ECB)
+               return "CKM_CDMF_ECB";
+       if (mech == CKM_CDMF_CBC)
+               return "CKM_CDMF_CBC";
+       if (mech == CKM_CDMF_MAC)
+               return "CKM_CDMF_MAC";
+       if (mech == CKM_CDMF_MAC_GENERAL)
+               return "CKM_CDMF_MAC_GENERAL";
+       if (mech == CKM_CDMF_CBC_PAD)
+               return "CKM_CDMF_CBC_PAD";
+       if (mech == CKM_MD2)
+               return "CKM_MD2";
+       if (mech == CKM_MD2_HMAC)
+               return "CKM_MD2_HMAC";
+       if (mech == CKM_MD2_HMAC_GENERAL)
+               return "CKM_MD2_HMAC_GENERAL";
+       if (mech == CKM_MD5)
+               return "CKM_MD5";
+       if (mech == CKM_MD5_HMAC)
+               return "CKM_MD5_HMAC";
+       if (mech == CKM_MD5_HMAC_GENERAL)
+               return "CKM_MD5_HMAC_GENERAL";
+       if (mech == CKM_SHA_1)
+               return "CKM_SHA_1";
+       if (mech == CKM_SHA_1_HMAC)
+               return "CKM_SHA_1_HMAC";
+       if (mech == CKM_SHA_1_HMAC_GENERAL)
+               return "CKM_SHA_1_HMAC_GENERAL";
+       if (mech == CKM_RIPEMD128)
+               return "CKM_RIPEMD128";
+       if (mech == CKM_RIPEMD128_HMAC)
+               return "CKM_RIPEMD128_HMAC";
+       if (mech == CKM_RIPEMD128_HMAC_GENERAL)
+               return "CKM_RIPEMD128_HMAC_GENERAL";
+       if (mech == CKM_RIPEMD160)
+               return "CKM_RIPEMD160";
+       if (mech == CKM_RIPEMD160_HMAC)
+               return "CKM_RIPEMD160_HMAC";
+       if (mech == CKM_RIPEMD160_HMAC_GENERAL)
+               return "CKM_RIPEMD160_HMAC_GENERAL";
+       if (mech == CKM_SHA256)
+               return "CKM_SHA256";
+       if (mech == CKM_SHA256_HMAC)
+               return "CKM_SHA256_HMAC";
+       if (mech == CKM_SHA256_HMAC_GENERAL)
+               return "CKM_SHA256_HMAC_GENERAL";
+       if (mech == CKM_SHA384)
+               return "CKM_SHA384";
+       if (mech == CKM_SHA384_HMAC)
+               return "CKM_SHA384_HMAC";
+       if (mech == CKM_SHA384_HMAC_GENERAL)
+               return "CKM_SHA384_HMAC_GENERAL";
+       if (mech == CKM_SHA512)
+               return "CKM_SHA512";
+       if (mech == CKM_SHA512_HMAC)
+               return "CKM_SHA512_HMAC";
+       if (mech == CKM_SHA512_HMAC_GENERAL)
+               return "CKM_SHA512_HMAC_GENERAL";
+       if (mech == CKM_CAST_KEY_GEN)
+               return "CKM_CAST_KEY_GEN";
+       if (mech == CKM_CAST_ECB)
+               return "CKM_CAST_ECB";
+       if (mech == CKM_CAST_CBC)
+               return "CKM_CAST_CBC";
+       if (mech == CKM_CAST_MAC)
+               return "CKM_CAST_MAC";
+       if (mech == CKM_CAST_MAC_GENERAL)
+               return "CKM_CAST_MAC_GENERAL";
+       if (mech == CKM_CAST_CBC_PAD)
+               return "CKM_CAST_CBC_PAD";
+       if (mech == CKM_CAST3_KEY_GEN)
+               return "CKM_CAST3_KEY_GEN";
+       if (mech == CKM_CAST3_ECB)
+               return "CKM_CAST3_ECB";
+       if (mech == CKM_CAST3_CBC)
+               return "CKM_CAST3_CBC";
+       if (mech == CKM_CAST3_MAC)
+               return "CKM_CAST3_MAC";
+       if (mech == CKM_CAST3_MAC_GENERAL)
+               return "CKM_CAST3_MAC_GENERAL";
+       if (mech == CKM_CAST3_CBC_PAD)
+               return "CKM_CAST3_CBC_PAD";
+       if (mech == CKM_CAST5_KEY_GEN)
+               return "CKM_CAST5_KEY_GEN";
+       if (mech == CKM_CAST128_KEY_GEN)
+               return "CKM_CAST128_KEY_GEN";
+       if (mech == CKM_CAST5_ECB)
+               return "CKM_CAST5_ECB";
+       if (mech == CKM_CAST128_ECB)
+               return "CKM_CAST128_ECB";
+       if (mech == CKM_CAST5_CBC)
+               return "CKM_CAST5_CBC";
+       if (mech == CKM_CAST128_CBC)
+               return "CKM_CAST128_CBC";
+       if (mech == CKM_CAST5_MAC)
+               return "CKM_CAST5_MAC";
+       if (mech == CKM_CAST128_MAC)
+               return "CKM_CAST128_MAC";
+       if (mech == CKM_CAST5_MAC_GENERAL)
+               return "CKM_CAST5_MAC_GENERAL";
+       if (mech == CKM_CAST128_MAC_GENERAL)
+               return "CKM_CAST128_MAC_GENERAL";
+       if (mech == CKM_CAST5_CBC_PAD)
+               return "CKM_CAST5_CBC_PAD";
+       if (mech == CKM_CAST128_CBC_PAD)
+               return "CKM_CAST128_CBC_PAD";
+       if (mech == CKM_RC5_KEY_GEN)
+               return "CKM_RC5_KEY_GEN";
+       if (mech == CKM_RC5_ECB)
+               return "CKM_RC5_ECB";
+       if (mech == CKM_RC5_CBC)
+               return "CKM_RC5_CBC";
+       if (mech == CKM_RC5_MAC)
+               return "CKM_RC5_MAC";
+       if (mech == CKM_RC5_MAC_GENERAL)
+               return "CKM_RC5_MAC_GENERAL";
+       if (mech == CKM_RC5_CBC_PAD)
+               return "CKM_RC5_CBC_PAD";
+       if (mech == CKM_IDEA_KEY_GEN)
+               return "CKM_IDEA_KEY_GEN";
+       if (mech == CKM_IDEA_ECB)
+               return "CKM_IDEA_ECB";
+       if (mech == CKM_IDEA_CBC)
+               return "CKM_IDEA_CBC";
+       if (mech == CKM_IDEA_MAC)
+               return "CKM_IDEA_MAC";
+       if (mech == CKM_IDEA_MAC_GENERAL)
+               return "CKM_IDEA_MAC_GENERAL";
+       if (mech == CKM_IDEA_CBC_PAD)
+               return "CKM_IDEA_CBC_PAD";
+       if (mech == CKM_GENERIC_SECRET_KEY_GEN)
+               return "CKM_GENERIC_SECRET_KEY_GEN";
+       if (mech == CKM_CONCATENATE_BASE_AND_KEY)
+               return "CKM_CONCATENATE_BASE_AND_KEY";
+       if (mech == CKM_CONCATENATE_BASE_AND_DATA)
+               return "CKM_CONCATENATE_BASE_AND_DATA";
+       if (mech == CKM_CONCATENATE_DATA_AND_BASE)
+               return "CKM_CONCATENATE_DATA_AND_BASE";
+       if (mech == CKM_XOR_BASE_AND_DATA)
+               return "CKM_XOR_BASE_AND_DATA";
+       if (mech == CKM_EXTRACT_KEY_FROM_KEY)
+               return "CKM_EXTRACT_KEY_FROM_KEY";
+       if (mech == CKM_SSL3_PRE_MASTER_KEY_GEN)
+               return "CKM_SSL3_PRE_MASTER_KEY_GEN";
+       if (mech == CKM_SSL3_MASTER_KEY_DERIVE)
+               return "CKM_SSL3_MASTER_KEY_DERIVE";
+       if (mech == CKM_SSL3_KEY_AND_MAC_DERIVE)
+               return "CKM_SSL3_KEY_AND_MAC_DERIVE";
+       if (mech == CKM_SSL3_MASTER_KEY_DERIVE_DH)
+               return "CKM_SSL3_MASTER_KEY_DERIVE_DH";
+       if (mech == CKM_TLS_PRE_MASTER_KEY_GEN)
+               return "CKM_TLS_PRE_MASTER_KEY_GEN";
+       if (mech == CKM_TLS_MASTER_KEY_DERIVE)
+               return "CKM_TLS_MASTER_KEY_DERIVE";
+       if (mech == CKM_TLS_KEY_AND_MAC_DERIVE)
+               return "CKM_TLS_KEY_AND_MAC_DERIVE";
+       if (mech == CKM_TLS_MASTER_KEY_DERIVE_DH)
+               return "CKM_TLS_MASTER_KEY_DERIVE_DH";
+       if (mech == CKM_SSL3_MD5_MAC)
+               return "CKM_SSL3_MD5_MAC";
+       if (mech == CKM_SSL3_SHA1_MAC)
+               return "CKM_SSL3_SHA1_MAC";
+       if (mech == CKM_MD5_KEY_DERIVATION)
+               return "CKM_MD5_KEY_DERIVATION";
+       if (mech == CKM_MD2_KEY_DERIVATION)
+               return "CKM_MD2_KEY_DERIVATION";
+       if (mech == CKM_SHA1_KEY_DERIVATION)
+               return "CKM_SHA1_KEY_DERIVATION";
+       if (mech == CKM_SHA256_KEY_DERIVATION)
+               return "CKM_SHA256_KEY_DERIVATION";
+       if (mech == CKM_PBE_MD2_DES_CBC)
+               return "CKM_PBE_MD2_DES_CBC";
+       if (mech == CKM_PBE_MD5_DES_CBC)
+               return "CKM_PBE_MD5_DES_CBC";
+       if (mech == CKM_PBE_MD5_CAST_CBC)
+               return "CKM_PBE_MD5_CAST_CBC";
+       if (mech == CKM_PBE_MD5_CAST3_CBC)
+               return "CKM_PBE_MD5_CAST3_CBC";
+       if (mech == CKM_PBE_MD5_CAST5_CBC)
+               return "CKM_PBE_MD5_CAST5_CBC";
+       if (mech == CKM_PBE_MD5_CAST128_CBC)
+               return "CKM_PBE_MD5_CAST128_CBC";
+       if (mech == CKM_PBE_SHA1_CAST5_CBC)
+               return "CKM_PBE_SHA1_CAST5_CBC";
+       if (mech == CKM_PBE_SHA1_CAST128_CBC)
+               return "CKM_PBE_SHA1_CAST128_CBC";
+       if (mech == CKM_PBE_SHA1_RC4_128)
+               return "CKM_PBE_SHA1_RC4_128";
+       if (mech == CKM_PBE_SHA1_RC4_40)
+               return "CKM_PBE_SHA1_RC4_40";
+       if (mech == CKM_PBE_SHA1_DES3_EDE_CBC)
+               return "CKM_PBE_SHA1_DES3_EDE_CBC";
+       if (mech == CKM_PBE_SHA1_DES2_EDE_CBC)
+               return "CKM_PBE_SHA1_DES2_EDE_CBC";
+       if (mech == CKM_PBE_SHA1_RC2_128_CBC)
+               return "CKM_PBE_SHA1_RC2_128_CBC";
+       if (mech == CKM_PBE_SHA1_RC2_40_CBC)
+               return "CKM_PBE_SHA1_RC2_40_CBC";
+       if (mech == CKM_PKCS5_PBKD2)
+               return "CKM_PKCS5_PBKD2";
+       if (mech == CKM_PBA_SHA1_WITH_SHA1_HMAC)
+               return "CKM_PBA_SHA1_WITH_SHA1_HMAC";
+       if (mech == CKM_KEY_WRAP_LYNKS)
+               return "CKM_KEY_WRAP_LYNKS";
+       if (mech == CKM_KEY_WRAP_SET_OAEP)
+               return "CKM_KEY_WRAP_SET_OAEP";
+       if (mech == CKM_SKIPJACK_KEY_GEN)
+               return "CKM_SKIPJACK_KEY_GEN";
+       if (mech == CKM_SKIPJACK_ECB64)
+               return "CKM_SKIPJACK_ECB64";
+       if (mech == CKM_SKIPJACK_CBC64)
+               return "CKM_SKIPJACK_CBC64";
+       if (mech == CKM_SKIPJACK_OFB64)
+               return "CKM_SKIPJACK_OFB64";
+       if (mech == CKM_SKIPJACK_CFB64)
+               return "CKM_SKIPJACK_CFB64";
+       if (mech == CKM_SKIPJACK_CFB32)
+               return "CKM_SKIPJACK_CFB32";
+       if (mech == CKM_SKIPJACK_CFB16)
+               return "CKM_SKIPJACK_CFB16";
+       if (mech == CKM_SKIPJACK_CFB8)
+               return "CKM_SKIPJACK_CFB8";
+       if (mech == CKM_SKIPJACK_WRAP)
+               return "CKM_SKIPJACK_WRAP";
+       if (mech == CKM_SKIPJACK_PRIVATE_WRAP)
+               return "CKM_SKIPJACK_PRIVATE_WRAP";
+       if (mech == CKM_SKIPJACK_RELAYX)
+               return "CKM_SKIPJACK_RELAYX";
+       if (mech == CKM_KEA_KEY_PAIR_GEN)
+               return "CKM_KEA_KEY_PAIR_GEN";
+       if (mech == CKM_KEA_KEY_DERIVE)
+               return "CKM_KEA_KEY_DERIVE";
+       if (mech == CKM_FORTEZZA_TIMESTAMP)
+               return "CKM_FORTEZZA_TIMESTAMP";
+       if (mech == CKM_BATON_KEY_GEN)
+               return "CKM_BATON_KEY_GEN";
+       if (mech == CKM_BATON_ECB128)
+               return "CKM_BATON_ECB128";
+       if (mech == CKM_BATON_ECB96)
+               return "CKM_BATON_ECB96";
+       if (mech == CKM_BATON_CBC128)
+               return "CKM_BATON_CBC128";
+       if (mech == CKM_BATON_COUNTER)
+               return "CKM_BATON_COUNTER";
+       if (mech == CKM_BATON_SHUFFLE)
+               return "CKM_BATON_SHUFFLE";
+       if (mech == CKM_BATON_WRAP)
+               return "CKM_BATON_WRAP";
+       if (mech == CKM_ECDSA_KEY_PAIR_GEN)
+               return "CKM_ECDSA_KEY_PAIR_GEN";
+       if (mech == CKM_EC_KEY_PAIR_GEN)
+               return "CKM_EC_KEY_PAIR_GEN";
+       if (mech == CKM_ECDSA)
+               return "CKM_ECDSA";
+       if (mech == CKM_ECDSA_SHA1)
+               return "CKM_ECDSA_SHA1";
+       if (mech == CKM_ECDH1_DERIVE)
+               return "CKM_ECDH1_DERIVE";
+       if (mech == CKM_ECDH1_COFACTOR_DERIVE)
+               return "CKM_ECDH1_COFACTOR_DERIVE";
+       if (mech == CKM_ECMQV_DERIVE)
+               return "CKM_ECMQV_DERIVE";
+       if (mech == CKM_JUNIPER_KEY_GEN)
+               return "CKM_JUNIPER_KEY_GEN";
+       if (mech == CKM_JUNIPER_ECB128)
+               return "CKM_JUNIPER_ECB128";
+       if (mech == CKM_JUNIPER_CBC128)
+               return "CKM_JUNIPER_CBC128";
+       if (mech == CKM_JUNIPER_COUNTER)
+               return "CKM_JUNIPER_COUNTER";
+       if (mech == CKM_JUNIPER_SHUFFLE)
+               return "CKM_JUNIPER_SHUFFLE";
+       if (mech == CKM_JUNIPER_WRAP)
+               return "CKM_JUNIPER_WRAP";
+       if (mech == CKM_FASTHASH)
+               return "CKM_FASTHASH";
+       if (mech == CKM_AES_KEY_GEN)
+               return "CKM_AES_KEY_GEN";
+       if (mech == CKM_AES_ECB)
+               return "CKM_AES_ECB";
+       if (mech == CKM_AES_CBC)
+               return "CKM_AES_CBC";
+       if (mech == CKM_AES_MAC)
+               return "CKM_AES_MAC";
+       if (mech == CKM_AES_MAC_GENERAL)
+               return "CKM_AES_MAC_GENERAL";
+       if (mech == CKM_AES_CBC_PAD)
+               return "CKM_AES_CBC_PAD";
+       if (mech == CKM_AES_CTR)
+               return "CKM_AES_CTR";
+       if (mech == CKM_AES_GCM)
+               return "CKM_AES_GCM";
+       if (mech == CKM_AES_OFB)
+               return "CKM_AES_OFB";
+       if (mech == CKM_AES_CFB128)
+               return "CKM_AES_CFB128";
+       if (mech == CKM_AES_CFB64)
+               return "CKM_AES_CFB64";
+       if (mech == CKM_AES_CFB8)
+               return "CKM_AES_CFB8";
+       if (mech == CKM_DSA_PARAMETER_GEN)
+               return "CKM_DSA_PARAMETER_GEN";
+       if (mech == CKM_DH_PKCS_PARAMETER_GEN)
+               return "CKM_DH_PKCS_PARAMETER_GEN";
+       if (mech == CKM_X9_42_DH_PARAMETER_GEN)
+               return "CKM_X9_42_DH_PARAMETER_GEN";
+       if (mech == CKM_VENDOR_DEFINED)
+               return "CKM_VENDOR_DEFINED";
+
+       return "(unknown mech)";
+}
+
+#endif
diff --git a/testcases/pkcs11/sess_mgmt.c b/testcases/pkcs11/sess_mgmt.c
index dfd7055..6cccc93 100644
--- a/testcases/pkcs11/sess_mgmt.c
+++ b/testcases/pkcs11/sess_mgmt.c
@@ -10,6 +10,7 @@
 
 #include "pkcs11types.h"
 #include "regress.h"
+#include "mech_to_str.h"
 #include "common.c"
 
 //
@@ -494,6 +495,10 @@ CK_RV do_OperationState1( void )
        CK_ULONG      orig_len, crypt1_len, crypt2_len, trash1_len, trash2_len;
        CK_ULONG      i;
 
+       CK_ULONG      key_len = 16;
+        CK_ATTRIBUTE  key_gen_tmpl[] =
+               {{CKA_VALUE_LEN, &key_len, sizeof(CK_ULONG)}};
+       
        CK_MECHANISM     mech;
        CK_OBJECT_HANDLE h_key;
 
@@ -547,21 +552,22 @@ CK_RV do_OperationState1( void )
        memcpy( trash1, "asdflkjasdlkjadslkj", trash1_len );
 
 
-       // first generate a DES key
+       // first generate an AES key
        //
-       mech.mechanism      = CKM_DES_KEY_GEN;
+       mech.mechanism      = CKM_AES_KEY_GEN;
        mech.ulParameterLen = 0;
        mech.pParameter     = NULL;
 
        if (!mech_supported(slot_id, mech.mechanism)) {
-               printf("Mechanism %ld not supported. (skipped)\n",
-                       mech.mechanism);
+               printf("Mechanism %s not supported. (skipped)\n",
+                      mech_to_str(mech.mechanism));
                funcs->C_CloseSession(session1);
                funcs->C_CloseSession(session2);
                return 0;
        }
 
-       rc = funcs->C_GenerateKey( session1, &mech, NULL, 0, &h_key );
+       rc = funcs->C_GenerateKey( session1, &mech,
+                                  key_gen_tmpl, 1, &h_key );
        if (rc != CKR_OK) {
                show_error("   C_GenerateKey #1", rc );
                return rc;
@@ -569,9 +575,9 @@ CK_RV do_OperationState1( void )
 
        // now encrypt the original data all at once using CBC
        //
-       mech.mechanism = CKM_DES_CBC;
-       mech.ulParameterLen = 8;
-       mech.pParameter     = "asdfqwer";
+       mech.mechanism = CKM_AES_CBC;
+       mech.ulParameterLen = 16;
+       mech.pParameter     = "1234qwerasdfyxcv";
 
        rc = funcs->C_EncryptInit( session1, &mech, h_key );
        if (rc != CKR_OK) {
@@ -781,8 +787,8 @@ CK_RV do_OperationState2( void )
        mech.ulParameterLen = 0;
 
        if (!mech_supported(slot_id, mech.mechanism)) {
-               printf("Mechanism %ld not supported. (skipped)\n",
-                       mech.mechanism);
+               printf("Mechanism %s not supported. (skipped)\n",
+                      mech_to_str(mech.mechanism));
                funcs->C_CloseSession(session1);
                funcs->C_CloseSession(session2);
                funcs->C_CloseSession(session3);
@@ -967,6 +973,10 @@ CK_RV do_OperationState3( void )
 
        CK_ULONG    i;
 
+       CK_ULONG      key_len = 16;
+        CK_ATTRIBUTE  key_gen_tmpl[] =
+               {{CKA_VALUE_LEN, &key_len, sizeof(CK_ULONG)}};
+
        CK_MECHANISM      mech1, mech2;
        CK_OBJECT_HANDLE  key;
 
@@ -1023,33 +1033,34 @@ CK_RV do_OperationState3( void )
                original[i] = i % 255;
 
 
-       mech1.mechanism      = CKM_DES_KEY_GEN;
+       mech1.mechanism      = CKM_AES_KEY_GEN;
        mech1.pParameter     = NULL;
        mech1.ulParameterLen = 0;
 
        if (!mech_supported(slot_id, mech1.mechanism)) {
-               printf("Mechanism %ld not supported. (skipped)\n",
-                       mech1.mechanism);
+               printf("Mechanism %s not supported. (skipped)\n",
+                      mech_to_str(mech1.mechanism));
                funcs->C_CloseSession(session1);
                funcs->C_CloseSession(session2);
                funcs->C_CloseSession(session3);
                return 0;
        }
 
-       rc = funcs->C_GenerateKey( session1, &mech1, NULL, 0, &key );
+       rc = funcs->C_GenerateKey( session1, &mech1,
+                                  key_gen_tmpl, 1, &key );
        if (rc != CKR_OK) {
                show_error("   C_GenerateKey #1", rc );
                return rc;
        }
 
 
-       mech1.mechanism      = CKM_DES_ECB;
+       mech1.mechanism      = CKM_AES_ECB;
        mech1.pParameter     = NULL;
        mech1.ulParameterLen = 0;
 
        if (!mech_supported(slot_id, mech1.mechanism)) {
-               printf("Mechanism %ld not supported. (skipped)\n",
-                       mech1.mechanism);
+               printf("Mechanism %s not supported. (skipped)\n",
+                      mech_to_str(mech1.mechanism));
                funcs->C_CloseSession(session1);
                funcs->C_CloseSession(session2);
                funcs->C_CloseSession(session3);
@@ -1067,8 +1078,8 @@ CK_RV do_OperationState3( void )
        mech2.ulParameterLen = 0;
 
        if (!mech_supported(slot_id, mech2.mechanism)) {
-               printf("Mechanism %ld not supported. (skipped)\n",
-                       mech2.mechanism);
+               printf("Mechanism %s not supported. (skipped)\n",
+                      mech_to_str(mech2.mechanism));
                funcs->C_CloseSession(session1);
                funcs->C_CloseSession(session2);
                funcs->C_CloseSession(session3);
-- 
1.7.9.5


------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140
_______________________________________________
Opencryptoki-tech mailing list
Opencryptoki-tech@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opencryptoki-tech

Reply via email to