|
Packit |
8681c6 |
/*
|
|
Packit |
8681c6 |
* COPYRIGHT (c) International Business Machines Corp. 2001-2017
|
|
Packit |
8681c6 |
*
|
|
Packit |
8681c6 |
* This program is provided under the terms of the Common Public License,
|
|
Packit |
8681c6 |
* version 1.0 (CPL-1.0). Any use, reproduction or distribution for this
|
|
Packit |
8681c6 |
* software constitutes recipient's acceptance of CPL-1.0 terms which can be
|
|
Packit |
8681c6 |
* found in the file LICENSE file or at
|
|
Packit |
8681c6 |
* https://opensource.org/licenses/cpl1.0.php
|
|
Packit |
8681c6 |
*/
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
#include <stdlib.h>
|
|
Packit |
8681c6 |
#include <string.h>
|
|
Packit |
8681c6 |
#include <stdio.h>
|
|
Packit |
8681c6 |
#include "pkcs11types.h"
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
#define _sym2str(X) case X: return #X
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
//
|
|
Packit |
8681c6 |
// p11_get_ckr - return textual interpretation of a CKR_ error code
|
|
Packit |
8681c6 |
// @rc is the CKR_.. error
|
|
Packit |
8681c6 |
//
|
|
Packit |
8681c6 |
char *p11_get_ckr(CK_RV rc)
|
|
Packit |
8681c6 |
{
|
|
Packit |
8681c6 |
switch (rc) {
|
|
Packit |
8681c6 |
_sym2str(CKR_OK);
|
|
Packit |
8681c6 |
_sym2str(CKR_CANCEL);
|
|
Packit |
8681c6 |
_sym2str(CKR_HOST_MEMORY);
|
|
Packit |
8681c6 |
_sym2str(CKR_SLOT_ID_INVALID);
|
|
Packit |
8681c6 |
_sym2str(CKR_GENERAL_ERROR);
|
|
Packit |
8681c6 |
_sym2str(CKR_FUNCTION_FAILED);
|
|
Packit |
8681c6 |
_sym2str(CKR_ARGUMENTS_BAD);
|
|
Packit |
8681c6 |
_sym2str(CKR_NO_EVENT);
|
|
Packit |
8681c6 |
_sym2str(CKR_NEED_TO_CREATE_THREADS);
|
|
Packit |
8681c6 |
_sym2str(CKR_CANT_LOCK);
|
|
Packit |
8681c6 |
_sym2str(CKR_ATTRIBUTE_READ_ONLY);
|
|
Packit |
8681c6 |
_sym2str(CKR_ATTRIBUTE_SENSITIVE);
|
|
Packit |
8681c6 |
_sym2str(CKR_ATTRIBUTE_TYPE_INVALID);
|
|
Packit |
8681c6 |
_sym2str(CKR_ATTRIBUTE_VALUE_INVALID);
|
|
Packit |
8681c6 |
_sym2str(CKR_DATA_INVALID);
|
|
Packit |
8681c6 |
_sym2str(CKR_DATA_LEN_RANGE);
|
|
Packit |
8681c6 |
_sym2str(CKR_DEVICE_ERROR);
|
|
Packit |
8681c6 |
_sym2str(CKR_DEVICE_MEMORY);
|
|
Packit |
8681c6 |
_sym2str(CKR_DEVICE_REMOVED);
|
|
Packit |
8681c6 |
_sym2str(CKR_ENCRYPTED_DATA_INVALID);
|
|
Packit |
8681c6 |
_sym2str(CKR_ENCRYPTED_DATA_LEN_RANGE);
|
|
Packit |
8681c6 |
_sym2str(CKR_FUNCTION_CANCELED);
|
|
Packit |
8681c6 |
_sym2str(CKR_FUNCTION_NOT_PARALLEL);
|
|
Packit |
8681c6 |
_sym2str(CKR_FUNCTION_NOT_SUPPORTED);
|
|
Packit |
8681c6 |
_sym2str(CKR_KEY_HANDLE_INVALID);
|
|
Packit |
8681c6 |
_sym2str(CKR_KEY_SIZE_RANGE);
|
|
Packit |
8681c6 |
_sym2str(CKR_KEY_TYPE_INCONSISTENT);
|
|
Packit |
8681c6 |
_sym2str(CKR_KEY_NOT_NEEDED);
|
|
Packit |
8681c6 |
_sym2str(CKR_KEY_CHANGED);
|
|
Packit |
8681c6 |
_sym2str(CKR_KEY_NEEDED);
|
|
Packit |
8681c6 |
_sym2str(CKR_KEY_INDIGESTIBLE);
|
|
Packit |
8681c6 |
_sym2str(CKR_KEY_FUNCTION_NOT_PERMITTED);
|
|
Packit |
8681c6 |
_sym2str(CKR_KEY_NOT_WRAPPABLE);
|
|
Packit |
8681c6 |
_sym2str(CKR_KEY_UNEXTRACTABLE);
|
|
Packit |
8681c6 |
_sym2str(CKR_MECHANISM_INVALID);
|
|
Packit |
8681c6 |
_sym2str(CKR_MECHANISM_PARAM_INVALID);
|
|
Packit |
8681c6 |
_sym2str(CKR_OBJECT_HANDLE_INVALID);
|
|
Packit |
8681c6 |
_sym2str(CKR_OPERATION_ACTIVE);
|
|
Packit |
8681c6 |
_sym2str(CKR_OPERATION_NOT_INITIALIZED);
|
|
Packit |
8681c6 |
_sym2str(CKR_PIN_INCORRECT);
|
|
Packit |
8681c6 |
_sym2str(CKR_PIN_INVALID);
|
|
Packit |
8681c6 |
_sym2str(CKR_PIN_LEN_RANGE);
|
|
Packit |
8681c6 |
_sym2str(CKR_PIN_EXPIRED);
|
|
Packit |
8681c6 |
_sym2str(CKR_PIN_LOCKED);
|
|
Packit |
8681c6 |
_sym2str(CKR_SESSION_CLOSED);
|
|
Packit |
8681c6 |
_sym2str(CKR_SESSION_COUNT);
|
|
Packit |
8681c6 |
_sym2str(CKR_SESSION_HANDLE_INVALID);
|
|
Packit |
8681c6 |
_sym2str(CKR_SESSION_PARALLEL_NOT_SUPPORTED);
|
|
Packit |
8681c6 |
_sym2str(CKR_SESSION_READ_ONLY);
|
|
Packit |
8681c6 |
_sym2str(CKR_SESSION_EXISTS);
|
|
Packit |
8681c6 |
_sym2str(CKR_SESSION_READ_ONLY_EXISTS);
|
|
Packit |
8681c6 |
_sym2str(CKR_SESSION_READ_WRITE_SO_EXISTS);
|
|
Packit |
8681c6 |
_sym2str(CKR_SIGNATURE_INVALID);
|
|
Packit |
8681c6 |
_sym2str(CKR_SIGNATURE_LEN_RANGE);
|
|
Packit |
8681c6 |
_sym2str(CKR_TEMPLATE_INCOMPLETE);
|
|
Packit |
8681c6 |
_sym2str(CKR_TEMPLATE_INCONSISTENT);
|
|
Packit |
8681c6 |
_sym2str(CKR_TOKEN_NOT_PRESENT);
|
|
Packit |
8681c6 |
_sym2str(CKR_TOKEN_NOT_RECOGNIZED);
|
|
Packit |
8681c6 |
_sym2str(CKR_TOKEN_WRITE_PROTECTED);
|
|
Packit |
8681c6 |
_sym2str(CKR_UNWRAPPING_KEY_HANDLE_INVALID);
|
|
Packit |
8681c6 |
_sym2str(CKR_UNWRAPPING_KEY_SIZE_RANGE);
|
|
Packit |
8681c6 |
_sym2str(CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT);
|
|
Packit |
8681c6 |
_sym2str(CKR_USER_ALREADY_LOGGED_IN);
|
|
Packit |
8681c6 |
_sym2str(CKR_USER_NOT_LOGGED_IN);
|
|
Packit |
8681c6 |
_sym2str(CKR_USER_PIN_NOT_INITIALIZED);
|
|
Packit |
8681c6 |
_sym2str(CKR_USER_TYPE_INVALID);
|
|
Packit |
8681c6 |
_sym2str(CKR_USER_ANOTHER_ALREADY_LOGGED_IN);
|
|
Packit |
8681c6 |
_sym2str(CKR_USER_TOO_MANY_TYPES);
|
|
Packit |
8681c6 |
_sym2str(CKR_WRAPPED_KEY_INVALID);
|
|
Packit |
8681c6 |
_sym2str(CKR_WRAPPED_KEY_LEN_RANGE);
|
|
Packit |
8681c6 |
_sym2str(CKR_WRAPPING_KEY_HANDLE_INVALID);
|
|
Packit |
8681c6 |
_sym2str(CKR_WRAPPING_KEY_SIZE_RANGE);
|
|
Packit |
8681c6 |
_sym2str(CKR_WRAPPING_KEY_TYPE_INCONSISTENT);
|
|
Packit |
8681c6 |
_sym2str(CKR_RANDOM_SEED_NOT_SUPPORTED);
|
|
Packit |
8681c6 |
_sym2str(CKR_RANDOM_NO_RNG);
|
|
Packit |
8681c6 |
_sym2str(CKR_DOMAIN_PARAMS_INVALID);
|
|
Packit |
8681c6 |
_sym2str(CKR_CURVE_NOT_SUPPORTED);
|
|
Packit |
8681c6 |
_sym2str(CKR_BUFFER_TOO_SMALL);
|
|
Packit |
8681c6 |
_sym2str(CKR_SAVED_STATE_INVALID);
|
|
Packit |
8681c6 |
_sym2str(CKR_INFORMATION_SENSITIVE);
|
|
Packit |
8681c6 |
_sym2str(CKR_STATE_UNSAVEABLE);
|
|
Packit |
8681c6 |
_sym2str(CKR_CRYPTOKI_NOT_INITIALIZED);
|
|
Packit |
8681c6 |
_sym2str(CKR_CRYPTOKI_ALREADY_INITIALIZED);
|
|
Packit |
8681c6 |
_sym2str(CKR_MUTEX_BAD);
|
|
Packit |
8681c6 |
_sym2str(CKR_MUTEX_NOT_LOCKED);
|
|
Packit |
8681c6 |
_sym2str(CKR_FUNCTION_REJECTED);
|
|
Packit |
8681c6 |
default:
|
|
Packit |
8681c6 |
return "UNKNOWN";
|
|
Packit |
8681c6 |
}
|
|
Packit |
8681c6 |
}
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
// is_attribute_defined()
|
|
Packit |
8681c6 |
//
|
|
Packit |
8681c6 |
// determine whether the specified attribute is defined by Cryptoki
|
|
Packit |
8681c6 |
//
|
|
Packit |
8681c6 |
CK_BBOOL is_attribute_defined(CK_ATTRIBUTE_TYPE type)
|
|
Packit |
8681c6 |
{
|
|
Packit |
8681c6 |
if (type >= CKA_VENDOR_DEFINED)
|
|
Packit |
8681c6 |
return TRUE;
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
switch (type) {
|
|
Packit |
8681c6 |
case CKA_CLASS:
|
|
Packit |
8681c6 |
case CKA_TOKEN:
|
|
Packit |
8681c6 |
case CKA_PRIVATE:
|
|
Packit |
8681c6 |
case CKA_LABEL:
|
|
Packit |
8681c6 |
case CKA_APPLICATION:
|
|
Packit |
8681c6 |
case CKA_VALUE:
|
|
Packit |
8681c6 |
case CKA_CERTIFICATE_TYPE:
|
|
Packit |
8681c6 |
case CKA_ISSUER:
|
|
Packit |
8681c6 |
case CKA_SERIAL_NUMBER:
|
|
Packit |
8681c6 |
case CKA_KEY_TYPE:
|
|
Packit |
8681c6 |
case CKA_SUBJECT:
|
|
Packit |
8681c6 |
case CKA_ID:
|
|
Packit |
8681c6 |
case CKA_SENSITIVE:
|
|
Packit |
8681c6 |
case CKA_ENCRYPT:
|
|
Packit |
8681c6 |
case CKA_DECRYPT:
|
|
Packit |
8681c6 |
case CKA_WRAP:
|
|
Packit |
8681c6 |
case CKA_UNWRAP:
|
|
Packit |
8681c6 |
case CKA_SIGN:
|
|
Packit |
8681c6 |
case CKA_SIGN_RECOVER:
|
|
Packit |
8681c6 |
case CKA_VERIFY:
|
|
Packit |
8681c6 |
case CKA_VERIFY_RECOVER:
|
|
Packit |
8681c6 |
case CKA_DERIVE:
|
|
Packit |
8681c6 |
case CKA_START_DATE:
|
|
Packit |
8681c6 |
case CKA_END_DATE:
|
|
Packit |
8681c6 |
case CKA_MODULUS:
|
|
Packit |
8681c6 |
case CKA_MODULUS_BITS:
|
|
Packit |
8681c6 |
case CKA_PUBLIC_EXPONENT:
|
|
Packit |
8681c6 |
case CKA_PRIVATE_EXPONENT:
|
|
Packit |
8681c6 |
case CKA_PRIME_1:
|
|
Packit |
8681c6 |
case CKA_PRIME_2:
|
|
Packit |
8681c6 |
case CKA_EXPONENT_1:
|
|
Packit |
8681c6 |
case CKA_EXPONENT_2:
|
|
Packit |
8681c6 |
case CKA_COEFFICIENT:
|
|
Packit |
8681c6 |
case CKA_PRIME:
|
|
Packit |
8681c6 |
case CKA_SUBPRIME:
|
|
Packit |
8681c6 |
case CKA_BASE:
|
|
Packit |
8681c6 |
case CKA_VALUE_BITS:
|
|
Packit |
8681c6 |
case CKA_VALUE_LEN:
|
|
Packit |
8681c6 |
case CKA_EXTRACTABLE:
|
|
Packit |
8681c6 |
case CKA_LOCAL:
|
|
Packit |
8681c6 |
case CKA_NEVER_EXTRACTABLE:
|
|
Packit |
8681c6 |
case CKA_ALWAYS_SENSITIVE:
|
|
Packit |
8681c6 |
case CKA_ALWAYS_AUTHENTICATE:
|
|
Packit |
8681c6 |
case CKA_MODIFIABLE:
|
|
Packit Service |
8aa27d |
case CKA_UNIQUE_ID:
|
|
Packit Service |
8aa27d |
case CKA_PROFILE_ID:
|
|
Packit |
8681c6 |
case CKA_ECDSA_PARAMS:
|
|
Packit |
8681c6 |
case CKA_EC_POINT:
|
|
Packit |
8681c6 |
case CKA_HW_FEATURE_TYPE:
|
|
Packit |
8681c6 |
case CKA_HAS_RESET:
|
|
Packit |
8681c6 |
case CKA_RESET_ON_INIT:
|
|
Packit |
8681c6 |
case CKA_KEY_GEN_MECHANISM:
|
|
Packit |
8681c6 |
case CKA_PRIME_BITS:
|
|
Packit |
8681c6 |
case CKA_SUBPRIME_BITS:
|
|
Packit |
8681c6 |
case CKA_OBJECT_ID:
|
|
Packit |
8681c6 |
case CKA_AC_ISSUER:
|
|
Packit |
8681c6 |
case CKA_OWNER:
|
|
Packit |
8681c6 |
case CKA_ATTR_TYPES:
|
|
Packit |
8681c6 |
case CKA_TRUSTED:
|
|
Packit |
8681c6 |
case CKA_IBM_RESTRICTABLE:
|
|
Packit |
8681c6 |
case CKA_IBM_NEVER_MODIFIABLE:
|
|
Packit |
8681c6 |
case CKA_IBM_RETAINKEY:
|
|
Packit |
8681c6 |
case CKA_IBM_ATTRBOUND:
|
|
Packit |
8681c6 |
case CKA_IBM_KEYTYPE:
|
|
Packit |
8681c6 |
case CKA_IBM_CV:
|
|
Packit |
8681c6 |
case CKA_IBM_MACKEY:
|
|
Packit |
8681c6 |
case CKA_IBM_USE_AS_DATA:
|
|
Packit |
8681c6 |
case CKA_IBM_STRUCT_PARAMS:
|
|
Packit |
8681c6 |
case CKA_IBM_STD_COMPLIANCE1:
|
|
Packit |
8681c6 |
case CKA_NSS_MOZILLA_CA_POLICY:
|
|
Packit |
8681c6 |
case CKA_IBM_DILITHIUM_KEYFORM:
|
|
Packit |
8681c6 |
case CKA_IBM_DILITHIUM_RHO:
|
|
Packit |
8681c6 |
case CKA_IBM_DILITHIUM_SEED:
|
|
Packit |
8681c6 |
case CKA_IBM_DILITHIUM_TR:
|
|
Packit |
8681c6 |
case CKA_IBM_DILITHIUM_S1:
|
|
Packit |
8681c6 |
case CKA_IBM_DILITHIUM_S2:
|
|
Packit |
8681c6 |
case CKA_IBM_DILITHIUM_T0:
|
|
Packit |
8681c6 |
case CKA_IBM_DILITHIUM_T1:
|
|
Packit |
8681c6 |
return TRUE;
|
|
Packit |
8681c6 |
}
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
return FALSE;
|
|
Packit |
8681c6 |
}
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
char *p11_get_ckm(CK_ULONG mechanism)
|
|
Packit |
8681c6 |
{
|
|
Packit |
8681c6 |
switch (mechanism) {
|
|
Packit |
8681c6 |
_sym2str(CKM_RSA_PKCS_KEY_PAIR_GEN);
|
|
Packit |
8681c6 |
_sym2str(CKM_RSA_PKCS);
|
|
Packit |
8681c6 |
_sym2str(CKM_RSA_9796);
|
|
Packit |
8681c6 |
_sym2str(CKM_RSA_X_509);
|
|
Packit |
8681c6 |
_sym2str(CKM_MD2_RSA_PKCS);
|
|
Packit |
8681c6 |
_sym2str(CKM_MD5_RSA_PKCS);
|
|
Packit |
8681c6 |
_sym2str(CKM_SHA1_RSA_PKCS);
|
|
Packit |
8681c6 |
_sym2str(CKM_RIPEMD128_RSA_PKCS);
|
|
Packit |
8681c6 |
_sym2str(CKM_RIPEMD160_RSA_PKCS);
|
|
Packit |
8681c6 |
_sym2str(CKM_RSA_PKCS_OAEP);
|
|
Packit |
8681c6 |
_sym2str(CKM_RSA_X9_31_KEY_PAIR_GEN);
|
|
Packit |
8681c6 |
_sym2str(CKM_RSA_X9_31);
|
|
Packit |
8681c6 |
_sym2str(CKM_SHA1_RSA_X9_31);
|
|
Packit |
8681c6 |
_sym2str(CKM_RSA_PKCS_PSS);
|
|
Packit |
8681c6 |
_sym2str(CKM_SHA1_RSA_PKCS_PSS);
|
|
Packit |
8681c6 |
_sym2str(CKM_DSA_KEY_PAIR_GEN);
|
|
Packit |
8681c6 |
_sym2str(CKM_DSA);
|
|
Packit |
8681c6 |
_sym2str(CKM_DSA_SHA1);
|
|
Packit |
8681c6 |
_sym2str(CKM_DH_PKCS_KEY_PAIR_GEN);
|
|
Packit |
8681c6 |
_sym2str(CKM_DH_PKCS_DERIVE);
|
|
Packit |
8681c6 |
_sym2str(CKM_X9_42_DH_KEY_PAIR_GEN);
|
|
Packit |
8681c6 |
_sym2str(CKM_X9_42_DH_DERIVE);
|
|
Packit |
8681c6 |
_sym2str(CKM_X9_42_DH_HYBRID_DERIVE);
|
|
Packit |
8681c6 |
_sym2str(CKM_X9_42_MQV_DERIVE);
|
|
Packit |
8681c6 |
_sym2str(CKM_SHA224_RSA_PKCS);
|
|
Packit |
8681c6 |
_sym2str(CKM_SHA256_RSA_PKCS);
|
|
Packit |
8681c6 |
_sym2str(CKM_SHA384_RSA_PKCS);
|
|
Packit |
8681c6 |
_sym2str(CKM_SHA512_RSA_PKCS);
|
|
Packit |
8681c6 |
_sym2str(CKM_RC2_KEY_GEN);
|
|
Packit |
8681c6 |
_sym2str(CKM_RC2_ECB);
|
|
Packit |
8681c6 |
_sym2str(CKM_RC2_CBC);
|
|
Packit |
8681c6 |
_sym2str(CKM_RC2_MAC);
|
|
Packit |
8681c6 |
_sym2str(CKM_RC2_MAC_GENERAL);
|
|
Packit |
8681c6 |
_sym2str(CKM_RC2_CBC_PAD);
|
|
Packit |
8681c6 |
_sym2str(CKM_RC4_KEY_GEN);
|
|
Packit |
8681c6 |
_sym2str(CKM_RC4);
|
|
Packit |
8681c6 |
_sym2str(CKM_DES_KEY_GEN);
|
|
Packit |
8681c6 |
_sym2str(CKM_DES_ECB);
|
|
Packit |
8681c6 |
_sym2str(CKM_DES_CBC);
|
|
Packit |
8681c6 |
_sym2str(CKM_DES_MAC);
|
|
Packit |
8681c6 |
_sym2str(CKM_DES_MAC_GENERAL);
|
|
Packit |
8681c6 |
_sym2str(CKM_DES_CBC_PAD);
|
|
Packit |
8681c6 |
_sym2str(CKM_DES2_KEY_GEN);
|
|
Packit |
8681c6 |
_sym2str(CKM_DES3_KEY_GEN);
|
|
Packit |
8681c6 |
_sym2str(CKM_DES3_ECB);
|
|
Packit |
8681c6 |
_sym2str(CKM_DES3_CBC);
|
|
Packit |
8681c6 |
_sym2str(CKM_DES3_MAC);
|
|
Packit |
8681c6 |
_sym2str(CKM_DES3_MAC_GENERAL);
|
|
Packit |
8681c6 |
_sym2str(CKM_DES3_CBC_PAD);
|
|
Packit |
8681c6 |
_sym2str(CKM_CDMF_KEY_GEN);
|
|
Packit |
8681c6 |
_sym2str(CKM_CDMF_ECB);
|
|
Packit |
8681c6 |
_sym2str(CKM_CDMF_CBC);
|
|
Packit |
8681c6 |
_sym2str(CKM_CDMF_MAC);
|
|
Packit |
8681c6 |
_sym2str(CKM_CDMF_MAC_GENERAL);
|
|
Packit |
8681c6 |
_sym2str(CKM_CDMF_CBC_PAD);
|
|
Packit |
8681c6 |
_sym2str(CKM_MD2);
|
|
Packit |
8681c6 |
_sym2str(CKM_MD2_HMAC);
|
|
Packit |
8681c6 |
_sym2str(CKM_MD2_HMAC_GENERAL);
|
|
Packit |
8681c6 |
_sym2str(CKM_MD5);
|
|
Packit |
8681c6 |
_sym2str(CKM_MD5_HMAC);
|
|
Packit |
8681c6 |
_sym2str(CKM_MD5_HMAC_GENERAL);
|
|
Packit |
8681c6 |
_sym2str(CKM_SHA_1);
|
|
Packit |
8681c6 |
_sym2str(CKM_SHA_1_HMAC);
|
|
Packit |
8681c6 |
_sym2str(CKM_SHA_1_HMAC_GENERAL);
|
|
Packit |
8681c6 |
_sym2str(CKM_RIPEMD128);
|
|
Packit |
8681c6 |
_sym2str(CKM_RIPEMD128_HMAC);
|
|
Packit |
8681c6 |
_sym2str(CKM_RIPEMD128_HMAC_GENERAL);
|
|
Packit |
8681c6 |
_sym2str(CKM_RIPEMD160);
|
|
Packit |
8681c6 |
_sym2str(CKM_RIPEMD160_HMAC);
|
|
Packit |
8681c6 |
_sym2str(CKM_RIPEMD160_HMAC_GENERAL);
|
|
Packit |
8681c6 |
_sym2str(CKM_SHA224);
|
|
Packit |
8681c6 |
_sym2str(CKM_SHA224_HMAC);
|
|
Packit |
8681c6 |
_sym2str(CKM_SHA224_HMAC_GENERAL);
|
|
Packit |
8681c6 |
_sym2str(CKM_SHA256);
|
|
Packit |
8681c6 |
_sym2str(CKM_SHA256_HMAC);
|
|
Packit |
8681c6 |
_sym2str(CKM_SHA256_HMAC_GENERAL);
|
|
Packit |
8681c6 |
_sym2str(CKM_SHA384);
|
|
Packit |
8681c6 |
_sym2str(CKM_SHA384_HMAC);
|
|
Packit |
8681c6 |
_sym2str(CKM_SHA384_HMAC_GENERAL);
|
|
Packit |
8681c6 |
_sym2str(CKM_SHA512);
|
|
Packit |
8681c6 |
_sym2str(CKM_SHA512_HMAC);
|
|
Packit |
8681c6 |
_sym2str(CKM_SHA512_HMAC_GENERAL);
|
|
Packit |
8681c6 |
_sym2str(CKM_SHA512_224);
|
|
Packit |
8681c6 |
_sym2str(CKM_SHA512_224_HMAC);
|
|
Packit |
8681c6 |
_sym2str(CKM_SHA512_224_HMAC_GENERAL);
|
|
Packit |
8681c6 |
_sym2str(CKM_SHA512_256);
|
|
Packit |
8681c6 |
_sym2str(CKM_SHA512_256_HMAC);
|
|
Packit |
8681c6 |
_sym2str(CKM_SHA512_256_HMAC_GENERAL);
|
|
Packit |
8681c6 |
_sym2str(CKM_CAST_KEY_GEN);
|
|
Packit |
8681c6 |
_sym2str(CKM_CAST_ECB);
|
|
Packit |
8681c6 |
_sym2str(CKM_CAST_CBC);
|
|
Packit |
8681c6 |
_sym2str(CKM_CAST_MAC);
|
|
Packit |
8681c6 |
_sym2str(CKM_CAST_MAC_GENERAL);
|
|
Packit |
8681c6 |
_sym2str(CKM_CAST_CBC_PAD);
|
|
Packit |
8681c6 |
_sym2str(CKM_CAST3_KEY_GEN);
|
|
Packit |
8681c6 |
_sym2str(CKM_CAST3_ECB);
|
|
Packit |
8681c6 |
_sym2str(CKM_CAST3_CBC);
|
|
Packit |
8681c6 |
_sym2str(CKM_CAST3_MAC);
|
|
Packit |
8681c6 |
_sym2str(CKM_CAST3_MAC_GENERAL);
|
|
Packit |
8681c6 |
_sym2str(CKM_CAST3_CBC_PAD);
|
|
Packit |
8681c6 |
_sym2str(CKM_CAST5_KEY_GEN);
|
|
Packit |
8681c6 |
_sym2str(CKM_CAST5_ECB);
|
|
Packit |
8681c6 |
_sym2str(CKM_CAST5_CBC);
|
|
Packit |
8681c6 |
_sym2str(CKM_CAST5_MAC);
|
|
Packit |
8681c6 |
_sym2str(CKM_CAST5_MAC_GENERAL);
|
|
Packit |
8681c6 |
_sym2str(CKM_CAST5_CBC_PAD);
|
|
Packit |
8681c6 |
_sym2str(CKM_RC5_KEY_GEN);
|
|
Packit |
8681c6 |
_sym2str(CKM_RC5_ECB);
|
|
Packit |
8681c6 |
_sym2str(CKM_RC5_CBC);
|
|
Packit |
8681c6 |
_sym2str(CKM_RC5_MAC);
|
|
Packit |
8681c6 |
_sym2str(CKM_RC5_MAC_GENERAL);
|
|
Packit |
8681c6 |
_sym2str(CKM_RC5_CBC_PAD);
|
|
Packit |
8681c6 |
_sym2str(CKM_IDEA_KEY_GEN);
|
|
Packit |
8681c6 |
_sym2str(CKM_IDEA_ECB);
|
|
Packit |
8681c6 |
_sym2str(CKM_IDEA_CBC);
|
|
Packit |
8681c6 |
_sym2str(CKM_IDEA_MAC);
|
|
Packit |
8681c6 |
_sym2str(CKM_IDEA_MAC_GENERAL);
|
|
Packit |
8681c6 |
_sym2str(CKM_IDEA_CBC_PAD);
|
|
Packit |
8681c6 |
_sym2str(CKM_GENERIC_SECRET_KEY_GEN);
|
|
Packit |
8681c6 |
_sym2str(CKM_CONCATENATE_BASE_AND_KEY);
|
|
Packit |
8681c6 |
_sym2str(CKM_CONCATENATE_BASE_AND_DATA);
|
|
Packit |
8681c6 |
_sym2str(CKM_CONCATENATE_DATA_AND_BASE);
|
|
Packit |
8681c6 |
_sym2str(CKM_XOR_BASE_AND_DATA);
|
|
Packit |
8681c6 |
_sym2str(CKM_EXTRACT_KEY_FROM_KEY);
|
|
Packit |
8681c6 |
_sym2str(CKM_SSL3_PRE_MASTER_KEY_GEN);
|
|
Packit |
8681c6 |
_sym2str(CKM_SSL3_MASTER_KEY_DERIVE);
|
|
Packit |
8681c6 |
_sym2str(CKM_SSL3_KEY_AND_MAC_DERIVE);
|
|
Packit |
8681c6 |
_sym2str(CKM_SSL3_MASTER_KEY_DERIVE_DH);
|
|
Packit |
8681c6 |
_sym2str(CKM_TLS_PRE_MASTER_KEY_GEN);
|
|
Packit |
8681c6 |
_sym2str(CKM_TLS_MASTER_KEY_DERIVE);
|
|
Packit |
8681c6 |
_sym2str(CKM_TLS_KEY_AND_MAC_DERIVE);
|
|
Packit |
8681c6 |
_sym2str(CKM_TLS_MASTER_KEY_DERIVE_DH);
|
|
Packit |
8681c6 |
_sym2str(CKM_SSL3_MD5_MAC);
|
|
Packit |
8681c6 |
_sym2str(CKM_SSL3_SHA1_MAC);
|
|
Packit |
8681c6 |
_sym2str(CKM_MD5_KEY_DERIVATION);
|
|
Packit |
8681c6 |
_sym2str(CKM_MD2_KEY_DERIVATION);
|
|
Packit |
8681c6 |
_sym2str(CKM_SHA1_KEY_DERIVATION);
|
|
Packit |
8681c6 |
_sym2str(CKM_SHA224_KEY_DERIVATION);
|
|
Packit |
8681c6 |
_sym2str(CKM_SHA256_KEY_DERIVATION);
|
|
Packit |
8681c6 |
_sym2str(CKM_SHA384_KEY_DERIVATION);
|
|
Packit |
8681c6 |
_sym2str(CKM_SHA512_KEY_DERIVATION);
|
|
Packit |
8681c6 |
_sym2str(CKM_PBE_MD2_DES_CBC);
|
|
Packit |
8681c6 |
_sym2str(CKM_PBE_MD5_DES_CBC);
|
|
Packit |
8681c6 |
_sym2str(CKM_PBE_MD5_CAST_CBC);
|
|
Packit |
8681c6 |
_sym2str(CKM_PBE_MD5_CAST3_CBC);
|
|
Packit |
8681c6 |
_sym2str(CKM_PBE_MD5_CAST5_CBC);
|
|
Packit |
8681c6 |
_sym2str(CKM_PBE_SHA1_CAST5_CBC);
|
|
Packit |
8681c6 |
_sym2str(CKM_PBE_SHA1_RC4_128);
|
|
Packit |
8681c6 |
_sym2str(CKM_PBE_SHA1_RC4_40);
|
|
Packit |
8681c6 |
_sym2str(CKM_PBE_SHA1_DES3_EDE_CBC);
|
|
Packit |
8681c6 |
_sym2str(CKM_PBE_SHA1_DES2_EDE_CBC);
|
|
Packit |
8681c6 |
_sym2str(CKM_PBE_SHA1_RC2_128_CBC);
|
|
Packit |
8681c6 |
_sym2str(CKM_PBE_SHA1_RC2_40_CBC);
|
|
Packit |
8681c6 |
_sym2str(CKM_PKCS5_PBKD2);
|
|
Packit |
8681c6 |
_sym2str(CKM_PBA_SHA1_WITH_SHA1_HMAC);
|
|
Packit |
8681c6 |
_sym2str(CKM_KEY_WRAP_LYNKS);
|
|
Packit |
8681c6 |
_sym2str(CKM_KEY_WRAP_SET_OAEP);
|
|
Packit |
8681c6 |
_sym2str(CKM_SKIPJACK_KEY_GEN);
|
|
Packit |
8681c6 |
_sym2str(CKM_SKIPJACK_ECB64);
|
|
Packit |
8681c6 |
_sym2str(CKM_SKIPJACK_CBC64);
|
|
Packit |
8681c6 |
_sym2str(CKM_SKIPJACK_OFB64);
|
|
Packit |
8681c6 |
_sym2str(CKM_SKIPJACK_CFB64);
|
|
Packit |
8681c6 |
_sym2str(CKM_SKIPJACK_CFB32);
|
|
Packit |
8681c6 |
_sym2str(CKM_SKIPJACK_CFB16);
|
|
Packit |
8681c6 |
_sym2str(CKM_SKIPJACK_CFB8);
|
|
Packit |
8681c6 |
_sym2str(CKM_SKIPJACK_WRAP);
|
|
Packit |
8681c6 |
_sym2str(CKM_SKIPJACK_PRIVATE_WRAP);
|
|
Packit |
8681c6 |
_sym2str(CKM_SKIPJACK_RELAYX);
|
|
Packit |
8681c6 |
_sym2str(CKM_KEA_KEY_PAIR_GEN);
|
|
Packit |
8681c6 |
_sym2str(CKM_KEA_KEY_DERIVE);
|
|
Packit |
8681c6 |
_sym2str(CKM_FORTEZZA_TIMESTAMP);
|
|
Packit |
8681c6 |
_sym2str(CKM_BATON_KEY_GEN);
|
|
Packit |
8681c6 |
_sym2str(CKM_BATON_ECB128);
|
|
Packit |
8681c6 |
_sym2str(CKM_BATON_ECB96);
|
|
Packit |
8681c6 |
_sym2str(CKM_BATON_CBC128);
|
|
Packit |
8681c6 |
_sym2str(CKM_BATON_COUNTER);
|
|
Packit |
8681c6 |
_sym2str(CKM_BATON_SHUFFLE);
|
|
Packit |
8681c6 |
_sym2str(CKM_BATON_WRAP);
|
|
Packit |
8681c6 |
_sym2str(CKM_EC_KEY_PAIR_GEN);
|
|
Packit |
8681c6 |
_sym2str(CKM_ECDSA);
|
|
Packit |
8681c6 |
_sym2str(CKM_ECDSA_SHA1);
|
|
Packit |
8681c6 |
_sym2str(CKM_ECDSA_SHA224);
|
|
Packit |
8681c6 |
_sym2str(CKM_ECDSA_SHA256);
|
|
Packit |
8681c6 |
_sym2str(CKM_ECDSA_SHA384);
|
|
Packit |
8681c6 |
_sym2str(CKM_ECDSA_SHA512);
|
|
Packit |
8681c6 |
_sym2str(CKM_ECDH1_DERIVE);
|
|
Packit |
8681c6 |
_sym2str(CKM_ECDH1_COFACTOR_DERIVE);
|
|
Packit |
8681c6 |
_sym2str(CKM_ECMQV_DERIVE);
|
|
Packit |
8681c6 |
_sym2str(CKM_JUNIPER_KEY_GEN);
|
|
Packit |
8681c6 |
_sym2str(CKM_JUNIPER_ECB128);
|
|
Packit |
8681c6 |
_sym2str(CKM_JUNIPER_CBC128);
|
|
Packit |
8681c6 |
_sym2str(CKM_JUNIPER_COUNTER);
|
|
Packit |
8681c6 |
_sym2str(CKM_JUNIPER_SHUFFLE);
|
|
Packit |
8681c6 |
_sym2str(CKM_JUNIPER_WRAP);
|
|
Packit |
8681c6 |
_sym2str(CKM_FASTHASH);
|
|
Packit |
8681c6 |
_sym2str(CKM_AES_KEY_GEN);
|
|
Packit |
8681c6 |
_sym2str(CKM_AES_ECB);
|
|
Packit |
8681c6 |
_sym2str(CKM_AES_CBC);
|
|
Packit |
8681c6 |
_sym2str(CKM_AES_MAC);
|
|
Packit |
8681c6 |
_sym2str(CKM_AES_MAC_GENERAL);
|
|
Packit |
8681c6 |
_sym2str(CKM_AES_CBC_PAD);
|
|
Packit |
8681c6 |
_sym2str(CKM_AES_CTR);
|
|
Packit |
8681c6 |
_sym2str(CKM_DSA_PARAMETER_GEN);
|
|
Packit |
8681c6 |
_sym2str(CKM_DH_PKCS_PARAMETER_GEN);
|
|
Packit |
8681c6 |
_sym2str(CKM_X9_42_DH_PARAMETER_GEN);
|
|
Packit |
8681c6 |
_sym2str(CKM_VENDOR_DEFINED);
|
|
Packit |
8681c6 |
_sym2str(CKM_IBM_SHA3_224);
|
|
Packit |
8681c6 |
_sym2str(CKM_IBM_SHA3_256);
|
|
Packit |
8681c6 |
_sym2str(CKM_IBM_SHA3_384);
|
|
Packit |
8681c6 |
_sym2str(CKM_IBM_SHA3_512);
|
|
Packit |
8681c6 |
_sym2str(CKM_IBM_CMAC);
|
|
Packit |
8681c6 |
_sym2str(CKM_IBM_SHA3_224_HMAC);
|
|
Packit |
8681c6 |
_sym2str(CKM_IBM_SHA3_256_HMAC);
|
|
Packit |
8681c6 |
_sym2str(CKM_IBM_SHA3_384_HMAC);
|
|
Packit |
8681c6 |
_sym2str(CKM_IBM_SHA3_512_HMAC);
|
|
Packit |
8681c6 |
_sym2str(CKM_IBM_EC_C25519);
|
|
Packit Service |
8aa27d |
_sym2str(CKM_IBM_ED25519_SHA512);
|
|
Packit |
8681c6 |
_sym2str(CKM_IBM_EC_C448);
|
|
Packit |
8681c6 |
_sym2str(CKM_IBM_ED448_SHA3);
|
|
Packit |
8681c6 |
_sym2str(CKM_IBM_DILITHIUM);
|
|
Packit |
8681c6 |
default:
|
|
Packit |
8681c6 |
return "UNKNOWN";
|
|
Packit |
8681c6 |
}
|
|
Packit |
8681c6 |
}
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
// Allocates memory on *dst and puts hex dump from ptr
|
|
Packit |
8681c6 |
// with len bytes.
|
|
Packit |
8681c6 |
// *dst must be freed by the caller
|
|
Packit |
8681c6 |
char *p11_ahex_dump(char **dst, CK_BYTE_PTR ptr, CK_ULONG len)
|
|
Packit |
8681c6 |
{
|
|
Packit |
8681c6 |
CK_ULONG i;
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
if (dst == NULL) {
|
|
Packit |
8681c6 |
return NULL;
|
|
Packit |
8681c6 |
}
|
|
Packit |
8681c6 |
|
|
Packit Service |
8aa27d |
*dst = (char *) malloc(2 * len + 1);
|
|
Packit |
8681c6 |
if (*dst == NULL) {
|
|
Packit |
8681c6 |
return NULL;
|
|
Packit |
8681c6 |
}
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
for (i = 0; i < len; i++) {
|
|
Packit |
8681c6 |
sprintf(*dst + 2 * i, "%02hhX", ptr[i]);
|
|
Packit |
8681c6 |
}
|
|
Packit |
8681c6 |
*(*dst + 2 * len) = '\0'; // null-terminate
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
return *dst;
|
|
Packit |
8681c6 |
}
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
/* p11_bigint_trim() - trim a big integer. Returns pointer that is
|
|
Packit |
8681c6 |
* contained within 'in' + '*size' that represents
|
|
Packit |
8681c6 |
* the same number, but without leading zeros.
|
|
Packit |
8681c6 |
* @in points to a sequence of bytes forming a big integer,
|
|
Packit |
8681c6 |
* unsigned, right-aligned and big-endian
|
|
Packit |
8681c6 |
* @size points to the size of @in on input, and the minimum
|
|
Packit |
8681c6 |
* size that can represent it on output
|
|
Packit |
8681c6 |
*/
|
|
Packit |
8681c6 |
CK_BYTE_PTR p11_bigint_trim(CK_BYTE_PTR in, CK_ULONG_PTR size)
|
|
Packit |
8681c6 |
{
|
|
Packit |
8681c6 |
CK_ULONG i;
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
for (i = 0; (i < *size) && in[i] == 0x00; i++);
|
|
Packit |
8681c6 |
*size -= i;
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
return in + i;
|
|
Packit |
8681c6 |
}
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
/* p11_attribute_trim() - trim a PKCS#11 CK_ATTRIBUTE in place,
|
|
Packit |
8681c6 |
* using memmove() to move the data and adjusting
|
|
Packit |
8681c6 |
* ulValueLen. The resulting "pValue" pointer stays the
|
|
Packit |
8681c6 |
* same so that the caller can free() it normally
|
|
Packit |
8681c6 |
* @attr is the pointer to the CK_ATTRIBUTE to be trimmed
|
|
Packit |
8681c6 |
*/
|
|
Packit |
8681c6 |
void p11_attribute_trim(CK_ATTRIBUTE *attr)
|
|
Packit |
8681c6 |
{
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
CK_BYTE_PTR ptr;
|
|
Packit |
8681c6 |
CK_ULONG size;
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
if (attr != NULL) {
|
|
Packit |
8681c6 |
size = attr->ulValueLen;
|
|
Packit |
8681c6 |
ptr = p11_bigint_trim(attr->pValue, &size);
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
if (ptr != attr->pValue) {
|
|
Packit |
8681c6 |
attr->ulValueLen = size;
|
|
Packit |
8681c6 |
memmove(attr->pValue, ptr, size);
|
|
Packit |
8681c6 |
}
|
|
Packit |
8681c6 |
}
|
|
Packit |
8681c6 |
}
|