已合并
feat: Support curve nistp192 and setting/getting generic extension #960
Ooohui创建于 2025年12月29日
feat: Support curve nistp192 and setting/getting generic extension #960
已合并
共 47 个文件变更+1108-192
| @@ -33,6 +33,10 @@ static BSL_SAL_ThreadLockHandle g_oidHashRwLock = NULL; | |||
| 33 | static uint32_t g_oidHashInitOnce = BSL_SAL_ONCE_INIT; | 33 | static uint32_t g_oidHashInitOnce = BSL_SAL_ONCE_INIT; |
| 34 | 34 | ||
| 35 | 35 | ||
| 36 | + | ||
| 37 | + | ||
| 38 | + | ||
| 39 | + | ||
| 36 | BslOidInfo g_oidTable[] = { | 40 | BslOidInfo g_oidTable[] = { |
| 37 | {{9, "\140\206\110\1\145\3\4\1\2", BSL_OID_GLOBAL}, "AES128-CBC", BSL_CID_AES128_CBC}, | 41 | {{9, "\140\206\110\1\145\3\4\1\2", BSL_OID_GLOBAL}, "AES128-CBC", BSL_CID_AES128_CBC}, |
| 38 | {{9, "\140\206\110\1\145\3\4\1\26", BSL_OID_GLOBAL}, "AES192-CBC", BSL_CID_AES192_CBC}, | 42 | {{9, "\140\206\110\1\145\3\4\1\26", BSL_OID_GLOBAL}, "AES192-CBC", BSL_CID_AES192_CBC}, |
| @@ -62,6 +66,7 @@ BslOidInfo g_oidTable[] = { | |||
| 62 | {{9, "\52\206\110\206\367\15\1\1\13", BSL_OID_GLOBAL}, "SHA256WITHRSA", BSL_CID_SHA256WITHRSAENCRYPTION}, | 66 | {{9, "\52\206\110\206\367\15\1\1\13", BSL_OID_GLOBAL}, "SHA256WITHRSA", BSL_CID_SHA256WITHRSAENCRYPTION}, |
| 63 | {{9, "\52\206\110\206\367\15\1\1\14", BSL_OID_GLOBAL}, "SHA384WITHRSA", BSL_CID_SHA384WITHRSAENCRYPTION}, | 67 | {{9, "\52\206\110\206\367\15\1\1\14", BSL_OID_GLOBAL}, "SHA384WITHRSA", BSL_CID_SHA384WITHRSAENCRYPTION}, |
| 64 | {{9, "\52\206\110\206\367\15\1\1\15", BSL_OID_GLOBAL}, "SHA512WITHRSA", BSL_CID_SHA512WITHRSAENCRYPTION}, | 68 | {{9, "\52\206\110\206\367\15\1\1\15", BSL_OID_GLOBAL}, "SHA512WITHRSA", BSL_CID_SHA512WITHRSAENCRYPTION}, |
| 69 | + {{8, "\52\206\110\316\75\3\1\1", BSL_OID_GLOBAL}, "PRIME192V1", BSL_CID_PRIME192V1}, | ||
| 65 | {{8, "\52\206\110\316\75\3\1\7", BSL_OID_GLOBAL}, "PRIME256V1", BSL_CID_PRIME256V1}, | 70 | {{8, "\52\206\110\316\75\3\1\7", BSL_OID_GLOBAL}, "PRIME256V1", BSL_CID_PRIME256V1}, |
| 66 | {{9, "\52\206\110\206\367\15\1\5\14", BSL_OID_GLOBAL}, "PBKDF2", BSL_CID_PBKDF2}, | 71 | {{9, "\52\206\110\206\367\15\1\5\14", BSL_OID_GLOBAL}, "PBKDF2", BSL_CID_PBKDF2}, |
| 67 | {{9, "\52\206\110\206\367\15\1\5\15", BSL_OID_GLOBAL}, "PBES2", BSL_CID_PBES2}, | 72 | {{9, "\52\206\110\206\367\15\1\5\15", BSL_OID_GLOBAL}, "PBES2", BSL_CID_PBES2}, |
| @@ -523,4 +528,99 @@ void BSL_OBJ_FreeHashTable(void) | |||
| 523 | } | 528 | } |
| 524 | 529 | ||
| 525 | 530 | ||
| 531 | +static void BslEncodeOidPart(uint64_t num, uint8_t *output, uint32_t *offset) | ||
| 532 | +{ | ||
| 533 | + if (num < 0x80) { | ||
| 534 | + output[*offset] = num &0x7F; | ||
| 535 | + (*offset)++; | ||
| 536 | + } else { | ||
| 537 | + uint8_t temp[10]; // The data of uint64_t requires up to 10 bytes when encode in ASN1. | ||
| 538 | + int32_t i = 0; | ||
| 539 | + uint64_t t = num; | ||
| 540 | + while (t > 0) { | ||
| 541 | + temp[i] = (t & 0x7F) | 0x80; | ||
| 542 | + i++; | ||
| 543 | + t >>= 7; // Process 7 bits each time. | ||
| 544 | + } | ||
| 545 | + | ||
| 546 | + temp[0] &= 0x7F; | ||
| 547 | + for (int32_t j = i - 1; j >= 0; j--) { | ||
| 548 | + output[*offset] = temp[j]; | ||
| 549 | + (*offset)++; | ||
| 550 | + } | ||
| 551 | + } | ||
| 552 | +} | ||
| 553 | + | ||
| 554 | +static bool BslEncodeOidValueCheck(uint64_t *parts, uint32_t count) | ||
| 555 | +{ | ||
| 556 | + // At least 2 pieces of data are required. | ||
| 557 | + if (count < 2 || parts[0] > BSL_OBJ_ARCS_X_MAX) { | ||
| 558 | + return false; | ||
| 559 | + } | ||
| 560 | + if (parts[1] >= BSL_OBJ_ARCS_Y_MAX) { | ||
| 561 | + return false; | ||
| 562 | + } | ||
| 563 | + return true; | ||
| 564 | +} | ||
| 565 | + | ||
| 566 | + | ||
| 567 | +uint8_t *BSL_OBJ_GetOidFromNumericString(const char *oid, uint32_t len, uint32_t *outLen) | ||
| 568 | +{ | ||
| 569 | + if (len == 0 || oid == NULL || oid[0] == '.' || outLen == NULL || oid[len - 1] == '.') { | ||
| 570 | + BSL_ERR_PUSH_ERROR(BSL_INVALID_ARG); | ||
| 571 | + return NULL; | ||
| 572 | + } | ||
| 573 | + uint64_t parts[MAX_OID_PARTS_LEN]; | ||
| 574 | + uint32_t count = 0; | ||
| 575 | + parts[count] = 0; | ||
| 576 | + | ||
| 577 | + for (uint32_t i = 0; i < len; i++) { | ||
| 578 | + if (oid[i] > '9' || (oid[i] < '0' && oid[i] != '.')) { | ||
| 579 | + BSL_ERR_PUSH_ERROR(BSL_INVALID_ARG); | ||
| 580 | + return NULL; | ||
| 581 | + } | ||
| 582 | + if ((i < len - 1) && oid[i] == '.' && oid[i + 1] == '.') { | ||
| 583 | + BSL_ERR_PUSH_ERROR(BSL_INVALID_ARG); | ||
| 584 | + return NULL; | ||
| 585 | + } | ||
| 586 | + if (oid[i] != '.') { | ||
| 587 | + // Convert decimal string to number. | ||
| 588 | + if (parts[count] > (UINT64_MAX - (oid[i] - '0')) / 10) { | ||
| 589 | + BSL_ERR_PUSH_ERROR(BSL_INVALID_ARG); | ||
| 590 | + return NULL; | ||
| 591 | + } | ||
| 592 | + parts[count] = parts[count] * 10 + (oid[i] - '0'); | ||
| 593 | + } else { | ||
| 594 | + count++; | ||
| 595 | + if (count >= MAX_OID_PARTS_LEN) { | ||
| 596 | + BSL_ERR_PUSH_ERROR(BSL_INVALID_ARG); | ||
| 597 | + return NULL; | ||
| 598 | + } | ||
| 599 | + parts[count] = 0; | ||
| 600 | + } | ||
| 601 | + } | ||
| 602 | + count++; | ||
| 603 | + | ||
| 604 | + if (BslEncodeOidValueCheck(parts, count) != true) { | ||
| 605 | + BSL_ERR_PUSH_ERROR(BSL_INVALID_ARG); | ||
| 606 | + return NULL; | ||
| 607 | + } | ||
| 608 | + | ||
| 609 | + uint32_t offset = 0; | ||
| 610 | + // The data of uint64_t requires up to 10 bytes when encode in ASN1. | ||
| 611 | + uint8_t *outBuf = BSL_SAL_Malloc(count * 10); | ||
| 612 | + if (outBuf == NULL) { | ||
| 613 | + BSL_ERR_PUSH_ERROR(BSL_MALLOC_FAIL); | ||
| 614 | + return NULL; | ||
| 615 | + } | ||
| 616 | + outBuf[0] = (uint8_t)(parts[0] * BSL_OBJ_ARCS_Y_MAX + parts[1]); | ||
| 617 | + offset++; | ||
| 618 | + | ||
| 619 | + for (uint32_t i = 2; i < count; i++) { | ||
| 620 | + BslEncodeOidPart(parts[i], outBuf, &offset); | ||
| 621 | + } | ||
| 622 | + *outLen = offset; | ||
| 623 | + return outBuf; | ||
| 624 | +} | ||
| 625 | + | ||
| 526 | 626 | ||
| @@ -106,6 +106,7 @@ | |||
| 106 | }, | 106 | }, |
| 107 | "pkey": { | 107 | "pkey": { |
| 108 | "ecc": { | 108 | "ecc": { |
| 109 | + "curve_nistp192": null, | ||
| 109 | "curve_nistp224": null, | 110 | "curve_nistp224": null, |
| 110 | "curve_nistp256": null, | 111 | "curve_nistp256": null, |
| 111 | "curve_nistp384": null, | 112 | "curve_nistp384": null, |
| @@ -139,10 +140,10 @@ | |||
| 139 | }, | 140 | }, |
| 140 | "dsa": {"deps": ["bn_rand", "asn1", "obj"]}, | 141 | "dsa": {"deps": ["bn_rand", "asn1", "obj"]}, |
| 141 | "dh": {"deps": ["bn_rand"]}, | 142 | "dh": {"deps": ["bn_rand"]}, |
| 142 | - "ecdh": {"opts": ["curve_nistp224", "curve_nistp256", "curve_nistp384", "curve_nistp521", "curve_bp256r1", "curve_bp384r1", "curve_bp512r1"]}, | 143 | + "ecdh": {"opts": ["curve_nistp192", "curve_nistp224", "curve_nistp256", "curve_nistp384", "curve_nistp521", "curve_bp256r1", "curve_bp384r1", "curve_bp512r1"]}, |
| 143 | "ecdsa": { | 144 | "ecdsa": { |
| 144 | "deps": ["asn1", "obj"], | 145 | "deps": ["asn1", "obj"], |
| 145 | - "opts": ["curve_nistp224", "curve_nistp256", "curve_nistp384", "curve_nistp521", "curve_bp256r1", "curve_bp384r1", "curve_bp512r1"] | 146 | + "opts": ["curve_nistp192", "curve_nistp224", "curve_nistp256", "curve_nistp384", "curve_nistp521", "curve_bp256r1", "curve_bp384r1", "curve_bp512r1"] |
| 146 | }, | 147 | }, |
| 147 | "curve25519": { | 148 | "curve25519": { |
| 148 | "ed25519": {"deps": ["sha512"]}, | 149 | "ed25519": {"deps": ["sha512"]}, |
| @@ -1133,7 +1134,7 @@ | |||
| 1133 | "ecc": { | 1134 | "ecc": { |
| 1134 | ".features": [ | 1135 | ".features": [ |
| 1135 | "ecc", | 1136 | "ecc", |
| 1136 | - "curve_nistp224", "curve_nistp256", "curve_nistp384", "curve_nistp521", | 1137 | + "curve_nistp192", "curve_nistp224", "curve_nistp256", "curve_nistp384", "curve_nistp521", |
| 1137 | "curve_bp256r1", "curve_bp384r1", "curve_bp512r1", | 1138 | "curve_bp256r1", "curve_bp384r1", "curve_bp512r1", |
| 1138 | "curve_sm2" | 1139 | "curve_sm2" |
| 1139 | ], | 1140 | ], |
| @@ -701,7 +701,8 @@ chacha20poly1305, chacha20, rsa" | |||
| 701 | 701 | ||
| 702 | !defined(HITLS_CRYPTO_CURVE_NISTP384) && !defined(HITLS_CRYPTO_CURVE_NISTP521) && \ | 702 | !defined(HITLS_CRYPTO_CURVE_NISTP384) && !defined(HITLS_CRYPTO_CURVE_NISTP521) && \ |
| 703 | !defined(HITLS_CRYPTO_CURVE_BP256R1) && !defined(HITLS_CRYPTO_CURVE_BP384R1) && \ | 703 | !defined(HITLS_CRYPTO_CURVE_BP256R1) && !defined(HITLS_CRYPTO_CURVE_BP384R1) && \ |
| 704 | - !defined(HITLS_CRYPTO_CURVE_BP512R1) && !defined(HITLS_CRYPTO_CURVE_192WAPI) | 704 | + !defined(HITLS_CRYPTO_CURVE_BP512R1) && !defined(HITLS_CRYPTO_CURVE_192WAPI) && \ |
| 705 | + !defined(HITLS_CRYPTO_CURVE_NISTP192) | ||
| 705 | 706 | ||
| 706 | 707 | ||
| 707 | 708 | ||
| @@ -710,7 +711,8 @@ chacha20poly1305, chacha20, rsa" | |||
| 710 | 711 | ||
| 711 | !defined(HITLS_CRYPTO_CURVE_NISTP384) && !defined(HITLS_CRYPTO_CURVE_NISTP521) && \ | 712 | !defined(HITLS_CRYPTO_CURVE_NISTP384) && !defined(HITLS_CRYPTO_CURVE_NISTP521) && \ |
| 712 | !defined(HITLS_CRYPTO_CURVE_BP256R1) && !defined(HITLS_CRYPTO_CURVE_BP384R1) && \ | 713 | !defined(HITLS_CRYPTO_CURVE_BP256R1) && !defined(HITLS_CRYPTO_CURVE_BP384R1) && \ |
| 713 | - !defined(HITLS_CRYPTO_CURVE_BP512R1) && !defined(HITLS_CRYPTO_CURVE_192WAPI) | 714 | + !defined(HITLS_CRYPTO_CURVE_BP512R1) && !defined(HITLS_CRYPTO_CURVE_192WAPI) && \ |
| 715 | + !defined(HITLS_CRYPTO_CURVE_NISTP192) | ||
| 714 | 716 | ||
| 715 | 717 | ||
| 716 | 718 | ||
| @@ -540,6 +540,9 @@ | |||
| 540 | 540 | ||
| 541 | 541 | ||
| 542 | 542 | ||
| 543 | + | ||
| 544 | + | ||
| 545 | + | ||
| 543 | 546 | ||
| 544 | 547 | ||
| 545 | 548 | ||
| @@ -569,7 +572,8 @@ | |||
| 569 | 572 | ||
| 570 | defined(HITLS_CRYPTO_CURVE_NISTP384) || defined(HITLS_CRYPTO_CURVE_NISTP521) || \ | 573 | defined(HITLS_CRYPTO_CURVE_NISTP384) || defined(HITLS_CRYPTO_CURVE_NISTP521) || \ |
| 571 | defined(HITLS_CRYPTO_CURVE_BP256R1) || defined(HITLS_CRYPTO_CURVE_BP384R1) || \ | 574 | defined(HITLS_CRYPTO_CURVE_BP256R1) || defined(HITLS_CRYPTO_CURVE_BP384R1) || \ |
| 572 | - defined(HITLS_CRYPTO_CURVE_BP512R1) || defined(HITLS_CRYPTO_CURVE_SM2) | 575 | + defined(HITLS_CRYPTO_CURVE_BP512R1) || defined(HITLS_CRYPTO_CURVE_SM2) || \ |
| 576 | + defined(HITLS_CRYPTO_CURVE_NISTP192) | ||
| 573 | 577 | ||
| 574 | 578 | ||
| 575 | 579 | ||
| @@ -776,12 +780,13 @@ | |||
| 776 | 780 | ||
| 777 | 781 | ||
| 778 | 782 | ||
| 779 | - #if (((defined(HITLS_CRYPTO_CURVE_NISTP224) || defined(HITLS_CRYPTO_CURVE_NISTP521)) && \ | 783 | + #if defined(HITLS_CRYPTO_CURVE_NISTP192) || \ |
| 784 | + ((defined(HITLS_CRYPTO_CURVE_NISTP224) || defined(HITLS_CRYPTO_CURVE_NISTP521)) && \ | ||
| 780 | !defined(HITLS_CRYPTO_NIST_USE_ACCEL)) || \ | 785 | !defined(HITLS_CRYPTO_NIST_USE_ACCEL)) || \ |
| 781 | - defined(HITLS_CRYPTO_CURVE_NISTP384) || \ | 786 | + (HITLS_CRYPTO_CURVE_NISTP384) || \ |
| 782 | - (defined(HITLS_CRYPTO_CURVE_NISTP256) && !defined(HITLS_CRYPTO_CURVE_NISTP256_ASM) && \ | 787 | + (defined(HITLS_CRYPTO_CURVE_NISTP256) && (!defined(HITLS_CRYPTO_CURVE_NISTP256_ASM) || \ |
| 783 | - (!defined(HITLS_CRYPTO_NIST_ECC_ACCELERATE)) && (!defined(HITLS_CRYPTO_NIST_USE_ACCEL))) || \ | 788 | + (!defined(HITLS_CRYPTO_NIST_ECC_ACCELERATE))) && (!defined(HITLS_CRYPTO_NIST_USE_ACCEL))) || \ |
| 784 | - (defined(HITLS_CRYPTO_CURVE_SM2) && !defined(HITLS_CRYPTO_CURVE_SM2_ASM))) | 789 | + (defined(HITLS_CRYPTO_CURVE_SM2) && !defined(HITLS_CRYPTO_CURVE_SM2_ASM)) |
| 785 | 790 | ||
| 786 | 791 | ||
| 787 | 792 | ||
| @@ -750,33 +750,16 @@ int32_t ModSm2P256(BN_BigNum *r, const BN_BigNum *a, const BN_BigNum *m, BN_Opti | |||
| 750 | 750 | ||
| 751 | 751 | ||
| 752 | 752 | ||
| 753 | -int32_t ModNistP224(BN_BigNum *r, const BN_BigNum *a, const BN_BigNum *m, BN_Optimizer *opt) | 753 | +#define ModNistP192(r, a, m, opt) BN_Mod(r, a, m, opt) |
| 754 | -{ | 754 | +#define ModNistP224(r, a, m, opt) BN_Mod(r, a, m, opt) |
| 755 | - return BN_Mod(r, a, m, opt); | 755 | +#define ModNistP256(r, a, m, opt) BN_Mod(r, a, m, opt) |
| 756 | -} | 756 | +#define ModNistP384(r, a, m, opt) BN_Mod(r, a, m, opt) |
| 757 | - | 757 | +#define ModNistP521(r, a, m, opt) BN_Mod(r, a, m, opt) |
| 758 | -int32_t ModNistP256(BN_BigNum *r, const BN_BigNum *a, const BN_BigNum *m, BN_Optimizer *opt) | ||
| 759 | -{ | ||
| 760 | - return BN_Mod(r, a, m, opt); | ||
| 761 | -} | ||
| 762 | 758 | ||
| 763 | 759 | ||
| 764 | -int32_t ModSm2P256(BN_BigNum *r, const BN_BigNum *a, const BN_BigNum *m, BN_Optimizer *opt) | 760 | +#define ModSm2P256(r, a, m, opt) BN_Mod(r, a, m, opt) |
| 765 | -{ | ||
| 766 | - return BN_Mod(r, a, m, opt); | ||
| 767 | -} | ||
| 768 | 761 | ||
| 769 | 762 | ||
| 770 | -int32_t ModNistP384(BN_BigNum *r, const BN_BigNum *a, const BN_BigNum *m, BN_Optimizer *opt) | ||
| 771 | -{ | ||
| 772 | - return BN_Mod(r, a, m, opt); | ||
| 773 | -} | ||
| 774 | - | ||
| 775 | -int32_t ModNistP521(BN_BigNum *r, const BN_BigNum *a, const BN_BigNum *m, BN_Optimizer *opt) | ||
| 776 | -{ | ||
| 777 | - return BN_Mod(r, a, m, opt); | ||
| 778 | -} | ||
| 779 | - | ||
| 780 | 763 | ||
| 781 | 764 | ||
| 782 | 765 | ||
| @@ -848,27 +831,11 @@ static uint32_t SqrNistP384(BN_UINT *r, uint32_t rSize, const BN_UINT *a, uint32 | |||
| 848 | return size; | 831 | return size; |
| 849 | } | 832 | } |
| 850 | 833 | ||
| 851 | -static uint32_t MulNistP256P224(BN_UINT *r, uint32_t rSize, const BN_UINT *a, uint32_t aSize, | ||
| 852 | - const BN_UINT *b, uint32_t bSize) | ||
| 853 | -{ | ||
| 854 | - return BinMul(r, rSize, a, aSize, b, bSize); | ||
| 855 | -} | ||
| 856 | 834 | ||
| 857 | -static uint32_t SqrNistP256P224(BN_UINT *r, uint32_t rSize, const BN_UINT *a, uint32_t aSize) | 835 | +#define MulNistP256P224(r, rSize, a, aSize, b, bSize) BinMul(r, rSize, a, aSize, b, bSize) |
| 858 | -{ | 836 | +#define SqrNistP256P224(r, rSize, a, aSize) BinSqr(r, rSize, a, aSize) |
| 859 | - return BinSqr(r, rSize, a, aSize); | 837 | +#define MulNistP384(r, rSize, a, aSize, b, bSize) BinMul(r, rSize, a, aSize, b, bSize) |
| 860 | -} | 838 | +#define SqrNistP384(r, rSize, a, aSize) BinSqr(r, rSize, a, aSize) |
| 861 | - | ||
| 862 | -static uint32_t MulNistP384(BN_UINT *r, uint32_t rSize, const BN_UINT *a, uint32_t aSize, | ||
| 863 | - const BN_UINT *b, uint32_t bSize) | ||
| 864 | -{ | ||
| 865 | - return BinMul(r, rSize, a, aSize, b, bSize); | ||
| 866 | -} | ||
| 867 | - | ||
| 868 | -static uint32_t SqrNistP384(BN_UINT *r, uint32_t rSize, const BN_UINT *a, uint32_t aSize) | ||
| 869 | -{ | ||
| 870 | - return BinSqr(r, rSize, a, aSize); | ||
| 871 | -} | ||
| 872 | 839 | ||
| 873 | 840 | ||
| 874 | 841 | ||
| @@ -972,6 +939,8 @@ int32_t BN_ModNistEccMul(BN_BigNum *r, const BN_BigNum *a, const BN_BigNum *b, v | |||
| 972 | } else if (bits == 521) { // 521bit | 939 | } else if (bits == 521) { // 521bit |
| 973 | rMul.size = BinMul(rMul.data, size, a->data, mod->size, b->data, mod->size); | 940 | rMul.size = BinMul(rMul.data, size, a->data, mod->size, b->data, mod->size); |
| 974 | ModNistP521(r, &rMul, mod, opt); | 941 | ModNistP521(r, &rMul, mod, opt); |
| 942 | + } else if (bits == 192) { // 192bit | ||
| 943 | + return BN_ModMul(r, a, b, mod, opt); | ||
| 975 | } else { | 944 | } else { |
| 976 | BSL_ERR_PUSH_ERROR(CRYPT_BN_ERR_QUICK_MODDATA); | 945 | BSL_ERR_PUSH_ERROR(CRYPT_BN_ERR_QUICK_MODDATA); |
| 977 | return CRYPT_BN_ERR_QUICK_MODDATA; | 946 | return CRYPT_BN_ERR_QUICK_MODDATA; |
| @@ -1026,6 +995,8 @@ int32_t BN_ModNistEccSqr(BN_BigNum *r, const BN_BigNum *a, void *data, BN_Optimi | |||
| 1026 | } else if (bits == 521) { // 521bit | 995 | } else if (bits == 521) { // 521bit |
| 1027 | rSqr.size = BinSqr(rSqr.data, size, a->data, mod->size); | 996 | rSqr.size = BinSqr(rSqr.data, size, a->data, mod->size); |
| 1028 | ModNistP521(r, &rSqr, mod, opt); | 997 | ModNistP521(r, &rSqr, mod, opt); |
| 998 | + } else if (bits == 192) { // 192bit | ||
| 999 | + return BN_ModSqr(r, a, mod, opt); | ||
| 1029 | } else { | 1000 | } else { |
| 1030 | BSL_ERR_PUSH_ERROR(CRYPT_BN_ERR_QUICK_MODDATA); | 1001 | BSL_ERR_PUSH_ERROR(CRYPT_BN_ERR_QUICK_MODDATA); |
| 1031 | return CRYPT_BN_ERR_QUICK_MODDATA; | 1002 | return CRYPT_BN_ERR_QUICK_MODDATA; |
| @@ -211,7 +211,7 @@ int32_t CRYPT_ENCODE_RsaPubkeyAsn1Buff(BSL_ASN1_Buffer *pubAsn1, BSL_Buffer *enc | |||
| 211 | 211 | ||
| 212 | static inline bool IsEcdsaEcParaId(int32_t paraId) | 212 | static inline bool IsEcdsaEcParaId(int32_t paraId) |
| 213 | { | 213 | { |
| 214 | - return paraId == CRYPT_ECC_NISTP224 || paraId == CRYPT_ECC_NISTP256 || | 214 | + return paraId == CRYPT_ECC_NISTP192 || paraId == CRYPT_ECC_NISTP224 || paraId == CRYPT_ECC_NISTP256 || |
| 215 | paraId == CRYPT_ECC_NISTP384 || paraId == CRYPT_ECC_NISTP521 || | 215 | paraId == CRYPT_ECC_NISTP384 || paraId == CRYPT_ECC_NISTP521 || |
| 216 | paraId == CRYPT_ECC_BRAINPOOLP256R1 || paraId == CRYPT_ECC_BRAINPOOLP384R1 || | 216 | paraId == CRYPT_ECC_BRAINPOOLP256R1 || paraId == CRYPT_ECC_BRAINPOOLP384R1 || |
| 217 | paraId == CRYPT_ECC_BRAINPOOLP512R1; | 217 | paraId == CRYPT_ECC_BRAINPOOLP512R1; |
| @@ -30,11 +30,12 @@ typedef struct { | |||
| 30 | } ECC_MethodMap; | 30 | } ECC_MethodMap; |
| 31 | 31 | ||
| 32 | 32 | ||
| 33 | -#if (((defined(HITLS_CRYPTO_CURVE_NISTP224) || defined(HITLS_CRYPTO_CURVE_NISTP521)) && \ | 33 | +#if defined(HITLS_CRYPTO_CURVE_NISTP192) || \ |
| 34 | + ((defined(HITLS_CRYPTO_CURVE_NISTP224) || defined(HITLS_CRYPTO_CURVE_NISTP521)) && \ | ||
| 34 | !defined(HITLS_CRYPTO_NIST_USE_ACCEL)) || \ | 35 | !defined(HITLS_CRYPTO_NIST_USE_ACCEL)) || \ |
| 35 | defined(HITLS_CRYPTO_CURVE_NISTP384) || \ | 36 | defined(HITLS_CRYPTO_CURVE_NISTP384) || \ |
| 36 | (defined(HITLS_CRYPTO_CURVE_NISTP256) && (!defined(HITLS_CRYPTO_CURVE_NISTP256_ASM) || \ | 37 | (defined(HITLS_CRYPTO_CURVE_NISTP256) && (!defined(HITLS_CRYPTO_CURVE_NISTP256_ASM) || \ |
| 37 | - (!defined(HITLS_CRYPTO_NIST_ECC_ACCELERATE))) && (!defined(HITLS_CRYPTO_NIST_USE_ACCEL)))) | 38 | + (!defined(HITLS_CRYPTO_NIST_ECC_ACCELERATE))) && (!defined(HITLS_CRYPTO_NIST_USE_ACCEL))) |
| 38 | static const ECC_Method EC_METHOD_NIST = { | 39 | static const ECC_Method EC_METHOD_NIST = { |
| 39 | .pointMulAdd = ECP_PointMulAdd, | 40 | .pointMulAdd = ECP_PointMulAdd, |
| 40 | .pointMul = ECP_PointMul, | 41 | .pointMul = ECP_PointMul, |
| @@ -187,6 +188,15 @@ static const ECC_Method EC_METHOD_NIST_P256 = { | |||
| 187 | 188 | ||
| 188 | 189 | ||
| 189 | static const ECC_MethodMap EC_METHODS[] = { | 190 | static const ECC_MethodMap EC_METHODS[] = { |
| 191 | +// p192 | ||
| 192 | + | ||
| 193 | + | ||
| 194 | + { CRYPT_ECC_NISTP192, &EC_METHOD_NIST }, // Common nist cal + fast modulus reduction of Bn | ||
| 195 | + | ||
| 196 | + { CRYPT_ECC_NISTP192, &EC_METHOD_NIST_MONT }, | ||
| 197 | + | ||
| 198 | + | ||
| 199 | + | ||
| 190 | // p224 | 200 | // p224 |
| 191 | 201 | ||
| 192 | 202 | ||
| @@ -43,12 +43,44 @@ typedef struct { | |||
| 43 | 43 | ||
| 44 | 44 | ||
| 45 | defined(HITLS_CRYPTO_CURVE_NISTP384) || defined(HITLS_CRYPTO_CURVE_NISTP521) || \ | 45 | defined(HITLS_CRYPTO_CURVE_NISTP384) || defined(HITLS_CRYPTO_CURVE_NISTP521) || \ |
| 46 | - defined(HITLS_CRYPTO_CURVE_SM2) | 46 | + defined(HITLS_CRYPTO_CURVE_NISTP192) || defined(HITLS_CRYPTO_CURVE_SM2) |
| 47 | static const uint8_t NIST_P_H[] = { | 47 | static const uint8_t NIST_P_H[] = { |
| 48 | 0x01 | 48 | 0x01 |
| 49 | }; | 49 | }; |
| 50 | 50 | ||
| 51 | 51 | ||
| 52 | + | ||
| 53 | +static const uint8_t NIST_P192_P[] = { | ||
| 54 | + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
| 55 | + 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff | ||
| 56 | +}; | ||
| 57 | + | ||
| 58 | +static const uint8_t NIST_P192_A[] = { | ||
| 59 | + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
| 60 | + 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc | ||
| 61 | +}; | ||
| 62 | + | ||
| 63 | +static const uint8_t NIST_P192_B[] = { | ||
| 64 | + 0x64, 0x21, 0x05, 0x19, 0xe5, 0x9c, 0x80, 0xe7, 0x0f, 0xa7, 0xe9, 0xab, | ||
| 65 | + 0x72, 0x24, 0x30, 0x49, 0xfe, 0xb8, 0xde, 0xec, 0xc1, 0x46, 0xb9, 0xb1 | ||
| 66 | +}; | ||
| 67 | + | ||
| 68 | +static const uint8_t NIST_P192_X[] = { | ||
| 69 | + 0x18, 0x8d, 0xa8, 0x0e, 0xb0, 0x30, 0x90, 0xf6, 0x7c, 0xbf, 0x20, 0xeb, | ||
| 70 | + 0x43, 0xa1, 0x88, 0x00, 0xf4, 0xff, 0x0a, 0xfd, 0x82, 0xff, 0x10, 0x12 | ||
| 71 | +}; | ||
| 72 | + | ||
| 73 | +static const uint8_t NIST_P192_Y[] = { | ||
| 74 | + 0x07, 0x19, 0x2b, 0x95, 0xff, 0xc8, 0xda, 0x78, 0x63, 0x10, 0x11, 0xed, | ||
| 75 | + 0x6b, 0x24, 0xcd, 0xd5, 0x73, 0xf9, 0x77, 0xa1, 0x1e, 0x79, 0x48, 0x11 | ||
| 76 | +}; | ||
| 77 | + | ||
| 78 | +static const uint8_t NIST_P192_N[] = { | ||
| 79 | + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
| 80 | + 0x99, 0xde, 0xf8, 0x36, 0x14, 0x6b, 0xc9, 0xb1, 0xb4, 0xd2, 0x28, 0x31 | ||
| 81 | +}; | ||
| 82 | + | ||
| 83 | + | ||
| 52 | 84 | ||
| 53 | static const uint8_t NIST_P224_P[] = { | 85 | static const uint8_t NIST_P224_P[] = { |
| 54 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | 86 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| @@ -355,7 +387,7 @@ static const uint8_t NIST_SM2_N[] = { | |||
| 355 | 387 | ||
| 356 | 388 | ||
| 357 | defined(HITLS_CRYPTO_CURVE_NISTP384) || defined(HITLS_CRYPTO_CURVE_NISTP521) || \ | 389 | defined(HITLS_CRYPTO_CURVE_NISTP384) || defined(HITLS_CRYPTO_CURVE_NISTP521) || \ |
| 358 | - defined(HITLS_CRYPTO_CURVE_SM2) | 390 | + defined(HITLS_CRYPTO_CURVE_NISTP192) || defined(HITLS_CRYPTO_CURVE_SM2) |
| 359 | 391 | ||
| 360 | static const CURVE_Para paraNist# | 392 | static const CURVE_Para paraNist# |
| 361 | .p.data = NIST_# | 393 | .p.data = NIST_# |
| @@ -395,6 +427,9 @@ static const uint8_t NIST_SM2_N[] = { | |||
| 395 | } | 427 | } |
| 396 | 428 | ||
| 397 | 429 | ||
| 430 | + | ||
| 431 | +CRYPT_CURVE_PARA_DECLARE(P192); | ||
| 432 | + | ||
| 398 | 433 | ||
| 399 | CRYPT_CURVE_PARA_DECLARE(P224); | 434 | CRYPT_CURVE_PARA_DECLARE(P224); |
| 400 | 435 | ||
| @@ -427,6 +462,9 @@ typedef struct { | |||
| 427 | } CURVE_ParaMap; | 462 | } CURVE_ParaMap; |
| 428 | 463 | ||
| 429 | static const CURVE_ParaMap CURVE_PARAS[] = { | 464 | static const CURVE_ParaMap CURVE_PARAS[] = { |
| 465 | + | ||
| 466 | + { CRYPT_ECC_NISTP192, ¶NistP192 }, | ||
| 467 | + | ||
| 430 | 468 | ||
| 431 | { CRYPT_ECC_NISTP224, ¶NistP224 }, | 469 | { CRYPT_ECC_NISTP224, ¶NistP224 }, |
| 432 | 470 | ||
| @@ -346,6 +346,7 @@ ERR: | |||
| 346 | static const char *EcCurveId2nist(CRYPT_PKEY_ParaId id) | 346 | static const char *EcCurveId2nist(CRYPT_PKEY_ParaId id) |
| 347 | { | 347 | { |
| 348 | static EC_NAME nistCurves[] = { | 348 | static EC_NAME nistCurves[] = { |
| 349 | + {"P-192", CRYPT_ECC_NISTP192}, | ||
| 349 | {"P-224", CRYPT_ECC_NISTP224}, | 350 | {"P-224", CRYPT_ECC_NISTP224}, |
| 350 | {"P-256", CRYPT_ECC_NISTP256}, | 351 | {"P-256", CRYPT_ECC_NISTP256}, |
| 351 | {"P-384", CRYPT_ECC_NISTP384}, | 352 | {"P-384", CRYPT_ECC_NISTP384}, |
| @@ -24,7 +24,8 @@ | |||
| 24 | 24 | ||
| 25 | 25 | ||
| 26 | 26 | ||
| 27 | - defined(HITLS_CRYPTO_CURVE_NISTP384) || defined(HITLS_CRYPTO_CURVE_NISTP521) || defined(HITLS_CRYPTO_CURVE_SM2) | 27 | + defined(HITLS_CRYPTO_CURVE_NISTP384) || defined(HITLS_CRYPTO_CURVE_NISTP521) || defined(HITLS_CRYPTO_CURVE_SM2) || \ |
| 28 | + defined(HITLS_CRYPTO_CURVE_NISTP192) | ||
| 28 | 29 | ||
| 29 | static int32_t CreatTmpBn(BN_BigNum **t1, BN_BigNum **t2, BN_BigNum **t3, BN_BigNum **t4, uint32_t bits) | 30 | static int32_t CreatTmpBn(BN_BigNum **t1, BN_BigNum **t2, BN_BigNum **t3, BN_BigNum **t4, uint32_t bits) |
| 30 | { | 31 | { |
| @@ -49,9 +49,9 @@ int32_t ECP_PointAtInfinity(const ECC_Para *para, const ECC_Point *pt) | |||
| 49 | // Check whether the point is on the curve. | 49 | // Check whether the point is on the curve. |
| 50 | int32_t ECP_PointOnCurve(const ECC_Para *para, const ECC_Point *pt) | 50 | int32_t ECP_PointOnCurve(const ECC_Para *para, const ECC_Point *pt) |
| 51 | { | 51 | { |
| 52 | - int32_t ret = 0; | 52 | + uint32_t nistList[] = {CRYPT_ECC_NISTP192, CRYPT_ECC_NISTP224, CRYPT_ECC_NISTP256, CRYPT_ECC_NISTP384, |
| 53 | - uint32_t nistList[] = {CRYPT_ECC_NISTP224, CRYPT_ECC_NISTP256, CRYPT_ECC_NISTP384, CRYPT_ECC_NISTP521}; | 53 | + CRYPT_ECC_NISTP521}; |
| 54 | - ret = ECP_PointAtInfinity(para, pt); | 54 | + int32_t ret = ECP_PointAtInfinity(para, pt); |
| 55 | if (ret != CRYPT_SUCCESS) { | 55 | if (ret != CRYPT_SUCCESS) { |
| 56 | return ret; | 56 | return ret; |
| 57 | } | 57 | } |
| @@ -625,6 +625,16 @@ BslOidString *BSL_OBJ_GetOID(BslCid ulCID); | |||
| 625 | */ | 625 | */ |
| 626 | BslCid BSL_OBJ_GetCID(const BslOidString *oidStr); | 626 | BslCid BSL_OBJ_GetCID(const BslOidString *oidStr); |
| 627 | 627 | ||
| 628 | +/** | ||
| 629 | + * @ingroup bsl_obj | ||
| 630 | + * @brief Get oid hex string from the number string | ||
| 631 | + * @param[in] oid The number string | ||
| 632 | + * @param[in] len The number string length | ||
| 633 | + * @param[out] outLen The length of hex string | ||
| 634 | + * @return Oid hex number | ||
| 635 | + */ | ||
| 636 | +uint8_t *BSL_OBJ_GetOidFromNumericString(const char *oid, uint32_t len, uint32_t *outLen); | ||
| 637 | + | ||
| 628 | 638 | ||
| 629 | } | 639 | } |
| 630 | 640 | ||
| @@ -205,6 +205,7 @@ typedef enum { | |||
| 205 | CRYPT_DH_RFC7919_4096 = BSL_CID_DH_RFC7919_4096, | 205 | CRYPT_DH_RFC7919_4096 = BSL_CID_DH_RFC7919_4096, |
| 206 | CRYPT_DH_RFC7919_6144 = BSL_CID_DH_RFC7919_6144, | 206 | CRYPT_DH_RFC7919_6144 = BSL_CID_DH_RFC7919_6144, |
| 207 | CRYPT_DH_RFC7919_8192 = BSL_CID_DH_RFC7919_8192, | 207 | CRYPT_DH_RFC7919_8192 = BSL_CID_DH_RFC7919_8192, |
| 208 | + CRYPT_ECC_NISTP192 = BSL_CID_PRIME192V1, | ||
| 208 | CRYPT_ECC_NISTP224 = BSL_CID_NIST_PRIME224, | 209 | CRYPT_ECC_NISTP224 = BSL_CID_NIST_PRIME224, |
| 209 | CRYPT_ECC_NISTP256 = BSL_CID_PRIME256V1, | 210 | CRYPT_ECC_NISTP256 = BSL_CID_PRIME256V1, |
| 210 | CRYPT_ECC_NISTP384 = BSL_CID_SECP384R1, | 211 | CRYPT_ECC_NISTP384 = BSL_CID_SECP384R1, |
| @@ -89,6 +89,8 @@ typedef enum { | |||
| 89 | HITLS_X509_EXT_SET_BCONS, /** Set the basic constraints extension. */ | 89 | HITLS_X509_EXT_SET_BCONS, /** Set the basic constraints extension. */ |
| 90 | HITLS_X509_EXT_SET_EXKUSAGE, /** Set the extended key usage extension. */ | 90 | HITLS_X509_EXT_SET_EXKUSAGE, /** Set the extended key usage extension. */ |
| 91 | HITLS_X509_EXT_SET_CRLNUMBER, /** Set the crlnumber extension. */ | 91 | HITLS_X509_EXT_SET_CRLNUMBER, /** Set the crlnumber extension. */ |
| 92 | + HITLS_X509_EXT_SET_GENERIC, /** Set a generic extension by OID. | ||
| 93 | + Note: Only supported for custom extensions. */ | ||
| 92 | 94 | ||
| 93 | HITLS_X509_EXT_GET_SKI = 0x0500, /** Get Subject Key Identifier from extensions. | 95 | HITLS_X509_EXT_GET_SKI = 0x0500, /** Get Subject Key Identifier from extensions. |
| 94 | Note: Kid is a shallow copy. */ | 96 | Note: Kid is a shallow copy. */ |
| @@ -96,6 +98,10 @@ typedef enum { | |||
| 96 | HITLS_X509_EXT_GET_AKI, /** get the Authority Key Identifier form the crl/cert/csr. */ | 98 | HITLS_X509_EXT_GET_AKI, /** get the Authority Key Identifier form the crl/cert/csr. */ |
| 97 | HITLS_X509_EXT_GET_KUSAGE, /** get the key usage form the crl/cert/csr. | 99 | HITLS_X509_EXT_GET_KUSAGE, /** get the key usage form the crl/cert/csr. |
| 98 | Note: If key usage is not set, return 0xffff. */ | 100 | Note: If key usage is not set, return 0xffff. */ |
| 101 | + HITLS_X509_EXT_GET_BCONS, /** Not supported yet. */ | ||
| 102 | + HITLS_X509_EXT_GET_SAN, /** Not supported yet. */ | ||
| 103 | + HITLS_X509_EXT_GET_GENERIC, /** Get a generic extension by OID. | ||
| 104 | + Note: Only supported for custom extensions. */ | ||
| 99 | 105 | ||
| 100 | HITLS_X509_EXT_CHECK_SKI = 0x0600, /** Check if ski is exists. */ | 106 | HITLS_X509_EXT_CHECK_SKI = 0x0600, /** Check if ski is exists. */ |
| 101 | 107 | ||
| @@ -220,6 +226,29 @@ typedef struct { | |||
| 220 | BSL_Buffer crlNumber; // crlNumber | 226 | BSL_Buffer crlNumber; // crlNumber |
| 221 | } HITLS_X509_ExtCrlNumber; | 227 | } HITLS_X509_ExtCrlNumber; |
| 222 | 228 | ||
| 229 | +/** | ||
| 230 | + * Generic extension for setting/getting arbitrary extensions by OID | ||
| 231 | + * | ||
| 232 | + * For SET operation (HITLS_X509_EXT_SET_GENERIC): | ||
| 233 | + * - oid: Input, DER-encoded OID buffer (can be converted from dot-notation using BSL_OBJ_GetOidFromNumericString) | ||
| 234 | + * - value: Input, DER-encoded extension value | ||
| 235 | + * - critical: Input, critical flag | ||
| 236 | + * | ||
| 237 | + * For GET operation (HITLS_X509_EXT_GET_GENERIC): | ||
| 238 | + * - oid: Input, DER-encoded OID buffer (used to search for the extension) | ||
| 239 | + * - value: Must be NULL on input (function will allocate memory and fill it | ||
| 240 | + * with DER-encoded extension value) | ||
| 241 | + * - critical: Output, critical flag | ||
| 242 | + * | ||
| 243 | + * Note: After GET operation, caller must free the memory allocated for value | ||
| 244 | + * field using the appropriate buffer free function. | ||
| 245 | + */ | ||
| 246 | +typedef struct { | ||
| 247 | + bool critical; /**< Critical flag of the extension */ | ||
| 248 | + BSL_Buffer oid; /**< DER-encoded OID buffer */ | ||
| 249 | + BSL_Buffer value; /**< DER-encoded extension value */ | ||
| 250 | +} HITLS_X509_ExtGeneric; | ||
| 251 | + | ||
| 223 | typedef struct { | 252 | typedef struct { |
| 224 | bool critical; | 253 | bool critical; |
| 225 | BSL_TIME time; | 254 | BSL_TIME time; |
| @@ -760,8 +760,9 @@ int32_t HITLS_X509_CertCtrl(HITLS_X509_Cert *cert, int32_t cmd, void *val, uint3 | |||
| 760 | 760 | ||
| 761 | } else if (cmd <= HITLS_X509_EXT_CHECK_SKI) { | 761 | } else if (cmd <= HITLS_X509_EXT_CHECK_SKI) { |
| 762 | static int32_t cmdSet[] = {HITLS_X509_EXT_SET_SKI, HITLS_X509_EXT_SET_AKI, HITLS_X509_EXT_SET_KUSAGE, | 762 | static int32_t cmdSet[] = {HITLS_X509_EXT_SET_SKI, HITLS_X509_EXT_SET_AKI, HITLS_X509_EXT_SET_KUSAGE, |
| 763 | - HITLS_X509_EXT_SET_SAN, HITLS_X509_EXT_SET_BCONS, HITLS_X509_EXT_SET_EXKUSAGE, HITLS_X509_EXT_GET_SKI, | 763 | + HITLS_X509_EXT_SET_SAN, HITLS_X509_EXT_SET_BCONS, HITLS_X509_EXT_SET_EXKUSAGE, HITLS_X509_EXT_SET_GENERIC, |
| 764 | - HITLS_X509_EXT_GET_AKI, HITLS_X509_EXT_CHECK_SKI, HITLS_X509_EXT_GET_KUSAGE}; | 764 | + HITLS_X509_EXT_GET_SKI, HITLS_X509_EXT_GET_AKI, HITLS_X509_EXT_CHECK_SKI, HITLS_X509_EXT_GET_KUSAGE, |
| 765 | + HITLS_X509_EXT_GET_GENERIC}; | ||
| 765 | if (!X509_CheckCmdValid(cmdSet, sizeof(cmdSet) / sizeof(int32_t), cmd)) { | 766 | if (!X509_CheckCmdValid(cmdSet, sizeof(cmdSet) / sizeof(int32_t), cmd)) { |
| 766 | BSL_ERR_PUSH_ERROR(HITLS_X509_ERR_EXT_UNSUPPORT); | 767 | BSL_ERR_PUSH_ERROR(HITLS_X509_ERR_EXT_UNSUPPORT); |
| 767 | return HITLS_X509_ERR_EXT_UNSUPPORT; | 768 | return HITLS_X509_ERR_EXT_UNSUPPORT; |
| @@ -146,7 +146,6 @@ static int32_t CmpExtByCid(const void *pExt, const void *pCid) | |||
| 146 | return cid == ext->cid ? 0 : HITLS_X509_EXT_NOT_FOUND; | 146 | return cid == ext->cid ? 0 : HITLS_X509_EXT_NOT_FOUND; |
| 147 | } | 147 | } |
| 148 | 148 | ||
| 149 | - | ||
| 150 | static int32_t CmpExtByOid(const void *pExt, const void *pOid) | 149 | static int32_t CmpExtByOid(const void *pExt, const void *pOid) |
| 151 | { | 150 | { |
| 152 | const HITLS_X509_ExtEntry *ext = pExt; | 151 | const HITLS_X509_ExtEntry *ext = pExt; |
| @@ -157,6 +156,7 @@ static int32_t CmpExtByOid(const void *pExt, const void *pOid) | |||
| 157 | return memcmp(ext->extnId.buff, oid->buff, oid->len) == 0 ? 0 : HITLS_X509_EXT_NOT_FOUND; | 156 | return memcmp(ext->extnId.buff, oid->buff, oid->len) == 0 ? 0 : HITLS_X509_EXT_NOT_FOUND; |
| 158 | } | 157 | } |
| 159 | 158 | ||
| 159 | + | ||
| 160 | static int32_t ParseExtKeyUsage(HITLS_X509_ExtEntry *extEntry, HITLS_X509_CertExt *ext) | 160 | static int32_t ParseExtKeyUsage(HITLS_X509_ExtEntry *extEntry, HITLS_X509_CertExt *ext) |
| 161 | { | 161 | { |
| 162 | uint32_t len; | 162 | uint32_t len; |
| @@ -644,58 +644,7 @@ int32_t HITLS_X509_ParseExtItem(BSL_ASN1_Buffer *extItem, HITLS_X509_ExtEntry *e | |||
| 644 | extEntry->extnValue = asnArr[HITLS_X509_EXT_VALUE_IDX]; | 644 | extEntry->extnValue = asnArr[HITLS_X509_EXT_VALUE_IDX]; |
| 645 | return ret; | 645 | return ret; |
| 646 | } | 646 | } |
| 647 | - | ||
| 648 | 647 | ||
| 649 | - | ||
| 650 | -static void FreeExtEntryCont(HITLS_X509_ExtEntry *entry) | ||
| 651 | -{ | ||
| 652 | - BSL_SAL_FREE(entry->extnId.buff); | ||
| 653 | - BSL_SAL_FREE(entry->extnValue.buff); | ||
| 654 | - entry->extnId.len = 0; | ||
| 655 | - entry->extnValue.len = 0; | ||
| 656 | -} | ||
| 657 | - | ||
| 658 | -static int32_t GetExtEntryByCid(BslList *extList, BslCid cid, HITLS_X509_ExtEntry **entry, bool *isNew) | ||
| 659 | -{ | ||
| 660 | - BslOidString *oid = BSL_OBJ_GetOID(cid); | ||
| 661 | - if (oid == NULL) { | ||
| 662 | - BSL_ERR_PUSH_ERROR(HITLS_X509_ERR_EXT_OID); | ||
| 663 | - return HITLS_X509_ERR_EXT_OID; | ||
| 664 | - } | ||
| 665 | - HITLS_X509_ExtEntry *extEntry = BSL_LIST_Search(extList, &cid, CmpExtByCid, NULL); | ||
| 666 | - if (extEntry != NULL) { | ||
| 667 | - *isNew = false; | ||
| 668 | - FreeExtEntryCont(extEntry); | ||
| 669 | - extEntry->critical = false; | ||
| 670 | - } else { | ||
| 671 | - extEntry = BSL_SAL_Calloc(1, sizeof(HITLS_X509_ExtEntry)); | ||
| 672 | - if (extEntry == NULL) { | ||
| 673 | - BSL_ERR_PUSH_ERROR(BSL_MALLOC_FAIL); | ||
| 674 | - return BSL_MALLOC_FAIL; | ||
| 675 | - } | ||
| 676 | - *isNew = true; | ||
| 677 | - } | ||
| 678 | - | ||
| 679 | - extEntry->cid = cid; | ||
| 680 | - extEntry->extnId.tag = BSL_ASN1_TAG_OBJECT_ID; | ||
| 681 | - extEntry->extnId.len = oid->octetLen; | ||
| 682 | - if (extEntry->extnId.len != 0) { | ||
| 683 | - extEntry->extnId.buff = BSL_SAL_Dump(oid->octs, oid->octetLen); | ||
| 684 | - if (extEntry->extnId.buff == NULL) { | ||
| 685 | - if (*isNew) { | ||
| 686 | - BSL_SAL_Free(extEntry); | ||
| 687 | - } | ||
| 688 | - BSL_ERR_PUSH_ERROR(BSL_DUMP_FAIL); | ||
| 689 | - return BSL_DUMP_FAIL; | ||
| 690 | - } | ||
| 691 | - } | ||
| 692 | - extEntry->extnValue.tag = BSL_ASN1_TAG_OCTETSTRING; | ||
| 693 | - *entry = extEntry; | ||
| 694 | - return HITLS_PKI_SUCCESS; | ||
| 695 | -} | ||
| 696 | - | ||
| 697 | - | ||
| 698 | - | ||
| 699 | static int32_t ParseExtAsnItem(BSL_ASN1_Buffer *asn, void *param, BSL_ASN1_List *list) | 648 | static int32_t ParseExtAsnItem(BSL_ASN1_Buffer *asn, void *param, BSL_ASN1_List *list) |
| 700 | { | 649 | { |
| 701 | HITLS_X509_Ext *ext = param; | 650 | HITLS_X509_Ext *ext = param; |
| @@ -1099,45 +1048,120 @@ static int32_t SetExtCrlNumber(HITLS_X509_Ext *ext, HITLS_X509_ExtEntry *entry, | |||
| 1099 | return ret; | 1048 | return ret; |
| 1100 | } | 1049 | } |
| 1101 | 1050 | ||
| 1102 | -int32_t HITLS_X509_SetExtList(void *param, BslList *extList, BslCid cid, BSL_Buffer *val, EncodeExtCb encodeExt) | 1051 | +static int32_t SetExtGeneric(HITLS_X509_Ext *ext, HITLS_X509_ExtEntry *entry, const void *val) |
| 1103 | { | 1052 | { |
| 1104 | - HITLS_X509_ExtEntry *extEntry = NULL; | 1053 | + (void)ext; |
| 1105 | - bool isNew; | 1054 | + const HITLS_X509_ExtGeneric *generic = (const HITLS_X509_ExtGeneric *)val; |
| 1106 | - int32_t ret = GetExtEntryByCid(extList, cid, &extEntry, &isNew); | ||
| 1107 | - if (ret != HITLS_PKI_SUCCESS) { | ||
| 1108 | - return ret; | ||
| 1109 | - } | ||
| 1110 | 1055 | ||
| 1111 | - ret = encodeExt(param, extEntry, val->data); | 1056 | + entry->critical = generic->critical; |
| 1112 | - if (ret != HITLS_PKI_SUCCESS) { | 1057 | + |
| 1113 | - FreeExtEntryCont(extEntry); | 1058 | + entry->extnValue.len = generic->value.dataLen; |
| 1114 | - if (isNew) { | 1059 | + entry->extnValue.buff = BSL_SAL_Dump(generic->value.data, generic->value.dataLen); |
| 1115 | - BSL_SAL_Free(extEntry); | 1060 | + if (entry->extnValue.buff == NULL) { |
| 1116 | - } | 1061 | + BSL_ERR_PUSH_ERROR(BSL_DUMP_FAIL); |
| 1117 | - return ret; | 1062 | + return BSL_DUMP_FAIL; |
| 1118 | - } | ||
| 1119 | - if (isNew) { | ||
| 1120 | - ret = BSL_LIST_AddElement(extList, extEntry, BSL_LIST_POS_END); | ||
| 1121 | - if (ret != BSL_SUCCESS) { | ||
| 1122 | - BSL_ERR_PUSH_ERROR(ret); | ||
| 1123 | - FreeExtEntryCont(extEntry); | ||
| 1124 | - BSL_SAL_Free(extEntry); | ||
| 1125 | - return ret; | ||
| 1126 | - } | ||
| 1127 | } | 1063 | } |
| 1128 | return HITLS_PKI_SUCCESS; | 1064 | return HITLS_PKI_SUCCESS; |
| 1129 | } | 1065 | } |
| 1130 | 1066 | ||
| 1067 | +static HITLS_X509_ExtEntry *GetExtEntry(BslList *extList, BslCid cid, BSL_Buffer *val) | ||
| 1068 | +{ | ||
| 1069 | + if (cid == BSL_CID_UNKNOWN) { | ||
| 1070 | + HITLS_X509_ExtGeneric *generic = (HITLS_X509_ExtGeneric *)val->data; | ||
| 1071 | + BSL_ASN1_Buffer oidBuf = {BSL_ASN1_TAG_OBJECT_ID, generic->oid.dataLen, generic->oid.data}; | ||
| 1072 | + return BSL_LIST_Search(extList, &oidBuf, CmpExtByOid, NULL); | ||
| 1073 | + } | ||
| 1074 | + return BSL_LIST_Search(extList, &cid, CmpExtByCid, NULL); | ||
| 1075 | +} | ||
| 1076 | + | ||
| 1077 | +static int32_t GetOidBuffer(BslCid cid, BSL_Buffer *val, BSL_Buffer *oidBuf) | ||
| 1078 | +{ | ||
| 1079 | + if (cid == BSL_CID_UNKNOWN) { | ||
| 1080 | + HITLS_X509_ExtGeneric *generic = (HITLS_X509_ExtGeneric *)val->data; | ||
| 1081 | + oidBuf->data = generic->oid.data; | ||
| 1082 | + oidBuf->dataLen = generic->oid.dataLen; | ||
| 1083 | + return HITLS_PKI_SUCCESS; | ||
| 1084 | + } | ||
| 1085 | + BslOidString *oid = BSL_OBJ_GetOID(cid); | ||
| 1086 | + if (oid == NULL || oid->octetLen == 0 || oid->octs == NULL) { | ||
| 1087 | + BSL_ERR_PUSH_ERROR(HITLS_X509_ERR_EXT_OID); | ||
| 1088 | + return HITLS_X509_ERR_EXT_OID; | ||
| 1089 | + } | ||
| 1090 | + oidBuf->data = (uint8_t *)oid->octs; | ||
| 1091 | + oidBuf->dataLen = oid->octetLen; | ||
| 1092 | + return HITLS_PKI_SUCCESS; | ||
| 1093 | +} | ||
| 1094 | + | ||
| 1095 | +int32_t HITLS_X509_SetExtList(void *param, BslList *extList, BslCid cid, BSL_Buffer *val, EncodeExtCb encodeExt) | ||
| 1096 | +{ | ||
| 1097 | + HITLS_X509_ExtEntry *existingEntry = GetExtEntry(extList, cid, val); | ||
| 1098 | + int32_t ret; | ||
| 1099 | + /* Replace existing extension */ | ||
| 1100 | + if (existingEntry != NULL) { | ||
| 1101 | + HITLS_X509_ExtEntry tmpEntry = {0, {0}, false, {BSL_ASN1_TAG_OCTETSTRING, 0, NULL}}; | ||
| 1102 | + ret = encodeExt(param, &tmpEntry, val->data); | ||
| 1103 | + if (ret != HITLS_PKI_SUCCESS) { | ||
| 1104 | + BSL_ERR_PUSH_ERROR(ret); | ||
| 1105 | + return ret; | ||
| 1106 | + } | ||
| 1107 | + BSL_SAL_Free(existingEntry->extnValue.buff); | ||
| 1108 | + existingEntry->extnValue = tmpEntry.extnValue; | ||
| 1109 | + existingEntry->critical = tmpEntry.critical; | ||
| 1110 | + return HITLS_PKI_SUCCESS; | ||
| 1111 | + } | ||
| 1112 | + | ||
| 1113 | + /* Add new extension */ | ||
| 1114 | + BSL_Buffer oidBuf = {0}; | ||
| 1115 | + if ((ret = GetOidBuffer(cid, val, &oidBuf)) != HITLS_PKI_SUCCESS) { | ||
| 1116 | + BSL_ERR_PUSH_ERROR(ret); | ||
| 1117 | + return ret; | ||
| 1118 | + } | ||
| 1119 | + | ||
| 1120 | + HITLS_X509_ExtEntry *newEntry = BSL_SAL_Calloc(1, sizeof(HITLS_X509_ExtEntry)); | ||
| 1121 | + if (newEntry == NULL) { | ||
| 1122 | + BSL_ERR_PUSH_ERROR(BSL_MALLOC_FAIL); | ||
| 1123 | + return BSL_MALLOC_FAIL; | ||
| 1124 | + } | ||
| 1125 | + newEntry->cid = cid; | ||
| 1126 | + newEntry->extnId.tag = BSL_ASN1_TAG_OBJECT_ID; | ||
| 1127 | + newEntry->extnId.len = oidBuf.dataLen; | ||
| 1128 | + newEntry->extnValue.tag = BSL_ASN1_TAG_OCTETSTRING; | ||
| 1129 | + newEntry->extnId.buff = BSL_SAL_Dump(oidBuf.data, oidBuf.dataLen); | ||
| 1130 | + if (newEntry->extnId.buff == NULL) { | ||
| 1131 | + ret = BSL_DUMP_FAIL; | ||
| 1132 | + BSL_ERR_PUSH_ERROR(ret); | ||
| 1133 | + goto ERR; | ||
| 1134 | + } | ||
| 1135 | + if ((ret = encodeExt(param, newEntry, val->data)) != HITLS_PKI_SUCCESS) { | ||
| 1136 | + BSL_ERR_PUSH_ERROR(ret); | ||
| 1137 | + goto ERR; | ||
| 1138 | + } | ||
| 1139 | + if ((ret = BSL_LIST_AddElement(extList, newEntry, BSL_LIST_POS_END)) == BSL_SUCCESS) { | ||
| 1140 | + return HITLS_PKI_SUCCESS; | ||
| 1141 | + } | ||
| 1142 | +ERR: | ||
| 1143 | + if (newEntry != NULL) { | ||
| 1144 | + BSL_SAL_FREE(newEntry->extnValue.buff); | ||
| 1145 | + BSL_SAL_FREE(newEntry->extnId.buff); | ||
| 1146 | + BSL_SAL_Free(newEntry); | ||
| 1147 | + } | ||
| 1148 | + return ret; | ||
| 1149 | +} | ||
| 1150 | + | ||
| 1131 | static int32_t SetExt(HITLS_X509_Ext *ext, BslCid cid, BSL_Buffer *val, uint32_t expectLen, EncodeExtCb encodeExt) | 1151 | static int32_t SetExt(HITLS_X509_Ext *ext, BslCid cid, BSL_Buffer *val, uint32_t expectLen, EncodeExtCb encodeExt) |
| 1132 | { | 1152 | { |
| 1133 | - if ((ext->flag & HITLS_X509_EXT_FLAG_PARSE) != 0) { | ||
| 1134 | - BSL_ERR_PUSH_ERROR(HITLS_X509_ERR_EXT_SET_AFTER_PARSE); | ||
| 1135 | - return HITLS_X509_ERR_EXT_SET_AFTER_PARSE; | ||
| 1136 | - } | ||
| 1137 | if (val->dataLen != expectLen) { | 1153 | if (val->dataLen != expectLen) { |
| 1138 | BSL_ERR_PUSH_ERROR(HITLS_X509_ERR_INVALID_PARAM); | 1154 | BSL_ERR_PUSH_ERROR(HITLS_X509_ERR_INVALID_PARAM); |
| 1139 | return HITLS_X509_ERR_INVALID_PARAM; | 1155 | return HITLS_X509_ERR_INVALID_PARAM; |
| 1140 | } | 1156 | } |
| 1157 | + if (cid == BSL_CID_UNKNOWN) { | ||
| 1158 | + HITLS_X509_ExtGeneric *generic = (HITLS_X509_ExtGeneric *)val->data; | ||
| 1159 | + if (generic->oid.data == NULL || generic->oid.dataLen == 0 || | ||
| 1160 | + generic->value.data == NULL || generic->value.dataLen == 0) { | ||
| 1161 | + BSL_ERR_PUSH_ERROR(HITLS_X509_ERR_INVALID_PARAM); | ||
| 1162 | + return HITLS_X509_ERR_INVALID_PARAM; | ||
| 1163 | + } | ||
| 1164 | + } | ||
| 1141 | 1165 | ||
| 1142 | int32_t ret = HITLS_X509_SetExtList(ext, ext->extList, cid, val, encodeExt); | 1166 | int32_t ret = HITLS_X509_SetExtList(ext, ext->extList, cid, val, encodeExt); |
| 1143 | if (ret != HITLS_PKI_SUCCESS) { | 1167 | if (ret != HITLS_PKI_SUCCESS) { |
| @@ -1151,6 +1175,10 @@ static int32_t SetExt(HITLS_X509_Ext *ext, BslCid cid, BSL_Buffer *val, uint32_t | |||
| 1151 | 1175 | ||
| 1152 | static int32_t SetExtCtrl(HITLS_X509_Ext *ext, int32_t cmd, void *val, uint32_t valLen) | 1176 | static int32_t SetExtCtrl(HITLS_X509_Ext *ext, int32_t cmd, void *val, uint32_t valLen) |
| 1153 | { | 1177 | { |
| 1178 | + if ((ext->flag & HITLS_X509_EXT_FLAG_PARSE) != 0) { | ||
| 1179 | + BSL_ERR_PUSH_ERROR(HITLS_X509_ERR_EXT_SET_AFTER_PARSE); | ||
| 1180 | + return HITLS_X509_ERR_EXT_SET_AFTER_PARSE; | ||
| 1181 | + } | ||
| 1154 | BSL_Buffer buff = {val, valLen}; | 1182 | BSL_Buffer buff = {val, valLen}; |
| 1155 | switch (cmd) { | 1183 | switch (cmd) { |
| 1156 | case HITLS_X509_EXT_SET_BCONS: | 1184 | case HITLS_X509_EXT_SET_BCONS: |
| @@ -1173,6 +1201,8 @@ static int32_t SetExtCtrl(HITLS_X509_Ext *ext, int32_t cmd, void *val, uint32_t | |||
| 1173 | case HITLS_X509_EXT_SET_CRLNUMBER: | 1201 | case HITLS_X509_EXT_SET_CRLNUMBER: |
| 1174 | return SetExt(ext, BSL_CID_CE_CRLNUMBER, &buff, sizeof(HITLS_X509_ExtCrlNumber), | 1202 | return SetExt(ext, BSL_CID_CE_CRLNUMBER, &buff, sizeof(HITLS_X509_ExtCrlNumber), |
| 1175 | (EncodeExtCb)SetExtCrlNumber); | 1203 | (EncodeExtCb)SetExtCrlNumber); |
| 1204 | + case HITLS_X509_EXT_SET_GENERIC: | ||
| 1205 | + return SetExt(ext, BSL_CID_UNKNOWN, &buff, sizeof(HITLS_X509_ExtGeneric), (EncodeExtCb)SetExtGeneric); | ||
| 1176 | default: | 1206 | default: |
| 1177 | BSL_ERR_PUSH_ERROR(HITLS_X509_ERR_INVALID_PARAM); | 1207 | BSL_ERR_PUSH_ERROR(HITLS_X509_ERR_INVALID_PARAM); |
| 1178 | return HITLS_X509_ERR_INVALID_PARAM; | 1208 | return HITLS_X509_ERR_INVALID_PARAM; |
| @@ -1209,6 +1239,31 @@ static int32_t GetExtKeyUsage(HITLS_X509_Ext *ext, uint32_t *val, uint32_t valLe | |||
| 1209 | return HITLS_PKI_SUCCESS; | 1239 | return HITLS_PKI_SUCCESS; |
| 1210 | } | 1240 | } |
| 1211 | 1241 | ||
| 1242 | +/* Generic extension get: user provides DER-encoded OID buffer and output buffer */ | ||
| 1243 | +static int32_t GetGenericExt(HITLS_X509_Ext *ext, HITLS_X509_ExtGeneric *generic, uint32_t valLen) | ||
| 1244 | +{ | ||
| 1245 | + if (valLen != sizeof(HITLS_X509_ExtGeneric) || | ||
| 1246 | + generic->oid.data == NULL || generic->oid.dataLen == 0 || generic->value.data != NULL) { | ||
| 1247 | + BSL_ERR_PUSH_ERROR(HITLS_X509_ERR_INVALID_PARAM); | ||
| 1248 | + return HITLS_X509_ERR_INVALID_PARAM; | ||
| 1249 | + } | ||
| 1250 | + BSL_ASN1_Buffer oidBuf = {BSL_ASN1_TAG_OBJECT_ID, generic->oid.dataLen, generic->oid.data}; | ||
| 1251 | + HITLS_X509_ExtEntry *extEntry = BSL_LIST_Search(ext->extList, &oidBuf, CmpExtByOid, NULL); | ||
| 1252 | + if (extEntry == NULL) { | ||
| 1253 | + BSL_ERR_PUSH_ERROR(HITLS_X509_ERR_EXT_NOT_FOUND); | ||
| 1254 | + return HITLS_X509_ERR_EXT_NOT_FOUND; | ||
| 1255 | + } | ||
| 1256 | + | ||
| 1257 | + generic->value.data = BSL_SAL_Dump(extEntry->extnValue.buff, extEntry->extnValue.len); | ||
| 1258 | + if (generic->value.data == NULL) { | ||
| 1259 | + BSL_ERR_PUSH_ERROR(BSL_DUMP_FAIL); | ||
| 1260 | + return BSL_DUMP_FAIL; | ||
| 1261 | + } | ||
| 1262 | + generic->value.dataLen = extEntry->extnValue.len; | ||
| 1263 | + generic->critical = extEntry->critical; | ||
| 1264 | + return HITLS_PKI_SUCCESS; | ||
| 1265 | +} | ||
| 1266 | + | ||
| 1212 | static int32_t GetExtCtrl(HITLS_X509_Ext *ext, int32_t cmd, void *val, uint32_t valLen) | 1267 | static int32_t GetExtCtrl(HITLS_X509_Ext *ext, int32_t cmd, void *val, uint32_t valLen) |
| 1213 | { | 1268 | { |
| 1214 | BSL_Buffer buff = {val, valLen}; | 1269 | BSL_Buffer buff = {val, valLen}; |
| @@ -1224,6 +1279,8 @@ static int32_t GetExtCtrl(HITLS_X509_Ext *ext, int32_t cmd, void *val, uint32_t | |||
| 1224 | (DecodeExtCb)X509_ParseCrlNumber); | 1279 | (DecodeExtCb)X509_ParseCrlNumber); |
| 1225 | case HITLS_X509_EXT_GET_KUSAGE: | 1280 | case HITLS_X509_EXT_GET_KUSAGE: |
| 1226 | return GetExtKeyUsage(ext, val, valLen); | 1281 | return GetExtKeyUsage(ext, val, valLen); |
| 1282 | + case HITLS_X509_EXT_GET_GENERIC: | ||
| 1283 | + return GetGenericExt(ext, (HITLS_X509_ExtGeneric *)val, valLen); | ||
| 1227 | default: | 1284 | default: |
| 1228 | BSL_ERR_PUSH_ERROR(HITLS_X509_ERR_INVALID_PARAM); | 1285 | BSL_ERR_PUSH_ERROR(HITLS_X509_ERR_INVALID_PARAM); |
| 1229 | return HITLS_X509_ERR_INVALID_PARAM; | 1286 | return HITLS_X509_ERR_INVALID_PARAM; |
| @@ -1278,8 +1335,9 @@ int32_t HITLS_X509_ExtCtrl(HITLS_X509_Ext *ext, int32_t cmd, void *val, uint32_t | |||
| 1278 | return HITLS_X509_ERR_EXT_UNSUPPORT; | 1335 | return HITLS_X509_ERR_EXT_UNSUPPORT; |
| 1279 | } | 1336 | } |
| 1280 | static int32_t cmdSet[] = {HITLS_X509_EXT_SET_SKI, HITLS_X509_EXT_SET_AKI, HITLS_X509_EXT_SET_KUSAGE, | 1337 | static int32_t cmdSet[] = {HITLS_X509_EXT_SET_SKI, HITLS_X509_EXT_SET_AKI, HITLS_X509_EXT_SET_KUSAGE, |
| 1281 | - HITLS_X509_EXT_SET_SAN, HITLS_X509_EXT_SET_BCONS, HITLS_X509_EXT_SET_EXKUSAGE, HITLS_X509_EXT_GET_SKI, | 1338 | + HITLS_X509_EXT_SET_SAN, HITLS_X509_EXT_SET_BCONS, HITLS_X509_EXT_SET_EXKUSAGE, HITLS_X509_EXT_SET_GENERIC, |
| 1282 | - HITLS_X509_EXT_GET_AKI, HITLS_X509_EXT_CHECK_SKI, HITLS_X509_EXT_GET_KUSAGE}; | 1339 | + HITLS_X509_EXT_GET_SKI, HITLS_X509_EXT_GET_AKI, HITLS_X509_EXT_CHECK_SKI, HITLS_X509_EXT_GET_KUSAGE, |
| 1340 | + HITLS_X509_EXT_GET_GENERIC}; | ||
| 1283 | if (!X509_CheckCmdValid(cmdSet, sizeof(cmdSet) / sizeof(int32_t), cmd)) { | 1341 | if (!X509_CheckCmdValid(cmdSet, sizeof(cmdSet) / sizeof(int32_t), cmd)) { |
| 1284 | BSL_ERR_PUSH_ERROR(HITLS_X509_ERR_EXT_UNSUPPORT); | 1342 | BSL_ERR_PUSH_ERROR(HITLS_X509_ERR_EXT_UNSUPPORT); |
| 1285 | return HITLS_X509_ERR_EXT_UNSUPPORT; | 1343 | return HITLS_X509_ERR_EXT_UNSUPPORT; |
| @@ -510,6 +510,10 @@ bool IsCmacAlgDisabled(int id) | |||
| 510 | bool IsCurveDisabled(int eccId) | 510 | bool IsCurveDisabled(int eccId) |
| 511 | { | 511 | { |
| 512 | switch (eccId) { | 512 | switch (eccId) { |
| 513 | + | ||
| 514 | + case CRYPT_ECC_NISTP192: | ||
| 515 | + return false; | ||
| 516 | + | ||
| 513 | 517 | ||
| 514 | case CRYPT_ECC_NISTP224: | 518 | case CRYPT_ECC_NISTP224: |
| 515 | return false; | 519 | return false; |
| @@ -248,7 +248,8 @@ test_ecc() | |||
| 248 | # Test all curves. | 248 | # Test all curves. |
| 249 | bash mini_build_test.sh $COMMON_PARAM $NO_LIB enable=eal,eal_bn,ecdh,ecdsa,sm2,drbg_hash,entropy,sha2,ecc test=curve_nistp224 | 249 | bash mini_build_test.sh $COMMON_PARAM $NO_LIB enable=eal,eal_bn,ecdh,ecdsa,sm2,drbg_hash,entropy,sha2,ecc test=curve_nistp224 |
| 250 | 250 | ||
| 251 | - # nist224/256/384/521 | 251 | + # nist192/224/256/384/521 |
| 252 | + bash mini_build_test.sh $COMMON_PARAM $NO_LIB enable=eal,eal_bn,ecdh,ecdsa,drbg_hash,entropy,sha2,curve_nistp192 test=curve_nistp192 | ||
| 252 | bash mini_build_test.sh $COMMON_PARAM $NO_LIB enable=eal,eal_bn,ecdh,ecdsa,drbg_hash,entropy,sha2,curve_nistp224 test=curve_nistp224 | 253 | bash mini_build_test.sh $COMMON_PARAM $NO_LIB enable=eal,eal_bn,ecdh,ecdsa,drbg_hash,entropy,sha2,curve_nistp224 test=curve_nistp224 |
| 253 | bash mini_build_test.sh $COMMON_PARAM $NO_LIB enable=eal,eal_bn,ecdh,ecdsa,drbg_hash,entropy,sha2,curve_nistp256 test=curve_nistp256 | 254 | bash mini_build_test.sh $COMMON_PARAM $NO_LIB enable=eal,eal_bn,ecdh,ecdsa,drbg_hash,entropy,sha2,curve_nistp256 test=curve_nistp256 |
| 254 | bash mini_build_test.sh $COMMON_PARAM $NO_LIB enable=eal,eal_bn,ecdh,ecdsa,drbg_hash,entropy,sha2,curve_nistp384 test=curve_nistp384 | 255 | bash mini_build_test.sh $COMMON_PARAM $NO_LIB enable=eal,eal_bn,ecdh,ecdsa,drbg_hash,entropy,sha2,curve_nistp384 test=curve_nistp384 |
| @@ -26,7 +26,7 @@ FEATURES=() | |||
| 26 | TEST_FEATURE="" | 26 | TEST_FEATURE="" |
| 27 | BUILD_HITLS="on" | 27 | BUILD_HITLS="on" |
| 28 | EXE_TEST="on" | 28 | EXE_TEST="on" |
| 29 | -SHOW_SIZE="on" # size libhitls_*.a | 29 | +SHOW_SIZE="off" # size libhitls_*.a |
| 30 | SHOW_MACRO="off" | 30 | SHOW_MACRO="off" |
| 31 | 31 | ||
| 32 | ASM_TYPE="" | 32 | ASM_TYPE="" |
| @@ -81,8 +81,8 @@ parse_option() | |||
| 81 | ADD_OPTIONS="${ADD_OPTIONS} -E -dM" | 81 | ADD_OPTIONS="${ADD_OPTIONS} -E -dM" |
| 82 | LIB_TYPE="static" | 82 | LIB_TYPE="static" |
| 83 | ;; | 83 | ;; |
| 84 | - "no-size") | 84 | + "size") |
| 85 | - SHOW_SIZE="off" | 85 | + SHOW_SIZE="on" |
| 86 | ;; | 86 | ;; |
| 87 | "no-build") | 87 | "no-build") |
| 88 | BUILD_HITLS="off" | 88 | BUILD_HITLS="off" |
| @@ -249,3 +249,25 @@ EXIT: | |||
| 249 | 249 | ||
| 250 | } | 250 | } |
| 251 | /* END_CASE */ | 251 | /* END_CASE */ |
| 252 | + | ||
| 253 | +/** | ||
| 254 | + * @test SDV_BSL_OBJ_GETOID_FROM_NUMBERIC_FUNC_TC001 | ||
| 255 | + * @title Exception Parameter Testing for the BSL_OBJ_GetOidFromNumericString Function. | ||
| 256 | + * @expect success | ||
| 257 | + */ | ||
| 258 | +/* BEGIN_CASE */ | ||
| 259 | +void SDV_BSL_OBJ_GETOID_FROM_NUMBERIC_FUNC_TC001(char *expect) | ||
| 260 | +{ | ||
| 261 | + TestMemInit(); | ||
| 262 | + uint32_t outLen = 0; | ||
| 263 | + uint8_t *hexOid = NULL; | ||
| 264 | + ASSERT_TRUE(BSL_OBJ_GetOidFromNumericString(NULL, 0, &outLen) == NULL); | ||
| 265 | + ASSERT_TRUE(BSL_OBJ_GetOidFromNumericString(expect, strlen(expect), NULL) == NULL); | ||
| 266 | + hexOid = BSL_OBJ_GetOidFromNumericString(expect, strlen(expect), &outLen); | ||
| 267 | + ASSERT_TRUE(hexOid == NULL); | ||
| 268 | + free(hexOid); | ||
| 269 | +EXIT: | ||
| 270 | + return; | ||
| 271 | +} | ||
| 272 | +/* END_CASE */ | ||
| 273 | + | ||
| @@ -12,3 +12,33 @@ SDV_BSL_OBJ_CREATE_TC001: | |||
| 12 | 12 | ||
| 13 | SDV_BSL_OBJ_HASH_TABLE_LOOKUP_TC001 | 13 | SDV_BSL_OBJ_HASH_TABLE_LOOKUP_TC001 |
| 14 | SDV_BSL_OBJ_HASH_TABLE_LOOKUP_TC001: | 14 | SDV_BSL_OBJ_HASH_TABLE_LOOKUP_TC001: |
| 15 | + | ||
| 16 | +SDV_BSL_OBJ_GETOID_FROM_NUMBERIC_FUNC_TC001 #1 | ||
| 17 | +SDV_BSL_OBJ_GETOID_FROM_NUMBERIC_FUNC_TC001:"1.2/840.113549.1.1.1" | ||
| 18 | + | ||
| 19 | +SDV_BSL_OBJ_GETOID_FROM_NUMBERIC_FUNC_TC001 #2 | ||
| 20 | +SDV_BSL_OBJ_GETOID_FROM_NUMBERIC_FUNC_TC001:"1.A.2.840.113549.1.1.1" | ||
| 21 | + | ||
| 22 | +SDV_BSL_OBJ_GETOID_FROM_NUMBERIC_FUNC_TC001 #3 | ||
| 23 | +SDV_BSL_OBJ_GETOID_FROM_NUMBERIC_FUNC_TC001:".2.840.113549.1.1.1" | ||
| 24 | + | ||
| 25 | +SDV_BSL_OBJ_GETOID_FROM_NUMBERIC_FUNC_TC001 #4 | ||
| 26 | +SDV_BSL_OBJ_GETOID_FROM_NUMBERIC_FUNC_TC001:"1.2..113549.1.1.1" | ||
| 27 | + | ||
| 28 | +SDV_BSL_OBJ_GETOID_FROM_NUMBERIC_FUNC_TC001 #5 | ||
| 29 | +SDV_BSL_OBJ_GETOID_FROM_NUMBERIC_FUNC_TC001:"3.2.840.113549.1.1.1" | ||
| 30 | + | ||
| 31 | +SDV_BSL_OBJ_GETOID_FROM_NUMBERIC_FUNC_TC001 #6 | ||
| 32 | +SDV_BSL_OBJ_GETOID_FROM_NUMBERIC_FUNC_TC001:"1.40.2.840.113549.1.1.1" | ||
| 33 | + | ||
| 34 | +SDV_BSL_OBJ_GETOID_FROM_NUMBERIC_FUNC_TC001 #7 | ||
| 35 | +SDV_BSL_OBJ_GETOID_FROM_NUMBERIC_FUNC_TC001:"2.40.2.840.113549.1.1.1" | ||
| 36 | + | ||
| 37 | +SDV_BSL_OBJ_GETOID_FROM_NUMBERIC_FUNC_TC001 #8 | ||
| 38 | +SDV_BSL_OBJ_GETOID_FROM_NUMBERIC_FUNC_TC001:"1.2.92233720368547758070.113549.1.1.1" | ||
| 39 | + | ||
| 40 | +SDV_BSL_OBJ_GETOID_FROM_NUMBERIC_FUNC_TC001 #9 | ||
| 41 | +SDV_BSL_OBJ_GETOID_FROM_NUMBERIC_FUNC_TC001:"1.3.6.1.4.1.2011.7.6.100.1.3.6.1.4.1.2011.7.6.100.1.3.6.1.4.1.2011.7.6.100.1.3.6.1.4.1.2011.7.6.100.1.3.6.1.4.1.2011.7.6.100.1.3.6.1.4.1.2011.7.6.100.1.3.6.1.4.1.2011.7.6.100.1.3.6.1.4.1.2011.7.6.100.1.3.6.1.4.1.2011.7.6.100.1.3.6.1.4.1.2011.7.6.100.1.3.6.1.4.1.2011.7.6.100.1.3.6.1.4.1.2011.7.6.100.1.3.6.1.4.1.2011.7.6.100.1.3.6.1.4.1.2011.7.6.100.1.3.6.1.4.1.2011.7.6.100.1.3.6.1.4.1.2011.7.6.100.1.3.6.1.4.1.2011.7.6.100.1.3.6.1.4.1.2011.7.6.100.1.3.6.1.4.1.2011.7.6.100" | ||
| 42 | + | ||
| 43 | +SDV_BSL_OBJ_GETOID_FROM_NUMBERIC_FUNC_TC001 #10 | ||
| 44 | +SDV_BSL_OBJ_GETOID_FROM_NUMBERIC_FUNC_TC001:"1.2.3.4.1.1.1." | ||
| @@ -123,6 +123,8 @@ EXIT: | |||
| 123 | static int GetPubKeyLen(int eccId) | 123 | static int GetPubKeyLen(int eccId) |
| 124 | { | 124 | { |
| 125 | switch (eccId) { | 125 | switch (eccId) { |
| 126 | + case CRYPT_ECC_NISTP192: | ||
| 127 | + return 49; /* SECP192R1 */ | ||
| 126 | case CRYPT_ECC_NISTP224: | 128 | case CRYPT_ECC_NISTP224: |
| 127 | return 57; /* SECP224R1 */ | 129 | return 57; /* SECP224R1 */ |
| 128 | case CRYPT_ECC_NISTP256: /* (32 * 2) + 1 SECP256R1, brainpoolP256r1 */ | 130 | case CRYPT_ECC_NISTP256: /* (32 * 2) + 1 SECP256R1, brainpoolP256r1 */ |
| @@ -143,6 +145,8 @@ static int GetPubKeyLen(int eccId) | |||
| 143 | static int GetPrvKeyLen(int eccId) | 145 | static int GetPrvKeyLen(int eccId) |
| 144 | { | 146 | { |
| 145 | switch (eccId) { | 147 | switch (eccId) { |
| 148 | + case CRYPT_ECC_NISTP192: | ||
| 149 | + return 24; | ||
| 146 | case CRYPT_ECC_NISTP224: | 150 | case CRYPT_ECC_NISTP224: |
| 147 | return 28; | 151 | return 28; |
| 148 | case CRYPT_ECC_NISTP256: | 152 | case CRYPT_ECC_NISTP256: |
| @@ -289,6 +293,7 @@ int EAL_PkeySetParaById_Api_TC001(int algId) | |||
| 289 | pkeyCtx = CRYPT_EAL_PkeyNewCtx(algId); | 293 | pkeyCtx = CRYPT_EAL_PkeyNewCtx(algId); |
| 290 | ASSERT_TRUE_AND_LOG("CRYPT_EAL_PkeyNewCtx", pkeyCtx != NULL); | 294 | ASSERT_TRUE_AND_LOG("CRYPT_EAL_PkeyNewCtx", pkeyCtx != NULL); |
| 291 | ASSERT_TRUE_AND_LOG("Invalid Pkey", CRYPT_EAL_PkeySetParaById(NULL, CRYPT_ECC_NISTP224) == CRYPT_NULL_INPUT); | 295 | ASSERT_TRUE_AND_LOG("Invalid Pkey", CRYPT_EAL_PkeySetParaById(NULL, CRYPT_ECC_NISTP224) == CRYPT_NULL_INPUT); |
| 296 | + ASSERT_TRUE_AND_LOG("CRYPT_ECC_NISTP192", CRYPT_EAL_PkeySetParaById(pkeyCtx, CRYPT_ECC_NISTP192) == CRYPT_SUCCESS); | ||
| 292 | ASSERT_TRUE_AND_LOG("CRYPT_ECC_NISTP224", CRYPT_EAL_PkeySetParaById(pkeyCtx, CRYPT_ECC_NISTP224) == CRYPT_SUCCESS); | 297 | ASSERT_TRUE_AND_LOG("CRYPT_ECC_NISTP224", CRYPT_EAL_PkeySetParaById(pkeyCtx, CRYPT_ECC_NISTP224) == CRYPT_SUCCESS); |
| 293 | ASSERT_TRUE_AND_LOG("CRYPT_ECC_NISTP256", CRYPT_EAL_PkeySetParaById(pkeyCtx, CRYPT_ECC_NISTP256) == CRYPT_SUCCESS); | 298 | ASSERT_TRUE_AND_LOG("CRYPT_ECC_NISTP256", CRYPT_EAL_PkeySetParaById(pkeyCtx, CRYPT_ECC_NISTP256) == CRYPT_SUCCESS); |
| 294 | ASSERT_TRUE_AND_LOG("CRYPT_ECC_NISTP384", CRYPT_EAL_PkeySetParaById(pkeyCtx, CRYPT_ECC_NISTP384) == CRYPT_SUCCESS); | 299 | ASSERT_TRUE_AND_LOG("CRYPT_ECC_NISTP384", CRYPT_EAL_PkeySetParaById(pkeyCtx, CRYPT_ECC_NISTP384) == CRYPT_SUCCESS); |
| @@ -47,13 +47,14 @@ EXIT: | |||
| 47 | * 1. Create the context of the ecdh algorithm, expected result 1 | 47 | * 1. Create the context of the ecdh algorithm, expected result 1 |
| 48 | * 2. Call the CRYPT_EAL_PkeySetParaById method: | 48 | * 2. Call the CRYPT_EAL_PkeySetParaById method: |
| 49 | * (1) context = NULL, expected result 2. | 49 | * (1) context = NULL, expected result 2. |
| 50 | - * (2) CRYPT_PKEY_ParaId = CRYPT_ECC_NISTP224, expected result 3. | 50 | + * (2) CRYPT_PKEY_ParaId = CRYPT_ECC_NISTP192, expected result 3. |
| 51 | - * (3) CRYPT_PKEY_ParaId = CRYPT_ECC_NISTP256, expected result 3. | 51 | + * (3) CRYPT_PKEY_ParaId = CRYPT_ECC_NISTP224, expected result 3. |
| 52 | - * (4) CRYPT_PKEY_ParaId = CRYPT_ECC_NISTP384, expected result 3. | 52 | + * (4) CRYPT_PKEY_ParaId = CRYPT_ECC_NISTP256, expected result 3. |
| 53 | - * (5) CRYPT_PKEY_ParaId = CRYPT_ECC_NISTP521, expected result 3. | 53 | + * (5) CRYPT_PKEY_ParaId = CRYPT_ECC_NISTP384, expected result 3. |
| 54 | - * (6) CRYPT_PKEY_ParaId = CRYPT_ECC_BRAINPOOLP256R1, expected result 3. | 54 | + * (6) CRYPT_PKEY_ParaId = CRYPT_ECC_NISTP521, expected result 3. |
| 55 | - * (7) CRYPT_PKEY_ParaId = CRYPT_ECC_BRAINPOOLP384R1, expected result 3. | 55 | + * (7) CRYPT_PKEY_ParaId = CRYPT_ECC_BRAINPOOLP256R1, expected result 3. |
| 56 | - * (8) CRYPT_PKEY_ParaId = CRYPT_ECC_BRAINPOOLP512R1, expected result 3. | 56 | + * (8) CRYPT_PKEY_ParaId = CRYPT_ECC_BRAINPOOLP384R1, expected result 3. |
| 57 | + * (9) CRYPT_PKEY_ParaId = CRYPT_ECC_BRAINPOOLP512R1, expected result 3. | ||
| 57 | * @expect | 58 | * @expect |
| 58 | * 1. Success, and the context is not NULL. | 59 | * 1. Success, and the context is not NULL. |
| 59 | * 2. CRYPT_NULL_INPUT | 60 | * 2. CRYPT_NULL_INPUT |
| @@ -223,7 +224,7 @@ EXIT: | |||
| 223 | * public key point | 224 | * public key point |
| 224 | * @brief | 225 | * @brief |
| 225 | * 1. Create the context of the ecdh algorithm, expected result 1 | 226 | * 1. Create the context of the ecdh algorithm, expected result 1 |
| 226 | - * 2. Set the para by eccId(p-224/256/384/512, bp256r1/384r1/512/r1), expected result 2 | 227 | + * 2. Set the para by eccId(p-192/224/256/384/512, bp256r1/384r1/512/r1), expected result 2 |
| 227 | * 3. Convert the format of the public key vector to COMPRESSED, expected result 3 | 228 | * 3. Convert the format of the public key vector to COMPRESSED, expected result 3 |
| 228 | * 4. Set the public key, expected result 4 | 229 | * 4. Set the public key, expected result 4 |
| 229 | * 5. Call the CRYPT_EAL_PkeyCtrl method to set point format to COMPRESSED, expected result 5 | 230 | * 5. Call the CRYPT_EAL_PkeyCtrl method to set point format to COMPRESSED, expected result 5 |
| @@ -431,7 +432,7 @@ EXIT: | |||
| 431 | * @precon Public keys of different lengths. | 432 | * @precon Public keys of different lengths. |
| 432 | * @brief | 433 | * @brief |
| 433 | * 1. Create the context of the ecdh algorithm, expected result 1 | 434 | * 1. Create the context of the ecdh algorithm, expected result 1 |
| 434 | - * 2. Set the para by eccId(p-224/256/384/512, bp256r1/384r1/512/r1), expected result 2 | 435 | + * 2. Set the para by eccId(p-192/224/256/384/512, bp256r1/384r1/512/r1), expected result 2 |
| 435 | * 3. Set public keys of different lengths, expected result 3 | 436 | * 3. Set public keys of different lengths, expected result 3 |
| 436 | * @expect | 437 | * @expect |
| 437 | * 1. Success, and the context is not NULL. | 438 | * 1. Success, and the context is not NULL. |
| @@ -441,7 +442,7 @@ EXIT: | |||
| 441 | /* BEGIN_CASE */ | 442 | /* BEGIN_CASE */ |
| 442 | void SDV_CRYPTO_ECDH_SET_PUB_API_TC003(int eccId, Hex *pubKey, Hex *errorPubKey, int isProvider) | 443 | void SDV_CRYPTO_ECDH_SET_PUB_API_TC003(int eccId, Hex *pubKey, Hex *errorPubKey, int isProvider) |
| 443 | { | 444 | { |
| 444 | - ASSERT_TRUE(EAL_PkeySetPub_Api_TC003(CRYPT_PKEY_ECDSA, eccId, pubKey, errorPubKey, isProvider) == 0); | 445 | + ASSERT_TRUE(EAL_PkeySetPub_Api_TC003(CRYPT_PKEY_ECDH, eccId, pubKey, errorPubKey, isProvider) == 0); |
| 445 | EXIT: | 446 | EXIT: |
| 446 | return; | 447 | return; |
| 447 | } | 448 | } |
| @@ -454,7 +455,7 @@ EXIT: | |||
| 454 | * @brief | 455 | * @brief |
| 455 | * 1. Get para id before creating context, expected result 1 | 456 | * 1. Get para id before creating context, expected result 1 |
| 456 | * 1. Create the context of the ecdh algorithm, expected result 2 | 457 | * 1. Create the context of the ecdh algorithm, expected result 2 |
| 457 | - * 2. Set para id(p-224/256/384/512), expected result 3 | 458 | + * 2. Set para id(p-192/224/256/384/512), expected result 3 |
| 458 | * 3. Get para id, expected result 4 | 459 | * 3. Get para id, expected result 4 |
| 459 | * @expect | 460 | * @expect |
| 460 | * 1. CRYPT_PKEY_PARAID_MAX | 461 | * 1. CRYPT_PKEY_PARAID_MAX |
| @@ -478,7 +479,7 @@ EXIT: | |||
| 478 | * @precon Registering memory-related functions. | 479 | * @precon Registering memory-related functions. |
| 479 | * @brief | 480 | * @brief |
| 480 | * 1. Create the context(pKeyCtx) of the ecdh algorithm, expected result 1 | 481 | * 1. Create the context(pKeyCtx) of the ecdh algorithm, expected result 1 |
| 481 | - * 2. Set the para by eccId(p-224/256/384/512, bp256r1/384r1/512/r1), expected result 2 | 482 | + * 2. Set the para by eccId(p-192/224/256/384/512, bp256r1/384r1/512/r1), expected result 2 |
| 482 | * 3. Call the CRYPT_EAL_PkeyDupCtx to dup context where the parameter is null, expected result 3 | 483 | * 3. Call the CRYPT_EAL_PkeyDupCtx to dup context where the parameter is null, expected result 3 |
| 483 | * 4. Call the CRYPT_EAL_PkeyDupCtx to dup context(newCtx), expected result 4 | 484 | * 4. Call the CRYPT_EAL_PkeyDupCtx to dup context(newCtx), expected result 4 |
| 484 | * 5. Get the reference count, expected result 5 | 485 | * 5. Get the reference count, expected result 5 |
| @@ -570,8 +571,8 @@ EXIT: | |||
| 570 | * @brief | 571 | * @brief |
| 571 | * 1. Create two contexts(ecdhPkey, peerEcdhPubPkey) of the ECDH algorithm, expected result 1 | 572 | * 1. Create two contexts(ecdhPkey, peerEcdhPubPkey) of the ECDH algorithm, expected result 1 |
| 572 | * 2. Init the drbg, expected result 2 | 573 | * 2. Init the drbg, expected result 2 |
| 573 | - * 3. ecdhPkey: Set elliptic curve type(p-224/256/384/512, bp256r1/384r1/512/r1) and private key, expected result 3 | 574 | + * 3. ecdhPkey: Set elliptic curve type(p-192/224/256/384/512, bp256r1/384r1/512/r1) and private key, expected result 3 |
| 574 | - * 4. peerEcdhPubPkey: Set elliptic curve type(p-224/256/384/512, bp256r1/384r1/512/r1) and public key(compressed/ | 575 | + * 4. peerEcdhPubPkey: Set elliptic curve type(p-192/224/256/384/512, bp256r1/384r1/512/r1) and public key(compressed/ |
| 575 | * uncompressed/hybrid), expected result 4 | 576 | * uncompressed/hybrid), expected result 4 |
| 576 | * 5. Compute the shared key, expected result 5 | 577 | * 5. Compute the shared key, expected result 5 |
| 577 | * 6. Compare the output shared secret and shared secret vector, expected result 6 | 578 | * 6. Compare the output shared secret and shared secret vector, expected result 6 |
| @@ -25,6 +25,9 @@ SDV_CRYPTO_ECDH_CTRL_API_TC001:CRYPT_CTRL_SET_RSA_PADDING:CRYPT_ECC_PKEY_ERR_UNS | |||
| 25 | SDV_CRYPTO_ECDH_CTRL_API_TC002 | 25 | SDV_CRYPTO_ECDH_CTRL_API_TC002 |
| 26 | SDV_CRYPTO_ECDH_CTRL_API_TC002: | 26 | SDV_CRYPTO_ECDH_CTRL_API_TC002: |
| 27 | 27 | ||
| 28 | +SDV_CRYPTO_ECDH_CTRL_API_TC003 P-192: Nist | ||
| 29 | +SDV_CRYPTO_ECDH_CTRL_API_TC003:CRYPT_ECC_NISTP192:"646c22e8aa5f7833390e0399155ac198ae42470bba4fc834":"8d4afcfffd80e69a4d180178b37c44572495b7b267ee32a9" | ||
| 30 | + | ||
| 28 | SDV_CRYPTO_ECDH_CTRL_API_TC003 P-224: Nist | 31 | SDV_CRYPTO_ECDH_CTRL_API_TC003 P-224: Nist |
| 29 | SDV_CRYPTO_ECDH_CTRL_API_TC003:CRYPT_ECC_NISTP224:"605495756e6e88f1d07ae5f98787af9b4da8a641d1a9492a12174eab":"f5cc733b17decc806ef1df861a42505d0af9ef7c3df3959b8dfc6669" | 32 | SDV_CRYPTO_ECDH_CTRL_API_TC003:CRYPT_ECC_NISTP224:"605495756e6e88f1d07ae5f98787af9b4da8a641d1a9492a12174eab":"f5cc733b17decc806ef1df861a42505d0af9ef7c3df3959b8dfc6669" |
| 30 | 33 | ||
| @@ -70,6 +73,12 @@ SDV_CRYPTO_ECDH_SET_PUB_API_TC001:"04605495756e6e88f1d07ae5f98787af9b4da8a641d1a | |||
| 70 | SDV_CRYPTO_ECDH_SET_PUB_API_TC002: Nist | 73 | SDV_CRYPTO_ECDH_SET_PUB_API_TC002: Nist |
| 71 | SDV_CRYPTO_ECDH_SET_PUB_API_TC002:"16797b5c0c7ed5461e2ff1b88e6eafa03c0f46bf072000dfc830d615":"04605495756e6e88f1d07ae5f98787af9b4da8a641d1a9492a12174eabf5cc733b17decc806ef1df861a42505d0af9ef7c3df3959b8dfc6669" | 74 | SDV_CRYPTO_ECDH_SET_PUB_API_TC002:"16797b5c0c7ed5461e2ff1b88e6eafa03c0f46bf072000dfc830d615":"04605495756e6e88f1d07ae5f98787af9b4da8a641d1a9492a12174eabf5cc733b17decc806ef1df861a42505d0af9ef7c3df3959b8dfc6669" |
| 72 | 75 | ||
| 76 | +SDV_CRYPTO_ECDH_SET_PUB_API_TC003 | ||
| 77 | +SDV_CRYPTO_ECDH_SET_PUB_API_TC003:CRYPT_ECC_NISTP192:"":"":0 | ||
| 78 | + | ||
| 79 | +SDV_CRYPTO_ECDH_SET_PUB_API_TC003 | ||
| 80 | +SDV_CRYPTO_ECDH_SET_PUB_API_TC003:CRYPT_ECC_NISTP192:"":"":1 | ||
| 81 | + | ||
| 73 | SDV_CRYPTO_ECDH_SET_PUB_API_TC003 | 82 | SDV_CRYPTO_ECDH_SET_PUB_API_TC003 |
| 74 | SDV_CRYPTO_ECDH_SET_PUB_API_TC003:CRYPT_ECC_NISTP224:"":"":0 | 83 | SDV_CRYPTO_ECDH_SET_PUB_API_TC003:CRYPT_ECC_NISTP224:"":"":0 |
| 75 | 84 | ||
| @@ -113,7 +122,10 @@ SDV_CRYPTO_ECDH_SET_PUB_API_TC003 | |||
| 113 | SDV_CRYPTO_ECDH_SET_PUB_API_TC003:CRYPT_ECC_BRAINPOOLP512R1:"":"":1 | 122 | SDV_CRYPTO_ECDH_SET_PUB_API_TC003:CRYPT_ECC_BRAINPOOLP512R1:"":"":1 |
| 114 | 123 | ||
| 115 | SDV_CRYPTO_ECDH_SET_PUB_API_TC003: Nist | 124 | SDV_CRYPTO_ECDH_SET_PUB_API_TC003: Nist |
| 116 | -SDV_CRYPTO_ECDH_SET_PUB_API_TC003:CRYPT_ECC_NISTP224:"05605495756e6e88f1d07ae5f98787af9b4da8a641d1a9492a12174eabf5cc733b17decc806ef1df861a42505d0af9ef7c3df3959b8dfc6669":"04605495756e6e88f1d07ae5f98787af9b4da8a641d1a9492a12174eabf5cc733b17decc806ef1df861a42505d0af9ef7c3df3959b8dfc666a":0 | 125 | +SDV_CRYPTO_ECDH_SET_PUB_API_TC003:CRYPT_ECC_NISTP192:"05284fbaa76ce0faae2ca4867d01092fa1ace5724cd12c8dd0e42af3dbf3206be3fcbcc3a7ccaf60c73dc29e7bb9b44fca":"0482c949295156192df0b52480e38c810751ac570daec460a3200057ada615c80b8ff256ce8d47f2562b74a438f1921ac3":0 |
| 126 | + | ||
| 127 | +SDV_CRYPTO_ECDH_SET_PUB_API_TC003: Nist | ||
| 128 | +SDV_CRYPTO_ECDH_SET_PUB_API_TC003:CRYPT_ECC_NISTP192:"05284fbaa76ce0faae2ca4867d01092fa1ace5724cd12c8dd0e42af3dbf3206be3fcbcc3a7ccaf60c73dc29e7bb9b44fca":"0482c949295156192df0b52480e38c810751ac570daec460a3200057ada615c80b8ff256ce8d47f2562b74a438f1921ac3":1 | ||
| 117 | 129 | ||
| 118 | SDV_CRYPTO_ECDH_SET_PUB_API_TC003: Nist | 130 | SDV_CRYPTO_ECDH_SET_PUB_API_TC003: Nist |
| 119 | SDV_CRYPTO_ECDH_SET_PUB_API_TC003:CRYPT_ECC_NISTP224:"05605495756e6e88f1d07ae5f98787af9b4da8a641d1a9492a12174eabf5cc733b17decc806ef1df861a42505d0af9ef7c3df3959b8dfc6669":"04605495756e6e88f1d07ae5f98787af9b4da8a641d1a9492a12174eabf5cc733b17decc806ef1df861a42505d0af9ef7c3df3959b8dfc666a":1 | 131 | SDV_CRYPTO_ECDH_SET_PUB_API_TC003:CRYPT_ECC_NISTP224:"05605495756e6e88f1d07ae5f98787af9b4da8a641d1a9492a12174eabf5cc733b17decc806ef1df861a42505d0af9ef7c3df3959b8dfc6669":"04605495756e6e88f1d07ae5f98787af9b4da8a641d1a9492a12174eabf5cc733b17decc806ef1df861a42505d0af9ef7c3df3959b8dfc666a":1 |
| @@ -178,6 +190,9 @@ SDV_CRYPTO_ECDH_SET_PUB_API_TC003:CRYPT_ECC_BRAINPOOLP512R1:"0A420517E406AAC0ACD | |||
| 178 | SDV_CRYPTO_ECDH_SET_PUB_API_TC003: FRC 7072 | 190 | SDV_CRYPTO_ECDH_SET_PUB_API_TC003: FRC 7072 |
| 179 | SDV_CRYPTO_ECDH_SET_PUB_API_TC003:CRYPT_ECC_BRAINPOOLP512R1:"0A420517E406AAC0ACDCE90FCD71487718D3B953EFD7FBEC5F7F27E28C6149999397E91E029E06457DB2D3E640668B392C2A7E737A7F0BF04436D11640FD09FD72E6882E8DB28AAD36237CD25D580DB23783961C8DC52DFA2EC138AD472A0FCEF3887CF62B623B2A87DE5C588301EA3E5FC269B373B60724F5E82A6AD147FDE7":"070562E68B9AF7CBFD5565C6B16883B777FF11C199161ECC427A39D17EC2166499389571D6A994977C56AD8252658BA8A1B72AE42F4FB7532151AFC3EF0971CCDAA7CA2D8191E21776A89860AFBC1F582FAA308D551C1DC6133AF9F9C3CAD59998D70079548140B90B1F311AFB378AA81F51B275B2BE6B7DEE978EFC7343EA642F":1 | 191 | SDV_CRYPTO_ECDH_SET_PUB_API_TC003:CRYPT_ECC_BRAINPOOLP512R1:"0A420517E406AAC0ACDCE90FCD71487718D3B953EFD7FBEC5F7F27E28C6149999397E91E029E06457DB2D3E640668B392C2A7E737A7F0BF04436D11640FD09FD72E6882E8DB28AAD36237CD25D580DB23783961C8DC52DFA2EC138AD472A0FCEF3887CF62B623B2A87DE5C588301EA3E5FC269B373B60724F5E82A6AD147FDE7":"070562E68B9AF7CBFD5565C6B16883B777FF11C199161ECC427A39D17EC2166499389571D6A994977C56AD8252658BA8A1B72AE42F4FB7532151AFC3EF0971CCDAA7CA2D8191E21776A89860AFBC1F582FAA308D551C1DC6133AF9F9C3CAD59998D70079548140B90B1F311AFB378AA81F51B275B2BE6B7DEE978EFC7343EA642F":1 |
| 180 | 192 | ||
| 193 | +SDV_CRYPTO_ECDH_GET_PARA_ID_API_TC001 | ||
| 194 | +SDV_CRYPTO_ECDH_GET_PARA_ID_API_TC001:CRYPT_ECC_NISTP192 | ||
| 195 | + | ||
| 181 | SDV_CRYPTO_ECDH_GET_PARA_ID_API_TC001 | 196 | SDV_CRYPTO_ECDH_GET_PARA_ID_API_TC001 |
| 182 | SDV_CRYPTO_ECDH_GET_PARA_ID_API_TC001:CRYPT_ECC_NISTP224 | 197 | SDV_CRYPTO_ECDH_GET_PARA_ID_API_TC001:CRYPT_ECC_NISTP224 |
| 183 | 198 | ||
| @@ -190,6 +205,9 @@ SDV_CRYPTO_ECDH_GET_PARA_ID_API_TC001:CRYPT_ECC_NISTP384 | |||
| 190 | SDV_CRYPTO_ECDH_GET_PARA_ID_API_TC001 | 205 | SDV_CRYPTO_ECDH_GET_PARA_ID_API_TC001 |
| 191 | SDV_CRYPTO_ECDH_GET_PARA_ID_API_TC001:CRYPT_ECC_NISTP521 | 206 | SDV_CRYPTO_ECDH_GET_PARA_ID_API_TC001:CRYPT_ECC_NISTP521 |
| 192 | 207 | ||
| 208 | +SDV_CRYPTO_ECDH_DUP_CTX_API_TC001: CRYPT_ECC_NISTP192 | ||
| 209 | +SDV_CRYPTO_ECDH_DUP_CTX_API_TC001:CRYPT_ECC_NISTP192:0 | ||
| 210 | + | ||
| 193 | SDV_CRYPTO_ECDH_DUP_CTX_API_TC001 | 211 | SDV_CRYPTO_ECDH_DUP_CTX_API_TC001 |
| 194 | SDV_CRYPTO_ECDH_DUP_CTX_API_TC001:CRYPT_ECC_NISTP224:0 | 212 | SDV_CRYPTO_ECDH_DUP_CTX_API_TC001:CRYPT_ECC_NISTP224:0 |
| 195 | 213 | ||
| @@ -202,6 +220,9 @@ SDV_CRYPTO_ECDH_DUP_CTX_API_TC001:CRYPT_ECC_NISTP384:0 | |||
| 202 | SDV_CRYPTO_ECDH_DUP_CTX_API_TC001 | 220 | SDV_CRYPTO_ECDH_DUP_CTX_API_TC001 |
| 203 | SDV_CRYPTO_ECDH_DUP_CTX_API_TC001:CRYPT_ECC_NISTP521:0 | 221 | SDV_CRYPTO_ECDH_DUP_CTX_API_TC001:CRYPT_ECC_NISTP521:0 |
| 204 | 222 | ||
| 223 | +SDV_CRYPTO_ECDH_DUP_CTX_API_TC001 | ||
| 224 | +SDV_CRYPTO_ECDH_DUP_CTX_API_TC001:CRYPT_ECC_NISTP192:1 | ||
| 225 | + | ||
| 205 | SDV_CRYPTO_ECDH_DUP_CTX_API_TC001 | 226 | SDV_CRYPTO_ECDH_DUP_CTX_API_TC001 |
| 206 | SDV_CRYPTO_ECDH_DUP_CTX_API_TC001:CRYPT_ECC_NISTP224:1 | 227 | SDV_CRYPTO_ECDH_DUP_CTX_API_TC001:CRYPT_ECC_NISTP224:1 |
| 207 | 228 | ||
| @@ -217,6 +238,24 @@ SDV_CRYPTO_ECDH_DUP_CTX_API_TC001:CRYPT_ECC_NISTP521:1 | |||
| 217 | SDV_CRYPTO_ECDH_CMP_FUNC_TC001 Nist, P-224 COMPRESS | 238 | SDV_CRYPTO_ECDH_CMP_FUNC_TC001 Nist, P-224 COMPRESS |
| 218 | SDV_CRYPTO_ECDH_CMP_FUNC_TC001:"af33cd0629bc7e996320a3f40368f74de8704fa37b8fab69abaae280":"882092ccbba7930f419a8a4f9bb16978bbc3838729992559a6f2e2d7" | 239 | SDV_CRYPTO_ECDH_CMP_FUNC_TC001:"af33cd0629bc7e996320a3f40368f74de8704fa37b8fab69abaae280":"882092ccbba7930f419a8a4f9bb16978bbc3838729992559a6f2e2d7" |
| 219 | 240 | ||
| 241 | +SDV_CRYPTO_ECDH_EXCH_FUNC_TC001 Nist, P-192 COMPRESS | ||
| 242 | +SDV_CRYPTO_ECDH_EXCH_FUNC_TC001:CRYPT_ECC_NISTP192:"f17d3fea367b74d340851ca4270dcb24c271f445bed9d527":"42ea6dd9969dd2a61fea1aac7f8e98edcc896c6e55857cc0":"dfbe5d7c61fac88b11811bde328e8a0d12bf01a9d204b523":CRYPT_POINT_COMPRESSED:"803d8ab2e5b6e6fca715737c3a82f7ce3c783124f6d51cd0":0 | ||
| 243 | + | ||
| 244 | +SDV_CRYPTO_ECDH_EXCH_FUNC_TC001 Nist, P-192 COMPRESS | ||
| 245 | +SDV_CRYPTO_ECDH_EXCH_FUNC_TC001:CRYPT_ECC_NISTP192:"56e853349d96fe4c442448dacb7cf92bb7a95dcf574a9bd5":"deb5712fa027ac8d2f22c455ccb73a91e17b6512b5e030e7":"7e2690a02cc9b28708431a29fb54b87b1f0c14e011ac2125":CRYPT_POINT_COMPRESSED:"c208847568b98835d7312cef1f97f7aa298283152313c29d":1 | ||
| 246 | + | ||
| 247 | +SDV_CRYPTO_ECDH_EXCH_FUNC_TC001 Nist, P-192 UNCOMPRESS | ||
| 248 | +SDV_CRYPTO_ECDH_EXCH_FUNC_TC001:CRYPT_ECC_NISTP192:"c6ef61fe12e80bf56f2d3f7d0bb757394519906d55500949":"4edaa8efc5a0f40f843663ec5815e7762dddc008e663c20f":"0a9f8dc67a3e60ef6d64b522185d03df1fc0adfd42478279":CRYPT_POINT_UNCOMPRESSED:"87229107047a3b611920d6e3b2c0c89bea4f49412260b8dd":0 | ||
| 249 | + | ||
| 250 | +SDV_CRYPTO_ECDH_EXCH_FUNC_TC001 Nist, P-192 UNCOMPRESS | ||
| 251 | +SDV_CRYPTO_ECDH_EXCH_FUNC_TC001:CRYPT_ECC_NISTP192:"e6747b9c23ba7044f38ff7e62c35e4038920f5a0163d3cda":"8887c276edeed3e9e866b46d58d895c73fbd80b63e382e88":"04c5097ba6645e16206cfb70f7052655947dd44a17f1f9d5":CRYPT_POINT_UNCOMPRESSED:"eec0bed8fc55e1feddc82158fd6dc0d48a4d796aaf47d46c":1 | ||
| 252 | + | ||
| 253 | +SDV_CRYPTO_ECDH_EXCH_FUNC_TC001 Nist, P-192 HYBID | ||
| 254 | +SDV_CRYPTO_ECDH_EXCH_FUNC_TC001:CRYPT_ECC_NISTP192:"beabedd0154a1afcfc85d52181c10f5eb47adc51f655047d":"0d045f30254adc1fcefa8a5b1f31bf4e739dd327cd18d594":"542c314e41427c08278a08ce8d7305f3b5b849c72d8aff73":CRYPT_POINT_HYBRID:"716e743b1b37a2cd8479f0a3d5a74c10ba2599be18d7e2f4":0 | ||
| 255 | + | ||
| 256 | +SDV_CRYPTO_ECDH_EXCH_FUNC_TC001 Nist, P-192 HYBID | ||
| 257 | +SDV_CRYPTO_ECDH_EXCH_FUNC_TC001:CRYPT_ECC_NISTP192:"cf70354226667321d6e2baf40999e2fd74c7a0f793fa8699":"fb35ca20d2e96665c51b98e8f6eb3d79113508d8bccd4516":"368eec0d5bfb847721df6aaff0e5d48c444f74bf9cd8a5a7":CRYPT_POINT_HYBRID:"f67053b934459985a315cb017bf0302891798d45d0e19508":1 | ||
| 258 | + | ||
| 220 | SDV_CRYPTO_ECDH_EXCH_FUNC_TC001 Nist, P-224 COMPRESS | 259 | SDV_CRYPTO_ECDH_EXCH_FUNC_TC001 Nist, P-224 COMPRESS |
| 221 | SDV_CRYPTO_ECDH_EXCH_FUNC_TC001:CRYPT_ECC_NISTP224:"8346a60fc6f293ca5a0d2af68ba71d1dd389e5e40837942df3e43cbd":"af33cd0629bc7e996320a3f40368f74de8704fa37b8fab69abaae280":"882092ccbba7930f419a8a4f9bb16978bbc3838729992559a6f2e2d7":CRYPT_POINT_COMPRESSED:"7d96f9a3bd3c05cf5cc37feb8b9d5209d5c2597464dec3e9983743e8":0 | 260 | SDV_CRYPTO_ECDH_EXCH_FUNC_TC001:CRYPT_ECC_NISTP224:"8346a60fc6f293ca5a0d2af68ba71d1dd389e5e40837942df3e43cbd":"af33cd0629bc7e996320a3f40368f74de8704fa37b8fab69abaae280":"882092ccbba7930f419a8a4f9bb16978bbc3838729992559a6f2e2d7":CRYPT_POINT_COMPRESSED:"7d96f9a3bd3c05cf5cc37feb8b9d5209d5c2597464dec3e9983743e8":0 |
| 222 | 261 | ||
| @@ -325,6 +364,15 @@ SDV_CRYPTO_ECDH_EXCH_FUNC_TC001:CRYPT_ECC_BRAINPOOLP512R1:"16302FF0DBBB5A8D733DA | |||
| 325 | SDV_CRYPTO_ECDH_EXCH_FUNC_TC001 RFC 7027, brainpool p512r1, HYBID | 364 | SDV_CRYPTO_ECDH_EXCH_FUNC_TC001 RFC 7027, brainpool p512r1, HYBID |
| 326 | SDV_CRYPTO_ECDH_EXCH_FUNC_TC001:CRYPT_ECC_BRAINPOOLP512R1:"16302FF0DBBB5A8D733DAB7141C1B45ACBC8715939677F6A56850A38BD87BD59B09E80279609FF333EB9D4C061231FB26F92EEB04982A5F1D1764CAD57665422":"9D45F66DE5D67E2E6DB6E93A59CE0BB48106097FF78A081DE781CDB31FCE8CCBAAEA8DD4320C4119F1E9CD437A2EAB3731FA9668AB268D871DEDA55A5473199F":"2FDC313095BCDD5FB3A91636F07A959C8E86B5636A1E930E8396049CB481961D365CC11453A06C719835475B12CB52FC3C383BCE35E27EF194512B71876285FA":CRYPT_POINT_HYBRID:"A7927098655F1F9976FA50A9D566865DC530331846381C87256BAF3226244B76D36403C024D7BBF0AA0803EAFF405D3D24F11A9B5C0BEF679FE1454B21C4CD1F":0 | 365 | SDV_CRYPTO_ECDH_EXCH_FUNC_TC001:CRYPT_ECC_BRAINPOOLP512R1:"16302FF0DBBB5A8D733DAB7141C1B45ACBC8715939677F6A56850A38BD87BD59B09E80279609FF333EB9D4C061231FB26F92EEB04982A5F1D1764CAD57665422":"9D45F66DE5D67E2E6DB6E93A59CE0BB48106097FF78A081DE781CDB31FCE8CCBAAEA8DD4320C4119F1E9CD437A2EAB3731FA9668AB268D871DEDA55A5473199F":"2FDC313095BCDD5FB3A91636F07A959C8E86B5636A1E930E8396049CB481961D365CC11453A06C719835475B12CB52FC3C383BCE35E27EF194512B71876285FA":CRYPT_POINT_HYBRID:"A7927098655F1F9976FA50A9D566865DC530331846381C87256BAF3226244B76D36403C024D7BBF0AA0803EAFF405D3D24F11A9B5C0BEF679FE1454B21C4CD1F":0 |
| 327 | 366 | ||
| 367 | +SDV_CRYPTO_ECDH_GEN_KEY_FUNC_TC001 Nist, P-192 COMPRESS | ||
| 368 | +SDV_CRYPTO_ECDH_GEN_KEY_FUNC_TC001:CRYPT_ECC_NISTP192:"e5ce89a34adddf25ff3bf1ffe6803f57d0220de3118798ea":"8abf7b3ceb2b02438af19543d3e5b1d573fa9ac60085840f":"a87f80182dcd56a6a061f81f7da393e7cffd5e0738c6b245":0:0 | ||
| 369 | + | ||
| 370 | +SDV_CRYPTO_ECDH_GEN_KEY_FUNC_TC001 Nist, P-192 UNCOMPRESS | ||
| 371 | +SDV_CRYPTO_ECDH_GEN_KEY_FUNC_TC001:CRYPT_ECC_NISTP192:"7d14435714ad13ff23341cb567cc91198ff8617cc39751b2":"39dc723b19527daa1e80425209c56463481b9b47c51f8cbd":"432a3e84f2a16418834fabaf6b7d2341669512951f1672ad":1:0 | ||
| 372 | + | ||
| 373 | +SDV_CRYPTO_ECDH_GEN_KEY_FUNC_TC001 Nist, P-192 HYBID | ||
| 374 | +SDV_CRYPTO_ECDH_GEN_KEY_FUNC_TC001:CRYPT_ECC_NISTP192:"12039a122de1725d8d0e369b2fb536f7a38414a67cf69a83":"eb7e6011e825eb9f0c19d7d8695cf8da5805bf1f86019cef":"59694469ad604f6b407a9cba3d696b33ff410a9357b34baa":2:0 | ||
| 375 | + | ||
| 328 | SDV_CRYPTO_ECDH_GEN_KEY_FUNC_TC001 Nist, P-224 COMPRESS | 376 | SDV_CRYPTO_ECDH_GEN_KEY_FUNC_TC001 Nist, P-224 COMPRESS |
| 329 | SDV_CRYPTO_ECDH_GEN_KEY_FUNC_TC001:CRYPT_ECC_NISTP224:"e7c92383846a4e6887a10498d8eaca2bd0487d985bd7d3f92ce3ab30":"0a3682d2aaa4dd931bee042d32e95755507ab164b12f84843f4b7b96":"a6313a938eff7a293222e0e3c7b4c6132489b33255a61c3fc1ce2256":0:0 | 377 | SDV_CRYPTO_ECDH_GEN_KEY_FUNC_TC001:CRYPT_ECC_NISTP224:"e7c92383846a4e6887a10498d8eaca2bd0487d985bd7d3f92ce3ab30":"0a3682d2aaa4dd931bee042d32e95755507ab164b12f84843f4b7b96":"a6313a938eff7a293222e0e3c7b4c6132489b33255a61c3fc1ce2256":0:0 |
| 330 | 378 | ||
| @@ -403,6 +451,9 @@ SDV_CRYPTO_ECDH_GET_KEY_BITS_FUNC_TC001:CRYPT_ECC_NISTP521:1064:0 | |||
| 403 | SDV_CRYPTO_ECDH_GET_KEY_BITS_FUNC_TC001 | 451 | SDV_CRYPTO_ECDH_GET_KEY_BITS_FUNC_TC001 |
| 404 | SDV_CRYPTO_ECDH_GET_KEY_BITS_FUNC_TC001:CRYPT_ECC_NISTP224:456:0 | 452 | SDV_CRYPTO_ECDH_GET_KEY_BITS_FUNC_TC001:CRYPT_ECC_NISTP224:456:0 |
| 405 | 453 | ||
| 454 | +SDV_CRYPTO_ECDH_GET_KEY_BITS_FUNC_TC001 | ||
| 455 | +SDV_CRYPTO_ECDH_GET_KEY_BITS_FUNC_TC001:CRYPT_ECC_NISTP192:392:1 | ||
| 456 | + | ||
| 406 | SDV_CRYPTO_ECDH_GET_KEY_BITS_FUNC_TC001 | 457 | SDV_CRYPTO_ECDH_GET_KEY_BITS_FUNC_TC001 |
| 407 | SDV_CRYPTO_ECDH_GET_KEY_BITS_FUNC_TC001:CRYPT_ECC_NISTP256:520:1 | 458 | SDV_CRYPTO_ECDH_GET_KEY_BITS_FUNC_TC001:CRYPT_ECC_NISTP256:520:1 |
| 408 | 459 | ||
| @@ -418,6 +469,12 @@ SDV_CRYPTO_ECDH_GET_KEY_BITS_FUNC_TC001:CRYPT_ECC_NISTP224:456:1 | |||
| 418 | SDV_CRYPTO_ECDH_GET_SEC_BITS_FUNC_TC001 | 469 | SDV_CRYPTO_ECDH_GET_SEC_BITS_FUNC_TC001 |
| 419 | SDV_CRYPTO_ECDH_GET_SEC_BITS_FUNC_TC001:CRYPT_ECC_NISTP224:112 | 470 | SDV_CRYPTO_ECDH_GET_SEC_BITS_FUNC_TC001:CRYPT_ECC_NISTP224:112 |
| 420 | 471 | ||
| 472 | +SDV_CRYPTO_ECDH_GET_SEC_BITS_FUNC_TC001 | ||
| 473 | +SDV_CRYPTO_ECDH_GET_SEC_BITS_FUNC_TC001:CRYPT_ECC_NISTP192:80 | ||
| 474 | + | ||
| 475 | +SDV_CRYPTO_ECC_ADD_CAL_TEST_FUNC_TC001 | ||
| 476 | +SDV_CRYPTO_ECC_ADD_CAL_TEST_FUNC_TC001:CRYPT_ECC_NISTP192:"fffffffe338637100030353629323dbe":"79983a6b221fab08796ad40f712de3b6":"02" | ||
| 477 | + | ||
| 421 | SDV_CRYPTO_ECC_ADD_CAL_TEST_FUNC_TC001 | 478 | SDV_CRYPTO_ECC_ADD_CAL_TEST_FUNC_TC001 |
| 422 | SDV_CRYPTO_ECC_ADD_CAL_TEST_FUNC_TC001:CRYPT_ECC_NISTP224:"fffffffe338637100030353629323dbe":"79983a6b221fab08796ad40f712de3b6":"02" | 479 | SDV_CRYPTO_ECC_ADD_CAL_TEST_FUNC_TC001:CRYPT_ECC_NISTP224:"fffffffe338637100030353629323dbe":"79983a6b221fab08796ad40f712de3b6":"02" |
| 423 | 480 | ||
| @@ -482,7 +482,7 @@ EXIT: | |||
| 482 | * @precon public key point | 482 | * @precon public key point |
| 483 | * @brief | 483 | * @brief |
| 484 | * 1. Create the context of the ecdsa algorithm, expected result 1 | 484 | * 1. Create the context of the ecdsa algorithm, expected result 1 |
| 485 | - * 2. Set the para by eccId(p-224/256/384/512, bp256r1/384r1/512/r1), expected result 2 | 485 | + * 2. Set the para by eccId(p-192/224/256/384/512, bp256r1/384r1/512/r1), expected result 2 |
| 486 | * 3. Convert the format of the public key vector to COMPRESSED, expected result 3 | 486 | * 3. Convert the format of the public key vector to COMPRESSED, expected result 3 |
| 487 | * 4. Set the public key, expected result 4 | 487 | * 4. Set the public key, expected result 4 |
| 488 | * 5. Call the CRYPT_EAL_PkeyCtrl method to set point format to COMPRESSED, expected result 5 | 488 | * 5. Call the CRYPT_EAL_PkeyCtrl method to set point format to COMPRESSED, expected result 5 |
| @@ -682,7 +682,7 @@ EXIT: | |||
| 682 | * @precon Public keys of different lengths. | 682 | * @precon Public keys of different lengths. |
| 683 | * @brief | 683 | * @brief |
| 684 | * 1. Create the context of the ecdsa algorithm, expected result 1 | 684 | * 1. Create the context of the ecdsa algorithm, expected result 1 |
| 685 | - * 2. Set the para by eccId(p-224/256/384/512, bp256r1/384r1/512/r1), expected result 2 | 685 | + * 2. Set the para by eccId(p-192/224/256/384/512, bp256r1/384r1/512/r1), expected result 2 |
| 686 | * 3. Set public keys of different lengths, expected result 3 | 686 | * 3. Set public keys of different lengths, expected result 3 |
| 687 | * @expect | 687 | * @expect |
| 688 | * 1. Success, and the context is not NULL. | 688 | * 1. Success, and the context is not NULL. |
| @@ -705,7 +705,7 @@ EXIT: | |||
| 705 | * @brief | 705 | * @brief |
| 706 | * 1. Get para id before creating context, expected result 1 | 706 | * 1. Get para id before creating context, expected result 1 |
| 707 | * 2. Create the context of the ECDSA algorithm, expected result 2 | 707 | * 2. Create the context of the ECDSA algorithm, expected result 2 |
| 708 | - * 3. Set para id(p-224/256/384/512), expected result 3 | 708 | + * 3. Set para id(p-192/224/256/384/512), expected result 3 |
| 709 | * 4. Get para id, expected result 4 | 709 | * 4. Get para id, expected result 4 |
| 710 | * @expect | 710 | * @expect |
| 711 | * 1. CRYPT_PKEY_PARAID_MAX | 711 | * 1. CRYPT_PKEY_PARAID_MAX |
| @@ -47,6 +47,18 @@ SDV_CRYPTO_ECDSA_SIGN_DATA_API_TC001:"708309a7449e156b0db70e5b52e606c7e094ed676c | |||
| 47 | SDV_CRYPTO_ECDSA_SIGN_DATA_API_TC001: Nist | 47 | SDV_CRYPTO_ECDSA_SIGN_DATA_API_TC001: Nist |
| 48 | SDV_CRYPTO_ECDSA_SIGN_DATA_API_TC001:"708309a7449e156b0db70e5b52e606c7e094ed676ce8953bf6c14757c826f590":"ff624d0ba02c7b6370c1622eec3fa2186ea681d1659e0a845448e777b75a8e77a77bb26e5733179d58ef9bc8a4e8b6971aef2539f77ab0963a3415bbd6258339bd1bf55de65db520c63f5b8eab3d55debd05e9494212170f5d65b3286b8b668705b1e2b2b5568610617abb51d2dd0cb450ef59df4b907da90cfa7b268de8c4c2":1 | 48 | SDV_CRYPTO_ECDSA_SIGN_DATA_API_TC001:"708309a7449e156b0db70e5b52e606c7e094ed676ce8953bf6c14757c826f590":"ff624d0ba02c7b6370c1622eec3fa2186ea681d1659e0a845448e777b75a8e77a77bb26e5733179d58ef9bc8a4e8b6971aef2539f77ab0963a3415bbd6258339bd1bf55de65db520c63f5b8eab3d55debd05e9494212170f5d65b3286b8b668705b1e2b2b5568610617abb51d2dd0cb450ef59df4b907da90cfa7b268de8c4c2":1 |
| 49 | 49 | ||
| 50 | +SDV_CRYPTO_ECDSA_SIGN_VERIFY_FUNC_TC002 P-192 msg IS ALL 0X00 | ||
| 51 | +SDV_CRYPTO_ECDSA_SIGN_VERIFY_FUNC_TC002:CRYPT_ECC_NISTP192:"0017899949d02b55f9556846411cc9de512c6f16ecdeb1c4":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0098e9c07e8e6adb97b77d85b0c10a265e11737a89a3e37b":"14f69738599689f5706ab71343becc886ef1569a2d1137fe":"0cf5a433909e33217fb4df6b9593f71d43fb1c2a5653b763":1:0 | ||
| 52 | + | ||
| 53 | +SDV_CRYPTO_ECDSA_SIGN_VERIFY_FUNC_TC002 P-224 msg IS ALL 0X00 | ||
| 54 | +SDV_CRYPTO_ECDSA_SIGN_VERIFY_FUNC_TC002:CRYPT_ECC_NISTP192:"0064c3a51fb6188170f3cdf12b474a77de4ae0052b84ece8":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"00797552b9abf541c886f93556103b817a46c9aa0e2bc86f":"386afa71afc065019f3d2021ead531ed1d365887122d2d4b":"bbfb6e9cdb32c2252015acfb4cfb049b08b4cb279c64928a":1:1 | ||
| 55 | + | ||
| 56 | +SDV_CRYPTO_ECDSA_SIGN_VERIFY_FUNC_TC002 P-224 msg IS ALL 0XFF | ||
| 57 | +SDV_CRYPTO_ECDSA_SIGN_VERIFY_FUNC_TC002:CRYPT_ECC_NISTP192:"00abd205ef412646907d2e4886b8ffd7d94678bd3818ed54":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"00b81567f9e19c4ace373a26337488c1a476b7ee8d8e52bf":"3b1c19d73b6a4d7a12003530a54ae0f5ba18d75c98a0db95":"afb8bd8c94c6e3d5dc050e3641c0fad771557ce97f5f3dba":1:0 | ||
| 58 | + | ||
| 59 | +SDV_CRYPTO_ECDSA_SIGN_VERIFY_FUNC_TC002 P-224 msg IS ALL 0XFF | ||
| 60 | +SDV_CRYPTO_ECDSA_SIGN_VERIFY_FUNC_TC002:CRYPT_ECC_NISTP192:"0045624e643545c113e4a1993cfac6f23c6e0486c98e14c9":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"008df8209daae53a365bdcc8608f597315d43f587859d96a":"21933e6e8cdcfff62f36c45e83dece1280a888663a34608f":"565890e37fdf563595d24524ef1da9aae246892e75a74234":1:1 | ||
| 61 | + | ||
| 50 | SDV_CRYPTO_ECDSA_SIGN_VERIFY_FUNC_TC002 P-224 msg IS ALL 0X00 | 62 | SDV_CRYPTO_ECDSA_SIGN_VERIFY_FUNC_TC002 P-224 msg IS ALL 0X00 |
| 51 | SDV_CRYPTO_ECDSA_SIGN_VERIFY_FUNC_TC002:CRYPT_ECC_NISTP224:"16797b5c0c7ed5461e2ff1b88e6eafa03c0f46bf072000dfc830d615":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"d9a5a7328117f48b4b8dd8c17dae722e756b3ff64bd29a527137eec0":"605495756e6e88f1d07ae5f98787af9b4da8a641d1a9492a12174eab":"f5cc733b17decc806ef1df861a42505d0af9ef7c3df3959b8dfc6669":1:0 | 63 | SDV_CRYPTO_ECDSA_SIGN_VERIFY_FUNC_TC002:CRYPT_ECC_NISTP224:"16797b5c0c7ed5461e2ff1b88e6eafa03c0f46bf072000dfc830d615":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"d9a5a7328117f48b4b8dd8c17dae722e756b3ff64bd29a527137eec0":"605495756e6e88f1d07ae5f98787af9b4da8a641d1a9492a12174eab":"f5cc733b17decc806ef1df861a42505d0af9ef7c3df3959b8dfc6669":1:0 |
| 52 | 64 | ||
| @@ -89,6 +101,9 @@ SDV_CRYPTO_ECDSA_CTRL_API_TC001:CRYPT_CTRL_SET_RSA_PADDING:CRYPT_ECC_PKEY_ERR_UN | |||
| 89 | SDV_CRYPTO_ECDSA_CTRL_API_TC002 | 101 | SDV_CRYPTO_ECDSA_CTRL_API_TC002 |
| 90 | SDV_CRYPTO_ECDSA_CTRL_API_TC002: | 102 | SDV_CRYPTO_ECDSA_CTRL_API_TC002: |
| 91 | 103 | ||
| 104 | +SDV_CRYPTO_ECDSA_CTRL_API_TC003: Nist P-192 | ||
| 105 | +SDV_CRYPTO_ECDSA_CTRL_API_TC003:CRYPT_ECC_NISTP192:"14f69738599689f5706ab71343becc886ef1569a2d1137fe":"0cf5a433909e33217fb4df6b9593f71d43fb1c2a5653b763" | ||
| 106 | + | ||
| 92 | SDV_CRYPTO_ECDSA_CTRL_API_TC003: Nist P-224 | 107 | SDV_CRYPTO_ECDSA_CTRL_API_TC003: Nist P-224 |
| 93 | SDV_CRYPTO_ECDSA_CTRL_API_TC003:CRYPT_ECC_NISTP224:"605495756e6e88f1d07ae5f98787af9b4da8a641d1a9492a12174eab":"f5cc733b17decc806ef1df861a42505d0af9ef7c3df3959b8dfc6669" | 108 | SDV_CRYPTO_ECDSA_CTRL_API_TC003:CRYPT_ECC_NISTP224:"605495756e6e88f1d07ae5f98787af9b4da8a641d1a9492a12174eab":"f5cc733b17decc806ef1df861a42505d0af9ef7c3df3959b8dfc6669" |
| 94 | 109 | ||
| @@ -140,6 +155,12 @@ SDV_CRYPTO_ECDSA_SET_PUB_API_TC003:CRYPT_ECC_NISTP224:"":"":0 | |||
| 140 | SDV_CRYPTO_ECDSA_SET_PUB_API_TC003 | 155 | SDV_CRYPTO_ECDSA_SET_PUB_API_TC003 |
| 141 | SDV_CRYPTO_ECDSA_SET_PUB_API_TC003:CRYPT_ECC_NISTP224:"":"":1 | 156 | SDV_CRYPTO_ECDSA_SET_PUB_API_TC003:CRYPT_ECC_NISTP224:"":"":1 |
| 142 | 157 | ||
| 158 | +SDV_CRYPTO_ECDSA_SET_PUB_API_TC003 | ||
| 159 | +SDV_CRYPTO_ECDSA_SET_PUB_API_TC003:CRYPT_ECC_NISTP192:"":"":0 | ||
| 160 | + | ||
| 161 | +SDV_CRYPTO_ECDSA_SET_PUB_API_TC003 | ||
| 162 | +SDV_CRYPTO_ECDSA_SET_PUB_API_TC003:CRYPT_ECC_NISTP192:"":"":1 | ||
| 163 | + | ||
| 143 | SDV_CRYPTO_ECDSA_SET_PUB_API_TC003 | 164 | SDV_CRYPTO_ECDSA_SET_PUB_API_TC003 |
| 144 | SDV_CRYPTO_ECDSA_SET_PUB_API_TC003:CRYPT_ECC_NISTP256:"":"":0 | 165 | SDV_CRYPTO_ECDSA_SET_PUB_API_TC003:CRYPT_ECC_NISTP256:"":"":0 |
| 145 | 166 | ||
| @@ -161,6 +182,12 @@ SDV_CRYPTO_ECDSA_SET_PUB_API_TC003:CRYPT_ECC_BRAINPOOLP384R1:"":"":0 | |||
| 161 | SDV_CRYPTO_ECDSA_SET_PUB_API_TC003 | 182 | SDV_CRYPTO_ECDSA_SET_PUB_API_TC003 |
| 162 | SDV_CRYPTO_ECDSA_SET_PUB_API_TC003:CRYPT_ECC_BRAINPOOLP512R1:"":"":0 | 183 | SDV_CRYPTO_ECDSA_SET_PUB_API_TC003:CRYPT_ECC_BRAINPOOLP512R1:"":"":0 |
| 163 | 184 | ||
| 185 | +SDV_CRYPTO_ECDSA_SET_PUB_API_TC003: Nist | ||
| 186 | +SDV_CRYPTO_ECDSA_SET_PUB_API_TC003:CRYPT_ECC_NISTP192:"05284fbaa76ce0faae2ca4867d01092fa1ace5724cd12c8dd0e42af3dbf3206be3fcbcc3a7ccaf60c73dc29e7bb9b44fca":"0482c949295156192df0b52480e38c810751ac570daec460a3200057ada615c80b8ff256ce8d47f2562b74a438f1921ac3":0 | ||
| 187 | + | ||
| 188 | +SDV_CRYPTO_ECDSA_SET_PUB_API_TC003: Nist | ||
| 189 | +SDV_CRYPTO_ECDSA_SET_PUB_API_TC003:CRYPT_ECC_NISTP192:"05284fbaa76ce0faae2ca4867d01092fa1ace5724cd12c8dd0e42af3dbf3206be3fcbcc3a7ccaf60c73dc29e7bb9b44fca":"0482c949295156192df0b52480e38c810751ac570daec460a3200057ada615c80b8ff256ce8d47f2562b74a438f1921ac3":1 | ||
| 190 | + | ||
| 164 | SDV_CRYPTO_ECDSA_SET_PUB_API_TC003: Nist | 191 | SDV_CRYPTO_ECDSA_SET_PUB_API_TC003: Nist |
| 165 | SDV_CRYPTO_ECDSA_SET_PUB_API_TC003:CRYPT_ECC_NISTP224:"05605495756e6e88f1d07ae5f98787af9b4da8a641d1a9492a12174eabf5cc733b17decc806ef1df861a42505d0af9ef7c3df3959b8dfc6669":"04605495756e6e88f1d07ae5f98787af9b4da8a641d1a9492a12174eabf5cc733b17decc806ef1df861a42505d0af9ef7c3df3959b8dfc666a":0 | 192 | SDV_CRYPTO_ECDSA_SET_PUB_API_TC003:CRYPT_ECC_NISTP224:"05605495756e6e88f1d07ae5f98787af9b4da8a641d1a9492a12174eabf5cc733b17decc806ef1df861a42505d0af9ef7c3df3959b8dfc6669":"04605495756e6e88f1d07ae5f98787af9b4da8a641d1a9492a12174eabf5cc733b17decc806ef1df861a42505d0af9ef7c3df3959b8dfc666a":0 |
| 166 | 193 | ||
| @@ -215,6 +242,9 @@ SDV_CRYPTO_ECDSA_SET_PUB_API_TC003:CRYPT_ECC_BRAINPOOLP512R1:"0A420517E406AAC0AC | |||
| 215 | SDV_CRYPTO_ECDSA_SET_PUB_API_TC003: FRC 7072 | 242 | SDV_CRYPTO_ECDSA_SET_PUB_API_TC003: FRC 7072 |
| 216 | SDV_CRYPTO_ECDSA_SET_PUB_API_TC003:CRYPT_ECC_BRAINPOOLP512R1:"0A420517E406AAC0ACDCE90FCD71487718D3B953EFD7FBEC5F7F27E28C6149999397E91E029E06457DB2D3E640668B392C2A7E737A7F0BF04436D11640FD09FD72E6882E8DB28AAD36237CD25D580DB23783961C8DC52DFA2EC138AD472A0FCEF3887CF62B623B2A87DE5C588301EA3E5FC269B373B60724F5E82A6AD147FDE7":"070562E68B9AF7CBFD5565C6B16883B777FF11C199161ECC427A39D17EC2166499389571D6A994977C56AD8252658BA8A1B72AE42F4FB7532151AFC3EF0971CCDAA7CA2D8191E21776A89860AFBC1F582FAA308D551C1DC6133AF9F9C3CAD59998D70079548140B90B1F311AFB378AA81F51B275B2BE6B7DEE978EFC7343EA642F":1 | 243 | SDV_CRYPTO_ECDSA_SET_PUB_API_TC003:CRYPT_ECC_BRAINPOOLP512R1:"0A420517E406AAC0ACDCE90FCD71487718D3B953EFD7FBEC5F7F27E28C6149999397E91E029E06457DB2D3E640668B392C2A7E737A7F0BF04436D11640FD09FD72E6882E8DB28AAD36237CD25D580DB23783961C8DC52DFA2EC138AD472A0FCEF3887CF62B623B2A87DE5C588301EA3E5FC269B373B60724F5E82A6AD147FDE7":"070562E68B9AF7CBFD5565C6B16883B777FF11C199161ECC427A39D17EC2166499389571D6A994977C56AD8252658BA8A1B72AE42F4FB7532151AFC3EF0971CCDAA7CA2D8191E21776A89860AFBC1F582FAA308D551C1DC6133AF9F9C3CAD59998D70079548140B90B1F311AFB378AA81F51B275B2BE6B7DEE978EFC7343EA642F":1 |
| 217 | 244 | ||
| 245 | +SDV_CRYPTO_ECDSA_GET_PARA_ID_API_TC001 | ||
| 246 | +SDV_CRYPTO_ECDSA_GET_PARA_ID_API_TC001:CRYPT_ECC_NISTP192 | ||
| 247 | + | ||
| 218 | SDV_CRYPTO_ECDSA_GET_PARA_ID_API_TC001 | 248 | SDV_CRYPTO_ECDSA_GET_PARA_ID_API_TC001 |
| 219 | SDV_CRYPTO_ECDSA_GET_PARA_ID_API_TC001:CRYPT_ECC_NISTP224 | 249 | SDV_CRYPTO_ECDSA_GET_PARA_ID_API_TC001:CRYPT_ECC_NISTP224 |
| 220 | 250 | ||
| @@ -235,12 +265,24 @@ SDV_CRYPTO_ECDSA_VERIFY_API_TC001:"699325d6fc8fbbb4981a6ded3c3a54ad2e4e3db8a5669 | |||
| 235 | SDV_CRYPTO_ECDSA_VERIFY_API_TC001: Nist | 265 | SDV_CRYPTO_ECDSA_VERIFY_API_TC001: Nist |
| 236 | SDV_CRYPTO_ECDSA_VERIFY_API_TC001:"699325d6fc8fbbb4981a6ded3c3a54ad2e4e3db8a5669201912064c64e700c139248cdc19495df081c3fc60245b9f25fc9e301b845b3d703a694986e4641ae3c7e5a19e6d6edbf1d61e535f49a8fad5f4ac26397cfec682f161a5fcd32c5e780668b0181a91955157635536a22367308036e2070f544ad4fff3d5122c76fad5d":"605495756e6e88f1d07ae5f98787af9b4da8a641d1a9492a12174eab":"f5cc733b17decc806ef1df861a42505d0af9ef7c3df3959b8dfc6669":"303d021c2fc2cff8cdd4866b1d74e45b07d333af46b7af0888049d0fdbc7b0d6021d008d9cc4c8ea93e0fd9d6431b9a1fd99b88f281793396321b11dac41eb":1 | 266 | SDV_CRYPTO_ECDSA_VERIFY_API_TC001:"699325d6fc8fbbb4981a6ded3c3a54ad2e4e3db8a5669201912064c64e700c139248cdc19495df081c3fc60245b9f25fc9e301b845b3d703a694986e4641ae3c7e5a19e6d6edbf1d61e535f49a8fad5f4ac26397cfec682f161a5fcd32c5e780668b0181a91955157635536a22367308036e2070f544ad4fff3d5122c76fad5d":"605495756e6e88f1d07ae5f98787af9b4da8a641d1a9492a12174eab":"f5cc733b17decc806ef1df861a42505d0af9ef7c3df3959b8dfc6669":"303d021c2fc2cff8cdd4866b1d74e45b07d333af46b7af0888049d0fdbc7b0d6021d008d9cc4c8ea93e0fd9d6431b9a1fd99b88f281793396321b11dac41eb":1 |
| 237 | 267 | ||
| 268 | +SDV_CRYPTO_ECDSA_VERIFY_DATA_API_TC001: Nist p192 | ||
| 269 | +SDV_CRYPTO_ECDSA_VERIFY_DATA_API_TC001:CRYPT_ECC_NISTP192:"66e98a165854cd07989b1ee0ec3f8dbe0ee3c2fb0051ef53a0be03457c4f21bce7dc50ef4df37486c3207dfee26bde4ed62340cbb2da784906b1b783b4d601bdff4ae1a7e5e85a85afa3208dc60f0990c823bedddb3db663426665152ed7b093d6bda506c93a694b83ac71553f31f5cc0d6ba2fa248090e8796573c4915d1586":"14f69738599689f5706ab71343becc886ef1569a2d1137fe":"0cf5a433909e33217fb4df6b9593f71d43fb1c2a5653b763":"3036021900af1f749e3df6220ff04efd178618a977e0838b1b9dc126e30219008990a04c6cc0ff26264ecf8f7831381a9dbc6e53cc8cc860":0 | ||
| 270 | + | ||
| 271 | +SDV_CRYPTO_ECDSA_VERIFY_DATA_API_TC001: Nist p192 | ||
| 272 | +SDV_CRYPTO_ECDSA_VERIFY_DATA_API_TC001:CRYPT_ECC_NISTP192:"66e98a165854cd07989b1ee0ec3f8dbe0ee3c2fb0051ef53a0be03457c4f21bce7dc50ef4df37486c3207dfee26bde4ed62340cbb2da784906b1b783b4d601bdff4ae1a7e5e85a85afa3208dc60f0990c823bedddb3db663426665152ed7b093d6bda506c93a694b83ac71553f31f5cc0d6ba2fa248090e8796573c4915d1586":"14f69738599689f5706ab71343becc886ef1569a2d1137fe":"0cf5a433909e33217fb4df6b9593f71d43fb1c2a5653b763":"3036021900af1f749e3df6220ff04efd178618a977e0838b1b9dc126e30219008990a04c6cc0ff26264ecf8f7831381a9dbc6e53cc8cc860":1 | ||
| 273 | + | ||
| 238 | SDV_CRYPTO_ECDSA_VERIFY_DATA_API_TC001: Nist | 274 | SDV_CRYPTO_ECDSA_VERIFY_DATA_API_TC001: Nist |
| 239 | SDV_CRYPTO_ECDSA_VERIFY_DATA_API_TC001:CRYPT_ECC_NISTP224:"699325d6fc8fbbb4981a6ded3c3a54ad2e4e3db8a5669201912064c64e700c139248cdc19495df081c3fc60245b9f25fc9e301b845b3d703a694986e4641ae3c7e5a19e6d6edbf1d61e535f49a8fad5f4ac26397cfec682f161a5fcd32c5e780668b0181a91955157635536a22367308036e2070f544ad4fff3d5122c76fad5d":"605495756e6e88f1d07ae5f98787af9b4da8a641d1a9492a12174eab":"f5cc733b17decc806ef1df861a42505d0af9ef7c3df3959b8dfc6669":"303d021c2fc2cff8cdd4866b1d74e45b07d333af46b7af0888049d0fdbc7b0d6021d008d9cc4c8ea93e0fd9d6431b9a1fd99b88f281793396321b11dac41eb":0 | 275 | SDV_CRYPTO_ECDSA_VERIFY_DATA_API_TC001:CRYPT_ECC_NISTP224:"699325d6fc8fbbb4981a6ded3c3a54ad2e4e3db8a5669201912064c64e700c139248cdc19495df081c3fc60245b9f25fc9e301b845b3d703a694986e4641ae3c7e5a19e6d6edbf1d61e535f49a8fad5f4ac26397cfec682f161a5fcd32c5e780668b0181a91955157635536a22367308036e2070f544ad4fff3d5122c76fad5d":"605495756e6e88f1d07ae5f98787af9b4da8a641d1a9492a12174eab":"f5cc733b17decc806ef1df861a42505d0af9ef7c3df3959b8dfc6669":"303d021c2fc2cff8cdd4866b1d74e45b07d333af46b7af0888049d0fdbc7b0d6021d008d9cc4c8ea93e0fd9d6431b9a1fd99b88f281793396321b11dac41eb":0 |
| 240 | 276 | ||
| 241 | SDV_CRYPTO_ECDSA_VERIFY_DATA_API_TC001: Nist | 277 | SDV_CRYPTO_ECDSA_VERIFY_DATA_API_TC001: Nist |
| 242 | SDV_CRYPTO_ECDSA_VERIFY_DATA_API_TC001:CRYPT_ECC_NISTP224:"699325d6fc8fbbb4981a6ded3c3a54ad2e4e3db8a5669201912064c64e700c139248cdc19495df081c3fc60245b9f25fc9e301b845b3d703a694986e4641ae3c7e5a19e6d6edbf1d61e535f49a8fad5f4ac26397cfec682f161a5fcd32c5e780668b0181a91955157635536a22367308036e2070f544ad4fff3d5122c76fad5d":"605495756e6e88f1d07ae5f98787af9b4da8a641d1a9492a12174eab":"f5cc733b17decc806ef1df861a42505d0af9ef7c3df3959b8dfc6669":"303d021c2fc2cff8cdd4866b1d74e45b07d333af46b7af0888049d0fdbc7b0d6021d008d9cc4c8ea93e0fd9d6431b9a1fd99b88f281793396321b11dac41eb":1 | 278 | SDV_CRYPTO_ECDSA_VERIFY_DATA_API_TC001:CRYPT_ECC_NISTP224:"699325d6fc8fbbb4981a6ded3c3a54ad2e4e3db8a5669201912064c64e700c139248cdc19495df081c3fc60245b9f25fc9e301b845b3d703a694986e4641ae3c7e5a19e6d6edbf1d61e535f49a8fad5f4ac26397cfec682f161a5fcd32c5e780668b0181a91955157635536a22367308036e2070f544ad4fff3d5122c76fad5d":"605495756e6e88f1d07ae5f98787af9b4da8a641d1a9492a12174eab":"f5cc733b17decc806ef1df861a42505d0af9ef7c3df3959b8dfc6669":"303d021c2fc2cff8cdd4866b1d74e45b07d333af46b7af0888049d0fdbc7b0d6021d008d9cc4c8ea93e0fd9d6431b9a1fd99b88f281793396321b11dac41eb":1 |
| 243 | 279 | ||
| 280 | +SDV_CRYPTO_ECDSA_GET_SECURITY_BITS_API_TC001 | ||
| 281 | +SDV_CRYPTO_ECDSA_GET_SECURITY_BITS_API_TC001:CRYPT_ECC_NISTP192:80:0 | ||
| 282 | + | ||
| 283 | +SDV_CRYPTO_ECDSA_GET_SECURITY_BITS_API_TC001 | ||
| 284 | +SDV_CRYPTO_ECDSA_GET_SECURITY_BITS_API_TC001:CRYPT_ECC_NISTP192:80:1 | ||
| 285 | + | ||
| 244 | SDV_CRYPTO_ECDSA_GET_SECURITY_BITS_API_TC001 | 286 | SDV_CRYPTO_ECDSA_GET_SECURITY_BITS_API_TC001 |
| 245 | SDV_CRYPTO_ECDSA_GET_SECURITY_BITS_API_TC001:CRYPT_ECC_NISTP224:112:0 | 287 | SDV_CRYPTO_ECDSA_GET_SECURITY_BITS_API_TC001:CRYPT_ECC_NISTP224:112:0 |
| 246 | 288 | ||
| @@ -259,6 +301,12 @@ SDV_CRYPTO_ECDSA_GET_SECURITY_BITS_API_TC001:CRYPT_ECC_NISTP384:192:0 | |||
| 259 | SDV_CRYPTO_ECDSA_GET_SECURITY_BITS_API_TC001 | 301 | SDV_CRYPTO_ECDSA_GET_SECURITY_BITS_API_TC001 |
| 260 | SDV_CRYPTO_ECDSA_GET_SECURITY_BITS_API_TC001:CRYPT_ECC_NISTP521:256:0 | 302 | SDV_CRYPTO_ECDSA_GET_SECURITY_BITS_API_TC001:CRYPT_ECC_NISTP521:256:0 |
| 261 | 303 | ||
| 304 | +SDV_CRYPTO_ECDSA_GET_KEY_BITS_API_TC001 | ||
| 305 | +SDV_CRYPTO_ECDSA_GET_KEY_BITS_API_TC001:CRYPT_ECC_NISTP192:392:0 | ||
| 306 | + | ||
| 307 | +SDV_CRYPTO_ECDSA_GET_KEY_BITS_API_TC001 | ||
| 308 | +SDV_CRYPTO_ECDSA_GET_KEY_BITS_API_TC001:CRYPT_ECC_NISTP192:392:1 | ||
| 309 | + | ||
| 262 | SDV_CRYPTO_ECDSA_GET_KEY_BITS_API_TC001 | 310 | SDV_CRYPTO_ECDSA_GET_KEY_BITS_API_TC001 |
| 263 | SDV_CRYPTO_ECDSA_GET_KEY_BITS_API_TC001:CRYPT_ECC_NISTP224:456:0 | 311 | SDV_CRYPTO_ECDSA_GET_KEY_BITS_API_TC001:CRYPT_ECC_NISTP224:456:0 |
| 264 | 312 | ||
| @@ -277,6 +325,12 @@ SDV_CRYPTO_ECDSA_GET_KEY_BITS_API_TC001:CRYPT_ECC_NISTP384:776:0 | |||
| 277 | SDV_CRYPTO_ECDSA_GET_KEY_BITS_API_TC001 | 325 | SDV_CRYPTO_ECDSA_GET_KEY_BITS_API_TC001 |
| 278 | SDV_CRYPTO_ECDSA_GET_KEY_BITS_API_TC001:CRYPT_ECC_NISTP521:1064:0 | 326 | SDV_CRYPTO_ECDSA_GET_KEY_BITS_API_TC001:CRYPT_ECC_NISTP521:1064:0 |
| 279 | 327 | ||
| 328 | +SDV_CRYPTO_ECDSA_SET_PARA_API_TC001 | ||
| 329 | +SDV_CRYPTO_ECDSA_SET_PARA_API_TC001:CRYPT_ECC_NISTP192:0 | ||
| 330 | + | ||
| 331 | +SDV_CRYPTO_ECDSA_SET_PARA_API_TC001 | ||
| 332 | +SDV_CRYPTO_ECDSA_SET_PARA_API_TC001:CRYPT_ECC_NISTP192:1 | ||
| 333 | + | ||
| 280 | SDV_CRYPTO_ECDSA_SET_PARA_API_TC001 | 334 | SDV_CRYPTO_ECDSA_SET_PARA_API_TC001 |
| 281 | SDV_CRYPTO_ECDSA_SET_PARA_API_TC001:CRYPT_ECC_NISTP224:0 | 335 | SDV_CRYPTO_ECDSA_SET_PARA_API_TC001:CRYPT_ECC_NISTP224:0 |
| 282 | 336 | ||
| @@ -295,6 +349,12 @@ SDV_CRYPTO_ECDSA_SET_PARA_API_TC001:CRYPT_ECC_NISTP384:0 | |||
| 295 | SDV_CRYPTO_ECDSA_SET_PARA_API_TC001 | 349 | SDV_CRYPTO_ECDSA_SET_PARA_API_TC001 |
| 296 | SDV_CRYPTO_ECDSA_SET_PARA_API_TC001:CRYPT_ECC_NISTP256:0 | 350 | SDV_CRYPTO_ECDSA_SET_PARA_API_TC001:CRYPT_ECC_NISTP256:0 |
| 297 | 351 | ||
| 352 | +SDV_CRYPTO_ECDSA_SIGN_VERIFY_FUNC_TC001 nist, [P-192,SHA-1] | ||
| 353 | +SDV_CRYPTO_ECDSA_SIGN_VERIFY_FUNC_TC001:CRYPT_ECC_NISTP192:CRYPT_MD_SHA1:"0017899949d02b55f9556846411cc9de512c6f16ecdeb1c4":"66e98a165854cd07989b1ee0ec3f8dbe0ee3c2fb0051ef53a0be03457c4f21bce7dc50ef4df37486c3207dfee26bde4ed62340cbb2da784906b1b783b4d601bdff4ae1a7e5e85a85afa3208dc60f0990c823bedddb3db663426665152ed7b093d6bda506c93a694b83ac71553f31f5cc0d6ba2fa248090e8796573c4915d1586":"af1f749e3df6220ff04efd178618a977e0838b1b9dc126e3":"8990a04c6cc0ff26264ecf8f7831381a9dbc6e53cc8cc860":"0098e9c07e8e6adb97b77d85b0c10a265e11737a89a3e37b":"14f69738599689f5706ab71343becc886ef1569a2d1137fe":"0cf5a433909e33217fb4df6b9593f71d43fb1c2a5653b763":0:0 | ||
| 354 | + | ||
| 355 | +SDV_CRYPTO_ECDSA_SIGN_VERIFY_FUNC_TC001 nist, [P-192,SHA-1] | ||
| 356 | +SDV_CRYPTO_ECDSA_SIGN_VERIFY_FUNC_TC001:CRYPT_ECC_NISTP192:CRYPT_MD_SHA1:"00abd205ef412646907d2e4886b8ffd7d94678bd3818ed54":"477101daa282a5a55b48c5313290c8da65b07cc4d41a5a1463300c60a05a2c63a6564ff641d0423c5233931c75be53f4e2da1b8b91ab4d48a2e59ca2fbe1cfd833f0c1e2afefada70a1ba870ba276f9df18c6397c221d20585eb78437c36460fb7e4628634066e504ba90d1749f2a33d5c6e5dceafa372b3d5eba8296b821972":"e36d5dbb9560d959814cbd30aa6a405da9652fbd250da9ab":"f2db3d62733f6d08b08ef0682f579ac527950117f39e474b":"00b81567f9e19c4ace373a26337488c1a476b7ee8d8e52bf":"3b1c19d73b6a4d7a12003530a54ae0f5ba18d75c98a0db95":"afb8bd8c94c6e3d5dc050e3641c0fad771557ce97f5f3dba":1:1 | ||
| 357 | + | ||
| 298 | SDV_CRYPTO_ECDSA_SIGN_VERIFY_FUNC_TC001 nist, [P-224,SHA-224] | 358 | SDV_CRYPTO_ECDSA_SIGN_VERIFY_FUNC_TC001 nist, [P-224,SHA-224] |
| 299 | SDV_CRYPTO_ECDSA_SIGN_VERIFY_FUNC_TC001:CRYPT_ECC_NISTP224:CRYPT_MD_SHA224:"16797b5c0c7ed5461e2ff1b88e6eafa03c0f46bf072000dfc830d615":"699325d6fc8fbbb4981a6ded3c3a54ad2e4e3db8a5669201912064c64e700c139248cdc19495df081c3fc60245b9f25fc9e301b845b3d703a694986e4641ae3c7e5a19e6d6edbf1d61e535f49a8fad5f4ac26397cfec682f161a5fcd32c5e780668b0181a91955157635536a22367308036e2070f544ad4fff3d5122c76fad5d":"2fc2cff8cdd4866b1d74e45b07d333af46b7af0888049d0fdbc7b0d6":"8d9cc4c8ea93e0fd9d6431b9a1fd99b88f281793396321b11dac41eb":"d9a5a7328117f48b4b8dd8c17dae722e756b3ff64bd29a527137eec0":"605495756e6e88f1d07ae5f98787af9b4da8a641d1a9492a12174eab":"f5cc733b17decc806ef1df861a42505d0af9ef7c3df3959b8dfc6669":0:0 | 359 | SDV_CRYPTO_ECDSA_SIGN_VERIFY_FUNC_TC001:CRYPT_ECC_NISTP224:CRYPT_MD_SHA224:"16797b5c0c7ed5461e2ff1b88e6eafa03c0f46bf072000dfc830d615":"699325d6fc8fbbb4981a6ded3c3a54ad2e4e3db8a5669201912064c64e700c139248cdc19495df081c3fc60245b9f25fc9e301b845b3d703a694986e4641ae3c7e5a19e6d6edbf1d61e535f49a8fad5f4ac26397cfec682f161a5fcd32c5e780668b0181a91955157635536a22367308036e2070f544ad4fff3d5122c76fad5d":"2fc2cff8cdd4866b1d74e45b07d333af46b7af0888049d0fdbc7b0d6":"8d9cc4c8ea93e0fd9d6431b9a1fd99b88f281793396321b11dac41eb":"d9a5a7328117f48b4b8dd8c17dae722e756b3ff64bd29a527137eec0":"605495756e6e88f1d07ae5f98787af9b4da8a641d1a9492a12174eab":"f5cc733b17decc806ef1df861a42505d0af9ef7c3df3959b8dfc6669":0:0 |
| 300 | 360 | ||
| @@ -355,6 +415,42 @@ SDV_CRYPTO_ECDSA_SIGN_VERIFY_FUNC_TC001:CRYPT_ECC_NISTP521:CRYPT_MD_SHA384:"0095 | |||
| 355 | SDV_CRYPTO_ECDSA_SIGN_VERIFY_FUNC_TC001 nist, [P-521,SHA-512] | 415 | SDV_CRYPTO_ECDSA_SIGN_VERIFY_FUNC_TC001 nist, [P-521,SHA-512] |
| 356 | SDV_CRYPTO_ECDSA_SIGN_VERIFY_FUNC_TC001:CRYPT_ECC_NISTP521:CRYPT_MD_SHA512:"01a4d2623a7d59c55f408331ba8d1523b94d6bf8ac83375ceb57a2b395a5bcf977cfc16234d4a97d6f6ee25a99aa5bff15ff535891bcb7ae849a583e01ac49e0e9b6":"b3c63e5f5a21c4bfe3dbc644354d9a949186d6a9e1dd873828782aa6a0f1df2f64114a430b1c13fe8a2e09099e1ed05ef70de698161039ded73bcb50b312673bb073f8a792ac140a78a8b7f3586dffb1fc8be4f54516d57418ccc9945025ce3acf1eb84f69ceee5e9bd10c18c251dbc481562cd3aae54b54ab618cb1eeda33cf":"01a3c4a6386c4fb614fba2cb9e74201e1aaa0001aa931a2a939c92e04b8344535a20f53c6e3c69c75c2e5d2fe3549ed27e6713cb0f4a9a94f6189eb33bff7d453fce":"016a997f81aa0bea2e1469c8c1dab7df02a8b2086ba482c43af04f2174831f2b1761658795adfbdd44190a9b06fe10e578987369f3a2eced147cff89d8c2818f7471":"00bc2c0f37155859303de6fa539a39714e195c37c6ea826e224c8218584ae09cd0d1cc14d94d93f2d83c96e4ef68517fdb3f383da5404e5a426bfc5d424e253c181b":"004d5c8afee038984d2ea96681ec0dccb6b52dfa4ee2e2a77a23c8cf43ef19905a34d6f5d8c5cf0981ed804d89d175b17d1a63522ceb1e785c0f5a1d2f3d15e51352":"0014368b8e746807b2b68f3615cd78d761a464ddd7918fc8df51d225962fdf1e3dc243e265100ff0ec133359e332e44dd49afd8e5f38fe86133573432d33c02fa0a3":0:0 | 416 | SDV_CRYPTO_ECDSA_SIGN_VERIFY_FUNC_TC001:CRYPT_ECC_NISTP521:CRYPT_MD_SHA512:"01a4d2623a7d59c55f408331ba8d1523b94d6bf8ac83375ceb57a2b395a5bcf977cfc16234d4a97d6f6ee25a99aa5bff15ff535891bcb7ae849a583e01ac49e0e9b6":"b3c63e5f5a21c4bfe3dbc644354d9a949186d6a9e1dd873828782aa6a0f1df2f64114a430b1c13fe8a2e09099e1ed05ef70de698161039ded73bcb50b312673bb073f8a792ac140a78a8b7f3586dffb1fc8be4f54516d57418ccc9945025ce3acf1eb84f69ceee5e9bd10c18c251dbc481562cd3aae54b54ab618cb1eeda33cf":"01a3c4a6386c4fb614fba2cb9e74201e1aaa0001aa931a2a939c92e04b8344535a20f53c6e3c69c75c2e5d2fe3549ed27e6713cb0f4a9a94f6189eb33bff7d453fce":"016a997f81aa0bea2e1469c8c1dab7df02a8b2086ba482c43af04f2174831f2b1761658795adfbdd44190a9b06fe10e578987369f3a2eced147cff89d8c2818f7471":"00bc2c0f37155859303de6fa539a39714e195c37c6ea826e224c8218584ae09cd0d1cc14d94d93f2d83c96e4ef68517fdb3f383da5404e5a426bfc5d424e253c181b":"004d5c8afee038984d2ea96681ec0dccb6b52dfa4ee2e2a77a23c8cf43ef19905a34d6f5d8c5cf0981ed804d89d175b17d1a63522ceb1e785c0f5a1d2f3d15e51352":"0014368b8e746807b2b68f3615cd78d761a464ddd7918fc8df51d225962fdf1e3dc243e265100ff0ec133359e332e44dd49afd8e5f38fe86133573432d33c02fa0a3":0:0 |
| 357 | 417 | ||
| 418 | +SDV_CRYPTO_ECDSA_SET_PUB_FUNC_TC001: nist, [P-192], F (2 - Point not on curve) | ||
| 419 | +SDV_CRYPTO_ECDSA_SET_PUB_FUNC_TC001:CRYPT_ECC_NISTP192:"491c0c4761b0a4a147b5e4ce03a531546644f5d1e3d05e57":"6fa5addd47c5d6be3933fbff88f57a6c8ca0232c471965de":0:CRYPT_POINT_UNCOMPRESSED:0 | ||
| 420 | + | ||
| 421 | +SDV_CRYPTO_ECDSA_SET_PUB_FUNC_TC001: nist, [P-192], P | ||
| 422 | +SDV_CRYPTO_ECDSA_SET_PUB_FUNC_TC001:CRYPT_ECC_NISTP192:"646c22e8aa5f7833390e0399155ac198ae42470bba4fc834":"8d4afcfffd80e69a4d180178b37c44572495b7b267ee32a9":1:CRYPT_POINT_UNCOMPRESSED:0 | ||
| 423 | + | ||
| 424 | +SDV_CRYPTO_ECDSA_SET_PUB_FUNC_TC001: nist, [P-192], F (2 - Point not on curve) | ||
| 425 | +SDV_CRYPTO_ECDSA_SET_PUB_FUNC_TC001:CRYPT_ECC_NISTP192:"4c6b9ea0dec92ecfff7799470be6a2277b9169daf45d54bb":"f0eab42826704f51b26ae98036e83230becb639dd1964627":0:CRYPT_POINT_UNCOMPRESSED:0 | ||
| 426 | + | ||
| 427 | +SDV_CRYPTO_ECDSA_SET_PUB_FUNC_TC001: nist, [P-192], P | ||
| 428 | +SDV_CRYPTO_ECDSA_SET_PUB_FUNC_TC001:CRYPT_ECC_NISTP192:"0673c8bb717b055c3d6f55c06acfcfb7260361ed3ec0f414":"ba8b172826eb0b854026968d2338a180450a27906f6eddea":1:CRYPT_POINT_HYBRID:0 | ||
| 429 | + | ||
| 430 | +SDV_CRYPTO_ECDSA_SET_PUB_FUNC_TC001: nist, [P-192], F (2 - Point not on curve) | ||
| 431 | +SDV_CRYPTO_ECDSA_SET_PUB_FUNC_TC001:CRYPT_ECC_NISTP192:"82c949295156192df0b52480e38c810751ac570daec460a3":"200057ada615c80b8ff256ce8d47f2562b74a438f1921ac3":0:CRYPT_POINT_HYBRID:0 | ||
| 432 | + | ||
| 433 | +SDV_CRYPTO_ECDSA_SET_PUB_FUNC_TC001: nist, [P-192], P | ||
| 434 | +SDV_CRYPTO_ECDSA_SET_PUB_FUNC_TC001:CRYPT_ECC_NISTP192:"284fbaa76ce0faae2ca4867d01092fa1ace5724cd12c8dd0":"e42af3dbf3206be3fcbcc3a7ccaf60c73dc29e7bb9b44fca":1:CRYPT_POINT_COMPRESSED:0 | ||
| 435 | + | ||
| 436 | +SDV_CRYPTO_ECDSA_SET_PUB_FUNC_TC001: nist, [P-192], F (1 - Q_x or Q_y out of range) | ||
| 437 | +SDV_CRYPTO_ECDSA_SET_PUB_FUNC_TC001:CRYPT_ECC_NISTP192:"01b574acd4fb0f60dde3e3b5f3f0e94211f95112e43cba6fd2":"bcc1b8a770f01a22e84d7f14e44932ffe094d8e3b1e6ac26":0:CRYPT_POINT_UNCOMPRESSED:0 | ||
| 438 | + | ||
| 439 | +SDV_CRYPTO_ECDSA_SET_PUB_FUNC_TC001: nist, [P-192], F (1 - Q_x or Q_y out of range) | ||
| 440 | +SDV_CRYPTO_ECDSA_SET_PUB_FUNC_TC001:CRYPT_ECC_NISTP192:"016ba109f1f1bb44e0d05b80181c03412ea764a59601d17e9f":"0569a843dbb4e287db420d6b9fe30cd7b5d578b052315f56":0:CRYPT_POINT_HYBRID:0 | ||
| 441 | + | ||
| 442 | +SDV_CRYPTO_ECDSA_SET_PUB_FUNC_TC001: nist, [P-192], F (1 - Q_x or Q_y out of range) | ||
| 443 | +SDV_CRYPTO_ECDSA_SET_PUB_FUNC_TC001:CRYPT_ECC_NISTP192:"01333308a7c833ede5189d25ea3525919c9bd16370d904938d":"b10fd01d67df75ff9b726c700c1b50596c9f0766ea56f80e":0:CRYPT_POINT_UNCOMPRESSED:0 | ||
| 444 | + | ||
| 445 | +SDV_CRYPTO_ECDSA_SET_PUB_FUNC_TC001: nist, [P-192], P | ||
| 446 | +SDV_CRYPTO_ECDSA_SET_PUB_FUNC_TC001:CRYPT_ECC_NISTP192:"9671ec444cff24c8a5be80b018fa505ed6109a731e88c91a":"fe79dae23008e46bf4230c895aab261a95845a77f06d0655":1:CRYPT_POINT_COMPRESSED:0 | ||
| 447 | + | ||
| 448 | +SDV_CRYPTO_ECDSA_SET_PUB_FUNC_TC001: nist, [P-192], F (1 - Q_x or Q_y out of range)P | ||
| 449 | +SDV_CRYPTO_ECDSA_SET_PUB_FUNC_TC001:CRYPT_ECC_NISTP192:"0158e8b6f0b14216bc52fe8897b4305d870ede70436a96741d":"fb3f970b19a313571a1a23be310923f85acc1cab0a157cbd":0:CRYPT_POINT_HYBRID:0 | ||
| 450 | + | ||
| 451 | +SDV_CRYPTO_ECDSA_SET_PUB_FUNC_TC001: nist, [P-192], F (2 - Point not on curve) | ||
| 452 | +SDV_CRYPTO_ECDSA_SET_PUB_FUNC_TC001:CRYPT_ECC_NISTP192:"ace95b650c08f73dbb4fa7b4bbdebd6b809a25b28ed135ef":"e9b8679404166d1329dd539ad52aad9a1b6681f5f26bb9aa":0:CRYPT_POINT_UNCOMPRESSED:0 | ||
| 453 | + | ||
| 358 | SDV_CRYPTO_ECDSA_SET_PUB_FUNC_TC001: nist, [P-224], P | 454 | SDV_CRYPTO_ECDSA_SET_PUB_FUNC_TC001: nist, [P-224], P |
| 359 | SDV_CRYPTO_ECDSA_SET_PUB_FUNC_TC001:CRYPT_ECC_NISTP224:"7fb5f1881188022d9b0a8b808834dfdc0c7388459350983e4aee1412":"661c3e17be24b038b1532d90675747482c238911093fb7035cc9b2cd":1:CRYPT_POINT_UNCOMPRESSED:0 | 455 | SDV_CRYPTO_ECDSA_SET_PUB_FUNC_TC001:CRYPT_ECC_NISTP224:"7fb5f1881188022d9b0a8b808834dfdc0c7388459350983e4aee1412":"661c3e17be24b038b1532d90675747482c238911093fb7035cc9b2cd":1:CRYPT_POINT_UNCOMPRESSED:0 |
| 360 | 456 | ||
| @@ -529,6 +625,12 @@ SDV_CRYPTO_ECDSA_SET_PUB_FUNC_TC001:CRYPT_ECC_BRAINPOOLP384R1:"45CB26E4384DAF6FB | |||
| 529 | SDV_CRYPTO_ECDSA_SET_PUB_FUNC_TC001 RFC 6932, brainpool p512r1 | 625 | SDV_CRYPTO_ECDSA_SET_PUB_FUNC_TC001 RFC 6932, brainpool p512r1 |
| 530 | SDV_CRYPTO_ECDSA_SET_PUB_FUNC_TC001:CRYPT_ECC_BRAINPOOLP512R1:"0562E68B9AF7CBFD5565C6B16883B777FF11C199161ECC427A39D17EC2166499389571D6A994977C56AD8252658BA8A1B72AE42F4FB7532151AFC3EF0971CCDA":"A7CA2D8191E21776A89860AFBC1F582FAA308D551C1DC6133AF9F9C3CAD59998D70079548140B90B1F311AFB378AA81F51B275B2BE6B7DEE978EFC7343EA642E":1:CRYPT_POINT_UNCOMPRESSED:0 | 626 | SDV_CRYPTO_ECDSA_SET_PUB_FUNC_TC001:CRYPT_ECC_BRAINPOOLP512R1:"0562E68B9AF7CBFD5565C6B16883B777FF11C199161ECC427A39D17EC2166499389571D6A994977C56AD8252658BA8A1B72AE42F4FB7532151AFC3EF0971CCDA":"A7CA2D8191E21776A89860AFBC1F582FAA308D551C1DC6133AF9F9C3CAD59998D70079548140B90B1F311AFB378AA81F51B275B2BE6B7DEE978EFC7343EA642E":1:CRYPT_POINT_UNCOMPRESSED:0 |
| 531 | 627 | ||
| 628 | +SDV_CRYPTO_ECDSA_GEN_KEY_FUNC_TC001 Nist, P-192 COMPRESS | ||
| 629 | +SDV_CRYPTO_ECDSA_GEN_KEY_FUNC_TC001:CRYPT_ECC_NISTP192:"a18d8e411b209b8f3cc01714667cd1497e7da7100337d61c":"54d3206218f2228ee22d2b055940106ab610e608ecdbad37":"0afcfb2095fb68886a7bc34d5c6d7df3fbee59ff746373aa":0:0 | ||
| 630 | + | ||
| 631 | +SDV_CRYPTO_ECDSA_GEN_KEY_FUNC_TC001 Nist, P-192 COMPRESS | ||
| 632 | +SDV_CRYPTO_ECDSA_GEN_KEY_FUNC_TC001:CRYPT_ECC_NISTP192:"24edd22f7ddd6fa5bc61fc0653479aa40809ef865cf27a47":"9bf12d7174b7708a076a38bc80aa28662f251e2ed8d414dc":"4854c8d07dfc08824e9e471ca2fedcfcff3ddcb011573498":0:1 | ||
| 633 | + | ||
| 532 | SDV_CRYPTO_ECDSA_GEN_KEY_FUNC_TC001 Nist, P-224 COMPRESS | 634 | SDV_CRYPTO_ECDSA_GEN_KEY_FUNC_TC001 Nist, P-224 COMPRESS |
| 533 | SDV_CRYPTO_ECDSA_GEN_KEY_FUNC_TC001:CRYPT_ECC_NISTP224:"e7c92383846a4e6887a10498d8eaca2bd0487d985bd7d3f92ce3ab30":"0a3682d2aaa4dd931bee042d32e95755507ab164b12f84843f4b7b96":"a6313a938eff7a293222e0e3c7b4c6132489b33255a61c3fc1ce2256":0:0 | 635 | SDV_CRYPTO_ECDSA_GEN_KEY_FUNC_TC001:CRYPT_ECC_NISTP224:"e7c92383846a4e6887a10498d8eaca2bd0487d985bd7d3f92ce3ab30":"0a3682d2aaa4dd931bee042d32e95755507ab164b12f84843f4b7b96":"a6313a938eff7a293222e0e3c7b4c6132489b33255a61c3fc1ce2256":0:0 |
| 534 | 636 | ||
| @@ -559,12 +661,24 @@ SDV_CRYPTO_ECDSA_GEN_KEY_FUNC_TC001:CRYPT_ECC_BRAINPOOLP512R1:"636B6BE0482A6C1C4 | |||
| 559 | SDV_CRYPTO_ECDSA_GET_PARA_FUNC_TC001 | 661 | SDV_CRYPTO_ECDSA_GET_PARA_FUNC_TC001 |
| 560 | SDV_CRYPTO_ECDSA_GET_PARA_FUNC_TC001:"ffffffffffffffffffffffffffffffff000000000000000000000001":"fffffffffffffffffffffffffffffffefffffffffffffffffffffffe":"b4050a850c04b3abf54132565044b0b7d7bfd8ba270b39432355ffb4":"b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21":"bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34":"ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d":"01" | 662 | SDV_CRYPTO_ECDSA_GET_PARA_FUNC_TC001:"ffffffffffffffffffffffffffffffff000000000000000000000001":"fffffffffffffffffffffffffffffffefffffffffffffffffffffffe":"b4050a850c04b3abf54132565044b0b7d7bfd8ba270b39432355ffb4":"b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21":"bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34":"ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d":"01" |
| 561 | 663 | ||
| 562 | -Ecdsa key pair check: Nist, [P-224,SHA-224], Pass | 664 | +Ecdsa key pair check: Nist, [P-192], Pass |
| 665 | +SDV_CRYPTO_ECDSA_KEY_PAIR_CHECK_FUNC_TC001:CRYPT_ECC_NISTP192:"756270bc1c92cd7a586d7c808d75570cee966a42a61435ed":"8b64bda6551000bf416c1d14560afacedb720a87f06d8bdd":"10d5179a28bff54c1d885a9d068978c53b0096511a69551b":CRYPT_POINT_COMPRESSED:1 | ||
| 666 | + | ||
| 667 | +Ecdsa key pair check: Nist, [P-192], Fail | ||
| 668 | +SDV_CRYPTO_ECDSA_KEY_PAIR_CHECK_FUNC_TC001:CRYPT_ECC_NISTP192:"bc66fa4faf6d77f488bd38f07630832de202fd894c2707e6":"96b758c5f6ab47d21bc3d80126d968fa243c8f8b24644bad":"792cfc9dcfe4533fd2f72c35a18b27d4ea9875d9bea9590a":CRYPT_POINT_COMPRESSED:0 | ||
| 669 | + | ||
| 670 | +Ecdsa key pair check: Nist, [P-224], Pass | ||
| 563 | SDV_CRYPTO_ECDSA_KEY_PAIR_CHECK_FUNC_TC001:CRYPT_ECC_NISTP224:"16797b5c0c7ed5461e2ff1b88e6eafa03c0f46bf072000dfc830d615":"605495756e6e88f1d07ae5f98787af9b4da8a641d1a9492a12174eab":"f5cc733b17decc806ef1df861a42505d0af9ef7c3df3959b8dfc6669":CRYPT_POINT_COMPRESSED:1 | 671 | SDV_CRYPTO_ECDSA_KEY_PAIR_CHECK_FUNC_TC001:CRYPT_ECC_NISTP224:"16797b5c0c7ed5461e2ff1b88e6eafa03c0f46bf072000dfc830d615":"605495756e6e88f1d07ae5f98787af9b4da8a641d1a9492a12174eab":"f5cc733b17decc806ef1df861a42505d0af9ef7c3df3959b8dfc6669":CRYPT_POINT_COMPRESSED:1 |
| 564 | 672 | ||
| 565 | -Ecdsa key pair check: Nist, [P-224,SHA-224], Fail | 673 | +Ecdsa key pair check: Nist, [P-224], Fail |
| 566 | SDV_CRYPTO_ECDSA_KEY_PAIR_CHECK_FUNC_TC001:CRYPT_ECC_NISTP224:"cf020a1ff36c28511191482ed1e5259c60d383606c581948c3fbe2c5":"605495756e6e88f1d07ae5f98787af9b4da8a641d1a9492a12174eab":"f5cc733b17decc806ef1df861a42505d0af9ef7c3df3959b8dfc6669":CRYPT_POINT_COMPRESSED:0 | 674 | SDV_CRYPTO_ECDSA_KEY_PAIR_CHECK_FUNC_TC001:CRYPT_ECC_NISTP224:"cf020a1ff36c28511191482ed1e5259c60d383606c581948c3fbe2c5":"605495756e6e88f1d07ae5f98787af9b4da8a641d1a9492a12174eab":"f5cc733b17decc806ef1df861a42505d0af9ef7c3df3959b8dfc6669":CRYPT_POINT_COMPRESSED:0 |
| 567 | 675 | ||
| 676 | +SDV_CRYPTO_ECDSA_API_TC026 ecdsa key len | ||
| 677 | +SDV_CRYPTO_ECDSA_API_TC026:CRYPT_ECC_NISTP192:49:0 | ||
| 678 | + | ||
| 679 | +SDV_CRYPTO_ECDSA_API_TC026 ecdsa key len | ||
| 680 | +SDV_CRYPTO_ECDSA_API_TC026:CRYPT_ECC_NISTP192:49:1 | ||
| 681 | + | ||
| 568 | SDV_CRYPTO_ECDSA_API_TC026 ecdsa key len | 682 | SDV_CRYPTO_ECDSA_API_TC026 ecdsa key len |
| 569 | SDV_CRYPTO_ECDSA_API_TC026:CRYPT_ECC_NISTP224:57:0 | 683 | SDV_CRYPTO_ECDSA_API_TC026:CRYPT_ECC_NISTP224:57:0 |
| 570 | 684 | ||
| @@ -589,10 +703,13 @@ SDV_CRYPTO_ECDSA_API_TC026:CRYPT_ECC_NISTP521:133:0 | |||
| 589 | SDV_CRYPTO_ECDSA_API_TC026 ecdsa key len | 703 | SDV_CRYPTO_ECDSA_API_TC026 ecdsa key len |
| 590 | SDV_CRYPTO_ECDSA_API_TC026:CRYPT_ECC_NISTP521:133:1 | 704 | SDV_CRYPTO_ECDSA_API_TC026:CRYPT_ECC_NISTP521:133:1 |
| 591 | 705 | ||
| 592 | -SDV_CRYPTO_GETSECURITYBITS_API_TC001 P-224 CRYPT_MD_SHA224 | 706 | +SDV_CRYPTO_GETSECURITYBITS_API_TC001 P-192 |
| 707 | +SDV_CRYPTO_GETSECURITYBITS_API_TC001:CRYPT_ECC_NISTP192:"578a58f71c8deb5ceff819f0f5f1b3d92b9b045a0a1bf5b4":80:0 | ||
| 708 | + | ||
| 709 | +SDV_CRYPTO_GETSECURITYBITS_API_TC001 P-224 | ||
| 593 | SDV_CRYPTO_GETSECURITYBITS_API_TC001:CRYPT_ECC_NISTP224:"16797b5c0c7ed5461e2ff1b88e6eafa03c0f46bf072000dfc830d615":112:0 | 710 | SDV_CRYPTO_GETSECURITYBITS_API_TC001:CRYPT_ECC_NISTP224:"16797b5c0c7ed5461e2ff1b88e6eafa03c0f46bf072000dfc830d615":112:0 |
| 594 | 711 | ||
| 595 | -SDV_CRYPTO_GETSECURITYBITS_API_TC001 P-224 CRYPT_MD_SHA224 | 712 | +SDV_CRYPTO_GETSECURITYBITS_API_TC001 P-224 |
| 596 | SDV_CRYPTO_GETSECURITYBITS_API_TC001:CRYPT_ECC_NISTP224:"16797b5c0c7ed5461e2ff1b88e6eafa03c0f46bf072000dfc830d615":112:1 | 713 | SDV_CRYPTO_GETSECURITYBITS_API_TC001:CRYPT_ECC_NISTP224:"16797b5c0c7ed5461e2ff1b88e6eafa03c0f46bf072000dfc830d615":112:1 |
| 597 | 714 | ||
| 598 | SDV_CRYPTO_ECDSA_Import_Export_FUNC_TC001 | 715 | SDV_CRYPTO_ECDSA_Import_Export_FUNC_TC001 |
| @@ -13,6 +13,9 @@ SDV_BSL_ASN1_PARSE_PUBKEY_FILE_TC001:"../testdata/cert/asn1/rsa3072pub_pkcs1.der | |||
| 13 | SDV_BSL_ASN1_PARSE_PUBKEY_FILE_TC001 parse rsa4096 pubkey file and verify signature | 13 | SDV_BSL_ASN1_PARSE_PUBKEY_FILE_TC001 parse rsa4096 pubkey file and verify signature |
| 14 | SDV_BSL_ASN1_PARSE_PUBKEY_FILE_TC001:"../testdata/cert/asn1/rsa4096pub_pkcs1.der":CRYPT_PUBKEY_RSA:CRYPT_MD_SHA256:"00010203040506070809":"52b83ba5f352aaa2bdcce579f55bc3665f7794169198c49ffcc3a8a6ad220e480b20010e2bbdbb66e5df08a9b54bc10af33c03b39a81bec743dd48ac281f8037e071fd800b9d429ec2f0c029a35fd65d8c6adc884cd7bae1bf0dc10631a7c8968a4e5cb29774b803a5fbd62a3386183b6faee7c4b0cf409c88f349073ae47d92cd8b70b1e9c8f12219869d7fc5e330d98bd825933cb63739d95f8c1ced7f9aa3da20caa9bb07bbc9acaad29805960350a7df3b5d45c9a9bef99efb49f926da543336fbc680868efae2f9cd36c3be6dec7ae3a27038a445753adeae0f12245d2654b882fbd40255b56019865f7db30d2c14e25710ef12025de18d26b54ea474e36116cba2a2f929d210cee259802ee9555f26e30f0f92b2db3871e840dc7fd999cfe255ff313cbfaa81325549e56bff4fbcefd3981a810554d421bf428c210b5958a80127a7ff7a7cbd2a9d1899b620faa7a3fc4de62c816d81d6521a86406c3b4e3d24ab2dec26385b8c4ac73d8719c6bd642242386f52aab92426e90be8cb53a343e341963e0ce421b90d635cffff6733dc0c5d97809eafbf0c5a6f231a51f5c67e598b1ee8b9ab9ab0260647038bd89b77694aa09ba8b7cefd9d78722ed9213a11a9c38c8d1894002e3e7fbae36e6229b758866af72b10b93f8cc8c85101d57a3c7ef57cc3cb80837041742cd97a20388378cd662ece1cca37dabe06d1db65" | 14 | SDV_BSL_ASN1_PARSE_PUBKEY_FILE_TC001:"../testdata/cert/asn1/rsa4096pub_pkcs1.der":CRYPT_PUBKEY_RSA:CRYPT_MD_SHA256:"00010203040506070809":"52b83ba5f352aaa2bdcce579f55bc3665f7794169198c49ffcc3a8a6ad220e480b20010e2bbdbb66e5df08a9b54bc10af33c03b39a81bec743dd48ac281f8037e071fd800b9d429ec2f0c029a35fd65d8c6adc884cd7bae1bf0dc10631a7c8968a4e5cb29774b803a5fbd62a3386183b6faee7c4b0cf409c88f349073ae47d92cd8b70b1e9c8f12219869d7fc5e330d98bd825933cb63739d95f8c1ced7f9aa3da20caa9bb07bbc9acaad29805960350a7df3b5d45c9a9bef99efb49f926da543336fbc680868efae2f9cd36c3be6dec7ae3a27038a445753adeae0f12245d2654b882fbd40255b56019865f7db30d2c14e25710ef12025de18d26b54ea474e36116cba2a2f929d210cee259802ee9555f26e30f0f92b2db3871e840dc7fd999cfe255ff313cbfaa81325549e56bff4fbcefd3981a810554d421bf428c210b5958a80127a7ff7a7cbd2a9d1899b620faa7a3fc4de62c816d81d6521a86406c3b4e3d24ab2dec26385b8c4ac73d8719c6bd642242386f52aab92426e90be8cb53a343e341963e0ce421b90d635cffff6733dc0c5d97809eafbf0c5a6f231a51f5c67e598b1ee8b9ab9ab0260647038bd89b77694aa09ba8b7cefd9d78722ed9213a11a9c38c8d1894002e3e7fbae36e6229b758866af72b10b93f8cc8c85101d57a3c7ef57cc3cb80837041742cd97a20388378cd662ece1cca37dabe06d1db65" |
| 15 | 15 | ||
| 16 | +SDV_BSL_ASN1_PARSE_PUBKEY_FILE_TC001 parse prime192v1 pubkey file and verify signature | ||
| 17 | +SDV_BSL_ASN1_PARSE_PUBKEY_FILE_TC001:"../testdata/cert/chain/nistp192_certs/ee_nistp192_pubkey.der":CRYPT_PUBKEY_SUBKEY:CRYPT_MD_SHA256:"00010203040506070809":"3035021870cb71da14e192f9cff974ab54c486544db71cbe14c19519021900e7b37aa77486f4677f306b4feb09df7be02c4839d2dbb7fa" | ||
| 18 | + | ||
| 16 | SDV_BSL_ASN1_PARSE_PUBKEY_FILE_TC001 parse prime256v1 pubkey file and verify signature | 19 | SDV_BSL_ASN1_PARSE_PUBKEY_FILE_TC001 parse prime256v1 pubkey file and verify signature |
| 17 | SDV_BSL_ASN1_PARSE_PUBKEY_FILE_TC001:"../testdata/cert/asn1/prime256v1pub.der":CRYPT_PUBKEY_SUBKEY:CRYPT_MD_SHA256:"00010203040506070809":"304402207e82bdc8d6e0ab55aa1c989867afd473bb057e48213b33d368105cd87f65027b022018c4ce1dfa13bf89b555c4fbf3e5a19bfbf6b14d33b2fd34991541283e4badca" | 20 | SDV_BSL_ASN1_PARSE_PUBKEY_FILE_TC001:"../testdata/cert/asn1/prime256v1pub.der":CRYPT_PUBKEY_SUBKEY:CRYPT_MD_SHA256:"00010203040506070809":"304402207e82bdc8d6e0ab55aa1c989867afd473bb057e48213b33d368105cd87f65027b022018c4ce1dfa13bf89b555c4fbf3e5a19bfbf6b14d33b2fd34991541283e4badca" |
| 18 | 21 | ||
| @@ -70,6 +73,12 @@ SDV_BSL_ASN1_PARSE_PRIKEY_FILE_TC001:1:"../testdata/cert/asn1/rsa3072key_pkcs8.d | |||
| 70 | SDV_BSL_ASN1_PARSE_PRIKEY_FILE_TC001 parse rsa4096 pkcs8 prikey file and sign data | 73 | SDV_BSL_ASN1_PARSE_PRIKEY_FILE_TC001 parse rsa4096 pkcs8 prikey file and sign data |
| 71 | SDV_BSL_ASN1_PARSE_PRIKEY_FILE_TC001:1:"../testdata/cert/asn1/rsa4096key_pkcs8.der":CRYPT_PRIKEY_PKCS8_UNENCRYPT:"PRIKEY_PKCS8_UNENCRYPT":CRYPT_MD_SHA256:"00010203040506070809":"52b83ba5f352aaa2bdcce579f55bc3665f7794169198c49ffcc3a8a6ad220e480b20010e2bbdbb66e5df08a9b54bc10af33c03b39a81bec743dd48ac281f8037e071fd800b9d429ec2f0c029a35fd65d8c6adc884cd7bae1bf0dc10631a7c8968a4e5cb29774b803a5fbd62a3386183b6faee7c4b0cf409c88f349073ae47d92cd8b70b1e9c8f12219869d7fc5e330d98bd825933cb63739d95f8c1ced7f9aa3da20caa9bb07bbc9acaad29805960350a7df3b5d45c9a9bef99efb49f926da543336fbc680868efae2f9cd36c3be6dec7ae3a27038a445753adeae0f12245d2654b882fbd40255b56019865f7db30d2c14e25710ef12025de18d26b54ea474e36116cba2a2f929d210cee259802ee9555f26e30f0f92b2db3871e840dc7fd999cfe255ff313cbfaa81325549e56bff4fbcefd3981a810554d421bf428c210b5958a80127a7ff7a7cbd2a9d1899b620faa7a3fc4de62c816d81d6521a86406c3b4e3d24ab2dec26385b8c4ac73d8719c6bd642242386f52aab92426e90be8cb53a343e341963e0ce421b90d635cffff6733dc0c5d97809eafbf0c5a6f231a51f5c67e598b1ee8b9ab9ab0260647038bd89b77694aa09ba8b7cefd9d78722ed9213a11a9c38c8d1894002e3e7fbae36e6229b758866af72b10b93f8cc8c85101d57a3c7ef57cc3cb80837041742cd97a20388378cd662ece1cca37dabe06d1db65" | 74 | SDV_BSL_ASN1_PARSE_PRIKEY_FILE_TC001:1:"../testdata/cert/asn1/rsa4096key_pkcs8.der":CRYPT_PRIKEY_PKCS8_UNENCRYPT:"PRIKEY_PKCS8_UNENCRYPT":CRYPT_MD_SHA256:"00010203040506070809":"52b83ba5f352aaa2bdcce579f55bc3665f7794169198c49ffcc3a8a6ad220e480b20010e2bbdbb66e5df08a9b54bc10af33c03b39a81bec743dd48ac281f8037e071fd800b9d429ec2f0c029a35fd65d8c6adc884cd7bae1bf0dc10631a7c8968a4e5cb29774b803a5fbd62a3386183b6faee7c4b0cf409c88f349073ae47d92cd8b70b1e9c8f12219869d7fc5e330d98bd825933cb63739d95f8c1ced7f9aa3da20caa9bb07bbc9acaad29805960350a7df3b5d45c9a9bef99efb49f926da543336fbc680868efae2f9cd36c3be6dec7ae3a27038a445753adeae0f12245d2654b882fbd40255b56019865f7db30d2c14e25710ef12025de18d26b54ea474e36116cba2a2f929d210cee259802ee9555f26e30f0f92b2db3871e840dc7fd999cfe255ff313cbfaa81325549e56bff4fbcefd3981a810554d421bf428c210b5958a80127a7ff7a7cbd2a9d1899b620faa7a3fc4de62c816d81d6521a86406c3b4e3d24ab2dec26385b8c4ac73d8719c6bd642242386f52aab92426e90be8cb53a343e341963e0ce421b90d635cffff6733dc0c5d97809eafbf0c5a6f231a51f5c67e598b1ee8b9ab9ab0260647038bd89b77694aa09ba8b7cefd9d78722ed9213a11a9c38c8d1894002e3e7fbae36e6229b758866af72b10b93f8cc8c85101d57a3c7ef57cc3cb80837041742cd97a20388378cd662ece1cca37dabe06d1db65" |
| 72 | 75 | ||
| 76 | +SDV_BSL_ASN1_PARSE_ECCPRIKEY_FILE_TC001 parse prime192v1 prikey file and sign data | ||
| 77 | +SDV_BSL_ASN1_PARSE_ECCPRIKEY_FILE_TC001:1:1:"../testdata/cert/chain/nistp192_certs/ee_nistp192_key_pkcs1.der":CRYPT_PRIKEY_ECC:"PRIKEY_ECC":CRYPT_MD_SHA256:"00010203040506070809":CRYPT_PKEY_ECDSA:"4BA2FC3877E6E012D8B74BBB8D5E1C485A6B227A3AEBBB62":CRYPT_ECC_NISTP192:"302902010104184ba2fc3877e6e012d8b74bbb8d5e1c485a6b227a3aebbb62a00a06082a8648ce3d030101" | ||
| 78 | + | ||
| 79 | +SDV_BSL_ASN1_PARSE_ECCPRIKEY_FILE_TC001 parse prime192v1 prikey file and sign data | ||
| 80 | +SDV_BSL_ASN1_PARSE_ECCPRIKEY_FILE_TC001:0:1:"../testdata/cert/chain/nistp192_certs/ee_nistp192_key_pkcs8.der":CRYPT_PRIKEY_PKCS8_UNENCRYPT:"PRIKEY_PKCS8_UNENCRYPT":CRYPT_MD_SHA256:"00010203040506070809":CRYPT_PKEY_ECDSA:"4BA2FC3877E6E012D8B74BBB8D5E1C485A6B227A3AEBBB62":CRYPT_ECC_NISTP192:"3039020100301306072a8648ce3d020106082a8648ce3d030101041f301d02010104184ba2fc3877e6e012d8b74bbb8d5e1c485a6b227a3aebbb62" | ||
| 81 | + | ||
| 73 | SDV_BSL_ASN1_PARSE_ECCPRIKEY_FILE_TC001 parse prime256v1 prikey file and sign data | 82 | SDV_BSL_ASN1_PARSE_ECCPRIKEY_FILE_TC001 parse prime256v1 prikey file and sign data |
| 74 | SDV_BSL_ASN1_PARSE_ECCPRIKEY_FILE_TC001:1:1:"../testdata/cert/asn1/prime256v1.der":CRYPT_PRIKEY_ECC:"PRIKEY_ECC":CRYPT_MD_SHA256:"00010203040506070809":CRYPT_PKEY_ECDSA:"069db63c9e8012972c7f71bcd0ef1f6e23edc9f73ec68d49748c2159af25933b":CRYPT_ECC_NISTP256:"30310201010420069db63c9e8012972c7f71bcd0ef1f6e23edc9f73ec68d49748c2159af25933ba00a06082a8648ce3d030107" | 83 | SDV_BSL_ASN1_PARSE_ECCPRIKEY_FILE_TC001:1:1:"../testdata/cert/asn1/prime256v1.der":CRYPT_PRIKEY_ECC:"PRIKEY_ECC":CRYPT_MD_SHA256:"00010203040506070809":CRYPT_PKEY_ECDSA:"069db63c9e8012972c7f71bcd0ef1f6e23edc9f73ec68d49748c2159af25933b":CRYPT_ECC_NISTP256:"30310201010420069db63c9e8012972c7f71bcd0ef1f6e23edc9f73ec68d49748c2159af25933ba00a06082a8648ce3d030107" |
| 75 | 84 | ||
| @@ -151,6 +160,9 @@ SDV_BSL_ASN1_PARSE_ED25519PRIKEY_FILE_TC002:"../testdata/cert/ed25519/ed25519-wr | |||
| 151 | SDV_BSL_ASN1_PARSE_ED25519PRIKEY_FILE_TC002: wrong tag | 160 | SDV_BSL_ASN1_PARSE_ED25519PRIKEY_FILE_TC002: wrong tag |
| 152 | SDV_BSL_ASN1_PARSE_ED25519PRIKEY_FILE_TC002:"../testdata/cert/ed25519/ed25519-wrong-tag.key.der":BSL_FORMAT_ASN1:CRYPT_PRIKEY_PKCS8_UNENCRYPT:BSL_ASN1_ERR_MISMATCH_TAG | 161 | SDV_BSL_ASN1_PARSE_ED25519PRIKEY_FILE_TC002:"../testdata/cert/ed25519/ed25519-wrong-tag.key.der":BSL_FORMAT_ASN1:CRYPT_PRIKEY_PKCS8_UNENCRYPT:BSL_ASN1_ERR_MISMATCH_TAG |
| 153 | 162 | ||
| 163 | +SDV_BSL_ASN1_PARSE_ENCPK8_TC001 parse prime192v1 pkcs8 encrypted prikey file and sign data, prf hmac256, aes256 cbc | ||
| 164 | +SDV_BSL_ASN1_PARSE_ENCPK8_TC001:0:"../testdata/cert/chain/nistp192_certs/ee_nistp192_key_pkcs8_encrypted.der":CRYPT_PRIKEY_PKCS8_ENCRYPT:"PRIKEY_PKCS8_ENCRYPT":"313233343536":CRYPT_MD_SHA256:"00010203040506070809":"" | ||
| 165 | + | ||
| 154 | SDV_BSL_ASN1_PARSE_ENCPK8_TC001 parse prime256v1 pkcs8 encrypted prikey file and sign data, prf hmac256, aes256 cbc | 166 | SDV_BSL_ASN1_PARSE_ENCPK8_TC001 parse prime256v1 pkcs8 encrypted prikey file and sign data, prf hmac256, aes256 cbc |
| 155 | SDV_BSL_ASN1_PARSE_ENCPK8_TC001:0:"../testdata/cert/asn1/prime256v1_pkcs8_enc.der":CRYPT_PRIKEY_PKCS8_ENCRYPT:"PRIKEY_PKCS8_ENCRYPT":"31323334":CRYPT_MD_SHA256:"00010203040506070809":"" | 167 | SDV_BSL_ASN1_PARSE_ENCPK8_TC001:0:"../testdata/cert/asn1/prime256v1_pkcs8_enc.der":CRYPT_PRIKEY_PKCS8_ENCRYPT:"PRIKEY_PKCS8_ENCRYPT":"31323334":CRYPT_MD_SHA256:"00010203040506070809":"" |
| 156 | 168 | ||
| @@ -160,6 +172,9 @@ SDV_BSL_ASN1_PARSE_ENCPK8_TC001:0:"../testdata/cert/asn1/rsa2048key_pkcs8_enc.de | |||
| 160 | SDV_BSL_ASN1_PARSE_ENCPK8_TC001 parse rsa2048 pkcs8 prikey encrypted prikey file and sign data, prf hmac1 optional, sm4 cbc | 172 | SDV_BSL_ASN1_PARSE_ENCPK8_TC001 parse rsa2048 pkcs8 prikey encrypted prikey file and sign data, prf hmac1 optional, sm4 cbc |
| 161 | SDV_BSL_ASN1_PARSE_ENCPK8_TC001:0:"../testdata/cert/asn1/rsa2048key_pkcs8_sm4enc.der":CRYPT_PRIKEY_PKCS8_ENCRYPT:"PRIKEY_PKCS8_ENCRYPT":"31323334":CRYPT_MD_SHA256:"00010203040506070809":"2a4054ff8a8fbc4d035cbcda43a114db28b19a5190d58a794600d898e6d396ebef5af7ee91764cea4c1d65c0581950bf7463da1dc0b844c0f7439f2f2583f386609157e9a9a3a57a5cae537f418435275d745dd2b5c4c871571d99711ef1baf640be1743c7ada6c28113ebdf1f5171d54b2f83707e159d2dbecfa26a3c7a9a9dcfc83b6cba1bb8db0d55a5f1875fb7e2b21d58da1f8ebe128e979008800361a770745fadafc9cfd62bc1b4424d3fdeec531621d52cb231c69790dc7a1be5393d7b3417b0a88a93fc472eb718f7ed7800c537f1c55adc5f22f963bb199dfefa4fc1ff27510442e2e86526eaa29773e2560ab2c3bfe6a56ff7b7c72dff78a00fad" | 173 | SDV_BSL_ASN1_PARSE_ENCPK8_TC001:0:"../testdata/cert/asn1/rsa2048key_pkcs8_sm4enc.der":CRYPT_PRIKEY_PKCS8_ENCRYPT:"PRIKEY_PKCS8_ENCRYPT":"31323334":CRYPT_MD_SHA256:"00010203040506070809":"2a4054ff8a8fbc4d035cbcda43a114db28b19a5190d58a794600d898e6d396ebef5af7ee91764cea4c1d65c0581950bf7463da1dc0b844c0f7439f2f2583f386609157e9a9a3a57a5cae537f418435275d745dd2b5c4c871571d99711ef1baf640be1743c7ada6c28113ebdf1f5171d54b2f83707e159d2dbecfa26a3c7a9a9dcfc83b6cba1bb8db0d55a5f1875fb7e2b21d58da1f8ebe128e979008800361a770745fadafc9cfd62bc1b4424d3fdeec531621d52cb231c69790dc7a1be5393d7b3417b0a88a93fc472eb718f7ed7800c537f1c55adc5f22f963bb199dfefa4fc1ff27510442e2e86526eaa29773e2560ab2c3bfe6a56ff7b7c72dff78a00fad" |
| 162 | 174 | ||
| 175 | +SDV_BSL_ASN1_PARSE_ENCPK8_TC001 parse prime192v1 pkcs8 encrypted prikey file and sign data, prf hmac256, aes256 cbc | ||
| 176 | +SDV_BSL_ASN1_PARSE_ENCPK8_TC001:1:"../testdata/cert/chain/nistp192_certs/ee_nistp192_key_pkcs8_encrypted.der":CRYPT_PRIKEY_PKCS8_ENCRYPT:"PRIKEY_PKCS8_ENCRYPT":"313233343536":CRYPT_MD_SHA256:"00010203040506070809":"" | ||
| 177 | + | ||
| 163 | SDV_BSL_ASN1_PARSE_ENCPK8_TC001 parse prime256v1 pkcs8 encrypted prikey file and sign data, prf hmac256, aes256 cbc | 178 | SDV_BSL_ASN1_PARSE_ENCPK8_TC001 parse prime256v1 pkcs8 encrypted prikey file and sign data, prf hmac256, aes256 cbc |
| 164 | SDV_BSL_ASN1_PARSE_ENCPK8_TC001:1:"../testdata/cert/asn1/prime256v1_pkcs8_enc.der":CRYPT_PRIKEY_PKCS8_ENCRYPT:"PRIKEY_PKCS8_ENCRYPT":"31323334":CRYPT_MD_SHA256:"00010203040506070809":"" | 179 | SDV_BSL_ASN1_PARSE_ENCPK8_TC001:1:"../testdata/cert/asn1/prime256v1_pkcs8_enc.der":CRYPT_PRIKEY_PKCS8_ENCRYPT:"PRIKEY_PKCS8_ENCRYPT":"31323334":CRYPT_MD_SHA256:"00010203040506070809":"" |
| 165 | 180 | ||
| @@ -187,22 +202,28 @@ SDV_BSL_ASN1_ENCODE_PUBKEY_BUFF_TC001:"../testdata/cert/asn1/publicpkcs8.pem":CR | |||
| 187 | SDV_BSL_ASN1_ENCODE_PUBKEY_BUFF_TC001 rsa pkcs1 | 202 | SDV_BSL_ASN1_ENCODE_PUBKEY_BUFF_TC001 rsa pkcs1 |
| 188 | SDV_BSL_ASN1_ENCODE_PUBKEY_BUFF_TC001:"../testdata/cert/asn1/rsa2048pub.pem":CRYPT_PUBKEY_RSA:1:"3082010A0282010100A54E1B3861B07E97D99F1746CB0FD4B626E69B8D2C6332492DE37429EDE5C8910211DD2031E67C7404FA58D97E3DF21468AF6A92FA60A86A042058D47A19FDEA653CE2133EBFA0F6BF2EF2DF20DFBDD0DED3CF79DE8E1CC1A748AF9F7D435A4A08B0579D1A2FDCB7F0E4A4770FB6860D22A8B03709EF80811592A792EA7D58185725D78787F05F83210B42B012B6557EBDB8FE46C6F3F5A78B26840CD951D89681180CC817307EB673EDD3E699508456C834112E7E9F121376E5F5060635A9660F50DD938CCD643A61D3CFCD3E1D4C1D751576F029E88A522237D25A7376AB1B8133B75CAED8389339613FD39387170137C589A2C5BBAFB5B9AB0C48804D2E210203010001" | 203 | SDV_BSL_ASN1_ENCODE_PUBKEY_BUFF_TC001:"../testdata/cert/asn1/rsa2048pub.pem":CRYPT_PUBKEY_RSA:1:"3082010A0282010100A54E1B3861B07E97D99F1746CB0FD4B626E69B8D2C6332492DE37429EDE5C8910211DD2031E67C7404FA58D97E3DF21468AF6A92FA60A86A042058D47A19FDEA653CE2133EBFA0F6BF2EF2DF20DFBDD0DED3CF79DE8E1CC1A748AF9F7D435A4A08B0579D1A2FDCB7F0E4A4770FB6860D22A8B03709EF80811592A792EA7D58185725D78787F05F83210B42B012B6557EBDB8FE46C6F3F5A78B26840CD951D89681180CC817307EB673EDD3E699508456C834112E7E9F121376E5F5060635A9660F50DD938CCD643A61D3CFCD3E1D4C1D751576F029E88A522237D25A7376AB1B8133B75CAED8389339613FD39387170137C589A2C5BBAFB5B9AB0C48804D2E210203010001" |
| 189 | 204 | ||
| 190 | -SDV_BSL_ASN1_ENCODE_PUBKEY_BUFF_TC001 ecc pkcs8 | 205 | +SDV_BSL_ASN1_ENCODE_PUBKEY_BUFF_TC001 ecc pkcs8 prime192v1 complete |
| 206 | +SDV_BSL_ASN1_ENCODE_PUBKEY_BUFF_TC001:"../testdata/cert/chain/nistp192_certs/ee_nistp192_pubkey.der":CRYPT_PUBKEY_SUBKEY:1:"3049301306072A8648CE3D020106082A8648CE3D03010103320004B62BD68F29E864FD7F2077D78383A695636BD73081E6B43937B9A533C100AB0DA9FCDA76644CBA2844C8D06F2D68EED8" | ||
| 207 | + | ||
| 208 | +SDV_BSL_ASN1_ENCODE_PUBKEY_BUFF_TC001 ecc pkcs8 prime192v1 | ||
| 209 | +SDV_BSL_ASN1_ENCODE_PUBKEY_BUFF_TC001:"../testdata/cert/chain/nistp192_certs/ee_nistp192_pubkey.der":CRYPT_PUBKEY_SUBKEY:0:"301306072A8648CE3D020106082A8648CE3D03010103320004B62BD68F29E864FD7F2077D78383A695636BD73081E6B43937B9A533C100AB0DA9FCDA76644CBA2844C8D06F2D68EED8" | ||
| 210 | + | ||
| 211 | +SDV_BSL_ASN1_ENCODE_PUBKEY_BUFF_TC001 ecc pkcs8 secp384r1 complete | ||
| 191 | SDV_BSL_ASN1_ENCODE_PUBKEY_BUFF_TC001:"../testdata/cert/asn1/secp384r1pub.pem":CRYPT_PUBKEY_SUBKEY:1:"3076301006072A8648CE3D020106052B8104002203620004AEBF47BD84A597CB41F09E1F28E13813993476C2840084DAB242737516D1231B5DB3CD30DF7159E04ABE5A6BED2F36016C2FDABB9A6F28EA558CCDD4B8E8AACA9E8ACA0F55C04DAD4F0F1028E4D4B0185E55C37CB25FCDFADA182F0355B4AAAD" | 212 | SDV_BSL_ASN1_ENCODE_PUBKEY_BUFF_TC001:"../testdata/cert/asn1/secp384r1pub.pem":CRYPT_PUBKEY_SUBKEY:1:"3076301006072A8648CE3D020106052B8104002203620004AEBF47BD84A597CB41F09E1F28E13813993476C2840084DAB242737516D1231B5DB3CD30DF7159E04ABE5A6BED2F36016C2FDABB9A6F28EA558CCDD4B8E8AACA9E8ACA0F55C04DAD4F0F1028E4D4B0185E55C37CB25FCDFADA182F0355B4AAAD" |
| 192 | 213 | ||
| 193 | -SDV_BSL_ASN1_ENCODE_PUBKEY_BUFF_TC001 ecc pkcs8 | 214 | +SDV_BSL_ASN1_ENCODE_PUBKEY_BUFF_TC001 ecc pkcs8 secp384r1 |
| 194 | SDV_BSL_ASN1_ENCODE_PUBKEY_BUFF_TC001:"../testdata/cert/asn1/secp384r1pub.pem":CRYPT_PUBKEY_SUBKEY:0:"301006072A8648CE3D020106052B8104002203620004AEBF47BD84A597CB41F09E1F28E13813993476C2840084DAB242737516D1231B5DB3CD30DF7159E04ABE5A6BED2F36016C2FDABB9A6F28EA558CCDD4B8E8AACA9E8ACA0F55C04DAD4F0F1028E4D4B0185E55C37CB25FCDFADA182F0355B4AAAD" | 215 | SDV_BSL_ASN1_ENCODE_PUBKEY_BUFF_TC001:"../testdata/cert/asn1/secp384r1pub.pem":CRYPT_PUBKEY_SUBKEY:0:"301006072A8648CE3D020106052B8104002203620004AEBF47BD84A597CB41F09E1F28E13813993476C2840084DAB242737516D1231B5DB3CD30DF7159E04ABE5A6BED2F36016C2FDABB9A6F28EA558CCDD4B8E8AACA9E8ACA0F55C04DAD4F0F1028E4D4B0185E55C37CB25FCDFADA182F0355B4AAAD" |
| 195 | 216 | ||
| 196 | -SDV_BSL_ASN1_ENCODE_PUBKEY_BUFF_TC001 ecc pkcs8 | 217 | +SDV_BSL_ASN1_ENCODE_PUBKEY_BUFF_TC001 ecc pkcs8 secp521r1 complete |
| 197 | SDV_BSL_ASN1_ENCODE_PUBKEY_BUFF_TC001:"../testdata/cert/asn1/secp521r1pub.der":CRYPT_PUBKEY_SUBKEY:1:"30819B301006072A8648CE3D020106052B81040023038186000400A4142D36E1BA9805684E2F795D174C0DACD3BB06D9B593B8473408A78F2AD8CC1D1A1B66F480F49346C4C579F15B0E3F4C4C6EB896354CF1B7EE3BE7E7E04011AC01462B5AA9A717A4E08A43AFAF37BF6AF782747FFE88AE813BF9FC5B37DF224E0C2AAB6566623CE7E6FDB3657E6C97FDFA3A1921B84D5662C85921298B90504DC0CA" | 218 | SDV_BSL_ASN1_ENCODE_PUBKEY_BUFF_TC001:"../testdata/cert/asn1/secp521r1pub.der":CRYPT_PUBKEY_SUBKEY:1:"30819B301006072A8648CE3D020106052B81040023038186000400A4142D36E1BA9805684E2F795D174C0DACD3BB06D9B593B8473408A78F2AD8CC1D1A1B66F480F49346C4C579F15B0E3F4C4C6EB896354CF1B7EE3BE7E7E04011AC01462B5AA9A717A4E08A43AFAF37BF6AF782747FFE88AE813BF9FC5B37DF224E0C2AAB6566623CE7E6FDB3657E6C97FDFA3A1921B84D5662C85921298B90504DC0CA" |
| 198 | 219 | ||
| 199 | -SDV_BSL_ASN1_ENCODE_PUBKEY_BUFF_TC001 ecc pkcs8 | 220 | +SDV_BSL_ASN1_ENCODE_PUBKEY_BUFF_TC001 ecc pkcs8 secp521r1 |
| 200 | SDV_BSL_ASN1_ENCODE_PUBKEY_BUFF_TC001:"../testdata/cert/asn1/secp521r1pub.der":CRYPT_PUBKEY_SUBKEY:0:"301006072A8648CE3D020106052B81040023038186000400A4142D36E1BA9805684E2F795D174C0DACD3BB06D9B593B8473408A78F2AD8CC1D1A1B66F480F49346C4C579F15B0E3F4C4C6EB896354CF1B7EE3BE7E7E04011AC01462B5AA9A717A4E08A43AFAF37BF6AF782747FFE88AE813BF9FC5B37DF224E0C2AAB6566623CE7E6FDB3657E6C97FDFA3A1921B84D5662C85921298B90504DC0CA" | 221 | SDV_BSL_ASN1_ENCODE_PUBKEY_BUFF_TC001:"../testdata/cert/asn1/secp521r1pub.der":CRYPT_PUBKEY_SUBKEY:0:"301006072A8648CE3D020106052B81040023038186000400A4142D36E1BA9805684E2F795D174C0DACD3BB06D9B593B8473408A78F2AD8CC1D1A1B66F480F49346C4C579F15B0E3F4C4C6EB896354CF1B7EE3BE7E7E04011AC01462B5AA9A717A4E08A43AFAF37BF6AF782747FFE88AE813BF9FC5B37DF224E0C2AAB6566623CE7E6FDB3657E6C97FDFA3A1921B84D5662C85921298B90504DC0CA" |
| 201 | 222 | ||
| 202 | -SDV_BSL_ASN1_ENCODE_PUBKEY_BUFF_TC001 ecc pkcs8 | 223 | +SDV_BSL_ASN1_ENCODE_PUBKEY_BUFF_TC001 ecc pkcs8 prime256v1 complete |
| 203 | SDV_BSL_ASN1_ENCODE_PUBKEY_BUFF_TC001:"../testdata/cert/asn1/prime256v1pub.der":CRYPT_PUBKEY_SUBKEY:1:"3059301306072A8648CE3D020106082A8648CE3D030107034200043C528D0C6C84EC7112D613DDF265F2757E10BA71AF937EC848F3A15C94ADCF14EDF2C59D704B5581A5E102B371F43CFCA4A221A0672F8B2F3130BDF03C80AFF5" | 224 | SDV_BSL_ASN1_ENCODE_PUBKEY_BUFF_TC001:"../testdata/cert/asn1/prime256v1pub.der":CRYPT_PUBKEY_SUBKEY:1:"3059301306072A8648CE3D020106082A8648CE3D030107034200043C528D0C6C84EC7112D613DDF265F2757E10BA71AF937EC848F3A15C94ADCF14EDF2C59D704B5581A5E102B371F43CFCA4A221A0672F8B2F3130BDF03C80AFF5" |
| 204 | 225 | ||
| 205 | -SDV_BSL_ASN1_ENCODE_PUBKEY_BUFF_TC001 ecc pkcs8 | 226 | +SDV_BSL_ASN1_ENCODE_PUBKEY_BUFF_TC001 ecc pkcs8 prime256v1 |
| 206 | SDV_BSL_ASN1_ENCODE_PUBKEY_BUFF_TC001:"../testdata/cert/asn1/prime256v1pub.der":CRYPT_PUBKEY_SUBKEY:0:"301306072A8648CE3D020106082A8648CE3D030107034200043C528D0C6C84EC7112D613DDF265F2757E10BA71AF937EC848F3A15C94ADCF14EDF2C59D704B5581A5E102B371F43CFCA4A221A0672F8B2F3130BDF03C80AFF5" | 227 | SDV_BSL_ASN1_ENCODE_PUBKEY_BUFF_TC001:"../testdata/cert/asn1/prime256v1pub.der":CRYPT_PUBKEY_SUBKEY:0:"301306072A8648CE3D020106082A8648CE3D030107034200043C528D0C6C84EC7112D613DDF265F2757E10BA71AF937EC848F3A15C94ADCF14EDF2C59D704B5581A5E102B371F43CFCA4A221A0672F8B2F3130BDF03C80AFF5" |
| 207 | 228 | ||
| 208 | SDV_BSL_ASN1_ENCODE_PUBKEY_BUFF_TC001 sm2 pkcs8 | 229 | SDV_BSL_ASN1_ENCODE_PUBKEY_BUFF_TC001 sm2 pkcs8 |
| @@ -17,6 +17,7 @@ | |||
| 17 | 17 | ||
| 18 | 18 | ||
| 19 | 19 | ||
| 20 | + | ||
| 20 | 21 | ||
| 21 | 22 | ||
| 22 | 23 | ||
| @@ -57,6 +58,62 @@ static void FreeSanListData(void *data) | |||
| 57 | } | 58 | } |
| 58 | } | 59 | } |
| 59 | 60 | ||
| 61 | +static volatile uint32_t g_malloc_called_idx = 0; | ||
| 62 | +static volatile uint32_t g_malloc_failed_idx = 0; | ||
| 63 | +static volatile bool g_malloc_fail_enabled = true; | ||
| 64 | + | ||
| 65 | +void *STUB_BSL_SAL_Malloc(uint32_t size) | ||
| 66 | +{ | ||
| 67 | + uint32_t current_call_index = g_malloc_called_idx; | ||
| 68 | + g_malloc_called_idx = current_call_index + 1; | ||
| 69 | + | ||
| 70 | + if (g_malloc_fail_enabled && current_call_index == g_malloc_failed_idx) { | ||
| 71 | + return NULL; | ||
| 72 | + } | ||
| 73 | + | ||
| 74 | + return malloc(size); | ||
| 75 | +} | ||
| 76 | + | ||
| 77 | +void STUB_ResetMallocCount(void) | ||
| 78 | +{ | ||
| 79 | + g_malloc_called_idx = 0; | ||
| 80 | +} | ||
| 81 | + | ||
| 82 | +void STUB_SetMallocFailIndex(uint32_t failIdx) | ||
| 83 | +{ | ||
| 84 | + g_malloc_failed_idx = failIdx; | ||
| 85 | +} | ||
| 86 | + | ||
| 87 | +uint32_t STUB_GetMallocCallCount(void) | ||
| 88 | +{ | ||
| 89 | + return g_malloc_called_idx; | ||
| 90 | +} | ||
| 91 | + | ||
| 92 | +void STUB_EnableMallocFail(bool enable) | ||
| 93 | +{ | ||
| 94 | + g_malloc_fail_enabled = enable; | ||
| 95 | +} | ||
| 96 | + | ||
| 97 | + | ||
| 98 | +static int32_t STUB_BSL_LIST_AddElement(BslList *pList, void *pData, BslListPosition enPosition) | ||
| 99 | +{ | ||
| 100 | + (void)pList; | ||
| 101 | + (void)pData; | ||
| 102 | + (void)enPosition; | ||
| 103 | + return BSL_LIST_FULL; | ||
| 104 | +} | ||
| 105 | + | ||
| 106 | +static int32_t STUB_BSL_ASN1_EncodeTemplate(BSL_ASN1_Template *templ, BSL_ASN1_Buffer *asnArr, uint32_t arrNum, | ||
| 107 | + uint8_t **encode, uint32_t *encLen) | ||
| 108 | +{ | ||
| 109 | + (void)templ; | ||
| 110 | + (void)asnArr; | ||
| 111 | + (void)arrNum; | ||
| 112 | + (void)encode; | ||
| 113 | + (void)encLen; | ||
| 114 | + return BSL_ASN1_FAIL; | ||
| 115 | +} | ||
| 116 | + | ||
| 60 | static int32_t TestSignCb(int32_t mdId, CRYPT_EAL_PkeyCtx *prvKey, HITLS_X509_Asn1AlgId *signAlgId, void *obj) | 117 | static int32_t TestSignCb(int32_t mdId, CRYPT_EAL_PkeyCtx *prvKey, HITLS_X509_Asn1AlgId *signAlgId, void *obj) |
| 61 | { | 118 | { |
| 62 | (void)signAlgId; | 119 | (void)signAlgId; |
| @@ -416,6 +473,218 @@ EXIT: | |||
| 416 | } | 473 | } |
| 417 | /* END_CASE */ | 474 | /* END_CASE */ |
| 418 | 475 | ||
| 476 | +/* BEGIN_CASE */ | ||
| 477 | +void SDV_X509_EXT_Set_Api_TC001(void) | ||
| 478 | +{ | ||
| 479 | + HITLS_X509_Ext *ext = NULL; | ||
| 480 | + HITLS_X509_ExtBCons bCons = {true, true, 1}; | ||
| 481 | + FuncStubInfo tmpRpInfo = {0}; | ||
| 482 | + | ||
| 483 | + TestMemInit(); | ||
| 484 | + | ||
| 485 | + /* 1 Test set the bcons once */ | ||
| 486 | + /* 1.1 Test calloc failure in HITLS_X509_SetExtList */ | ||
| 487 | + ext = HITLS_X509_ExtNew(HITLS_X509_EXT_TYPE_CSR); | ||
| 488 | + ASSERT_TRUE_AND_LOG("ext != NULL 1", ext != NULL); | ||
| 489 | + STUB_Init(); | ||
| 490 | + STUB_ResetMallocCount(); | ||
| 491 | + STUB_SetMallocFailIndex(0); | ||
| 492 | + ASSERT_TRUE(STUB_Replace(&tmpRpInfo, BSL_SAL_Malloc, STUB_BSL_SAL_Malloc) == 0); | ||
| 493 | + ASSERT_EQ(HITLS_X509_ExtCtrl(ext, HITLS_X509_EXT_SET_BCONS, &bCons, sizeof(HITLS_X509_ExtBCons)), BSL_MALLOC_FAIL); | ||
| 494 | + STUB_Reset(&tmpRpInfo); | ||
| 495 | + HITLS_X509_ExtFree(ext); | ||
| 496 | + | ||
| 497 | + /* 1.2 Test dump failure in HITLS_X509_SetExtList */ | ||
| 498 | + ext = HITLS_X509_ExtNew(HITLS_X509_EXT_TYPE_CSR); | ||
| 499 | + ASSERT_TRUE_AND_LOG("ext != NULL 2", ext != NULL); | ||
| 500 | + ASSERT_TRUE(STUB_Replace(&tmpRpInfo, BSL_SAL_Malloc, STUB_BSL_SAL_Malloc) == 0); | ||
| 501 | + STUB_ResetMallocCount(); | ||
| 502 | + STUB_SetMallocFailIndex(1); | ||
| 503 | + ASSERT_EQ(HITLS_X509_ExtCtrl(ext, HITLS_X509_EXT_SET_BCONS, &bCons, sizeof(HITLS_X509_ExtBCons)), BSL_DUMP_FAIL); | ||
| 504 | + STUB_Reset(&tmpRpInfo); | ||
| 505 | + HITLS_X509_ExtFree(ext); | ||
| 506 | + | ||
| 507 | + /* 1.3 Test encodeExt failure in HITLS_X509_SetExtList when adding new extension */ | ||
| 508 | + ext = HITLS_X509_ExtNew(HITLS_X509_EXT_TYPE_CSR); | ||
| 509 | + ASSERT_TRUE_AND_LOG("ext != NULL 3", ext != NULL); | ||
| 510 | + ASSERT_TRUE(STUB_Replace(&tmpRpInfo, BSL_ASN1_EncodeTemplate, STUB_BSL_ASN1_EncodeTemplate) == 0); | ||
| 511 | + ASSERT_EQ(HITLS_X509_ExtCtrl(ext, HITLS_X509_EXT_SET_BCONS, &bCons, sizeof(HITLS_X509_ExtBCons)), BSL_ASN1_FAIL); | ||
| 512 | + STUB_Reset(&tmpRpInfo); | ||
| 513 | + HITLS_X509_ExtFree(ext); | ||
| 514 | + | ||
| 515 | + /* 1.4 Test BSL_LIST_AddElement failure in HITLS_X509_SetExtList */ | ||
| 516 | + ext = HITLS_X509_ExtNew(HITLS_X509_EXT_TYPE_CSR); | ||
| 517 | + ASSERT_TRUE_AND_LOG("ext != NULL 4", ext != NULL); | ||
| 518 | + ASSERT_TRUE(STUB_Replace(&tmpRpInfo, BSL_LIST_AddElement, STUB_BSL_LIST_AddElement) == 0); | ||
| 519 | + ASSERT_EQ(HITLS_X509_ExtCtrl(ext, HITLS_X509_EXT_SET_BCONS, &bCons, sizeof(HITLS_X509_ExtBCons)), BSL_LIST_FULL); | ||
| 520 | + STUB_Reset(&tmpRpInfo); | ||
| 521 | + HITLS_X509_ExtFree(ext); | ||
| 522 | + | ||
| 523 | + /* 2 Test set the bcons twice (replace existing extension) */ | ||
| 524 | + /* 2.1 Test encodeExt failure in HITLS_X509_SetExtList */ | ||
| 525 | + ext = HITLS_X509_ExtNew(HITLS_X509_EXT_TYPE_CSR); | ||
| 526 | + ASSERT_TRUE_AND_LOG("ext != NULL 5", ext != NULL); | ||
| 527 | + ASSERT_EQ(HITLS_X509_ExtCtrl(ext, HITLS_X509_EXT_SET_BCONS, &bCons, sizeof(HITLS_X509_ExtBCons)), 0); | ||
| 528 | + ASSERT_TRUE(STUB_Replace(&tmpRpInfo, BSL_ASN1_EncodeTemplate, STUB_BSL_ASN1_EncodeTemplate) == 0); | ||
| 529 | + ASSERT_EQ(HITLS_X509_ExtCtrl(ext, HITLS_X509_EXT_SET_BCONS, &bCons, sizeof(HITLS_X509_ExtBCons)), BSL_ASN1_FAIL); | ||
| 530 | + STUB_Reset(&tmpRpInfo); | ||
| 531 | + HITLS_X509_ExtFree(ext); | ||
| 532 | + | ||
| 533 | + /* 2.2 Test set the bcons twice successfully */ | ||
| 534 | + ext = HITLS_X509_ExtNew(HITLS_X509_EXT_TYPE_CSR); | ||
| 535 | + ASSERT_TRUE_AND_LOG("ext != NULL 6", ext != NULL); | ||
| 536 | + ASSERT_EQ(HITLS_X509_ExtCtrl(ext, HITLS_X509_EXT_SET_BCONS, &bCons, sizeof(HITLS_X509_ExtBCons)), 0); | ||
| 537 | + ASSERT_EQ(HITLS_X509_ExtCtrl(ext, HITLS_X509_EXT_SET_BCONS, &bCons, sizeof(HITLS_X509_ExtBCons)), 0); | ||
| 538 | + ASSERT_EQ(BSL_LIST_COUNT(ext->extList), 1); | ||
| 539 | + HITLS_X509_ExtFree(ext); | ||
| 540 | + ext = NULL; | ||
| 541 | + | ||
| 542 | +EXIT: | ||
| 543 | + HITLS_X509_ExtFree(ext); | ||
| 544 | + STUB_Reset(&tmpRpInfo); | ||
| 545 | +} | ||
| 546 | +/* END_CASE */ | ||
| 547 | + | ||
| 548 | +/* BEGIN_CASE */ | ||
| 549 | +void SDV_X509_EXT_SetGeneric_Api_TC001(void) | ||
| 550 | +{ | ||
| 551 | + int32_t invalid = HITLS_X509_ERR_INVALID_PARAM; | ||
| 552 | + uint8_t oid[] = {0x01}; | ||
| 553 | + uint8_t value[] = {0x01}; | ||
| 554 | + HITLS_X509_ExtGeneric generic = {true, {oid, sizeof(oid)}, {value, sizeof(value)}}; | ||
| 555 | + HITLS_X509_Ext *ext = NULL; | ||
| 556 | + HITLS_X509_Ext *extForMalloc = NULL; | ||
| 557 | + uint32_t totalMallocCount = 0; | ||
| 558 | + FuncStubInfo tmpRpInfo = {0}; | ||
| 559 | + | ||
| 560 | + TestMemInit(); | ||
| 561 | + ext = X509_ExtNew(NULL, HITLS_X509_EXT_TYPE_CERT); | ||
| 562 | + ASSERT_TRUE_AND_LOG("new cert ext", ext != NULL); | ||
| 563 | + extForMalloc = X509_ExtNew(NULL, HITLS_X509_EXT_TYPE_CERT); | ||
| 564 | + ASSERT_TRUE_AND_LOG("new cert ext for malloc", extForMalloc != NULL); | ||
| 565 | + | ||
| 566 | + ASSERT_EQ(X509_ExtCtrl(ext, HITLS_X509_EXT_SET_GENERIC, &generic, 0), invalid); | ||
| 567 | + | ||
| 568 | + // error: oid is null | ||
| 569 | + generic.oid.data = NULL; | ||
| 570 | + ASSERT_EQ(X509_ExtCtrl(ext, HITLS_X509_EXT_SET_GENERIC, &generic, sizeof(HITLS_X509_ExtGeneric)), invalid); | ||
| 571 | + generic.oid.data = oid; | ||
| 572 | + | ||
| 573 | + // error: oid is empty | ||
| 574 | + generic.oid.dataLen = 0; | ||
| 575 | + ASSERT_EQ(X509_ExtCtrl(ext, HITLS_X509_EXT_SET_GENERIC, &generic, sizeof(HITLS_X509_ExtGeneric)), invalid); | ||
| 576 | + generic.oid.dataLen = sizeof(oid); | ||
| 577 | + | ||
| 578 | + // error: value is null | ||
| 579 | + generic.value.data = NULL; | ||
| 580 | + ASSERT_EQ(X509_ExtCtrl(ext, HITLS_X509_EXT_SET_GENERIC, &generic, sizeof(HITLS_X509_ExtGeneric)), invalid); | ||
| 581 | + generic.value.data = value; | ||
| 582 | + | ||
| 583 | + // error: value is empty | ||
| 584 | + generic.value.dataLen = 0; | ||
| 585 | + ASSERT_EQ(X509_ExtCtrl(ext, HITLS_X509_EXT_SET_GENERIC, &generic, sizeof(HITLS_X509_ExtGeneric)), invalid); | ||
| 586 | + generic.value.dataLen = sizeof(value); | ||
| 587 | + | ||
| 588 | + /* Mock malloc fail in X509_ExtCtrl */ | ||
| 589 | + STUB_Init(); | ||
| 590 | + ASSERT_TRUE(STUB_Replace(&tmpRpInfo, BSL_SAL_Malloc, STUB_BSL_SAL_Malloc) == 0); | ||
| 591 | + // success: first set generic extension | ||
| 592 | + STUB_EnableMallocFail(false); | ||
| 593 | + STUB_ResetMallocCount(); | ||
| 594 | + ASSERT_EQ(X509_ExtCtrl(ext, HITLS_X509_EXT_SET_GENERIC, &generic, sizeof(HITLS_X509_ExtGeneric)), 0); | ||
| 595 | + ASSERT_EQ(BSL_LIST_COUNT(ext->extList), 1); | ||
| 596 | + totalMallocCount = STUB_GetMallocCallCount(); | ||
| 597 | + | ||
| 598 | + // error: first set generic extension with malloc fail | ||
| 599 | + STUB_EnableMallocFail(true); | ||
| 600 | + for (uint32_t i = 0; i < totalMallocCount; i++) { | ||
| 601 | + STUB_ResetMallocCount(); | ||
| 602 | + STUB_SetMallocFailIndex(i); | ||
| 603 | + ASSERT_NE(X509_ExtCtrl(extForMalloc, HITLS_X509_EXT_SET_GENERIC, &generic, sizeof(HITLS_X509_ExtGeneric)), 0); | ||
| 604 | + } | ||
| 605 | + | ||
| 606 | + STUB_EnableMallocFail(false); | ||
| 607 | + ASSERT_EQ(X509_ExtCtrl(extForMalloc, HITLS_X509_EXT_SET_GENERIC, &generic, sizeof(HITLS_X509_ExtGeneric)), 0); | ||
| 608 | + | ||
| 609 | + // success: replace existing extension | ||
| 610 | + STUB_ResetMallocCount(); | ||
| 611 | + ASSERT_EQ(X509_ExtCtrl(ext, HITLS_X509_EXT_SET_GENERIC, &generic, sizeof(HITLS_X509_ExtGeneric)), 0); | ||
| 612 | + ASSERT_EQ(BSL_LIST_COUNT(ext->extList), 1); | ||
| 613 | + totalMallocCount = STUB_GetMallocCallCount(); | ||
| 614 | + | ||
| 615 | + // error: replace existing extension with malloc fail | ||
| 616 | + STUB_EnableMallocFail(true); | ||
| 617 | + for (uint32_t i = 0; i < totalMallocCount; i++) { | ||
| 618 | + STUB_ResetMallocCount(); | ||
| 619 | + STUB_SetMallocFailIndex(i); | ||
| 620 | + ASSERT_NE(X509_ExtCtrl(extForMalloc, HITLS_X509_EXT_SET_GENERIC, &generic, sizeof(HITLS_X509_ExtGeneric)), 0); | ||
| 621 | + } | ||
| 622 | + | ||
| 623 | +EXIT: | ||
| 624 | + HITLS_X509_ExtFree(ext); | ||
| 625 | + HITLS_X509_ExtFree(extForMalloc); | ||
| 626 | + STUB_Reset(&tmpRpInfo); | ||
| 627 | +} | ||
| 628 | +/* END_CASE */ | ||
| 629 | + | ||
| 630 | +/* BEGIN_CASE */ | ||
| 631 | +void SDV_X509_EXT_GetGeneric_Api_TC001(void) | ||
| 632 | +{ | ||
| 633 | + int32_t invalid = HITLS_X509_ERR_INVALID_PARAM; | ||
| 634 | + int32_t notFound = HITLS_X509_ERR_EXT_NOT_FOUND; | ||
| 635 | + uint8_t oid[] = {0x01}; | ||
| 636 | + uint8_t value[] = {0x01}; | ||
| 637 | + HITLS_X509_ExtGeneric generic = {true, {oid, sizeof(oid)}, {value, sizeof(value)}}; | ||
| 638 | + HITLS_X509_Ext *ext = NULL; | ||
| 639 | + FuncStubInfo tmpRpInfo = {0}; | ||
| 640 | + | ||
| 641 | + TestMemInit(); | ||
| 642 | + ext = X509_ExtNew(NULL, HITLS_X509_EXT_TYPE_CERT); | ||
| 643 | + ASSERT_TRUE_AND_LOG("new cert ext", ext != NULL); | ||
| 644 | + | ||
| 645 | + ASSERT_EQ(X509_ExtCtrl(ext, HITLS_X509_EXT_GET_GENERIC, &generic, 0), invalid); | ||
| 646 | + | ||
| 647 | + // error: oid is null | ||
| 648 | + generic.oid.data = NULL; | ||
| 649 | + ASSERT_EQ(X509_ExtCtrl(ext, HITLS_X509_EXT_GET_GENERIC, &generic, sizeof(HITLS_X509_ExtGeneric)), invalid); | ||
| 650 | + generic.oid.data = oid; | ||
| 651 | + | ||
| 652 | + // error: oid is empty | ||
| 653 | + generic.oid.dataLen = 0; | ||
| 654 | + ASSERT_EQ(X509_ExtCtrl(ext, HITLS_X509_EXT_GET_GENERIC, &generic, sizeof(HITLS_X509_ExtGeneric)), invalid); | ||
| 655 | + generic.oid.dataLen = sizeof(oid); | ||
| 656 | + | ||
| 657 | + // error: value is not null | ||
| 658 | + ASSERT_EQ(X509_ExtCtrl(ext, HITLS_X509_EXT_GET_GENERIC, &generic, sizeof(HITLS_X509_ExtGeneric)), invalid); | ||
| 659 | + generic.value.data = NULL; | ||
| 660 | + | ||
| 661 | + ASSERT_EQ(X509_ExtCtrl(ext, HITLS_X509_EXT_GET_GENERIC, &generic, sizeof(HITLS_X509_ExtGeneric)), notFound); | ||
| 662 | + | ||
| 663 | + // success: set generic extension | ||
| 664 | + generic.value.data = value; | ||
| 665 | + ASSERT_EQ(X509_ExtCtrl(ext, HITLS_X509_EXT_SET_GENERIC, &generic, sizeof(HITLS_X509_ExtGeneric)), 0); | ||
| 666 | + | ||
| 667 | + // error: get generic extension with malloc fail | ||
| 668 | + ASSERT_TRUE(STUB_Replace(&tmpRpInfo, BSL_SAL_Malloc, STUB_BSL_SAL_Malloc) == 0); | ||
| 669 | + STUB_EnableMallocFail(true); | ||
| 670 | + STUB_ResetMallocCount(); | ||
| 671 | + STUB_SetMallocFailIndex(0); // mock malloc fail in BSL_SAL_Dump | ||
| 672 | + generic.value.data = NULL; | ||
| 673 | + ASSERT_EQ(X509_ExtCtrl(ext, HITLS_X509_EXT_GET_GENERIC, &generic, sizeof(HITLS_X509_ExtGeneric)), BSL_DUMP_FAIL); | ||
| 674 | + | ||
| 675 | + // success: get generic extension | ||
| 676 | + STUB_EnableMallocFail(false); | ||
| 677 | + ASSERT_EQ(X509_ExtCtrl(ext, HITLS_X509_EXT_GET_GENERIC, &generic, sizeof(HITLS_X509_ExtGeneric)), 0); | ||
| 678 | + | ||
| 679 | + ASSERT_COMPARE("generic.value.data", generic.value.data, generic.value.dataLen, value, sizeof(value)); | ||
| 680 | + | ||
| 681 | +EXIT: | ||
| 682 | + HITLS_X509_ExtFree(ext); | ||
| 683 | + BSL_SAL_Free(generic.value.data); | ||
| 684 | + STUB_Reset(&tmpRpInfo); | ||
| 685 | +} | ||
| 686 | +/* END_CASE */ | ||
| 687 | + | ||
| 419 | /* BEGIN_CASE */ | 688 | /* BEGIN_CASE */ |
| 420 | void SDV_X509_EXT_SetBCons_TC001(void) | 689 | void SDV_X509_EXT_SetBCons_TC001(void) |
| 421 | { | 690 | { |
| @@ -1328,4 +1597,64 @@ void SDV_X509_CRL_PARSE_NAME_LIST_TC001(Hex *buff) | |||
| 1328 | EXIT: | 1597 | EXIT: |
| 1329 | BSL_LIST_FreeWithoutData(list); | 1598 | BSL_LIST_FreeWithoutData(list); |
| 1330 | } | 1599 | } |
| 1331 | -/* END_CASE */ | 1600 | +/* END_CASE */ |
| 1601 | + | ||
| 1602 | +/* BEGIN_CASE */ | ||
| 1603 | +void SDV_X509_CERT_WITH_CUSTOM_EXT_PARSE_TEST_TC001(char *path, Hex *customExtValue1, Hex *customExtValue2, | ||
| 1604 | + Hex *expectKeyUsage) | ||
| 1605 | +{ | ||
| 1606 | + HITLS_X509_Cert *parsedCert = NULL; | ||
| 1607 | + BslCid keyUsageCid = BSL_CID_CE_KEYUSAGE; | ||
| 1608 | + char *customOid1 = "1.2.3.4.5.6.7.8.9.1"; | ||
| 1609 | + char *customOid2 = "1.2.3.4.5.6.7.8.9.2"; | ||
| 1610 | + uint8_t *customOidData = NULL; | ||
| 1611 | + uint32_t customOidLen = 0; | ||
| 1612 | + BslOidString *keyUsageOid = NULL; | ||
| 1613 | + HITLS_X509_ExtGeneric customExt = {0}; | ||
| 1614 | + HITLS_X509_ExtGeneric keyUsageExt = {0}; | ||
| 1615 | + | ||
| 1616 | + TestMemInit(); | ||
| 1617 | + | ||
| 1618 | + // SetUp | ||
| 1619 | + ASSERT_EQ(HITLS_X509_CertParseFile(BSL_FORMAT_ASN1, path, &parsedCert), HITLS_PKI_SUCCESS); | ||
| 1620 | + | ||
| 1621 | + // Get and check custom ext 1 | ||
| 1622 | + customOidData = BSL_OBJ_GetOidFromNumericString(customOid1, strlen(customOid1), &customOidLen); | ||
| 1623 | + ASSERT_NE(customOidData, NULL); | ||
| 1624 | + customExt.oid.data = customOidData; | ||
| 1625 | + customExt.oid.dataLen = customOidLen; | ||
| 1626 | + ASSERT_EQ(HITLS_X509_CertCtrl(parsedCert, HITLS_X509_EXT_GET_GENERIC, &customExt, sizeof(HITLS_X509_ExtGeneric)), | ||
| 1627 | + HITLS_PKI_SUCCESS); | ||
| 1628 | + ASSERT_COMPARE("custom ext1", customExt.value.data, customExt.value.dataLen, customExtValue1->x, | ||
| 1629 | + customExtValue1->len); | ||
| 1630 | + ASSERT_EQ(customExt.critical, true); | ||
| 1631 | + BSL_SAL_FREE(customOidData); | ||
| 1632 | + BSL_SAL_FREE(customExt.value.data); | ||
| 1633 | + | ||
| 1634 | + // Get and check custom ext 2 | ||
| 1635 | + customOidData = BSL_OBJ_GetOidFromNumericString(customOid2, strlen(customOid2), &customOidLen); | ||
| 1636 | + ASSERT_NE(customOidData, NULL); | ||
| 1637 | + customExt.oid.data = customOidData; | ||
| 1638 | + customExt.oid.dataLen = customOidLen; | ||
| 1639 | + ASSERT_EQ(HITLS_X509_CertCtrl(parsedCert, HITLS_X509_EXT_GET_GENERIC, &customExt, sizeof(HITLS_X509_ExtGeneric)), | ||
| 1640 | + HITLS_PKI_SUCCESS); | ||
| 1641 | + ASSERT_COMPARE("custom ext2", customExt.value.data, customExt.value.dataLen, customExtValue2->x, | ||
| 1642 | + customExtValue2->len); | ||
| 1643 | + ASSERT_EQ(customExt.critical, false); | ||
| 1644 | + | ||
| 1645 | + // Get keyusage byt HITLS_X509_EXT_GET_GENERIC | ||
| 1646 | + keyUsageOid = BSL_OBJ_GetOID(keyUsageCid); | ||
| 1647 | + keyUsageExt.oid.data = (uint8_t *)keyUsageOid->octs; | ||
| 1648 | + keyUsageExt.oid.dataLen = keyUsageOid->octetLen; | ||
| 1649 | + ASSERT_EQ(HITLS_X509_CertCtrl(parsedCert, HITLS_X509_EXT_GET_GENERIC, &keyUsageExt, sizeof(HITLS_X509_ExtGeneric)), | ||
| 1650 | + HITLS_PKI_SUCCESS); | ||
| 1651 | + ASSERT_COMPARE("key usage", keyUsageExt.value.data, keyUsageExt.value.dataLen, expectKeyUsage->x, | ||
| 1652 | + expectKeyUsage->len); | ||
| 1653 | + | ||
| 1654 | +EXIT: | ||
| 1655 | + HITLS_X509_CertFree(parsedCert); | ||
| 1656 | + BSL_SAL_FREE(customOidData); | ||
| 1657 | + BSL_SAL_FREE(customExt.value.data); | ||
| 1658 | + BSL_SAL_FREE(keyUsageExt.value.data); | ||
| 1659 | +} | ||
| 1660 | +/* END_CASE */ | ||
| @@ -154,6 +154,15 @@ SDV_X509_EncodeNameList_TC001:BSL_FORMAT_PEM:"../testdata/cert/pem/sm2.ca_v1.crt | |||
| 154 | SDV_X509_EncodeNameList_TC001: multi RDN 2 | 154 | SDV_X509_EncodeNameList_TC001: multi RDN 2 |
| 155 | SDV_X509_EncodeNameList_TC001:BSL_FORMAT_PEM:"../testdata/cert/pem/sm2.ca_v1_2.crt":"313730090603550406130243633009060355040B0C024161300C060355040A0C054F2A6F6F20301106035504070C0A232074657374204C2020" | 155 | SDV_X509_EncodeNameList_TC001:BSL_FORMAT_PEM:"../testdata/cert/pem/sm2.ca_v1_2.crt":"313730090603550406130243633009060355040B0C024161300C060355040A0C054F2A6F6F20301106035504070C0A232074657374204C2020" |
| 156 | 156 | ||
| 157 | +SDV_X509_EXT_Set_Api_TC001 | ||
| 158 | +SDV_X509_EXT_Set_Api_TC001: | ||
| 159 | + | ||
| 160 | +SDV_X509_EXT_SetGeneric_Api_TC001 | ||
| 161 | +SDV_X509_EXT_SetGeneric_Api_TC001: | ||
| 162 | + | ||
| 163 | +SDV_X509_EXT_GetGeneric_Api_TC001 | ||
| 164 | +SDV_X509_EXT_GetGeneric_Api_TC001: | ||
| 165 | + | ||
| 157 | SDV_X509_EXT_SetBCons_TC001 | 166 | SDV_X509_EXT_SetBCons_TC001 |
| 158 | SDV_X509_EXT_SetBCons_TC001: | 167 | SDV_X509_EXT_SetBCons_TC001: |
| 159 | 168 | ||
| @@ -329,4 +338,6 @@ SDV_X509_CRL_PARSE_NAME_LIST_TC001 HITLS_X509_ParseNameNode encounters the error | |||
| 329 | SDV_X509_CRL_PARSE_NAME_LIST_TC001:"3100310031023000" | 338 | SDV_X509_CRL_PARSE_NAME_LIST_TC001:"3100310031023000" |
| 330 | 339 | ||
| 331 | SDV_X509_CRL_PARSE_NAME_LIST_TC001 HITLS_X509_ParseNameNode encounters the error BSL_ASN1_ERR_DECODE_LEN in the middle | 340 | SDV_X509_CRL_PARSE_NAME_LIST_TC001 HITLS_X509_ParseNameNode encounters the error BSL_ASN1_ERR_DECODE_LEN in the middle |
| 332 | -SDV_X509_CRL_PARSE_NAME_LIST_TC001:"311830160614000000000f4d79204f7267616e697a6174696f6e" | 341 | +SDV_X509_CRL_PARSE_NAME_LIST_TC001:"311830160614000000000f4d79204f7267616e697a6174696f6e" |
| 342 | +SDV_X509_CERT_WITH_CUSTOM_EXT_PARSE_TEST_TC001: | ||
| 343 | +SDV_X509_CERT_WITH_CUSTOM_EXT_PARSE_TEST_TC001:"../testdata/cert/asn1/certcheck/custom_ext_cert.der":"0C2154686973206973206120637573746F6D20657874656E73696F6E2076616C756532":"300c0c0a48656c6c6f20576f726c64":"030205A0" | ||
| @@ -348,6 +348,10 @@ static int32_t SetCertExt(HITLS_X509_Cert *cert) | |||
| 348 | HITLS_X509_ExtSan san = {true, NULL}; | 348 | HITLS_X509_ExtSan san = {true, NULL}; |
| 349 | BSL_Buffer oidBuff = {0}; | 349 | BSL_Buffer oidBuff = {0}; |
| 350 | BslOidString *oid = NULL; | 350 | BslOidString *oid = NULL; |
| 351 | + HITLS_X509_ExtGeneric customExt = {0}; | ||
| 352 | + char *customOid1 = "1.2.3.4.5.6.7.8.9.1"; | ||
| 353 | + uint8_t *customOidData = NULL; | ||
| 354 | + uint32_t customOidLen = 0; | ||
| 351 | 355 | ||
| 352 | BslList *oidList = BSL_LIST_New(sizeof(BSL_Buffer)); | 356 | BslList *oidList = BSL_LIST_New(sizeof(BSL_Buffer)); |
| 353 | ASSERT_TRUE(oidList != NULL); | 357 | ASSERT_TRUE(oidList != NULL); |
| @@ -368,10 +372,20 @@ static int32_t SetCertExt(HITLS_X509_Cert *cert) | |||
| 368 | san.names = GenGeneralNameList(); | 372 | san.names = GenGeneralNameList(); |
| 369 | ASSERT_EQ(HITLS_X509_CertCtrl(cert, HITLS_X509_EXT_SET_SAN, &san, sizeof(HITLS_X509_ExtSan)), 0); | 373 | ASSERT_EQ(HITLS_X509_CertCtrl(cert, HITLS_X509_EXT_SET_SAN, &san, sizeof(HITLS_X509_ExtSan)), 0); |
| 370 | 374 | ||
| 375 | + customOidData = BSL_OBJ_GetOidFromNumericString(customOid1, strlen(customOid1), &customOidLen); | ||
| 376 | + ASSERT_NE(customOidData, NULL); | ||
| 377 | + customExt.oid.data = customOidData; | ||
| 378 | + customExt.oid.dataLen = customOidLen; | ||
| 379 | + customExt.value.data = kid; | ||
| 380 | + customExt.value.dataLen = sizeof(kid); | ||
| 381 | + customExt.critical = true; | ||
| 382 | + ASSERT_EQ(HITLS_X509_CertCtrl(cert, HITLS_X509_EXT_SET_GENERIC, &customExt, sizeof(HITLS_X509_ExtGeneric)), 0); | ||
| 383 | + | ||
| 371 | ret = 0; | 384 | ret = 0; |
| 372 | EXIT: | 385 | EXIT: |
| 373 | BSL_LIST_FREE(oidList, (BSL_LIST_PFUNC_FREE)FreeListData); | 386 | BSL_LIST_FREE(oidList, (BSL_LIST_PFUNC_FREE)FreeListData); |
| 374 | BSL_LIST_FREE(san.names, (BSL_LIST_PFUNC_FREE)HITLS_X509_FreeGeneralName); | 387 | BSL_LIST_FREE(san.names, (BSL_LIST_PFUNC_FREE)HITLS_X509_FreeGeneralName); |
| 388 | + BSL_SAL_FREE(customOidData); | ||
| 375 | return ret; | 389 | return ret; |
| 376 | } | 390 | } |
| 377 | 391 | ||
| @@ -28,6 +28,9 @@ SDV_PKI_GEN_KEY_TC001:CRYPT_PKEY_ECDSA:CRYPT_PRIKEY_PKCS8_UNENCRYPT:CRYPT_ECC_NI | |||
| 28 | SDV_PKI_GEN_ENCKEY_TC001: rsa, aes256-cbc | 28 | SDV_PKI_GEN_ENCKEY_TC001: rsa, aes256-cbc |
| 29 | SDV_PKI_GEN_ENCKEY_TC001:CRYPT_PKEY_RSA:0:CRYPT_CIPHER_AES256_CBC:"1234567890" | 29 | SDV_PKI_GEN_ENCKEY_TC001:CRYPT_PKEY_RSA:0:CRYPT_CIPHER_AES256_CBC:"1234567890" |
| 30 | 30 | ||
| 31 | +SDV_PKI_GEN_ENCKEY_TC001: nistp192, aes256-cbc | ||
| 32 | +SDV_PKI_GEN_ENCKEY_TC001:CRYPT_PKEY_ECDSA:CRYPT_ECC_NISTP192:CRYPT_CIPHER_AES256_CBC:"1234567890" | ||
| 33 | + | ||
| 31 | SDV_PKI_GEN_ENCKEY_TC001: nistp256, aes256-cbc | 34 | SDV_PKI_GEN_ENCKEY_TC001: nistp256, aes256-cbc |
| 32 | SDV_PKI_GEN_ENCKEY_TC001:CRYPT_PKEY_ECDSA:CRYPT_ECC_NISTP256:CRYPT_CIPHER_AES256_CBC:"1234567890" | 35 | SDV_PKI_GEN_ENCKEY_TC001:CRYPT_PKEY_ECDSA:CRYPT_ECC_NISTP256:CRYPT_CIPHER_AES256_CBC:"1234567890" |
| 33 | 36 | ||
| @@ -31,6 +31,7 @@ | |||
| 31 | 31 | ||
| 32 | 32 | ||
| 33 | /* END_HEADER */ | 33 | /* END_HEADER */ |
| 34 | + | ||
| 34 | 35 | ||
| 35 | 36 | ||
| 36 | static char g_sm2DefaultUserid[] = "1234567812345678"; | 37 | static char g_sm2DefaultUserid[] = "1234567812345678"; |
| @@ -988,4 +989,55 @@ EXIT: | |||
| 988 | STUB_Reset(&tmpRpInfo); | 989 | STUB_Reset(&tmpRpInfo); |
| 989 | 990 | ||
| 990 | } | 991 | } |
| 991 | -/* END_CASE */ | 992 | +/* END_CASE */ |
| 993 | + | ||
| 994 | +/* BEGIN_CASE */ | ||
| 995 | +void SDV_X509_CSR_WITH_CUSTOM_EXT_PARSE_TEST_TC001(char *path, Hex *customExtValue1, Hex *customExtValue2) | ||
| 996 | +{ | ||
| 997 | + HITLS_X509_Csr *parsedCsr = NULL; | ||
| 998 | + HITLS_X509_Attrs *attrs = NULL; | ||
| 999 | + HITLS_X509_Ext *ext = NULL; | ||
| 1000 | + char *customOid = "1.2.3.4.5.6.7.8.9.1"; | ||
| 1001 | + char *customOid2 = "1.2.3.4.5.6.7.8.9.2"; | ||
| 1002 | + uint8_t *customOidData = NULL; | ||
| 1003 | + uint32_t customOidLen = 0; | ||
| 1004 | + HITLS_X509_ExtGeneric customExt = {0}; | ||
| 1005 | + | ||
| 1006 | + TestMemInit(); | ||
| 1007 | + | ||
| 1008 | + // SetUp | ||
| 1009 | + ASSERT_EQ(HITLS_X509_CsrParseFile(BSL_FORMAT_ASN1, path, &parsedCsr), HITLS_PKI_SUCCESS); | ||
| 1010 | + ASSERT_EQ(HITLS_X509_CsrCtrl(parsedCsr, HITLS_X509_CSR_GET_ATTRIBUTES, &attrs, sizeof(HITLS_X509_Attrs *)), 0); | ||
| 1011 | + ASSERT_EQ(HITLS_X509_AttrCtrl(attrs, HITLS_X509_ATTR_GET_REQUESTED_EXTENSIONS, &ext, sizeof(HITLS_X509_Ext *)), 0); | ||
| 1012 | + ASSERT_NE(ext, NULL); | ||
| 1013 | + | ||
| 1014 | + // Get and check custom ext1 | ||
| 1015 | + customOidData = BSL_OBJ_GetOidFromNumericString(customOid, strlen(customOid), &customOidLen); | ||
| 1016 | + ASSERT_NE(customOidData, NULL); | ||
| 1017 | + customExt.oid.data = customOidData; | ||
| 1018 | + customExt.oid.dataLen = customOidLen; | ||
| 1019 | + ASSERT_EQ(HITLS_X509_ExtCtrl(ext, HITLS_X509_EXT_GET_GENERIC, &customExt, sizeof(HITLS_X509_ExtGeneric)), 0); | ||
| 1020 | + ASSERT_COMPARE("custom ext1", customExt.value.data, customExt.value.dataLen, customExtValue1->x, | ||
| 1021 | + customExtValue1->len); | ||
| 1022 | + ASSERT_EQ(customExt.critical, true); | ||
| 1023 | + BSL_SAL_FREE(customOidData); | ||
| 1024 | + BSL_SAL_FREE(customExt.value.data); | ||
| 1025 | + | ||
| 1026 | + // Get and check custom ext2 | ||
| 1027 | + customOidData = BSL_OBJ_GetOidFromNumericString(customOid2, strlen(customOid2), &customOidLen); | ||
| 1028 | + ASSERT_NE(customOidData, NULL); | ||
| 1029 | + customExt.oid.data = customOidData; | ||
| 1030 | + customExt.oid.dataLen = customOidLen; | ||
| 1031 | + ASSERT_EQ(HITLS_X509_ExtCtrl(ext, HITLS_X509_EXT_GET_GENERIC, &customExt, sizeof(HITLS_X509_ExtGeneric)), 0); | ||
| 1032 | + ASSERT_COMPARE("custom ext2", customExt.value.data, customExt.value.dataLen, customExtValue2->x, | ||
| 1033 | + customExtValue2->len); | ||
| 1034 | + ASSERT_EQ(customExt.critical, false); | ||
| 1035 | + BSL_SAL_FREE(customOidData); | ||
| 1036 | + | ||
| 1037 | +EXIT: | ||
| 1038 | + HITLS_X509_CsrFree(parsedCsr); | ||
| 1039 | + HITLS_X509_ExtFree(ext); | ||
| 1040 | + BSL_SAL_FREE(customOidData); | ||
| 1041 | + BSL_SAL_FREE(customExt.value.data); | ||
| 1042 | +} | ||
| 1043 | +/* END_CASE */ | ||
| @@ -184,3 +184,5 @@ SDV_X509_CSR_PARSE_STUB_TC001:BSL_FORMAT_PEM:"../testdata/cert/pem/csr/mldsa/mld | |||
| 184 | SDV_X509_CSR_PARSE_STUB_TC001 #rsa_sha224 | 184 | SDV_X509_CSR_PARSE_STUB_TC001 #rsa_sha224 |
| 185 | SDV_X509_CSR_PARSE_STUB_TC001:BSL_FORMAT_PEM:"../testdata/cert/pem/csr/rsa_sha/rsa1024_pkcs8_sha224.csr":149 | 185 | SDV_X509_CSR_PARSE_STUB_TC001:BSL_FORMAT_PEM:"../testdata/cert/pem/csr/rsa_sha/rsa1024_pkcs8_sha224.csr":149 |
| 186 | 186 | ||
| 187 | +SDV_X509_CSR_WITH_CUSTOM_EXT_PARSE_TEST_TC001: | ||
| 188 | +SDV_X509_CSR_WITH_CUSTOM_EXT_PARSE_TEST_TC001:"../testdata/cert/asn1/csrcheck/custom_ext_csr.der":"0C2154686973206973206120637573746F6D20657874656E73696F6E2076616C756531":"300C0C0A48656C6C6F20576F726C65" | ||
| @@ -265,27 +265,42 @@ static int32_t HITLS_AddCrlToStoreTest(char *path, HITLS_X509_StoreCtx *store, H | |||
| 265 | /* BEGIN_CASE */ | 265 | /* BEGIN_CASE */ |
| 266 | void SDV_X509_BUILD_CERT_CHAIN_FUNC_TC001(char *rootPath, char *caPath, char *cert, char *crlPath) | 266 | void SDV_X509_BUILD_CERT_CHAIN_FUNC_TC001(char *rootPath, char *caPath, char *cert, char *crlPath) |
| 267 | { | 267 | { |
| 268 | - TestMemInit(); | ||
| 269 | - HITLS_X509_StoreCtx *store = HITLS_X509_StoreCtxNew(); | ||
| 270 | - ASSERT_TRUE(store != NULL); | ||
| 271 | HITLS_X509_Cert *root = NULL; | 268 | HITLS_X509_Cert *root = NULL; |
| 272 | - ASSERT_EQ(HITLS_AddCertToStoreTest(rootPath, store, &root), HITLS_PKI_SUCCESS); | ||
| 273 | HITLS_X509_Cert *ca = NULL; | 269 | HITLS_X509_Cert *ca = NULL; |
| 274 | - ASSERT_EQ(HITLS_AddCertToStoreTest(caPath, store, &ca), HITLS_PKI_SUCCESS); | 270 | + HITLS_X509_StoreCtx *store = NULL; |
| 275 | HITLS_X509_Cert *entity = NULL; | 271 | HITLS_X509_Cert *entity = NULL; |
| 272 | + HITLS_X509_Crl *crl = NULL; | ||
| 273 | + HITLS_X509_List *chain = NULL; | ||
| 274 | + int64_t timeval = time(NULL); | ||
| 275 | + int64_t flag = HITLS_X509_VFY_FLAG_CRL_ALL; | ||
| 276 | + bool withIntCa = strlen(caPath) > 0; | ||
| 277 | + | ||
| 278 | + TestMemInit(); | ||
| 279 | + | ||
| 280 | + store = HITLS_X509_StoreCtxNew(); | ||
| 281 | + ASSERT_TRUE(store != NULL); | ||
| 282 | + | ||
| 283 | + ASSERT_EQ(HITLS_AddCertToStoreTest(rootPath, store, &root), HITLS_PKI_SUCCESS); | ||
| 284 | + if (withIntCa) { | ||
| 285 | + ASSERT_EQ(HITLS_AddCertToStoreTest(caPath, store, &ca), HITLS_PKI_SUCCESS); | ||
| 286 | + } | ||
| 276 | 287 | ||
| 277 | ASSERT_TRUE(HITLS_AddCertToStoreTest(cert, store, &entity) != HITLS_PKI_SUCCESS); | 288 | ASSERT_TRUE(HITLS_AddCertToStoreTest(cert, store, &entity) != HITLS_PKI_SUCCESS); |
| 278 | - HITLS_X509_Crl *crl = NULL; | ||
| 279 | ASSERT_EQ(HITLS_AddCrlToStoreTest(crlPath, store, &crl), HITLS_PKI_SUCCESS); | 289 | ASSERT_EQ(HITLS_AddCrlToStoreTest(crlPath, store, &crl), HITLS_PKI_SUCCESS); |
| 280 | 290 | ||
| 281 | ASSERT_EQ(BSL_LIST_COUNT(store->crl), 1); | 291 | ASSERT_EQ(BSL_LIST_COUNT(store->crl), 1); |
| 282 | - ASSERT_EQ(BSL_LIST_COUNT(store->store), 2); | 292 | + if (withIntCa) { |
| 283 | - HITLS_X509_List *chain = NULL; | 293 | + ASSERT_EQ(BSL_LIST_COUNT(store->store), 2); |
| 294 | + } else { | ||
| 295 | + ASSERT_EQ(BSL_LIST_COUNT(store->store), 1); | ||
| 296 | + } | ||
| 284 | ASSERT_TRUE(HITLS_X509_CertChainBuild(store, false, entity, &chain) == HITLS_PKI_SUCCESS); | 297 | ASSERT_TRUE(HITLS_X509_CertChainBuild(store, false, entity, &chain) == HITLS_PKI_SUCCESS); |
| 285 | - ASSERT_EQ(BSL_LIST_COUNT(chain), 2); | 298 | + if (withIntCa) { |
| 286 | - int64_t timeval = time(NULL); | 299 | + ASSERT_EQ(BSL_LIST_COUNT(chain), 2); |
| 300 | + } else { | ||
| 301 | + ASSERT_EQ(BSL_LIST_COUNT(chain), 1); | ||
| 302 | + } | ||
| 287 | ASSERT_EQ(HITLS_X509_StoreCtxCtrl(store, HITLS_X509_STORECTX_SET_TIME, &timeval, sizeof(timeval)), 0); | 303 | ASSERT_EQ(HITLS_X509_StoreCtxCtrl(store, HITLS_X509_STORECTX_SET_TIME, &timeval, sizeof(timeval)), 0); |
| 288 | - int64_t flag = HITLS_X509_VFY_FLAG_CRL_ALL; | ||
| 289 | ASSERT_EQ(HITLS_X509_StoreCtxCtrl(store, HITLS_X509_STORECTX_CLR_PARAM_FLAGS, &flag, sizeof(flag)), 0); | 304 | ASSERT_EQ(HITLS_X509_StoreCtxCtrl(store, HITLS_X509_STORECTX_CLR_PARAM_FLAGS, &flag, sizeof(flag)), 0); |
| 290 | ASSERT_EQ(HITLS_X509_CertVerify(store, chain), HITLS_PKI_SUCCESS); | 305 | ASSERT_EQ(HITLS_X509_CertVerify(store, chain), HITLS_PKI_SUCCESS); |
| 291 | 306 | ||
| @@ -31,6 +31,9 @@ SDV_X509_BUILD_CERT_CHAIN_FUNC_TC001:"../testdata/cert/chain/rsa-v3/rootca.der": | |||
| 31 | SDV_X509_BUILD_CERT_CHAIN_FUNC_TC001 rsa-pss-nocrl | 31 | SDV_X509_BUILD_CERT_CHAIN_FUNC_TC001 rsa-pss-nocrl |
| 32 | SDV_X509_BUILD_CERT_CHAIN_FUNC_TC001:"../testdata/cert/chain/rsa-pss-v3/ca.der":"../testdata/cert/chain/rsa-pss-v3/inter.der":"../testdata/cert/chain/rsa-pss-v3/end.der":"../testdata/cert/asn1/ca-empty-rsa-sha256-v2.der" | 32 | SDV_X509_BUILD_CERT_CHAIN_FUNC_TC001:"../testdata/cert/chain/rsa-pss-v3/ca.der":"../testdata/cert/chain/rsa-pss-v3/inter.der":"../testdata/cert/chain/rsa-pss-v3/end.der":"../testdata/cert/asn1/ca-empty-rsa-sha256-v2.der" |
| 33 | 33 | ||
| 34 | +SDV_X509_BUILD_CERT_CHAIN_FUNC_TC001 ecdsa-prime192v1-nocrl | ||
| 35 | +SDV_X509_BUILD_CERT_CHAIN_FUNC_TC001:"../testdata/cert/chain/nistp192_certs/root_ca_nistp192_cert.der":"../testdata/cert/chain/nistp192_certs/int_ca_nistp192_cert.der":"../testdata/cert/chain/nistp192_certs/ee_nistp192_cert.der":"../testdata/cert/chain/nistp192_certs/root_ca_nistp192.crl" | ||
| 36 | + | ||
| 34 | SDV_X509_BUILD_CERT_CHAIN_FUNC_TC001 ecdsa-nocrl | 37 | SDV_X509_BUILD_CERT_CHAIN_FUNC_TC001 ecdsa-nocrl |
| 35 | SDV_X509_BUILD_CERT_CHAIN_FUNC_TC001:"../testdata/cert/chain/ecdsa-v3/ca.der":"../testdata/cert/chain/ecdsa-v3/inter.der":"../testdata/cert/chain/ecdsa-v3/end.der":"../testdata/cert/asn1/ca-empty-rsa-sha256-v2.der" | 38 | SDV_X509_BUILD_CERT_CHAIN_FUNC_TC001:"../testdata/cert/chain/ecdsa-v3/ca.der":"../testdata/cert/chain/ecdsa-v3/inter.der":"../testdata/cert/chain/ecdsa-v3/end.der":"../testdata/cert/asn1/ca-empty-rsa-sha256-v2.der" |
| 36 | 39 | ||
| @@ -70,6 +70,7 @@ | |||
| 70 | "bn": ["test_suite_sdv_bn"], | 70 | "bn": ["test_suite_sdv_bn"], |
| 71 | 71 | ||
| 72 | "ecc": ["test_suite_sdv_eal_ecdh", "test_suite_sdv_eal_ecdsa"], | 72 | "ecc": ["test_suite_sdv_eal_ecdh", "test_suite_sdv_eal_ecdsa"], |
| 73 | + "curve_nistp192": ["test_suite_sdv_eal_ecdh", "test_suite_sdv_eal_ecdsa"], | ||
| 73 | "curve_nistp224": ["test_suite_sdv_eal_ecdh", "test_suite_sdv_eal_ecdsa"], | 74 | "curve_nistp224": ["test_suite_sdv_eal_ecdh", "test_suite_sdv_eal_ecdsa"], |
| 74 | "curve_nistp256": ["test_suite_sdv_eal_ecdh", "test_suite_sdv_eal_ecdsa"], | 75 | "curve_nistp256": ["test_suite_sdv_eal_ecdh", "test_suite_sdv_eal_ecdsa"], |
| 75 | "curve_nistp384": ["test_suite_sdv_eal_ecdh", "test_suite_sdv_eal_ecdsa"], | 76 | "curve_nistp384": ["test_suite_sdv_eal_ecdh", "test_suite_sdv_eal_ecdsa"], |
Binary files do not support preview
Binary files do not support preview
Binary files do not support preview
Binary files do not support preview
Binary files do not support preview
Binary files do not support preview
Binary files do not support preview
Binary files do not support preview
Binary files do not support preview
Binary files do not support preview
Binary files do not support preview