Blame usr/sbin/pkcsslotd/err.c

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 <errno.h>
Packit 8681c6
#include <signal.h>
Packit 8681c6
#include <stdarg.h>
Packit 8681c6
#include <sys/types.h>
Packit 8681c6
Packit 8681c6
#include "log.h"
Packit 8681c6
#include "slotmgr.h"
Packit 8681c6
#include "err.h"
Packit 8681c6
Packit 8681c6
Packit 8681c6
static ConstInfo SysErrorInfo[] = {
Packit 8681c6
Packit 8681c6
    CONSTINFO(EPERM),
Packit 8681c6
    CONSTINFO(ENOENT),
Packit 8681c6
    CONSTINFO(ESRCH),
Packit 8681c6
    CONSTINFO(EINTR),
Packit 8681c6
    CONSTINFO(EIO),
Packit 8681c6
    CONSTINFO(ENXIO),
Packit 8681c6
    CONSTINFO(E2BIG),
Packit 8681c6
    CONSTINFO(ENOEXEC),
Packit 8681c6
    CONSTINFO(EBADF),
Packit 8681c6
    CONSTINFO(ECHILD),
Packit 8681c6
    CONSTINFO(EAGAIN),
Packit 8681c6
    CONSTINFO(ENOMEM),
Packit 8681c6
    CONSTINFO(EACCES),
Packit 8681c6
    CONSTINFO(EFAULT),
Packit 8681c6
    CONSTINFO(ENOTBLK),
Packit 8681c6
    CONSTINFO(EBUSY),
Packit 8681c6
    CONSTINFO(EEXIST),
Packit 8681c6
    CONSTINFO(EXDEV),
Packit 8681c6
    CONSTINFO(ENODEV),
Packit 8681c6
    CONSTINFO(ENOTDIR),
Packit 8681c6
    CONSTINFO(EISDIR),
Packit 8681c6
    CONSTINFO(EINVAL),
Packit 8681c6
    CONSTINFO(ENFILE),
Packit 8681c6
    CONSTINFO(EMFILE),
Packit 8681c6
    CONSTINFO(ENOTTY),
Packit 8681c6
    CONSTINFO(ETXTBSY),
Packit 8681c6
    CONSTINFO(EFBIG),
Packit 8681c6
    CONSTINFO(ENOSPC),
Packit 8681c6
    CONSTINFO(ESPIPE),
Packit 8681c6
    CONSTINFO(EROFS),
Packit 8681c6
    CONSTINFO(EMLINK),
Packit 8681c6
    CONSTINFO(EPIPE),
Packit 8681c6
    CONSTINFO(EDOM),
Packit 8681c6
    CONSTINFO(ERANGE),
Packit 8681c6
    CONSTINFO(ENOMSG),
Packit 8681c6
    CONSTINFO(EIDRM),
Packit 8681c6
#ifdef ECHRNG
Packit 8681c6
    CONSTINFO(ECHRNG),
Packit 8681c6
#endif
Packit 8681c6
#ifdef EL2NSYNC
Packit 8681c6
    CONSTINFO(EL2NSYNC),
Packit 8681c6
#endif
Packit 8681c6
#ifdef EL3HLT
Packit 8681c6
    CONSTINFO(EL3HLT),
Packit 8681c6
#endif
Packit 8681c6
#ifdef EL3RST
Packit 8681c6
    CONSTINFO(EL3RST),
Packit 8681c6
#endif
Packit 8681c6
#ifdef ELNRNG
Packit 8681c6
    CONSTINFO(ELNRNG),
Packit 8681c6
#endif
Packit 8681c6
#ifdef EUNATCH
Packit 8681c6
    CONSTINFO(EUNATCH),
Packit 8681c6
#endif
Packit 8681c6
#ifdef ENOCSI
Packit 8681c6
    CONSTINFO(ENOCSI),
Packit 8681c6
#endif
Packit 8681c6
#ifdef EL2HLT
Packit 8681c6
    CONSTINFO(EL2HLT),
Packit 8681c6
#endif
Packit 8681c6
    CONSTINFO(EDEADLK),
Packit 8681c6
    CONSTINFO(ESTALE),
Packit 8681c6
    CONSTINFO(EWOULDBLOCK),
Packit 8681c6
    CONSTINFO(EINPROGRESS),
Packit 8681c6
    CONSTINFO(EALREADY),
Packit 8681c6
    CONSTINFO(ENOTSOCK),
Packit 8681c6
    CONSTINFO(EDESTADDRREQ),
Packit 8681c6
    CONSTINFO(EMSGSIZE),
Packit 8681c6
    CONSTINFO(EPROTOTYPE),
Packit 8681c6
    CONSTINFO(ENOPROTOOPT),
Packit 8681c6
    CONSTINFO(EPROTONOSUPPORT),
Packit 8681c6
    CONSTINFO(ESOCKTNOSUPPORT),
Packit 8681c6
    CONSTINFO(EOPNOTSUPP),
Packit 8681c6
    CONSTINFO(EPFNOSUPPORT),
Packit 8681c6
    CONSTINFO(EAFNOSUPPORT),
Packit 8681c6
    CONSTINFO(EADDRINUSE),
Packit 8681c6
    CONSTINFO(EADDRNOTAVAIL),
Packit 8681c6
    CONSTINFO(ENETDOWN),
Packit 8681c6
    CONSTINFO(ENETUNREACH),
Packit 8681c6
    CONSTINFO(ENETRESET),
Packit 8681c6
    CONSTINFO(ECONNABORTED),
Packit 8681c6
    CONSTINFO(ECONNRESET),
Packit 8681c6
    CONSTINFO(ENOBUFS),
Packit 8681c6
    CONSTINFO(EISCONN),
Packit 8681c6
    CONSTINFO(ENOTCONN),
Packit 8681c6
    CONSTINFO(ESHUTDOWN),
Packit 8681c6
    CONSTINFO(ETIMEDOUT),
Packit 8681c6
    CONSTINFO(ECONNREFUSED),
Packit 8681c6
    CONSTINFO(EHOSTDOWN),
Packit 8681c6
    CONSTINFO(EHOSTUNREACH),
Packit 8681c6
#ifdef ERESTART
Packit 8681c6
    CONSTINFO(ERESTART),
Packit 8681c6
#endif
Packit 8681c6
    CONSTINFO(EUSERS),
Packit 8681c6
    CONSTINFO(ELOOP),
Packit 8681c6
    CONSTINFO(ENAMETOOLONG),
Packit 8681c6
    CONSTINFO(ENOTEMPTY),
Packit 8681c6
    CONSTINFO(EDQUOT),
Packit 8681c6
    CONSTINFO(EREMOTE),
Packit 8681c6
    CONSTINFO(ENOSYS),
Packit 8681c6
    CONSTINFO(ETOOMANYREFS),
Packit 8681c6
    CONSTINFO(EILSEQ),
Packit 8681c6
    CONSTINFO(ECANCELED),
Packit 8681c6
#ifdef ENOSR
Packit 8681c6
    CONSTINFO(ENOSR),
Packit 8681c6
#endif
Packit 8681c6
#ifdef ETIME
Packit 8681c6
    CONSTINFO(ETIME),
Packit 8681c6
#endif
Packit 8681c6
#ifdef EBADMSG
Packit 8681c6
    CONSTINFO(EBADMSG),
Packit 8681c6
#endif
Packit 8681c6
#ifdef EPROTO
Packit 8681c6
    CONSTINFO(EPROTO),
Packit 8681c6
#endif
Packit 8681c6
#ifdef ENODATA
Packit 8681c6
    CONSTINFO(ENODATA),
Packit 8681c6
#endif
Packit 8681c6
#ifdef ENOSTR
Packit 8681c6
    CONSTINFO(ENOSTR),
Packit 8681c6
#endif
Packit 8681c6
    CONSTINFO(ENOTSUP),
Packit 8681c6
#ifdef EMULTIHOP
Packit 8681c6
    CONSTINFO(EMULTIHOP),
Packit 8681c6
#endif
Packit 8681c6
#ifdef ENOLINK
Packit 8681c6
    CONSTINFO(ENOLINK),
Packit 8681c6
#endif
Packit 8681c6
#ifdef EOVERFLOW
Packit 8681c6
    CONSTINFO(EOVERFLOW),
Packit 8681c6
#endif
Packit 8681c6
Packit 8681c6
};
Packit 8681c6
Packit 8681c6
static int SysErrorSize = (sizeof(SysErrorInfo) / sizeof(SysErrorInfo[0]));
Packit 8681c6
Packit 8681c6
Packit 8681c6
Packit 8681c6
static ConstInfo SignalInfo[] = {
Packit 8681c6
Packit 8681c6
    CONSTINFO(SIGHUP),
Packit 8681c6
    CONSTINFO(SIGINT),
Packit 8681c6
    CONSTINFO(SIGQUIT),
Packit 8681c6
    CONSTINFO(SIGILL),
Packit 8681c6
    CONSTINFO(SIGTRAP),
Packit 8681c6
    CONSTINFO(SIGABRT),
Packit 8681c6
    CONSTINFO(SIGFPE),
Packit 8681c6
    CONSTINFO(SIGKILL),
Packit 8681c6
    CONSTINFO(SIGBUS),
Packit 8681c6
    CONSTINFO(SIGSEGV),
Packit 8681c6
    CONSTINFO(SIGSYS),
Packit 8681c6
    CONSTINFO(SIGPIPE),
Packit 8681c6
    CONSTINFO(SIGALRM),
Packit 8681c6
    CONSTINFO(SIGTERM),
Packit 8681c6
    CONSTINFO(SIGURG),
Packit 8681c6
    CONSTINFO(SIGSTOP),
Packit 8681c6
    CONSTINFO(SIGTSTP),
Packit 8681c6
    CONSTINFO(SIGCONT),
Packit 8681c6
    CONSTINFO(SIGCHLD),
Packit 8681c6
    CONSTINFO(SIGTTIN),
Packit 8681c6
    CONSTINFO(SIGTTOU),
Packit 8681c6
    CONSTINFO(SIGIO),
Packit 8681c6
    CONSTINFO(SIGXCPU),
Packit 8681c6
    CONSTINFO(SIGXFSZ),
Packit 8681c6
    CONSTINFO(SIGWINCH),
Packit 8681c6
#ifdef SIGPWR
Packit 8681c6
    CONSTINFO(SIGPWR),
Packit 8681c6
#endif
Packit 8681c6
    CONSTINFO(SIGUSR1),
Packit 8681c6
    CONSTINFO(SIGUSR2),
Packit 8681c6
    CONSTINFO(SIGPROF),
Packit 8681c6
    CONSTINFO(SIGVTALRM),
Packit 8681c6
    CONSTINFO(SIGIOT),
Packit 8681c6
#ifdef SIGCLD
Packit 8681c6
    CONSTINFO(SIGCLD),
Packit 8681c6
#endif
Packit 8681c6
#ifdef SIGPOLL
Packit 8681c6
    CONSTINFO(SIGPOLL),
Packit 8681c6
#endif
Packit 8681c6
#if 0
Packit 8681c6
    CONSTINFO(SIG_DFL),
Packit 8681c6
    CONSTINFO(SIG_IGN),
Packit 8681c6
    CONSTINFO(SIG_HOLD),
Packit 8681c6
    CONSTINFO(SIG_CATCH),
Packit 8681c6
    CONSTINFO(SIG_ERR),
Packit 8681c6
#endif                          /* 0 */
Packit 8681c6
Packit 8681c6
};
Packit 8681c6
Packit 8681c6
static int SignalInfoSize = (sizeof(SignalInfo) / sizeof(SignalInfo[0]));
Packit 8681c6
Packit 8681c6
static ConstInfo PkcsReturnInfo[] = {
Packit 8681c6
Packit 8681c6
    CONSTINFO(CKR_OK),
Packit 8681c6
    CONSTINFO(CKR_CANCEL),
Packit 8681c6
    CONSTINFO(CKR_HOST_MEMORY),
Packit 8681c6
    CONSTINFO(CKR_SLOT_ID_INVALID),
Packit 8681c6
    CONSTINFO(CKR_GENERAL_ERROR),
Packit 8681c6
    CONSTINFO(CKR_FUNCTION_FAILED),
Packit 8681c6
    CONSTINFO(CKR_ARGUMENTS_BAD),
Packit 8681c6
    CONSTINFO(CKR_NO_EVENT),
Packit 8681c6
    CONSTINFO(CKR_NEED_TO_CREATE_THREADS),
Packit 8681c6
    CONSTINFO(CKR_CANT_LOCK),
Packit 8681c6
    CONSTINFO(CKR_ATTRIBUTE_READ_ONLY),
Packit 8681c6
    CONSTINFO(CKR_ATTRIBUTE_SENSITIVE),
Packit 8681c6
    CONSTINFO(CKR_ATTRIBUTE_TYPE_INVALID),
Packit 8681c6
    CONSTINFO(CKR_ATTRIBUTE_VALUE_INVALID),
Packit 8681c6
    CONSTINFO(CKR_DATA_INVALID),
Packit 8681c6
    CONSTINFO(CKR_DATA_LEN_RANGE),
Packit 8681c6
    CONSTINFO(CKR_DEVICE_ERROR),
Packit 8681c6
    CONSTINFO(CKR_DEVICE_MEMORY),
Packit 8681c6
    CONSTINFO(CKR_DEVICE_REMOVED),
Packit 8681c6
    CONSTINFO(CKR_ENCRYPTED_DATA_INVALID),
Packit 8681c6
    CONSTINFO(CKR_ENCRYPTED_DATA_LEN_RANGE),
Packit 8681c6
    CONSTINFO(CKR_FUNCTION_CANCELED),
Packit 8681c6
    CONSTINFO(CKR_FUNCTION_NOT_PARALLEL),
Packit 8681c6
    CONSTINFO(CKR_FUNCTION_NOT_SUPPORTED),
Packit 8681c6
    CONSTINFO(CKR_KEY_HANDLE_INVALID),
Packit 8681c6
    CONSTINFO(CKR_KEY_SIZE_RANGE),
Packit 8681c6
    CONSTINFO(CKR_KEY_TYPE_INCONSISTENT),
Packit 8681c6
    CONSTINFO(CKR_KEY_NOT_NEEDED),
Packit 8681c6
    CONSTINFO(CKR_KEY_CHANGED),
Packit 8681c6
    CONSTINFO(CKR_KEY_NEEDED),
Packit 8681c6
    CONSTINFO(CKR_KEY_INDIGESTIBLE),
Packit 8681c6
    CONSTINFO(CKR_KEY_FUNCTION_NOT_PERMITTED),
Packit 8681c6
    CONSTINFO(CKR_KEY_NOT_WRAPPABLE),
Packit 8681c6
    CONSTINFO(CKR_KEY_UNEXTRACTABLE),
Packit 8681c6
    CONSTINFO(CKR_MECHANISM_INVALID),
Packit 8681c6
    CONSTINFO(CKR_MECHANISM_PARAM_INVALID),
Packit 8681c6
    CONSTINFO(CKR_OBJECT_HANDLE_INVALID),
Packit 8681c6
    CONSTINFO(CKR_OPERATION_ACTIVE),
Packit 8681c6
    CONSTINFO(CKR_OPERATION_NOT_INITIALIZED),
Packit 8681c6
    CONSTINFO(CKR_PIN_INCORRECT),
Packit 8681c6
    CONSTINFO(CKR_PIN_INVALID),
Packit 8681c6
    CONSTINFO(CKR_PIN_LEN_RANGE),
Packit 8681c6
    CONSTINFO(CKR_PIN_EXPIRED),
Packit 8681c6
    CONSTINFO(CKR_PIN_LOCKED),
Packit 8681c6
    CONSTINFO(CKR_SESSION_CLOSED),
Packit 8681c6
    CONSTINFO(CKR_SESSION_COUNT),
Packit 8681c6
    CONSTINFO(CKR_SESSION_HANDLE_INVALID),
Packit 8681c6
    CONSTINFO(CKR_SESSION_PARALLEL_NOT_SUPPORTED),
Packit 8681c6
    CONSTINFO(CKR_SESSION_READ_ONLY),
Packit 8681c6
    CONSTINFO(CKR_SESSION_EXISTS),
Packit 8681c6
    CONSTINFO(CKR_SESSION_READ_ONLY_EXISTS),
Packit 8681c6
    CONSTINFO(CKR_SESSION_READ_WRITE_SO_EXISTS),
Packit 8681c6
    CONSTINFO(CKR_SIGNATURE_INVALID),
Packit 8681c6
    CONSTINFO(CKR_SIGNATURE_LEN_RANGE),
Packit 8681c6
    CONSTINFO(CKR_TEMPLATE_INCOMPLETE),
Packit 8681c6
    CONSTINFO(CKR_TEMPLATE_INCONSISTENT),
Packit 8681c6
    CONSTINFO(CKR_TOKEN_NOT_PRESENT),
Packit 8681c6
    CONSTINFO(CKR_TOKEN_NOT_RECOGNIZED),
Packit 8681c6
    CONSTINFO(CKR_TOKEN_WRITE_PROTECTED),
Packit 8681c6
    CONSTINFO(CKR_UNWRAPPING_KEY_HANDLE_INVALID),
Packit 8681c6
    CONSTINFO(CKR_UNWRAPPING_KEY_SIZE_RANGE),
Packit 8681c6
    CONSTINFO(CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT),
Packit 8681c6
    CONSTINFO(CKR_USER_ALREADY_LOGGED_IN),
Packit 8681c6
    CONSTINFO(CKR_USER_NOT_LOGGED_IN),
Packit 8681c6
    CONSTINFO(CKR_USER_PIN_NOT_INITIALIZED),
Packit 8681c6
    CONSTINFO(CKR_USER_TYPE_INVALID),
Packit 8681c6
    CONSTINFO(CKR_USER_ANOTHER_ALREADY_LOGGED_IN),
Packit 8681c6
    CONSTINFO(CKR_USER_TOO_MANY_TYPES),
Packit 8681c6
    CONSTINFO(CKR_WRAPPED_KEY_INVALID),
Packit 8681c6
    CONSTINFO(CKR_WRAPPED_KEY_LEN_RANGE),
Packit 8681c6
    CONSTINFO(CKR_WRAPPING_KEY_HANDLE_INVALID),
Packit 8681c6
    CONSTINFO(CKR_WRAPPING_KEY_SIZE_RANGE),
Packit 8681c6
    CONSTINFO(CKR_WRAPPING_KEY_TYPE_INCONSISTENT),
Packit 8681c6
    CONSTINFO(CKR_RANDOM_SEED_NOT_SUPPORTED),
Packit 8681c6
    CONSTINFO(CKR_RANDOM_NO_RNG),
Packit 8681c6
    CONSTINFO(CKR_DOMAIN_PARAMS_INVALID),
Packit 8681c6
    CONSTINFO(CKR_CURVE_NOT_SUPPORTED),
Packit 8681c6
    CONSTINFO(CKR_BUFFER_TOO_SMALL),
Packit 8681c6
    CONSTINFO(CKR_SAVED_STATE_INVALID),
Packit 8681c6
    CONSTINFO(CKR_INFORMATION_SENSITIVE),
Packit 8681c6
    CONSTINFO(CKR_STATE_UNSAVEABLE),
Packit 8681c6
    CONSTINFO(CKR_CRYPTOKI_NOT_INITIALIZED),
Packit 8681c6
    CONSTINFO(CKR_CRYPTOKI_ALREADY_INITIALIZED),
Packit 8681c6
    CONSTINFO(CKR_MUTEX_BAD),
Packit 8681c6
    CONSTINFO(CKR_MUTEX_NOT_LOCKED),
Packit 8681c6
    CONSTINFO(CKR_FUNCTION_REJECTED),
Packit 8681c6
    CONSTINFO(CKR_VENDOR_DEFINED),
Packit 8681c6
Packit 8681c6
};
Packit 8681c6
Packit 8681c6
Packit 8681c6
static int PkcsReturnSize =
Packit 8681c6
    (sizeof(PkcsReturnInfo) / sizeof(PkcsReturnInfo[0]));
