Print this page
9697 Add digest tests to crypto test framework

*** 397,401 **** --- 397,454 ---- rv = C_DecryptFinal(op->hsession, op->out + encrlen, &outlen); if (rv != CKR_OK) cryptotest_error("C_DecryptFinal", rv); return (rv); } + + /* + * DIGEST_ functions + */ + int + digest_init(crypto_op_t *op) + { + CK_MECHANISM mech; + CK_RV rv; + + mech.mechanism = op->mech; + mech.pParameter = op->param; + mech.ulParameterLen = op->paramlen; + + rv = C_DigestInit(op->hsession, &mech); + if (rv != CKR_OK) + cryptotest_error("C_DigestInit", rv); + return (rv); + } + + int + digest_single(crypto_op_t *op) + { + CK_RV rv; + + rv = C_Digest(op->hsession, op->in, op->inlen, + op->out, (CK_ULONG_PTR)&op->outlen); + if (rv != CKR_OK) + cryptotest_error("C_Digest", rv); + return (rv); + } + + int + digest_update(crypto_op_t *op, int offset) + { + CK_RV rv; + + rv = C_DigestUpdate(op->hsession, op->in + offset, op->updatelen); + if (rv != CKR_OK) + cryptotest_error("C_DigestUpdate", rv); + return (rv); + } + + int + digest_final(crypto_op_t *op) + { + CK_RV rv; + + rv = C_DigestFinal(op->hsession, op->out, (CK_ULONG_PTR)&op->outlen); + if (rv != CKR_OK) + cryptotest_error("C_DigestFinal", rv); + return (rv); + }