CKF_SIGN
(mechInfo->flags & CKF_SIGN) ? "X" : ".",
(!mac_cmd && (info.flags & CKF_SIGN)) ||
if (rv == CKR_OK && (info.flags & CKF_SIGN))
if ((info.flags & CKF_SIGN) &&
} else if (info.flags & CKF_SIGN) {
CKF_SIGN, &key);
if (!(info.flags & (CKF_DIGEST|CKF_SIGN|CKF_RNG)))
if ((info.flags & (CKF_SIGN|CKF_DECRYPT)) == (CKF_SIGN|CKF_DECRYPT))
(info.flags & CKF_SIGN) ? CKM_SHA1_RSA_PKCS : CKM_RSA_PKCS;
static CK_ULONG sign_optypes = (CKF_SIGN | CKF_VERIFY |
meta_operation_cleanup(session, CKF_SIGN, FALSE);
rv = meta_do_operation(CKF_SIGN, MODE_UPDATE, session, NULL,
meta_operation_cleanup(session, CKF_SIGN, FALSE);
rv = meta_do_operation(CKF_SIGN, MODE_FINAL, session, NULL,
rv = meta_operation_init(CKF_SIGN, session, pMechanism, key);
meta_operation_cleanup(session, CKF_SIGN, FALSE);
rv = meta_do_operation(CKF_SIGN, MODE_SINGLE, session, NULL,
case CKF_SIGN:
} else if (optype == CKF_SIGN && mode == MODE_SINGLE) {
} else if (optype == CKF_SIGN && mode == MODE_UPDATE) {
} else if (optype == CKF_SIGN && mode == MODE_FINAL) {
case CKF_SIGN:
{CKA_SIGN, CKF_SIGN},
flags |= CKF_SIGN;
CKF_SIGN|CKF_VERIFY}, /* CKM_DES_MAC_GENERAL */
CKF_SIGN|CKF_VERIFY}, /* CKM_DES_MAC */
CKF_SIGN|CKF_VERIFY}, /* CKM_AES_CMAC_GENERAL */
CKF_SIGN|CKF_VERIFY}, /* CKM_AES_CMAC */
CKF_SIGN|CKF_VERIFY}, /* CKM_AES_GMAC */
{1, 64, CKF_SIGN|CKF_VERIFY}, /* CKM_SHA_1_HMAC */
{1, 64, CKF_SIGN|CKF_VERIFY}, /* CKM_SHA_1_HMAC_GENERAL */
{1, 64, CKF_SIGN|CKF_VERIFY}, /* CKM_SHA256_HMAC */
{1, 64, CKF_SIGN|CKF_VERIFY}, /* CKM_SHA256_HMAC_GENERAL */
{1, 128, CKF_SIGN|CKF_VERIFY}, /* CKM_SHA384_HMAC */
{1, 128, CKF_SIGN|CKF_VERIFY}, /* CKM_SHA384_HMAC_GENERAL */
{1, 128, CKF_SIGN|CKF_VERIFY}, /* CKM_SHA512_HMAC */
{1, 128, CKF_SIGN|CKF_VERIFY}, /* CKM_SHA512_HMAC_GENERAL */
{1, 512, CKF_SIGN|CKF_VERIFY}, /* CKM_SSL3_SHA1_MAC */
{1, 64, CKF_SIGN|CKF_VERIFY}, /* CKM_MD5_HMAC */
{1, 64, CKF_SIGN|CKF_VERIFY}, /* CKM_MD5_HMAC_GENERAL */
{1, 512, CKF_SIGN|CKF_VERIFY}, /* CKM_SSL3_MD5_MAC */
{512, 1024, CKF_SIGN|CKF_VERIFY}, /* CKM_DSA; in bits */
{512, 1024, CKF_SIGN|CKF_VERIFY}, /* CKM_DSA_SHA1; in bits */
CKF_SIGN|CKF_SIGN_RECOVER|
CKF_SIGN|CKF_SIGN_RECOVER|
{256, 4096, CKF_SIGN|CKF_VERIFY}, /* CKM_MD5_RSA_PKCS in bits */
{256, 4096, CKF_SIGN|CKF_VERIFY}, /* CKM_SHA1_RSA_PKCS in bits */
{256, 4096, CKF_SIGN|CKF_VERIFY}, /* CKM_SHA256_RSA_PKCS in bits */
{256, 4096, CKF_SIGN|CKF_VERIFY}, /* CKM_SHA384_RSA_PKCS in bits */
{256, 4096, CKF_SIGN|CKF_VERIFY}, /* CKM_SHA512_RSA_PKCS in bits */
{EC_MIN_KEY_LEN, EC_MAX_KEY_LEN, CKF_SIGN|CKF_VERIFY},
{EC_MIN_KEY_LEN, EC_MAX_KEY_LEN, CKF_SIGN|CKF_VERIFY},
CKF_WRAP | CKF_UNWRAP | CKF_SIGN | CKF_VERIFY |
CKF_SIGN | CKF_VERIFY | CKF_SIGN_RECOVER | CKF_VERIFY_RECOVER }},
CKF_SIGN | CKF_VERIFY |
{512, 2048, CKF_HW | CKF_SIGN | CKF_VERIFY } },
{512, 2048, CKF_HW | CKF_SIGN | CKF_VERIFY } },
{0, 0, CKF_SIGN | CKF_VERIFY } },
{0, 0, CKF_SIGN | CKF_VERIFY } },
{0, 0, CKF_SIGN | CKF_VERIFY } },
{0, 0, CKF_SIGN | CKF_VERIFY } },