Packit 8681c6
Packit 8681c6
Packit 8681c6
Packit 8681c6
Packit 8681c6
static ConstInfo PkcsFlagsInfo[] = {
Packit 8681c6
Packit 8681c6
    CONSTINFO((CKF_RNG | CKF_HW | CKF_LIBRARY_CANT_CREATE_OS_THREADS |
Packit 8681c6
               CKF_TOKEN_PRESENT)),
Packit 8681c6
    CONSTINFO((CKF_REMOVABLE_DEVICE | CKF_OS_LOCKING_OK | CKF_RW_SESSION |
Packit 8681c6
               CKF_WRITE_PROTECTED)),
Packit 8681c6
    CONSTINFO((CKF_SERIAL_SESSION | CKF_HW_SLOT | CKF_LOGIN_REQUIRED)),
Packit 8681c6
    CONSTINFO(CKF_USER_PIN_INITIALIZED),
Packit 8681c6
    CONSTINFO(CKF_RESTORE_KEY_NOT_NEEDED),
Packit 8681c6
    CONSTINFO(CKF_CLOCK_ON_TOKEN),
Packit 8681c6
    CONSTINFO((CKF_PROTECTED_AUTHENTICATION_PATH | CKF_ENCRYPT)),
Packit 8681c6
    CONSTINFO((CKF_DUAL_CRYPTO_OPERATIONS | CKF_DECRYPT)),
Packit 8681c6
    CONSTINFO(CKF_DIGEST),
Packit 8681c6
    CONSTINFO(CKF_SIGN),
Packit 8681c6
    CONSTINFO(CKF_SIGN_RECOVER),
Packit 8681c6
    CONSTINFO(CKF_VERIFY),
Packit 8681c6
    CONSTINFO(CKF_VERIFY_RECOVER),
Packit 8681c6
    CONSTINFO(CKF_GENERATE),
Packit 8681c6
    CONSTINFO((CKF_GENERATE_KEY_PAIR | CKF_USER_PIN_COUNT_LOW)),
Packit 8681c6
    CONSTINFO((CKF_USER_PIN_FINAL_TRY | CKF_WRAP)),
Packit 8681c6
    CONSTINFO((CKF_UNWRAP | CKF_USER_PIN_LOCKED)),
Packit 8681c6
    CONSTINFO((CKF_DERIVE /*| CKF_USER_PIN_MANUFACT_VALUE */ )),
Packit 8681c6
    CONSTINFO(CKF_SO_PIN_DERIVED),
Packit 8681c6
    CONSTINFO(CKF_SO_CARD),
Packit 8681c6
    CONSTINFO(CKF_SO_PIN_COUNT_LOW),
Packit 8681c6
    CONSTINFO(CKF_SO_PIN_FINAL_TRY),
Packit 8681c6
    CONSTINFO(CKF_SO_PIN_LOCKED),
Packit 8681c6
    /*CONSTINFO(CKF_SO_PIN_MANUFACT_VALUE), */
Packit 8681c6
    CONSTINFO(CKF_EXTENSION),
Packit 8681c6
Packit 8681c6
};
Packit 8681c6
Packit 8681c6
static int PkcsFlagsSize = (sizeof(PkcsFlagsInfo) / sizeof(PkcsFlagsInfo[0]));
Packit 8681c6
Packit 8681c6
Packit 8681c6
Packit 8681c6
static ConstInfo PkcsMechanismInfo[] = {
Packit 8681c6
Packit 8681c6
    CONSTINFO(CKM_RSA_PKCS_KEY_PAIR_GEN),
Packit 8681c6
    CONSTINFO(CKM_RSA_PKCS),
Packit 8681c6
    CONSTINFO(CKM_RSA_9796),
Packit 8681c6
    CONSTINFO(CKM_RSA_X_509),
Packit 8681c6
    CONSTINFO(CKM_MD2_RSA_PKCS),
Packit 8681c6
    CONSTINFO(CKM_MD5_RSA_PKCS),
Packit 8681c6
    CONSTINFO(CKM_SHA1_RSA_PKCS),
Packit 8681c6
    CONSTINFO(CKM_DSA_KEY_PAIR_GEN),
Packit 8681c6
    CONSTINFO(CKM_DSA),
Packit 8681c6
    CONSTINFO(CKM_DSA_SHA1),
Packit 8681c6
    CONSTINFO(CKM_DH_PKCS_KEY_PAIR_GEN),
Packit 8681c6
    CONSTINFO(CKM_DH_PKCS_DERIVE),
Packit 8681c6
    CONSTINFO(CKM_RC2_KEY_GEN),
Packit 8681c6
    CONSTINFO(CKM_RC2_ECB),
Packit 8681c6
    CONSTINFO(CKM_RC2_CBC),
Packit 8681c6
    CONSTINFO(CKM_RC2_MAC),
Packit 8681c6
    CONSTINFO(CKM_RC2_MAC_GENERAL),
Packit 8681c6
    CONSTINFO(CKM_RC2_CBC_PAD),
Packit 8681c6
    CONSTINFO(CKM_RC4_KEY_GEN),
Packit 8681c6
    CONSTINFO(CKM_RC4),
Packit 8681c6
    CONSTINFO(CKM_DES_KEY_GEN),
Packit 8681c6
    CONSTINFO(CKM_DES_ECB),
Packit 8681c6
    CONSTINFO(CKM_DES_CBC),
Packit 8681c6
    CONSTINFO(CKM_DES_MAC),
Packit 8681c6
    CONSTINFO(CKM_DES_MAC_GENERAL),
Packit 8681c6
    CONSTINFO(CKM_DES_CBC_PAD),
Packit 8681c6
    CONSTINFO(CKM_DES2_KEY_GEN),
Packit 8681c6
    CONSTINFO(CKM_DES3_KEY_GEN),
Packit 8681c6
    CONSTINFO(CKM_DES3_ECB),
Packit 8681c6
    CONSTINFO(CKM_DES3_CBC),
Packit 8681c6
    CONSTINFO(CKM_DES3_MAC),
Packit 8681c6
    CONSTINFO(CKM_DES3_MAC_GENERAL),
Packit 8681c6
    CONSTINFO(CKM_DES3_CBC_PAD),
Packit 8681c6
    CONSTINFO(CKM_CDMF_KEY_GEN),
Packit 8681c6
    CONSTINFO(CKM_CDMF_ECB),
Packit 8681c6
    CONSTINFO(CKM_CDMF_CBC),
Packit 8681c6
    CONSTINFO(CKM_CDMF_MAC),
Packit 8681c6
    CONSTINFO(CKM_CDMF_MAC_GENERAL),
Packit 8681c6
    CONSTINFO(CKM_CDMF_CBC_PAD),
Packit 8681c6
    CONSTINFO(CKM_MD2),
Packit 8681c6
    CONSTINFO(CKM_MD2_HMAC),
Packit 8681c6
    CONSTINFO(CKM_MD2_HMAC_GENERAL),
Packit 8681c6
    CONSTINFO(CKM_MD5),
Packit 8681c6
    CONSTINFO(CKM_MD5_HMAC),
Packit 8681c6
    CONSTINFO(CKM_MD5_HMAC_GENERAL),
Packit 8681c6
    CONSTINFO(CKM_SHA_1),
Packit 8681c6
    CONSTINFO(CKM_SHA_1_HMAC),
Packit 8681c6
    CONSTINFO(CKM_SHA_1_HMAC_GENERAL),
Packit 8681c6
    CONSTINFO(CKM_SHA224),
Packit 8681c6
    CONSTINFO(CKM_SHA224_HMAC),
Packit 8681c6
    CONSTINFO(CKM_SHA224_HMAC_GENERAL),
Packit 8681c6
    CONSTINFO(CKM_SHA256),
Packit 8681c6
    CONSTINFO(CKM_SHA256_HMAC),
Packit 8681c6
    CONSTINFO(CKM_SHA256_HMAC_GENERAL),
Packit 8681c6
    CONSTINFO(CKM_SHA384),
Packit 8681c6
    CONSTINFO(CKM_SHA384_HMAC),
Packit 8681c6
    CONSTINFO(CKM_SHA384_HMAC_GENERAL),
Packit 8681c6
    CONSTINFO(CKM_SHA512),
Packit 8681c6
    CONSTINFO(CKM_SHA512_HMAC),
Packit 8681c6
    CONSTINFO(CKM_SHA512_HMAC_GENERAL),
Packit 8681c6
    CONSTINFO(CKM_SHA512_224),
Packit 8681c6
    CONSTINFO(CKM_SHA512_224_HMAC),
Packit 8681c6
    CONSTINFO(CKM_SHA512_224_HMAC_GENERAL),
Packit 8681c6
    CONSTINFO(CKM_SHA512_256),
Packit 8681c6
    CONSTINFO(CKM_SHA512_256_HMAC),
Packit 8681c6
    CONSTINFO(CKM_SHA512_256_HMAC_GENERAL),
Packit 8681c6
    CONSTINFO(CKM_CAST_KEY_GEN),
Packit 8681c6
    CONSTINFO(CKM_CAST_ECB),
Packit 8681c6
    CONSTINFO(CKM_CAST_CBC),
Packit 8681c6
    CONSTINFO(CKM_CAST_MAC),
Packit 8681c6
    CONSTINFO(CKM_CAST_MAC_GENERAL),
Packit 8681c6
    CONSTINFO(CKM_CAST_CBC_PAD),
Packit 8681c6
    CONSTINFO(CKM_CAST3_KEY_GEN),
Packit 8681c6
    CONSTINFO(CKM_CAST3_ECB),
Packit 8681c6
    CONSTINFO(CKM_CAST3_CBC),
Packit 8681c6
    CONSTINFO(CKM_CAST3_MAC),
Packit 8681c6
    CONSTINFO(CKM_CAST3_MAC_GENERAL),
Packit 8681c6
    CONSTINFO(CKM_CAST3_CBC_PAD),
Packit 8681c6
    CONSTINFO(CKM_CAST5_KEY_GEN),
Packit 8681c6
    CONSTINFO(CKM_CAST128_KEY_GEN),
Packit 8681c6
    CONSTINFO(CKM_CAST5_ECB),
Packit 8681c6
    CONSTINFO(CKM_CAST128_ECB),
Packit 8681c6
    CONSTINFO(CKM_CAST5_CBC),
Packit 8681c6
    CONSTINFO(CKM_CAST128_CBC),
Packit 8681c6
    CONSTINFO(CKM_CAST5_MAC),
Packit 8681c6
    CONSTINFO(CKM_CAST128_MAC),
Packit 8681c6
    CONSTINFO(CKM_CAST5_MAC_GENERAL),
Packit 8681c6
    CONSTINFO(CKM_CAST128_MAC_GENERAL),
Packit 8681c6
    CONSTINFO(CKM_CAST5_CBC_PAD),
Packit 8681c6
    CONSTINFO(CKM_CAST128_CBC_PAD),
Packit 8681c6
    CONSTINFO(CKM_RC5_KEY_GEN),
Packit 8681c6
    CONSTINFO(CKM_RC5_ECB),
Packit 8681c6
    CONSTINFO(CKM_RC5_CBC),
Packit 8681c6
    CONSTINFO(CKM_RC5_MAC),
Packit 8681c6
    CONSTINFO(CKM_RC5_MAC_GENERAL),
Packit 8681c6
    CONSTINFO(CKM_RC5_CBC_PAD),
Packit 8681c6
    CONSTINFO(CKM_IDEA_KEY_GEN),
Packit 8681c6
    CONSTINFO(CKM_IDEA_ECB),
Packit 8681c6
    CONSTINFO(CKM_IDEA_CBC),
Packit 8681c6
    CONSTINFO(CKM_IDEA_MAC),
Packit 8681c6
    CONSTINFO(CKM_IDEA_MAC_GENERAL),
Packit 8681c6
    CONSTINFO(CKM_IDEA_CBC_PAD),
Packit 8681c6
    CONSTINFO(CKM_GENERIC_SECRET_KEY_GEN),
Packit 8681c6
    CONSTINFO(CKM_CONCATENATE_BASE_AND_KEY),
Packit 8681c6
    CONSTINFO(CKM_CONCATENATE_BASE_AND_DATA),
Packit 8681c6
    CONSTINFO(CKM_CONCATENATE_DATA_AND_BASE),
Packit 8681c6
    CONSTINFO(CKM_XOR_BASE_AND_DATA),
Packit 8681c6
    CONSTINFO(CKM_EXTRACT_KEY_FROM_KEY),
Packit 8681c6
    CONSTINFO(CKM_SSL3_PRE_MASTER_KEY_GEN),
Packit 8681c6
    CONSTINFO(CKM_SSL3_MASTER_KEY_DERIVE),
Packit 8681c6
    CONSTINFO(CKM_SSL3_KEY_AND_MAC_DERIVE),
Packit 8681c6
    CONSTINFO(CKM_SSL3_MD5_MAC),
Packit 8681c6
    CONSTINFO(CKM_SSL3_SHA1_MAC),
Packit 8681c6
    CONSTINFO(CKM_MD5_KEY_DERIVATION),
Packit 8681c6
    CONSTINFO(CKM_MD2_KEY_DERIVATION),
Packit 8681c6
    CONSTINFO(CKM_SHA1_KEY_DERIVATION),
Packit 8681c6
    CONSTINFO(CKM_PBE_MD2_DES_CBC),
Packit 8681c6
    CONSTINFO(CKM_PBE_MD5_DES_CBC),
Packit 8681c6
    CONSTINFO(CKM_PBE_MD5_CAST_CBC),
Packit 8681c6
    CONSTINFO(CKM_PBE_MD5_CAST3_CBC),
Packit 8681c6
    CONSTINFO(CKM_PBE_MD5_CAST5_CBC),
Packit 8681c6
    CONSTINFO(CKM_PBE_MD5_CAST128_CBC),
Packit 8681c6
    CONSTINFO(CKM_PBE_SHA1_CAST5_CBC),
Packit 8681c6
    CONSTINFO(CKM_PBE_SHA1_CAST128_CBC),
Packit 8681c6
    CONSTINFO(CKM_PBE_SHA1_RC4_128),
Packit 8681c6
    CONSTINFO(CKM_PBE_SHA1_RC4_40),
Packit 8681c6
    CONSTINFO(CKM_PBE_SHA1_DES3_EDE_CBC),
Packit 8681c6
    CONSTINFO(CKM_PBE_SHA1_DES2_EDE_CBC),
Packit 8681c6
    CONSTINFO(CKM_PBE_SHA1_RC2_128_CBC),
Packit 8681c6
    CONSTINFO(CKM_PBE_SHA1_RC2_40_CBC),
Packit 8681c6
    CONSTINFO(CKM_PBA_SHA1_WITH_SHA1_HMAC),
Packit 8681c6
    CONSTINFO(CKM_KEY_WRAP_LYNKS),
Packit 8681c6
    CONSTINFO(CKM_KEY_WRAP_SET_OAEP),
Packit 8681c6
    CONSTINFO(CKM_SKIPJACK_KEY_GEN),
Packit 8681c6
    CONSTINFO(CKM_SKIPJACK_ECB64),
Packit 8681c6
    CONSTINFO(CKM_SKIPJACK_CBC64),
Packit 8681c6
    CONSTINFO(CKM_SKIPJACK_OFB64),
Packit 8681c6
    CONSTINFO(CKM_SKIPJACK_CFB64),
Packit 8681c6
    CONSTINFO(CKM_SKIPJACK_CFB32),
Packit 8681c6
    CONSTINFO(CKM_SKIPJACK_CFB16),
Packit 8681c6
    CONSTINFO(CKM_SKIPJACK_CFB8),
Packit 8681c6
    CONSTINFO(CKM_SKIPJACK_WRAP),
Packit 8681c6
    CONSTINFO(CKM_SKIPJACK_PRIVATE_WRAP),
Packit 8681c6
    CONSTINFO(CKM_SKIPJACK_RELAYX),
Packit 8681c6
    CONSTINFO(CKM_KEA_KEY_PAIR_GEN),
Packit 8681c6
    CONSTINFO(CKM_KEA_KEY_DERIVE),
Packit 8681c6
    CONSTINFO(CKM_FORTEZZA_TIMESTAMP),
Packit 8681c6
    CONSTINFO(CKM_BATON_KEY_GEN),
Packit 8681c6
    CONSTINFO(CKM_BATON_ECB128),
Packit 8681c6
    CONSTINFO(CKM_BATON_ECB96),
Packit 8681c6
    CONSTINFO(CKM_BATON_CBC128),
Packit 8681c6
    CONSTINFO(CKM_BATON_COUNTER),
Packit 8681c6
    CONSTINFO(CKM_BATON_SHUFFLE),
Packit 8681c6
    CONSTINFO(CKM_BATON_WRAP),
Packit 8681c6
    CONSTINFO(CKM_ECDSA_KEY_PAIR_GEN),
Packit 8681c6
    CONSTINFO(CKM_ECDSA),
Packit 8681c6
    CONSTINFO(CKM_ECDSA_SHA1),
Packit 8681c6
    CONSTINFO(CKM_ECDSA_SHA224),
Packit 8681c6
    CONSTINFO(CKM_ECDSA_SHA256),
Packit 8681c6
    CONSTINFO(CKM_ECDSA_SHA384),
Packit 8681c6
    CONSTINFO(CKM_ECDSA_SHA512),
Packit 8681c6
    CONSTINFO(CKM_SHA224_RSA_PKCS),
Packit 8681c6
    CONSTINFO(CKM_SHA256_RSA_PKCS),
Packit 8681c6
    CONSTINFO(CKM_SHA384_RSA_PKCS),
Packit 8681c6
    CONSTINFO(CKM_SHA512_RSA_PKCS),
Packit 8681c6
    CONSTINFO(CKM_SHA224_RSA_PKCS_PSS),
Packit 8681c6
    CONSTINFO(CKM_SHA256_RSA_PKCS_PSS),
Packit 8681c6
    CONSTINFO(CKM_SHA384_RSA_PKCS_PSS),
Packit 8681c6
    CONSTINFO(CKM_SHA512_RSA_PKCS_PSS),
Packit 8681c6
    CONSTINFO(CKM_SHA224_KEY_DERIVATION),
Packit 8681c6
    CONSTINFO(CKM_SHA256_KEY_DERIVATION),
Packit 8681c6
    CONSTINFO(CKM_SHA384_KEY_DERIVATION),
Packit 8681c6
    CONSTINFO(CKM_SHA512_KEY_DERIVATION),
Packit 8681c6
    CONSTINFO(CKM_JUNIPER_KEY_GEN),
Packit 8681c6
    CONSTINFO(CKM_JUNIPER_ECB128),
Packit 8681c6
    CONSTINFO(CKM_JUNIPER_CBC128),
Packit 8681c6
    CONSTINFO(CKM_JUNIPER_COUNTER),
Packit 8681c6
    CONSTINFO(CKM_JUNIPER_SHUFFLE),
Packit 8681c6
    CONSTINFO(CKM_JUNIPER_WRAP),
Packit 8681c6
    CONSTINFO(CKM_FASTHASH),
Packit 8681c6
    CONSTINFO(CKM_VENDOR_DEFINED),
Packit 8681c6
    CONSTINFO(CKM_IBM_SHA3_224),
Packit 8681c6
    CONSTINFO(CKM_IBM_SHA3_256),
Packit 8681c6
    CONSTINFO(CKM_IBM_SHA3_384),
Packit 8681c6
    CONSTINFO(CKM_IBM_SHA3_512),
Packit 8681c6
    CONSTINFO(CKM_IBM_SHA3_224_HMAC),
Packit 8681c6
    CONSTINFO(CKM_IBM_SHA3_256_HMAC),
Packit 8681c6
    CONSTINFO(CKM_IBM_SHA3_384_HMAC),
Packit 8681c6
    CONSTINFO(CKM_IBM_SHA3_512_HMAC),
Packit 8681c6
    CONSTINFO(CKM_IBM_CMAC),
Packit 8681c6
    CONSTINFO(CKM_IBM_EC_C25519),
Packit Service 8aa27d
    CONSTINFO(CKM_IBM_ED25519_SHA512),
Packit 8681c6
    CONSTINFO(CKM_IBM_EC_C448),
Packit 8681c6
    CONSTINFO(CKM_IBM_ED448_SHA3),
Packit 8681c6
    CONSTINFO(CKM_IBM_DILITHIUM),
Packit 8681c6
};
Packit 8681c6
Packit 8681c6
Packit 8681c6
static unsigned int PkcsMechanismSize =
Packit 8681c6
    (sizeof(PkcsMechanismInfo) / sizeof(PkcsMechanismInfo[0]));
