feat: add FIPS 186-5 A.1.3 compliant RSA key generation

- Generate the RSA key according to FIPS 186-5A.1.3. If the number of bits is less than 512, follow A.1.3,otherwise, follow the faster A.1.4.

Cherry-picked from: https://gitcode.com/openHiTLS/openhitls/merge_requests/1306

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
This commit is contained in:
jchx
2026-04-14 21:19:37 +08:00
committed by Dongjianwei001
parent 532c1a9929
commit b8d4c91f15
6 changed files with 167 additions and 49 deletions
+5 -6
View File
@@ -29,18 +29,17 @@
extern "C" {
#endif /* __cpluscplus */
#define RSA_MIN_MODULUS_BITS 1024
#define RSA_MAX_MODULUS_BITS 16384
#define RSA_MIN_MODULUS_BITS 512
#define RSA_MAX_MODULUS_BITS 16384
#define RSA_SMALL_MODULUS_BYTES (3072 / 8)
#define RSA_MAX_PUBEXP_BYTES (64 / 8)
#define RSA_MIN_MODULUS_LEN (RSA_MIN_MODULUS_BITS / 8)
#define RSA_MAX_MODULUS_LEN (RSA_MAX_MODULUS_BITS / 8)
#define RSA_MAX_PUBEXP_BYTES (64 / 8)
#define RSA_MIN_MODULUS_LEN (RSA_MIN_MODULUS_BITS / 8)
#define RSA_MAX_MODULUS_LEN (RSA_MAX_MODULUS_BITS / 8)
/* RSA */
typedef struct RSA_Ctx CRYPT_RSA_Ctx;
typedef struct RSA_Para CRYPT_RSA_Para;
/* RSA method */
/**
+113 -2
View File
@@ -615,6 +615,113 @@ uint32_t CRYPT_RSA_GetSignLen(const CRYPT_RSA_Ctx *ctx)
#endif
#ifdef HITLS_CRYPTO_RSA_GEN
static int32_t RSA_Filter(const BN_BigNum *p, uint32_t bits, const BN_BigNum *e, BN_Optimizer *opt)
{
int32_t ret;
BN_BigNum *pMinusOne = BN_Create(bits);
BN_BigNum *u = BN_Create(bits);
if (pMinusOne == NULL || u == NULL) {
ret = CRYPT_MEM_ALLOC_FAIL;
BSL_ERR_PUSH_ERROR(CRYPT_MEM_ALLOC_FAIL);
goto ERR;
}
(void)BN_SubLimb(pMinusOne, p, 1);
ret = BN_Gcd(u, pMinusOne, e, opt);
if (ret != CRYPT_SUCCESS) {
BSL_ERR_PUSH_ERROR(ret);
goto ERR;
}
if (!BN_IsOne(u)) {
ret = CRYPT_RSA_NOR_KEYGEN_FAIL;
BSL_ERR_PUSH_ERROR(ret);
goto ERR;
}
ERR:
BN_Destroy(pMinusOne);
BN_Destroy(u);
return ret;
}
static int32_t RSAPGen(const CRYPT_RSA_Para *para, CRYPT_RSA_PrvKey *priKey, BN_Optimizer *opt)
{
uint32_t pBits = (para->bits + 1) >> 1;
int32_t ret = BN_GenPrime(priKey->p, para->e, pBits, true, opt, NULL);
if (ret != CRYPT_SUCCESS) {
BSL_ERR_PUSH_ERROR(ret);
return ret;
}
/*
* FIPS 186-5 A.1.3 Step 4.4: Verify p >= sqrt(2) * 2^(pBits-1).
* BN_GenPrime with top=true only guarantees the MSB is set (p >= 2^(pBits-1)).
* Checking that bit (pBits-2) is also set ensures:
* p >= 2^(pBits-1) + 2^(pBits-2) = 3/2 * 2^(pBits-1) > sqrt(2) * 2^(pBits-1).
* when BN_GenPrime params 'half' is 'true', it will be satisfied.
*/
return RSA_Filter(priKey->p, para->bits, para->e, opt);
}
static int32_t RSAQGen(const CRYPT_RSA_Para *para, CRYPT_RSA_PrvKey *priKey, BN_Optimizer *opt)
{
uint32_t pBits = (para->bits + 1) >> 1;
uint32_t qBits = para->bits - pBits;
int32_t ret = BN_GenPrime(priKey->q, para->e, qBits, true, opt, NULL);
if (ret != CRYPT_SUCCESS) {
BSL_ERR_PUSH_ERROR(ret);
return ret;
}
return RSA_Filter(priKey->q, para->bits, para->e, opt);
}
static int32_t GenPQBasedOnRandomPrimes(const CRYPT_RSA_Para *para, CRYPT_RSA_PrvKey *priKey, BN_Optimizer *opt)
{
int32_t ret = CRYPT_BN_RAND_GEN_FAIL;
uint32_t i;
uint32_t halfBits = (para->bits) >> 1;
BN_BigNum *val = BN_Create(halfBits - 100);
BN_BigNum *sub = BN_Create(para->bits);
bool foundQ = false;
if (val == NULL || sub == NULL) {
ret = CRYPT_MEM_ALLOC_FAIL;
BSL_ERR_PUSH_ERROR(CRYPT_MEM_ALLOC_FAIL);
goto ERR;
}
/* we need to compare |p - q| with 2^(nlen/2 - 100) */
(void)BN_SetBit(val, halfBits - 100);
/* FIPS 186-5 B.3.3 Step 4.7: retry up to 5*nlen times to generate p */
for (i = 0; i < 5 * para->bits; i++) {
ret = RSAPGen(para, priKey, opt);
if (ret == CRYPT_SUCCESS) {
break;
}
}
if (ret != CRYPT_SUCCESS) {
goto ERR;
}
/* FIPS 186-5 B.3.3 Step 5.8: retry up to 10*nlen times to generate q */
for (i = 0; i < 10 * para->bits; i++) {
ret = RSAQGen(para, priKey, opt);
if (ret != CRYPT_SUCCESS) {
continue;
}
(void)BN_Sub(sub, priKey->p, priKey->q);
(void)BN_SetSign(sub, false);
if (BN_Cmp(sub, val) <= 0) {
continue;
}
foundQ = true;
break;
}
if ((ret == CRYPT_SUCCESS) && !foundQ) {
ret = CRYPT_RSA_NOR_KEYGEN_FAIL;
BSL_ERR_PUSH_ERROR(ret);
}
ERR:
BN_Destroy(val);
BN_Destroy(sub);
return ret;
}
static int32_t GetRandomX(void *libCtx, BN_BigNum *X, uint32_t nlen, bool isP)
{
/*
@@ -853,7 +960,7 @@ ERR:
}
// ref: FIPS 186-5, A.1.6 & B.9
static int32_t GenPQBasedOnProbPrimes(const CRYPT_RSA_Para *para, CRYPT_RSA_PrvKey *priKey, BN_Optimizer *opt)
static int32_t GenPQBasedOnAuxPrimes(const CRYPT_RSA_Para *para, CRYPT_RSA_PrvKey *priKey, BN_Optimizer *opt)
{
BN_BigNum *Xp = NULL, *Xq = NULL, *Xp0 = NULL, *Xp1 = NULL, *Xp2 = NULL, *Xq0 = NULL, *Xq1 = NULL, *Xq2 = NULL;
uint32_t proBits = GetProbableNoLimitedBitLen(para->bits);
@@ -1110,7 +1217,11 @@ int32_t CRYPT_RSA_Gen(CRYPT_RSA_Ctx *ctx)
* Meanwhile, the check of e is not added to ensure compatibility.
*/
BN_OptimizerSetLibCtx(ctx->libCtx, optimizer);
ret = GenPQBasedOnProbPrimes(ctx->para, newCtx->prvKey, optimizer);
if (ctx->para->bits < 1024) {
ret = GenPQBasedOnRandomPrimes(ctx->para, newCtx->prvKey, optimizer);
} else {
ret = GenPQBasedOnAuxPrimes(ctx->para, newCtx->prvKey, optimizer);
}
if (ret != CRYPT_SUCCESS) {
BN_OptimizerDestroy(optimizer);
BSL_ERR_PUSH_ERROR(ret);
@@ -18,8 +18,7 @@
#include "bsl_params.h"
#include "bsl_err.h"
#include "crypt_params_key.h"
#include "bn_bincal.h"
#include "bn_basic.h"
#include "crypt_local_types.h"
/* END_HEADER */
/**
@@ -157,9 +156,7 @@ void SDV_CRYPTO_RSA_PARA_API_TC002(int bits, int isProvider)
CRYPT_EAL_PkeyCtx *pkey = NULL;
pkey = TestPkeyNewCtx(NULL, CRYPT_PKEY_RSA, CRYPT_EAL_PKEY_UNKNOWN_OPERATE, "provider=default", isProvider);
ASSERT_TRUE(pkey != NULL);
ASSERT_EQ(CRYPT_EAL_PkeySetPara(pkey, &para), CRYPT_EAL_ERR_NEW_PARA_FAIL);
EXIT:
CRYPT_EAL_PkeyFreeCtx(pkey);
}
@@ -519,7 +516,7 @@ void SDV_CRYPTO_RSA_SET_PRV_API_TC002(int isProvider)
ASSERT_TRUE_AND_LOG("d = n", CRYPT_EAL_PkeySetPrv(pkey, &prvKey) == CRYPT_RSA_ERR_INPUT_VALUE);
prvKey.key.rsaPrv.nLen = RSA_MIN_KEYLEN - 1;
ASSERT_TRUE_AND_LOG("n less than 1024 bits", CRYPT_EAL_PkeySetPrv(pkey, &prvKey) == CRYPT_RSA_ERR_KEY_BITS);
ASSERT_TRUE_AND_LOG(" n len < d len", CRYPT_EAL_PkeySetPrv(pkey, &prvKey) == CRYPT_RSA_ERR_KEY_BITS);
prvKey.key.rsaPrv.nLen = RSA_MAX_KEYLEN + 1;
ASSERT_TRUE_AND_LOG("n greater than 16384 bits", CRYPT_EAL_PkeySetPrv(pkey, &prvKey) == CRYPT_RSA_ERR_KEY_BITS);
@@ -804,8 +801,6 @@ void SDV_CRYPTO_RSA_DEC_API_TC001(Hex *n, Hex *d, int hashId, Hex *in, int isPro
ASSERT_TRUE(CRYPT_EAL_PkeyDecrypt(pkey, in->x, in->len, crypt, &cryptLen) == CRYPT_RSA_NO_KEY_INFO);
ASSERT_TRUE(CRYPT_EAL_PkeySetPrv(pkey, &prvkey) == CRYPT_SUCCESS);
uint32_t blindFlag = CRYPT_RSA_BLINDING;
ASSERT_EQ(CRYPT_EAL_PkeyCtrl(pkey, CRYPT_CTRL_CLR_RSA_FLAG, &blindFlag, sizeof(blindFlag)), CRYPT_SUCCESS);
ASSERT_EQ(CRYPT_EAL_PkeyDecrypt(pkey, in->x, in->len, crypt, &cryptLen), CRYPT_RSA_PAD_NO_SET_ERROR);
ASSERT_TRUE(CRYPT_EAL_PkeyCtrl(pkey, CRYPT_CTRL_SET_RSA_RSAES_OAEP, oaepParam, 0) == CRYPT_SUCCESS);
@@ -2105,9 +2100,9 @@ static int32_t ImportRsaKey(const BSL_Param *param, void *args)
* @title CRYPT_RSA_Import and CRYPT_RSA_Export test.
*/
/* BEGIN_CASE */
void SDV_CRYPTO_RSA_Import_Export_FUNC_TC001(void)
void SDV_CRYPTO_RSA_Import_Export_FUNC_TC001(int bits)
{
#ifndef HITLS_CRYPTO_KEY_DECODE_CHAIN
#ifndef HITLS_CRYPTO_PROVIDER
SKIP_TEST();
#else
CRYPT_RSA_Ctx *srcRsaCtx = NULL;
@@ -2118,6 +2113,8 @@ void SDV_CRYPTO_RSA_Import_Export_FUNC_TC001(void)
uint8_t signData[1024] = {};
uint32_t signDataLen = sizeof(signData);
uint8_t e[] = {0x01, 0x00, 0x01};
uint32_t eLen = sizeof(e);
uint32_t bits = 2048;
BSL_Param param[3] = {
{CRYPT_PARAM_PKEY_PROCESS_FUNC, BSL_PARAM_TYPE_FUNC_PTR, ImportRsaKey, 0, 0},
{CRYPT_PARAM_PKEY_PROCESS_ARGS, BSL_PARAM_TYPE_CTX_PTR, &dstRsaCtx, 0, 0},
@@ -2145,21 +2142,20 @@ EXIT:
}
/* END_CASE */
/**
* @test SDV_CRYPTO_RSA_Import_Export_FUNC_TC002
* @title CRYPT_RSA_Import and CRYPT_RSA_Export test.
*/
/* BEGIN_CASE */
void SDV_CRYPTO_RSA_Import_Export_FUNC_TC002(void)
void SDV_CRYPTO_RSA_Import_Export_FUNC_TC002(int bits)
{
#ifndef HITLS_CRYPTO_KEY_DECODE_CHAIN
#ifndef HITLS_CRYPTO_PROVIDER
SKIP_TEST();
#else
CRYPT_RSA_Ctx *srcRsaCtx = NULL;
CRYPT_RSA_Ctx *dstRsaCtx = NULL;
int32_t padType = CRYPT_EMSA_PSS;
CRYPT_RSA_PssPara pssPara = {
CRYPT_RsaPadType padType = CRYPT_EMSA_PSS;
RSA_PadingPara pssPara = {
.saltLen = -1,
.mdId = CRYPT_MD_SHA256,
.mgfId = CRYPT_MD_SHA256
@@ -2168,6 +2164,8 @@ void SDV_CRYPTO_RSA_Import_Export_FUNC_TC002(void)
uint8_t signData[1024] = {};
uint32_t signDataLen = sizeof(signData);
uint8_t e[] = {0x01, 0x00, 0x01};
uint32_t eLen = sizeof(e);
uint32_t bits = 2048;
BSL_Param param[3] = {
{CRYPT_PARAM_PKEY_PROCESS_FUNC, BSL_PARAM_TYPE_FUNC_PTR, ImportRsaKey, 0, 0},
{CRYPT_PARAM_PKEY_PROCESS_ARGS, BSL_PARAM_TYPE_CTX_PTR, &dstRsaCtx, 0, 0},
@@ -2208,7 +2206,6 @@ EXIT:
void SDV_CRYPTO_RSA512_GEN_SIGN_VERIFY_TC001(int isProvider)
{
#if !defined(HITLS_CRYPTO_RSA_SIGN) || !defined(HITLS_CRYPTO_RSA_EMSA_PKCSV15) || !defined(HITLS_CRYPTO_DRBG)
(void)isProvider;
SKIP_TEST();
#else
uint8_t e[] = {1, 0, 1};
@@ -2411,14 +2408,10 @@ EXIT:
* @title RSA 512-bit: PSS + SHA1 + saltLen=0 sign/verify should succeed.
*/
/* BEGIN_CASE */
void SDV_CRYPTO_RSA512_PSS_SALT0_TC001(int isProvider, int md, int hashLen, int sLen, int rest)
void SDV_CRYPTO_RSA512_PSS_SALT0_TC001(int isProvider)
{
#if !defined(HITLS_CRYPTO_RSA_SIGN) || !defined(HITLS_CRYPTO_RSA_EMSA_PSS) || !defined(HITLS_CRYPTO_DRBG)
(void)isProvider;
(void)md;
(void)hashLen;
(void)sLen;
(void)rest;
SKIP_TEST();
#else
uint8_t e[] = {1, 0, 1};
@@ -2426,9 +2419,10 @@ void SDV_CRYPTO_RSA512_PSS_SALT0_TC001(int isProvider, int md, int hashLen, int
CRYPT_EAL_PkeyCtx *pkey = NULL;
uint8_t *sign = NULL;
uint32_t signLen = 64;
uint8_t dataHash[64] = {0};
CRYPT_MD_AlgId mdId = (CRYPT_MD_AlgId)md;
int32_t saltLen = (int32_t)sLen;
uint8_t dataHash[20] = {0};
uint32_t hashLen = sizeof(dataHash);
CRYPT_MD_AlgId mdId = CRYPT_MD_SHA1;
int32_t saltLen = 42; // saltlen < rsaLen - hashlen -2
BSL_Param pssParam[4] = {
{CRYPT_PARAM_RSA_MD_ID, BSL_PARAM_TYPE_INT32, &mdId, sizeof(mdId), 0},
{CRYPT_PARAM_RSA_MGF1_ID, BSL_PARAM_TYPE_INT32, &mdId, sizeof(mdId), 0},
@@ -2448,15 +2442,11 @@ void SDV_CRYPTO_RSA512_PSS_SALT0_TC001(int isProvider, int md, int hashLen, int
ASSERT_EQ(CRYPT_EAL_PkeyGen(pkey), CRYPT_SUCCESS);
ASSERT_EQ(CRYPT_EAL_PkeyCtrl(pkey, CRYPT_CTRL_SET_RSA_EMSA_PSS, pssParam, 0), CRYPT_SUCCESS);
ASSERT_EQ(CRYPT_EAL_PkeySignData(pkey, dataHash, (uint32_t)hashLen, sign, &signLen), rest);
if (rest == CRYPT_SUCCESS) {
ASSERT_EQ(CRYPT_EAL_PkeyVerifyData(pkey, dataHash, (uint32_t)hashLen, sign, signLen), rest);
}
ASSERT_EQ(CRYPT_EAL_PkeySignData(pkey, dataHash, hashLen, sign, &signLen), CRYPT_SUCCESS);
ASSERT_EQ(CRYPT_EAL_PkeyVerifyData(pkey, dataHash, hashLen, sign, signLen), CRYPT_SUCCESS);
if (saltLen >= 0) {
saltLen += 1;
ASSERT_EQ(CRYPT_EAL_PkeyCtrl(pkey, CRYPT_CTRL_SET_RSA_EMSA_PSS, &pssParam, 0), CRYPT_RSA_ERR_PSS_SALT_LEN);
}
saltLen = 43;
ASSERT_EQ(CRYPT_EAL_PkeyCtrl(pkey, CRYPT_CTRL_SET_RSA_EMSA_PSS, &pssParam, 0), CRYPT_RSA_ERR_PSS_SALT_LEN);
EXIT:
TestRandDeInit();
@@ -17,11 +17,11 @@ SDV_CRYPTO_RSA_PARA_API_TC001:0
CRYPT_EAL_PkeySetPara: Bad e len
SDV_CRYPTO_RSA_PARA_API_TC001:1
CRYPT_EAL_PkeySetPara: Invalid bits 1023
SDV_CRYPTO_RSA_PARA_API_TC002:1023:0
CRYPT_EAL_PkeySetPara: Invalid bits 511
SDV_CRYPTO_RSA_PARA_API_TC002:511:0
CRYPT_EAL_PkeySetPara: Invalid bits 1023
SDV_CRYPTO_RSA_PARA_API_TC002:1023:1
CRYPT_EAL_PkeySetPara: Invalid bits 511
SDV_CRYPTO_RSA_PARA_API_TC002:511:1
CRYPT_EAL_PkeySetPara: Invalid bits 78
SDV_CRYPTO_RSA_PARA_API_TC002:78:0
@@ -262,7 +262,10 @@ SDV_CRYPTO_RSA_CHECK_PRV_TC001 3072 bits
SDV_CRYPTO_RSA_CHECK_PRV_TC001:3072:0
SDV_CRYPTO_RSA_Import_Export_FUNC_TC001
SDV_CRYPTO_RSA_Import_Export_FUNC_TC001:
SDV_CRYPTO_RSA_Import_Export_FUNC_TC001:512
SDV_CRYPTO_RSA_Import_Export_FUNC_TC001
SDV_CRYPTO_RSA_Import_Export_FUNC_TC001:1024
SDV_CRYPTO_RSA_Import_Export_FUNC_TC002
SDV_CRYPTO_RSA_Import_Export_FUNC_TC002:512
@@ -292,13 +295,10 @@ SDV_CRYPTO_RSA512_OAEP_SHA256_FAIL_TC001: RSA-512 OAEP+SHA256 enc fails modulus
SDV_CRYPTO_RSA512_OAEP_SHA256_FAIL_TC001:1
SDV_CRYPTO_RSA512_PSS_SALT0_TC001: RSA-512 PSS+SHA1+salt=0 sign/verify isProvider=0
SDV_CRYPTO_RSA512_PSS_SALT0_TC001:0:CRYPT_MD_SHA1:20:42:CRYPT_SUCCESS
SDV_CRYPTO_RSA512_PSS_SALT0_TC001:0
SDV_CRYPTO_RSA512_PSS_SALT0_TC001: RSA-512 PSS+SHA1+salt=0 sign/verify isProvider=1
SDV_CRYPTO_RSA512_PSS_SALT0_TC001:1:CRYPT_MD_SHA1:20:42:CRYPT_SUCCESS
SDV_CRYPTO_RSA512_PSS_SALT0_TC001: RSA-512 PSS+SHA1+salt=0 sign/verify isProvider=0
SDV_CRYPTO_RSA512_PSS_SALT0_TC001:1:CRYPT_MD_SHA512:64:-2:CRYPT_RSA_ERR_PSS_SALT_LEN
SDV_CRYPTO_RSA512_PSS_SALT0_TC001:1
SDV_CRYPTO_RSA512_KEY_IMPORT_EXPORT_TC001
SDV_CRYPTO_RSA512_KEY_IMPORT_EXPORT_TC001:0
@@ -53,6 +53,12 @@ SDV_CRYPTO_RSA_CRYPT_FUNC_TC001:2048:CRYPT_CTRL_SET_RSA_RSAES_PKCSV15:CRYPT_MD_S
HiTLS PrvKey decrypt: PKCSV15, keyLen = 2048, hash = SHA512, msgLen = 64
SDV_CRYPTO_RSA_CRYPT_FUNC_TC001:2048:CRYPT_CTRL_SET_RSA_RSAES_PKCSV15:CRYPT_MD_SHA512:"cdf0b791aff9d4862b5baa15739ddc99e161b638207d103c903096c67fb4e6317d37020034f128cdff1e9a74aef4cf524435802e6e411c52c3883f3c2dc39f961affd27a2b420c1205a7178f9a69b74bc2990919ac618b8e8f0f48ec001c0773c751322d920ac1a003992c59222220a8485d08c8b201fb2211be060eb65437e478e242822fe315609257cacea87f1d635c13ae7cbe4455c72408d70f7f4132c8c7f45daec6de3a01529d29c49d5a5287f42c165fbb5b1ad59c3d5ae49384a97b0f74d16603450e706416fc9fb1bc6c2e050eda48cde67ac74c78c51195cc4d119e8c70de0dbef59180f7b98ee9f11c86014ac6ea2edc2792bb63456e67e867df":"010001":"39d6285fd089bbdf806eca6a22e1cb522623807eebd4e3c9f67ec6e1717d3706e011224d379120f2157b9d4a36d687212609d67973ba727f65edae40b2e3953e9d4f8a67881d90f140c8280c4b03f497e0cb84ec4266d4c0513a2c332766b7cb12c7a16d7dedea6a0b88a99550ca3fdcb311f9c50f8511e8040e9779eb47e4b812a5ea2f274fb68a82443c91582ad9b98d05e36f48533410f04b64ba4c6bf6f90ed62806a506afcf45646770744ace5952ecad86a89afd526a50377678381414e2e4d7610c7def7fcb926cf26371bd63457c45d7bb30bd31ce0a62787a4fe00d65d8f73c6cec4476a50a79a16f6204e3e193e55a7871b832b40b705a08ba37e1":"4a4e743f877ea6e94e545a56ccb5a1f99efc7eb1e8191929152a56d41dc924254a4e743f877ea6e94e545a56ccb5a1f99efc7eb1e8191929152a56d41dc92425":"a81653d15cb23545902169d98c6281b9cf2b90a09e32c8fd12d7bc70c664820dcb29daf280de5c9257d52e30094dbb446469e07b2f0b290e63dd2a9778aea203968c9ac22b5511c077b136651dd43d986ac03e2cc87b3cbb37e21abcf4e980a23e60bddab0b88e68e5b1bcdabbd9c1a2a5ad639664f4d1b1280c5f98187a1ee72ece18453612e2762271d1a392ea16556c1383d01f8d6c118b76b416325f6903061d0a2dc0952a0af8016c52734cb8091cd3490a72ad8742e55517ee92efaf751dd14f8a70bcc273ef749c9838082ab1c71da49429c28378408be759ee4ec5acfd416cc31393931c565822046f7dc0751aa189ff12557f0750fef6c3261616b1":0
HiTLS PrvKey decrypt: OAEP, keyLen = 512, hash = SHA1, msgLen = 40
SDV_CRYPTO_RSA_CRYPT_FUNC_TC001:512:CRYPT_CTRL_SET_RSA_RSAES_OAEP:CRYPT_MD_SHA1:"98C5355D9C09F989C1922156FCA11822D9B58DE8853269D678AE36875D14D4CB3D166B9A951B55E8B1B97FA81D94BD880E98F2C0DE8BCE22C58AF48A2F7BD3F7":"010001":"3E00F46ADCD4F391A49DD1A8437A82984A72347965EE1324B7F045336564FA042E64485BD8597AA7554454D089C92DB40BCD008F398EA62AF26AC82360B63EB1":"525341204F414550205465737420566563746F72":"6F82A48218091864672B6132DB0A0301609339CD4F48DD4CE3A66C89E7408F8EF7B5C2D7043AA2F36586785D99559C9BF1293A38FCC3DF43716D3C955EB00123":0
HiTLS PrvKey decrypt: PKCSV15, keyLen = 512, hash = SHA1, msgLen = 43
SDV_CRYPTO_RSA_CRYPT_FUNC_TC001:512:CRYPT_CTRL_SET_RSA_RSAES_PKCSV15:CRYPT_MD_SHA1:"B7A682F1440040934C22E3DD8727B88950BE07E8F2A8580FAB851EA2B3D2860403A3F7D2BF795968F252C857ED0FDDBBF32CE2E670796E6F231EAC44138A03DB":"010001":"612DCC464CBC716F402F8A32340D91B99FAF1ED2666D2C440677E79122E478A30B8C3CE5366C5BF0FE9EB8FC886707B2FE2F4624662FA99D761F628B7C7AC461":"52534120504B4353312E35205465737420566563746F72":"270A204F25FEBAA3F3BFB091AFAC1423E35866DBBF703D368F9CB5AD0DFE62CA40447C8C923FCCDAE68E8A01820F023259F2C9BBB37A8A24CD90DD42979CD9D0":1
set paddingMode test: vectors from nist
SDV_CRYPTO_RSA_CRYPT_FUNC_TC002:"a911245a2cfb33d8ee375df9439f74e669c03a8d9acad25bd27acf3cd8bea7eb9dbe470155c7c72782c94861f7b573cd325639fb070e9ba6e621991aefa45106182e4d264be7068035595d7549052989b3e7fd04cabc94012c1278a0ef8672b1a51dd1a9e276816ba497dea24b4febe3dd8e977707bcd230ca6fb6f8a8bff9e6ba24fbadcd93f00126b19b396a38e6ef86d18fef945b9154c1963fb488c7025953511f86d05638bfe056493730bc6778446e59cd3c5c3acf07a0a3a64943793652f10e3292aa7a6d25a03181cc6f6ba0658d909e59ce2a02bacc9766fd8c4fbd4ed9c23a866844b8a794d49e505f9f944870a71aadbe5338039825c2dff81af3":"010001":"290d117f97d672f3647c2b24402832b153d22a25820567688645ed95ffa6e38d116347486ab4b485c27aef4962653bb60257ef82256785a1d3d52aa0e0b94c37279dee7bb308688aaee98108de6f1373ed2c12429c9b8770756c12c03908b346b129f963bfaa38a8937190cc656f057ef1a812dd0312f51285c4f46f9241f3028ea6a61db0e9255976469f5d5542ced55ee2d6f4afe766c0a70f49871d369dd8f3a82a7141639efd4a1f4a4009821c3c2b9f5c5f5eef99a5f00fbd8bc8191a3654e8f8d8ce12d90e5ff2a4c530b76306c8c56e0549a6f277ab2af3a60cccbf4bb4b2cb47f04f211f8b86aa653bf6913f3b5ed190c51b5958e40597a2dfd30061":"01020304":0
@@ -11,6 +11,9 @@ SDV_CRYPTO_RSA_SIGN_PKCSV15_FUNC_TC001:"cea80475324c1dc8347827818da58bac069d3419
RSA EAL layer signature function test: Nist, PKCSV15, sha224
SDV_CRYPTO_RSA_SIGN_PKCSV15_FUNC_TC001:"cea80475324c1dc8347827818da58bac069d3419c614a6ea1ac6a3b510dcd72cc516954905e9fef908d45e13006adf27d467a7d83c111d1a5df15ef293771aefb920032a5bb989f8e4f5e1b05093d3f130f984c07a772a3683f4dc6fb28a96815b32123ccdd13954f19d5b8b24a103e771a34c328755c65ed64e1924ffd04d30b2142cc262f6e0048fef6dbc652f21479ea1c4b1d66d28f4d46ef7185e390cbfa2e02380582f3188bb94ebbf05d31487a09aff01fcbb4cd4bfd1f0a833b38c11813c84360bb53c7d4481031c40bad8713bb6b835cb08098ed15ba31ee4ba728a8c8e10f7294e1b4163b7aee57277bfd881a6f9d43e02c6925aa3a043fb7fb78d":"0997634c477c1a039d44c810b2aaa3c7862b0b88d3708272e1e15f66fc9389709f8a11f3ea6a5af7effa2d01c189c50f0d5bcbe3fa272e56cfc4a4e1d388a9dcd65df8628902556c8b6bb6a641709b5a35dd2622c73d4640bfa1359d0e76e1f219f8e33eb9bd0b59ec198eb2fccaae0346bd8b401e12e3c67cb629569c185a2e0f35a2f741644c1cca5ebb139d77a89a2953fc5e30048c0e619f07c8d21d1e56b8af07193d0fdf3f49cd49f2ef3138b5138862f1470bd2d16e34a2b9e7777a6c8c8d4cb94b4e8b5d616cd5393753e7b0f31cc7da559ba8e98d888914e334773baf498ad88d9631eb5fe32e53a4145bf0ba548bf2b0a50c63f67b14e398a34b0d":"74230447bcd492f2f8a8c594a04379271690bf0c8a13ddfc1b7b96413e77ab2664cba1acd7a3c57ee5276e27414f8283a6f93b73bd392bd541f07eb461a080bb667e5ff095c9319f575b3893977e658c6c001ceef88a37b7902d4db31c3e34f3c164c47bbeefde3b946bad416a752c2cafcee9e401ae08884e5b8aa839f9d0b5":"27da4104eace1991e08bd8e7cfccd97ec48b896a0e156ce7bdc23fd570aaa9a00ed015101f0c6261c7371ceca327a73c3cecfcf6b2d9ed920c9698046e25c89adb2360887d99983bf632f9e6eb0e5df60715902b9aeaa74bf5027aa246510891c74ae366a16f397e2c8ccdc8bd56aa10e0d01585e69f8c4856e76b53acfd3d782b8171529008fa5eff030f46956704a3f5d9167348f37021fc277c6c0a8f93b8a23cfbf918990f982a56d0ed2aa08161560755adc0ce2c3e2ab2929f79bfc0b24ff3e0ff352e6445d8a617f1785d66c32295bb365d61cfb107e9993bbd93421f2d344a86e4127827fa0d0b2535f9b1d547de12ba2868acdecf2cb5f92a6a159a":1
SDV_CRYPTO_RSA_SIGN_PKCSV15_FUNC_TC002: self, SIGN PKCS15 SHA256 mod 2048
SDV_CRYPTO_RSA_SIGN_PKCSV15_FUNC_TC002:CRYPT_MD_SHA256:"E845D0D12C017B3D139905B8534962421D5DA52960E2EC1664C89D5C81EC7D9F10C6B8D66141A0136F98F10C1AA9B0721D299D566D3293EDA1F1D22FC0D2C3B5":"9823BACE77E394848204B65171045D3EEF1B3AA6AAD6984B66C25D088DF588A5DB86BA1193AF97B4C40A39387B8CACE1E421525F46FC7B226D9748CC40E19A61":"504B435323312076312E35205369676E617475726520566563746F722054657374":"C2954F77197E27A9F78E1539754F0558776BAE66C09EDD4C2DCCE3A98A34005E85432DC4A8AEBCD6E38F16AA5A85B0602C77443316F3454CC97D749C95216D4A":0
SDV_CRYPTO_RSA_SIGN_PKCSV15_FUNC_TC002: Nist, SIGN PKCS15 SHA224 mod 2048
SDV_CRYPTO_RSA_SIGN_PKCSV15_FUNC_TC002:CRYPT_MD_SHA224:"cea80475324c1dc8347827818da58bac069d3419c614a6ea1ac6a3b510dcd72cc516954905e9fef908d45e13006adf27d467a7d83c111d1a5df15ef293771aefb920032a5bb989f8e4f5e1b05093d3f130f984c07a772a3683f4dc6fb28a96815b32123ccdd13954f19d5b8b24a103e771a34c328755c65ed64e1924ffd04d30b2142cc262f6e0048fef6dbc652f21479ea1c4b1d66d28f4d46ef7185e390cbfa2e02380582f3188bb94ebbf05d31487a09aff01fcbb4cd4bfd1f0a833b38c11813c84360bb53c7d4481031c40bad8713bb6b835cb08098ed15ba31ee4ba728a8c8e10f7294e1b4163b7aee57277bfd881a6f9d43e02c6925aa3a043fb7fb78d":"0997634c477c1a039d44c810b2aaa3c7862b0b88d3708272e1e15f66fc9389709f8a11f3ea6a5af7effa2d01c189c50f0d5bcbe3fa272e56cfc4a4e1d388a9dcd65df8628902556c8b6bb6a641709b5a35dd2622c73d4640bfa1359d0e76e1f219f8e33eb9bd0b59ec198eb2fccaae0346bd8b401e12e3c67cb629569c185a2e0f35a2f741644c1cca5ebb139d77a89a2953fc5e30048c0e619f07c8d21d1e56b8af07193d0fdf3f49cd49f2ef3138b5138862f1470bd2d16e34a2b9e7777a6c8c8d4cb94b4e8b5d616cd5393753e7b0f31cc7da559ba8e98d888914e334773baf498ad88d9631eb5fe32e53a4145bf0ba548bf2b0a50c63f67b14e398a34b0d":"74230447bcd492f2f8a8c594a04379271690bf0c8a13ddfc1b7b96413e77ab2664cba1acd7a3c57ee5276e27414f8283a6f93b73bd392bd541f07eb461a080bb667e5ff095c9319f575b3893977e658c6c001ceef88a37b7902d4db31c3e34f3c164c47bbeefde3b946bad416a752c2cafcee9e401ae08884e5b8aa839f9d0b5":"27da4104eace1991e08bd8e7cfccd97ec48b896a0e156ce7bdc23fd570aaa9a00ed015101f0c6261c7371ceca327a73c3cecfcf6b2d9ed920c9698046e25c89adb2360887d99983bf632f9e6eb0e5df60715902b9aeaa74bf5027aa246510891c74ae366a16f397e2c8ccdc8bd56aa10e0d01585e69f8c4856e76b53acfd3d782b8171529008fa5eff030f46956704a3f5d9167348f37021fc277c6c0a8f93b8a23cfbf918990f982a56d0ed2aa08161560755adc0ce2c3e2ab2929f79bfc0b24ff3e0ff352e6445d8a617f1785d66c32295bb365d61cfb107e9993bbd93421f2d344a86e4127827fa0d0b2535f9b1d547de12ba2868acdecf2cb5f92a6a159a":0
@@ -41,6 +44,9 @@ SDV_CRYPTO_RSA_SIGN_PKCSV15_FUNC_TC002:CRYPT_MD_SHA384:"dca98304b729e819b340e26c
SDV_CRYPTO_RSA_SIGN_PKCSV15_FUNC_TC002: Nist, SIGN PKCS15 SHA512 mod 3072
SDV_CRYPTO_RSA_SIGN_PKCSV15_FUNC_TC002:CRYPT_MD_SHA512:"dca98304b729e819b340e26cecb730aecbd8930e334c731493b180de970e6d3bc579f86c8d5d032f8cd33c4397ee7ffd019d51b0a7dbe4f52505a1a34ae35d23cfaaf594419d509f469b1369589f9c8616a7d698513bc1d423d70070d3d72b996c23abe68b22ccc39aabd16507124042c88d4da6a7451288ec87c9244be226aac02d1817682f80cc34c6eaf37ec84d247aaedebb56c3bbcaffb5cf42f61fe1b7f3fc89748e213973bf5f679d8b8b42a47ac4afd9e51e1d1214dfe1a7e1169080bd9ad91758f6c0f9b22ae40af6b41403d8f2d96db5a088daa5ef8683f86f501f7ad3f358b6337da55c6cfc003197420c1c75abdb7be1403ea4f3e64259f5c6da3325bb87d605b6e14b5350e6e1455c9d497d81046608e38795dc85aba406c9de1f4f9990d5153b98bbabbdcbd6bb18854312b2da48b411e838f26ae3109f104dfd1619f991824ec819861e5199f26bb9b3b299bfa9ec2fd691271b58a8adecbf0ff627b54336f3df7003d70e37d11ddbd930d9aba7e88ed401acb44092fd53d5":"2d6db91eb32e36e5d5127deb034d14072fe60c1cd13c8c3dd9adbc87140b5e7136f4f89e61bbee7826f45ac1d99194fbaa8c5a0bb94db31d93723b51419d9c6f6eeb5f3610b67f4b4e2ade05cc6b8990e8832cf4cd40f2df0388c9a52072e27efebae20b4ad5951f4d20dd18943e58b786d8797652b2bb759c319d2b0046dbf69c53c075d00c287b876042fafa23fe4dd705e4e423277c9000311e94ea3f7456e32fd12afe4a2bde358a65824f1055064823c893fc93be3b8c658bb441d7f0b00ac246bf043a9c0053d319f003ef5a5533f74d630d8ce93bab416a82951e05b82c6036593eca89f0ebacd7d51ed9610af43537fcd266e5e47c0d25fedad6d047a1a1ee3eb444367e3eff7c7520ca4f779f2027fe45036204168454df4918b547a4d19e938f3c6db6ca2702ad9bbda1261c64d00b578285bdcfc9851f96a4f2cd14d66b9c1f65742a1344948c9f1da8d338ed4e3deb1ebadf11f8c281944e8849823496f86111f378bdd084c99f65fb9b4ee6271b1d1be424c294d185d9fd9cdf":"db6c9d4badb1d9b74d68346448b4d5340631783b5a35ac2458563ed0672cf54197587fb734c4ac189b2dda954cdfb18b41c010a77e90464eea6f863c5da0956bfa8cc636bf0a28be5addfe8d3e7e6f79f71d7fcbbae23ea141783f91d6cc4c8fad125811760ab57133818892471a79c6d04eafef37b2fbe506785318f9398377":"d480d5a979ad1a0c4ca329ebd88a4aa6948a8cf66a3c0bfee2254409c53054d6fff59f72a46f02c668146a144f8f2ba7c4e6b4de31400eba00ae3ee87589dcb6ea139e70f7704f691bc37d722f62bb3b2cd303a34d92fde4deb54a64dd39184382d59ccaf0c07a7ea4107d0808260ed8d421cb8b1407cdf9e915159282b9f7bffdbf40d877885da7399edebd300a7e77a908f756659a1824f95c8a812aa540ebaa64ab54a233723db55caa8b4466ea9ae6614ad1bb869e9d8e0d032f3901671e94c0b673be6537cd54278ed3da2e1edbc04ee3a9e8070d73ba0ffb93e60f30b87ff3862e9c53908f2c8e99915668c1f46635e05bf7163051ff9d92bc71a626553c69dfdd06a49f7ff1ed51e918f3ed801dae62ca276d7063d72a6ebc136ba06cfedf5aa23277e81008c63b2e0083d0fd6814f6d4b4b40a42e8c0206f3c356a5ec709b7c8a4b74b7b48d53c9d8694d27359c2c7701938d2f0161721a57313bb1a2e11da215872498182493d8517043b4c03f93446aac93830276542026ce83055":0
SDV_CRYPTO_RSA_SIGN_PSS_FUNC_TC001: self, SIGN PSS SHA256 mod=512 saltLen=20
SDV_CRYPTO_RSA_SIGN_PSS_FUNC_TC001:CRYPT_MD_SHA256:"F4B898140E3E28113A6CC2B9337B43177C61B5E06C11089A0CBAFECA744F2F01ACA136A1CBB5B224EDD164A00723F9B4AD16A63CEAA48B089E51298A1A933E0F":"ED198BFEA26E0653EACF453A3A6ECA6A0ED07C6E9B4545983B8D511EC5E1921FA015897353A72B6031B7A8D8CD6657A6B52704E9D7DD29CF829EBA17C1440D41":"5053532053616C742045787472616374696F6E2054657374":"EBE09FEC54EFF539BB8F41814703725C96DE6B2A7FED08EDD6809CDEFB5B76A3C7C847F1A5F8BA148675E6028683D5FC7A66FDD53C472638D7F5AE15131DA5C6":"A09DBCEA43C960B91EDA5B5FAD289C89424F66CC":0
SDV_CRYPTO_RSA_SIGN_PSS_FUNC_TC001: Nist, SIGN PSS SHA224 mod=2048 saltLen=15
SDV_CRYPTO_RSA_SIGN_PSS_FUNC_TC001:CRYPT_MD_SHA224:"c5062b58d8539c765e1e5dbaf14cf75dd56c2e13105fecfd1a930bbb5948ff328f126abe779359ca59bca752c308d281573bc6178b6c0fef7dc445e4f826430437b9f9d790581de5749c2cb9cb26d42b2fee15b6b26f09c99670336423b86bc5bec71113157be2d944d7ff3eebffb28413143ea36755db0ae62ff5b724eecb3d316b6bac67e89cacd8171937e2ab19bd353a89acea8c36f81c89a620d5fd2effea896601c7f9daca7f033f635a3a943331d1b1b4f5288790b53af352f1121ca1bef205f40dc012c412b40bdd27585b946466d75f7ee0a7f9d549b4bece6f43ac3ee65fe7fd37123359d9f1a850ad450aaf5c94eb11dea3fc0fc6e9856b1805ef":"49e5786bb4d332f94586327bde088875379b75d128488f08e574ab4715302a87eea52d4c4a23d8b97af7944804337c5f55e16ba9ffafc0c9fd9b88eca443f39b7967170ddb8ce7ddb93c6087c8066c4a95538a441b9dc80dc9f7810054fd1e5c9d0250c978bb2d748abe1e9465d71a8165d3126dce5db2adacc003e9062ba37a54b63e5f49a4eafebd7e4bf5b0a796c2b3a950fa09c798d3fa3e86c4b62c33ba9365eda054e5fe74a41f21b595026acf1093c90a8c71722f91af1ed29a41a2449a320fc7ba3120e3e8c3e4240c04925cc698ecd66c7c906bdf240adad972b4dff4869d400b5d13e33eeba38e075e872b0ed3e91cc9c283867a4ffc3901d2069f":"37ddd9901478ae5c16878702cea4a19e786d35582de44ae65a16cd5370fbe3ffdd9e7ee83c7d2f27c8333bbe1754f090059939b1ee3d71e020a675528f48fdb2cbc72c65305b65125c796162e7b07e044ed15af52f52a1febcf4237e6aa42a69e99f0a9159daf924bba12176a57ef4013a5cc0ab5aec83471648005d67d7122e":"7e628bcbe6ff83a937b8961197d8bdbb322818aa8bdf30cdfb67ca6bf025ef6f09a99dba4c3ee2807d0b7c77776cfeff33b68d7e3fa859c4688626b2441897d26e5d6b559dd72a596e7dad7def9278419db375f7c67cee0740394502212ebdd4a6c8d3af6ee2fd696d8523de6908492b7cbf2254f15a348956c19840dc15a3d732ef862b62ede022290de3af11ca5e79a3392fff06f75aca8c88a2de1858b35a216d8f73fd70e9d67958ed39a6f8976fb94ec6e61f238a52f9d42241e8354f89e3ece94d6fa5bfbba1eeb70e1698bff31a685fbe799fb44efe21338ed6eea2129155aabc0943bc9f69a8e58897db6a8abcc2879d5d0c5d3e6dc5eb48cf16dac8":"463729b3eaf43502d9cff129925681":0
@@ -131,6 +137,9 @@ SDV_CRYPTO_RSA_GEN_SIGN_VERIFY_PKCSV15_FUNC_TC003:0
CRYPT_EAL_PKEY_Gen, GetPrv, SetPrv, Sign, Verify
SDV_CRYPTO_RSA_GEN_SIGN_VERIFY_PKCSV15_FUNC_TC003:1
SDV_CRYPTO_RSA_VERIFY_PKCSV15_FUNC_TC001: self [mod = 512] SHA512 PASS
SDV_CRYPTO_RSA_VERIFY_PKCSV15_FUNC_TC001:CRYPT_MD_SHA256:"E845D0D12C017B3D139905B8534962421D5DA52960E2EC1664C89D5C81EC7D9F10C6B8D66141A0136F98F10C1AA9B0721D299D566D3293EDA1F1D22FC0D2C3B5":"010001":"504B435323312076312E35205369676E617475726520566563746F722054657374":"C2954F77197E27A9F78E1539754F0558776BAE66C09EDD4C2DCCE3A98A34005E85432DC4A8AEBCD6E38F16AA5A85B0602C77443316F3454CC97D749C95216D4A":0:0
SDV_CRYPTO_RSA_VERIFY_PKCSV15_FUNC_TC001: Nist [mod = 1024] SHA224 PASS
SDV_CRYPTO_RSA_VERIFY_PKCSV15_FUNC_TC001:CRYPT_MD_SHA224:"b8f34bda3e0cc0de41396ac4dab60770461c65d1370fd815adcb8712d737f16478e4f97c4d6626865a4e3e4095b803bc8b3023426c8a72557d5ce779664d76913eda01e5597a17907c5b4d2b1b70181d722994181c81ac9ca5c5450240c0c4e275586a9b6dec645953aa78a3fc290d359a2a6bbe6097fa14b23db3e9c0865cf7":"df05dd":"ef28fdf1f0d14499c142864e68391d591ce212ea579dd5022e023190de227edba710191fdda1117b3c6f230a7c24e95125f54ed9a56c451c9f6bbba6876ec9746c102fa014d1fe404e16948b8471cd3d9023783dd0df087d7dd18c2238dfe2e6e62f27babee971afa03ec116a9a933e60474785f037f86ed6e3d8e4f1bff2ff8":"3c8e1baef55289f6f2269fc9602eef96b551b21aaeda42fd7e3d17e36874f18a8f29cd05238159a5ccb8a53cbd2b792d5e614b569ed60b21e3218f5d995e685faea3aee813b0e57edc1419081b779b3d7206c77c329d400b0cc09cd88504e6cf61fee33d7c14cb4100ef5b3a7537dd67a7b16a6b2fda95f0228fae06e484d3c2":0:0
@@ -227,6 +236,9 @@ SDV_CRYPTO_RSA_VERIFY_PKCSV15_FUNC_TC001:CRYPT_MD_SHA512:"9689eb163a617c0abbf01d
SDV_CRYPTO_RSA_VERIFY_PKCSV15_FUNC_TC001: Nist [mod = 3072] SHA512 FAIL
SDV_CRYPTO_RSA_VERIFY_PKCSV15_FUNC_TC001:CRYPT_MD_SHA512:"9689eb163a617c0abbf01ddc0e6d88c37f8a6b0baec0f6cab8f8a683f372a53d028253a6ba502da462adaf4fd87c8dc2b03b6c07c2b6aacab1d8c8bd043d89f4effe72ea2547c73c6366a2efab9c916945820fb880890bc085564e57ee76f7107a008f71e941e9fd631aec78f82e410ea9c893faa3d553cd1ca628af1087ca1b0c6aef3b66edcee14d1d7dc48293ddd7deed1ccbe487c957585abb9509151038d53f46b068e3e139c7689bf8e8d38669896b8d082e65e458e1f82b8e8ec926e7aa0f97d08526e9636f2c00af4c2bd3d8bffc4bb93cd47b09af18883e11b639d47938d036f7cfeb77db74a2c09a6dee9df98b18eff2fda7d3f4135083bb3b59e2172244ec37bdbdcfe6e199d36dc949cda1cca123fb2be07803d003d76af3d7164453df77d44c7f2599636ca44d0b7a46218326b0c814ed322b9c4279b060f1b9e14b70f55a3751c4343763cdbf9c14637d2210c59fbd037be17ea6706846fdc7b9ab90278c01c458e64442f9256f3ad1cbceb22959d495063aaca1a3959eae03":"fa3751":"eced7082ee6e916e753959e7dfbec00d9b424b64eb90eb2be7eb22e9c648674859bacc26d82edeeae158cc14beedcc19e713bb6dc71603e1c35cc22f799b29d34549221d0a5435852f14ac3ee77ef50eb69a495c31378b8b05dd73863a03eb9cb982b98f0c4a5fe766533f8ce3d7039410bf3c5aae5b49d0b3557b1692e8774b":"11aa09883b9f571237215bacf3ea7f100740a1bd72748804bca39e9ef8527692b5a8e1f94d255cab186edd16fbe76bb9d673ecef79f2614fc0bf4e2b3c28a93c39e6fb31de6c21dc93026f8ce717767d57bef1c91839568b9da11c1b48cd7e53e132ea7f9b12f80c3bc1a6b9ba1e7d234ffc4f251e6ada2588b21b457d9bedb51d14b1214144a81a3b987f00b20c6cbb314840363fb4a605495124abd45ac3d7e9d65e8b95dff0ba916d432749dfb24e5fadac418ff716097d86943a6bfa8dc5ff27dda853c63c1b2ce3383bd78197af3e30635d0ae65e203300ded374a790245cdf4d1640ba5d0da8d6ea35ba0263efde90c7b1a8ac1e3cd0f843e5fe57f681055de7ffea80e92af36bc183efaed08a5842f9bc8369626d60ab2c460de622b9b3c36e6e559787264abefaba843bf443cd9443eff990db82feece2cdb5e336f84f641176f82b41efa2377737089792b4a9596a32cad5450a5f6a93f947d249dd734be9b3cb6c825af53c27070eeb7c1713aa607fa89e44a542dac00b80bd246f":-1:0
SDV_CRYPTO_RSA_VERIFY_PSS_FUNC_TC001: self [mod = 512] SHA256 PASS
SDV_CRYPTO_RSA_VERIFY_PSS_FUNC_TC001:CRYPT_MD_SHA256:"F4B898140E3E28113A6CC2B9337B43177C61B5E06C11089A0CBAFECA744F2F01ACA136A1CBB5B224EDD164A00723F9B4AD16A63CEAA48B089E51298A1A933E0F":"010001":"A09DBCEA43C960B91EDA5B5FAD289C89424F66CC":"5053532053616C742045787472616374696F6E2054657374":"EBE09FEC54EFF539BB8F41814703725C96DE6B2A7FED08EDD6809CDEFB5B76A3C7C847F1A5F8BA148675E6028683D5FC7A66FDD53C472638D7F5AE15131DA5C6":0:0
SDV_CRYPTO_RSA_VERIFY_PSS_FUNC_TC001: Nist [mod = 2048] SHA224 PASS
SDV_CRYPTO_RSA_VERIFY_PSS_FUNC_TC001:CRYPT_MD_SHA224:"acfdfb1dcb1459b489cd4a8c9fab64a7da4f044bef1c506f0872e9476f3357abda509d9fb1db6a4f5306c40c058826253171cfedbc160776a48ec35b655bb9963286b6aece1c77dff987a0aae9720ba035dda67f317101bd3cd4e6caac867a8c38b87067938e96e72df1875f94e43e4c06f7a86a1dbe07836ee69763eee29bc13ca906d7740c29e651872a9ec7c6237f7c8290bb0800a030b323d09e7c903751d21a224266f9d6c94c17a4c0cd8175ea67b9d9020f2b3f31a96206084cddb2acef70b11ae25a46c4f6817c4813466d7cac76b27927145bd499ff87f22a946b688e980a00a3d54c72ab9c2c88a55a3ea4c6784068673532737cbe4799e98bd711":"b29bc5":"bb86906194b31fb6d28931febeb80d76747e427ea1628ef08c25ffb0":"7ced8a54c8e35ef5c87d03ee6357b658e2e528eda55ad30f14c88d0cd9895ea04ddf8fbb2fd703859c73cb9f3b07f4acb9e4a311753465f87c25c09bb74a0ebf633e8b7ec28aac4a10c8b22fb9098058c975a9d5a431ce9cf78627cdee3f5f3aa852a526e8c3004d0dc6e22544240164fcdf62c29a19b6006e32ea29e631fa18":"8c074bae48454875aefa2b7ea090d11d8860d7cbee5ee4c3ed02cb45aadb0b4516872b0e4521789d503b4e70092ca2a0c7a88efb7d74c63ce8dffcf06995af7c9567a8df05a01b243c5f3edcfa3922d06967bec9d0faad2c84486dd38602a416ef253e4a28f74ca290e4d743accccd204d8b136dd197e7a2f25a2707f339c6ba444c19bc047dff0584c479ab07c2ae68f219c3c430f19cae3f711c0efab8d09f85ab66ae948c357db67078a359b9c746d2d66b31486c83765ab097b540b5e6f626c9111a295855dff5c2acea102f6a29b9569909dad0d4c79a941a3e71b3137dc68ae2296b6f8175bfab205432e409be9075d12580b5c14924dd53c3d44745d7":0:0