Packit 8681c6
Packit 8681c6
Packit 8681c6
Packit 8681c6
static ConstInfo PkcsObjectInfo[] = {
Packit 8681c6
Packit 8681c6
    CONSTINFO(CKO_DATA),
Packit 8681c6
    CONSTINFO(CKO_CERTIFICATE),
Packit 8681c6
    CONSTINFO(CKO_PUBLIC_KEY),
Packit 8681c6
    CONSTINFO(CKO_PRIVATE_KEY),
Packit 8681c6
    CONSTINFO(CKO_SECRET_KEY),
Packit 8681c6
    CONSTINFO(CKO_VENDOR_DEFINED),
Packit 8681c6
Packit 8681c6
};
Packit 8681c6
Packit 8681c6
static unsigned int PkcsObjectSize =
Packit 8681c6
    (sizeof(PkcsObjectInfo) / sizeof(PkcsObjectInfo[0]));
Packit 8681c6
Packit 8681c6
Packit 8681c6
Packit 8681c6
Packit 8681c6
Packit 8681c6
static ConstInfo PkcsKeyInfo[] = {
Packit 8681c6
Packit 8681c6
    CONSTINFO(CKK_RSA),
Packit 8681c6
    CONSTINFO(CKK_DSA),
Packit 8681c6
    CONSTINFO(CKK_DH),
Packit 8681c6
    CONSTINFO(CKK_ECDSA),
Packit 8681c6
    CONSTINFO(CKK_KEA),
Packit 8681c6
    CONSTINFO(CKK_GENERIC_SECRET),
Packit 8681c6
    CONSTINFO(CKK_RC2),
Packit 8681c6
    CONSTINFO(CKK_RC4),
Packit 8681c6
    CONSTINFO(CKK_DES),
Packit 8681c6
    CONSTINFO(CKK_DES2),
Packit 8681c6
    CONSTINFO(CKK_DES3),
Packit 8681c6
    CONSTINFO(CKK_CAST),
Packit 8681c6
    CONSTINFO(CKK_CAST3),
Packit 8681c6
    CONSTINFO((CKK_CAST5 | CKK_CAST128)),
Packit 8681c6
    CONSTINFO(CKK_RC5),
Packit 8681c6
    CONSTINFO(CKK_IDEA),
Packit 8681c6
    CONSTINFO(CKK_SKIPJACK),
Packit 8681c6
    CONSTINFO(CKK_BATON),
Packit 8681c6
    CONSTINFO(CKK_JUNIPER),
Packit 8681c6
    CONSTINFO(CKK_CDMF),
Packit 8681c6
    CONSTINFO(CKK_IBM_PQC_DILITHIUM),
Packit 8681c6
    CONSTINFO(CKK_VENDOR_DEFINED),
Packit 8681c6
Packit 8681c6
};
Packit 8681c6
Packit 8681c6
static unsigned int PkcsKeySize =
Packit 8681c6
    (sizeof(PkcsKeyInfo) / sizeof(PkcsKeyInfo[0]));
Packit 8681c6
Packit 8681c6
Packit 8681c6
Packit 8681c6
Packit 8681c6
Packit 8681c6
static ConstInfo PkcsAttributeInfo[] = {
Packit 8681c6
    CONSTINFO(CKA_CLASS),
Packit 8681c6
    CONSTINFO(CKA_TOKEN),
Packit 8681c6
    CONSTINFO(CKA_PRIVATE),
Packit 8681c6
    CONSTINFO(CKA_LABEL),
Packit 8681c6
    CONSTINFO(CKA_APPLICATION),
Packit 8681c6
    CONSTINFO(CKA_VALUE),
Packit 8681c6
    CONSTINFO(CKA_CERTIFICATE_TYPE),
Packit 8681c6
    CONSTINFO(CKA_ISSUER),
Packit 8681c6
    CONSTINFO(CKA_SERIAL_NUMBER),
Packit 8681c6
    CONSTINFO(CKA_KEY_TYPE),
Packit 8681c6
    CONSTINFO(CKA_SUBJECT),
Packit 8681c6
    CONSTINFO(CKA_ID),
Packit 8681c6
    CONSTINFO(CKA_SENSITIVE),
Packit 8681c6
    CONSTINFO(CKA_ENCRYPT),
Packit 8681c6
    CONSTINFO(CKA_DECRYPT),
Packit 8681c6
    CONSTINFO(CKA_WRAP),
Packit 8681c6
    CONSTINFO(CKA_UNWRAP),
Packit 8681c6
    CONSTINFO(CKA_SIGN),
Packit 8681c6
    CONSTINFO(CKA_SIGN_RECOVER),
Packit 8681c6
    CONSTINFO(CKA_VERIFY),
Packit 8681c6
    CONSTINFO(CKA_VERIFY_RECOVER),
Packit 8681c6
    CONSTINFO(CKA_DERIVE),
Packit 8681c6
    CONSTINFO(CKA_START_DATE),
Packit 8681c6
    CONSTINFO(CKA_END_DATE),
Packit 8681c6
    CONSTINFO(CKA_MODULUS),
Packit 8681c6
    CONSTINFO(CKA_MODULUS_BITS),
Packit 8681c6
    CONSTINFO(CKA_PUBLIC_EXPONENT),
Packit 8681c6
    CONSTINFO(CKA_PRIVATE_EXPONENT),
Packit 8681c6
    CONSTINFO(CKA_PRIME_1),
Packit 8681c6
    CONSTINFO(CKA_PRIME_2),
Packit 8681c6
    CONSTINFO(CKA_EXPONENT_1),
Packit 8681c6
    CONSTINFO(CKA_EXPONENT_2),
Packit 8681c6
    CONSTINFO(CKA_COEFFICIENT),
Packit 8681c6
    CONSTINFO(CKA_PRIME),
Packit 8681c6
    CONSTINFO(CKA_SUBPRIME),
Packit 8681c6
    CONSTINFO(CKA_BASE),
Packit 8681c6
    CONSTINFO(CKA_VALUE_BITS),
Packit 8681c6
    CONSTINFO(CKA_VALUE_LEN),
Packit 8681c6
    CONSTINFO(CKA_EXTRACTABLE),
Packit 8681c6
    CONSTINFO(CKA_LOCAL),
Packit 8681c6
    CONSTINFO(CKA_NEVER_EXTRACTABLE),
Packit 8681c6
    CONSTINFO(CKA_ALWAYS_SENSITIVE),
Packit 8681c6
    CONSTINFO(CKA_MODIFIABLE),
Packit 8681c6
    CONSTINFO(CKA_ECDSA_PARAMS),
Packit 8681c6
    CONSTINFO(CKA_EC_POINT),
Packit 8681c6
    CONSTINFO(CKA_VENDOR_DEFINED),
Packit 8681c6
    CONSTINFO(CKA_IBM_OPAQUE),
Packit 8681c6
    CONSTINFO(CKA_IBM_RESTRICTABLE),
Packit 8681c6
    CONSTINFO(CKA_IBM_NEVER_MODIFIABLE),
Packit 8681c6
    CONSTINFO(CKA_IBM_RETAINKEY),
Packit 8681c6
    CONSTINFO(CKA_IBM_ATTRBOUND),
Packit 8681c6
    CONSTINFO(CKA_IBM_KEYTYPE),
Packit 8681c6
    CONSTINFO(CKA_IBM_CV),
Packit 8681c6
    CONSTINFO(CKA_IBM_MACKEY),
Packit 8681c6
    CONSTINFO(CKA_IBM_USE_AS_DATA),
Packit 8681c6
    CONSTINFO(CKA_IBM_STRUCT_PARAMS),
Packit 8681c6
    CONSTINFO(CKA_IBM_STD_COMPLIANCE1),
Packit 8681c6
    CONSTINFO(CKA_NSS_MOZILLA_CA_POLICY),
Packit 8681c6
    CONSTINFO(CKA_IBM_DILITHIUM_KEYFORM),
Packit 8681c6
    CONSTINFO(CKA_IBM_DILITHIUM_RHO),
Packit 8681c6
    CONSTINFO(CKA_IBM_DILITHIUM_SEED),
Packit 8681c6
    CONSTINFO(CKA_IBM_DILITHIUM_TR),
Packit 8681c6
    CONSTINFO(CKA_IBM_DILITHIUM_S1),
Packit 8681c6
    CONSTINFO(CKA_IBM_DILITHIUM_S2),
Packit 8681c6
    CONSTINFO(CKA_IBM_DILITHIUM_T0),
Packit 8681c6
    CONSTINFO(CKA_IBM_DILITHIUM_T1),
Packit 8681c6
};
Packit 8681c6
Packit 8681c6
Packit 8681c6
static unsigned int PkcsAttributeSize =
Packit 8681c6
    (sizeof(PkcsAttributeInfo) / sizeof(PkcsAttributeInfo[0]));
Packit 8681c6
Packit 8681c6
#if 0
Packit 8681c6
static ConstInfo PkcsSessionStateInfo[] = {
Packit 8681c6
Packit 8681c6
    CONSTINFO(CKS_RO_PUBLIC_SESSION),
Packit 8681c6
    CONSTINFO(CKS_RO_USER_FUNCTIONS),
Packit 8681c6
    CONSTINFO(CKS_RW_PUBLIC_SESSION),
Packit 8681c6
    CONSTINFO(CKS_RW_USER_FUNCTIONS),
Packit 8681c6
    CONSTINFO(CKS_RW_SO_FUNCTIONS),
Packit 8681c6
Packit 8681c6
Packit 8681c6
};
Packit 8681c6
#endif
Packit 8681c6
Packit 8681c6
Packit 8681c6
static ConstInfo PkcsResponseSeverityInfo[] = {
Packit 8681c6
    {SEV_EXPECTED, "expected"},
Packit 8681c6
    {SEV_ALLOWED, "allowed"},
Packit 8681c6
    {SEV_ERROR, "an error"},
Packit 8681c6
    {SEV_FATAL, "fatal"},
Packit 8681c6
};
Packit 8681c6
Packit 8681c6
static unsigned int PkcsResponseSeveritySize =
Packit 8681c6
    (sizeof(PkcsResponseSeverityInfo) / sizeof(PkcsResponseSeverityInfo[0]));
Packit 8681c6
Packit 8681c6
Packit 8681c6
const unsigned char *ConstName(pConstInfo pInfoArray,
Packit 8681c6
                               unsigned int InfoArraySize,
Packit 8681c6
                               unsigned int ConstValue)
Packit 8681c6
{
Packit 8681c6
Packit 8681c6
    unsigned int i;
Packit 8681c6
    unsigned const char *retval = NULL;
Packit 8681c6
Packit 8681c6
Packit 8681c6
    for (i = 0; i < InfoArraySize; i++) {
Packit 8681c6
        if (pInfoArray[i].Code == ConstValue) {
Packit 8681c6
            retval = (unsigned char *)&(pInfoArray[i].Name[0]);
Packit 8681c6
            break;
Packit 8681c6
        }
Packit 8681c6
        /* end if */
Packit 8681c6
    }                           /* end for i */
Packit 8681c6
Packit 8681c6
    if (retval == NULL) {
Packit 8681c6
        if (ConstValue == 0) {
Packit 8681c6
            retval = (const unsigned char *) "NULL";
Packit 8681c6
        } else {
Packit 8681c6
            retval = (const unsigned char *) "\"<*>CONSTANT NOT FOUND<*>\"";
Packit 8681c6
        }
Packit 8681c6
    }
Packit 8681c6
Packit 8681c6
    return retval;
Packit 8681c6
}
Packit 8681c6
Packit 8681c6
const unsigned char *SignalConst(unsigned int Val)
Packit 8681c6
{
Packit 8681c6
    return ConstName(SignalInfo, SignalInfoSize, Val);
Packit 8681c6
}
Packit 8681c6
Packit 8681c6
const unsigned char *SysConst(unsigned int Val)
Packit 8681c6
{
Packit 8681c6
    return ConstName(SysErrorInfo, SysErrorSize, Val);
Packit 8681c6
}
Packit 8681c6
Packit 8681c6
Packit 8681c6
Packit 8681c6
const unsigned char *PkcsReturn(unsigned int Val)
Packit 8681c6
{
Packit 8681c6
    return ConstName(PkcsReturnInfo, PkcsReturnSize, Val);
Packit 8681c6
}
Packit 8681c6
Packit 8681c6
const unsigned char *PkcsFlags(unsigned int Val)
Packit 8681c6
{
Packit 8681c6
    return ConstName(PkcsFlagsInfo, PkcsFlagsSize, Val);
Packit 8681c6
}
Packit 8681c6
Packit 8681c6
const unsigned char *PkcsMechanism(unsigned int Val)
Packit 8681c6
{
Packit 8681c6
    return ConstName(PkcsMechanismInfo, PkcsMechanismSize, Val);
Packit 8681c6
}
Packit 8681c6
Packit 8681c6
const unsigned char *PkcsObject(unsigned int Val)
Packit 8681c6
{
Packit 8681c6
    return ConstName(PkcsObjectInfo, PkcsObjectSize, Val);
Packit 8681c6
}
Packit 8681c6
Packit 8681c6
const unsigned char *PkcsKey(unsigned int Val)
Packit 8681c6
{
Packit 8681c6
    return ConstName(PkcsKeyInfo, PkcsKeySize, Val);
Packit 8681c6
}
Packit 8681c6
Packit 8681c6
const unsigned char *PkcsAttribute(unsigned int Val)
Packit 8681c6
{
Packit 8681c6
    return ConstName(PkcsAttributeInfo, PkcsAttributeSize, Val);
Packit 8681c6
}
Packit 8681c6
Packit 8681c6
const unsigned char *ResponseSeverity(unsigned int Val)
Packit 8681c6
{
Packit 8681c6
    return ConstName(PkcsResponseSeverityInfo, PkcsResponseSeveritySize, Val);
Packit 8681c6
}