mirror of
https://github.com/guanzhi/GmSSL.git
synced 2026-05-07 00:46:17 +08:00
Fix tests on DLL
This commit is contained in:
@@ -44,6 +44,20 @@
|
||||
|
||||
int test_sm2_bn(void)
|
||||
{
|
||||
const SM2_JACOBIAN_POINT _G = {
|
||||
{
|
||||
0x334c74c7, 0x715a4589, 0xf2660be1, 0x8fe30bbf,
|
||||
0x6a39c994, 0x5f990446, 0x1f198119, 0x32c4ae2c,
|
||||
},
|
||||
{
|
||||
0x2139f0a0, 0x02df32e5, 0xc62a4740, 0xd0a9877c,
|
||||
0x6b692153, 0x59bdcee3, 0xf4f6779c, 0xbc3736a2,
|
||||
},
|
||||
{
|
||||
1, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
};
|
||||
const SM2_JACOBIAN_POINT *G = &_G;
|
||||
SM2_BN r;
|
||||
SM2_BN x;
|
||||
SM2_BN y;
|
||||
@@ -58,8 +72,8 @@ int test_sm2_bn(void)
|
||||
|
||||
SM2_BN t;
|
||||
|
||||
sm2_bn_copy(x, SM2_G->X);
|
||||
sm2_bn_copy(y, SM2_G->Y);
|
||||
sm2_bn_copy(x, G->X);
|
||||
sm2_bn_copy(y, G->Y);
|
||||
|
||||
sm2_bn_from_hex(r, hex_v);
|
||||
ok = (sm2_bn_cmp(r, v) == 0);
|
||||
@@ -190,8 +204,21 @@ int test_sm2_bn(void)
|
||||
|
||||
int test_sm2_jacobian_point(void)
|
||||
{
|
||||
const SM2_JACOBIAN_POINT _G = {
|
||||
{
|
||||
0x334c74c7, 0x715a4589, 0xf2660be1, 0x8fe30bbf,
|
||||
0x6a39c994, 0x5f990446, 0x1f198119, 0x32c4ae2c,
|
||||
},
|
||||
{
|
||||
0x2139f0a0, 0x02df32e5, 0xc62a4740, 0xd0a9877c,
|
||||
0x6b692153, 0x59bdcee3, 0xf4f6779c, 0xbc3736a2,
|
||||
},
|
||||
{
|
||||
1, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
};
|
||||
const SM2_JACOBIAN_POINT *G = &_G;
|
||||
SM2_JACOBIAN_POINT _P, *P = &_P;
|
||||
SM2_JACOBIAN_POINT _G, *G = &_G;
|
||||
SM2_BN k;
|
||||
int i = 1, ok;
|
||||
|
||||
@@ -199,7 +226,6 @@ int test_sm2_jacobian_point(void)
|
||||
|
||||
printf("sm2_jacobian_point_test\n");
|
||||
|
||||
sm2_jacobian_point_copy(G, SM2_G);
|
||||
ok = sm2_jacobian_point_equ_hex(G, hex_G);
|
||||
printf("sm2 point test %d %s\n", i++, ok ? "ok" : "failed");
|
||||
if (!ok) return -1;
|
||||
|
||||
@@ -38,13 +38,29 @@ static int sm9_bn_equ_hex(const sm9_bn_t a, const char *hex)
|
||||
#define hex_fp_inv "7d404b0027a93e3fa8f8bc7ee367a96814c42a3b69feb1845093406948a34753"
|
||||
|
||||
int test_sm9_fp() {
|
||||
const SM9_TWIST_POINT _P2 = {
|
||||
{{0xAF82D65B, 0xF9B7213B, 0xD19C17AB, 0xEE265948, 0xD34EC120, 0xD2AAB97F, 0x92130B08, 0x37227552},
|
||||
{0xD8806141, 0x54806C11, 0x0F5E93C4, 0xF1DD2C19, 0xB441A01F, 0x597B6027, 0x78640C98, 0x85AEF3D0}},
|
||||
{{0xC999A7C7, 0x6215BBA5, 0xA71A0811, 0x47EFBA98, 0x3D278FF2, 0x5F317015, 0x19BE3DA6, 0xA7CF28D5},
|
||||
{0x84EBEB96, 0x856DC76B, 0xA347C8BD, 0x0736A96F, 0x2CBEE6ED, 0x66BA0D26, 0x2E845C12, 0x17509B09}},
|
||||
{{1,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}},
|
||||
};
|
||||
const SM9_TWIST_POINT *P2 = &_P2;
|
||||
const SM9_TWIST_POINT _Ppubs = {
|
||||
{{0x96EA5E32, 0x8F14D656, 0x386A92DD, 0x414D2177, 0x24A3B573, 0x6CE843ED, 0x152D1F78, 0x29DBA116},
|
||||
{0x1B94C408, 0x0AB1B679, 0x5E392CFB, 0x1CE0711C, 0x41B56501, 0xE48AFF4B, 0x3084F733, 0x9F64080B}},
|
||||
{{0xB4E3216D, 0x0E75C05F, 0x5CDFF073, 0x1006E85F, 0xB7A46F74, 0x1A7CE027, 0xDDA532DA, 0x41E00A53},
|
||||
{0xD0EF1C25, 0xE89E1408, 0x1A77F335, 0xAD3E2FDB, 0x47E3A0CB, 0xB57329F4, 0xABEA0112, 0x69850938}},
|
||||
{{1,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}},
|
||||
};
|
||||
const SM9_TWIST_POINT *Ppubs = &_Ppubs;
|
||||
sm9_fp_t x;
|
||||
sm9_fp_t y;
|
||||
sm9_fp_t r;
|
||||
int j = 1;
|
||||
|
||||
sm9_bn_copy(x, SM9_P2->X[1]);
|
||||
sm9_bn_copy(y, SM9_Ppubs->Y[0]);
|
||||
sm9_bn_copy(x, P2->X[1]);
|
||||
sm9_bn_copy(y, Ppubs->Y[0]);
|
||||
|
||||
sm9_fp_t iv = {0x87654321, 0x0fedcba9, 0x9abcdef0, 0x12345678, 0x87654321, 0x0fedcba9, 0x9abcdef0, 0x12345678};
|
||||
sm9_bn_from_hex(r, hex_iv); if (sm9_bn_cmp(r, iv) != 0) goto err; ++j;
|
||||
@@ -119,6 +135,22 @@ err:
|
||||
#define hex_fp2_div2 "0ba84d8497422e09335d0693165f7376839b54b7d1a3e45ec2b6e3b5c275f5cb-af07946a8e30f24c1a9a8db2995b2b9bb4f126f1e0ca7b76a3c2ab66d67576a2"
|
||||
|
||||
int test_sm9_fp2() {
|
||||
const SM9_TWIST_POINT _P2 = {
|
||||
{{0xAF82D65B, 0xF9B7213B, 0xD19C17AB, 0xEE265948, 0xD34EC120, 0xD2AAB97F, 0x92130B08, 0x37227552},
|
||||
{0xD8806141, 0x54806C11, 0x0F5E93C4, 0xF1DD2C19, 0xB441A01F, 0x597B6027, 0x78640C98, 0x85AEF3D0}},
|
||||
{{0xC999A7C7, 0x6215BBA5, 0xA71A0811, 0x47EFBA98, 0x3D278FF2, 0x5F317015, 0x19BE3DA6, 0xA7CF28D5},
|
||||
{0x84EBEB96, 0x856DC76B, 0xA347C8BD, 0x0736A96F, 0x2CBEE6ED, 0x66BA0D26, 0x2E845C12, 0x17509B09}},
|
||||
{{1,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}},
|
||||
};
|
||||
const SM9_TWIST_POINT *P2 = &_P2;
|
||||
const SM9_TWIST_POINT _Ppubs = {
|
||||
{{0x96EA5E32, 0x8F14D656, 0x386A92DD, 0x414D2177, 0x24A3B573, 0x6CE843ED, 0x152D1F78, 0x29DBA116},
|
||||
{0x1B94C408, 0x0AB1B679, 0x5E392CFB, 0x1CE0711C, 0x41B56501, 0xE48AFF4B, 0x3084F733, 0x9F64080B}},
|
||||
{{0xB4E3216D, 0x0E75C05F, 0x5CDFF073, 0x1006E85F, 0xB7A46F74, 0x1A7CE027, 0xDDA532DA, 0x41E00A53},
|
||||
{0xD0EF1C25, 0xE89E1408, 0x1A77F335, 0xAD3E2FDB, 0x47E3A0CB, 0xB57329F4, 0xABEA0112, 0x69850938}},
|
||||
{{1,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}},
|
||||
};
|
||||
const SM9_TWIST_POINT *Ppubs = &_Ppubs;
|
||||
sm9_fp2_t x;
|
||||
sm9_fp2_t y;
|
||||
sm9_fp2_t r;
|
||||
@@ -126,8 +158,8 @@ int test_sm9_fp2() {
|
||||
sm9_fp_t k;
|
||||
int j = 1;
|
||||
|
||||
sm9_fp2_copy(x, SM9_P2->Y);
|
||||
sm9_fp2_copy(y, SM9_Ppubs->X);
|
||||
sm9_fp2_copy(x, P2->Y);
|
||||
sm9_fp2_copy(y, Ppubs->X);
|
||||
sm9_bn_from_hex(k, hex_iv);
|
||||
|
||||
sm9_fp2_t iv2 = {{0xc9bb073c, 0xf1fdd299, 0xd14f49a9, 0xd632457d, 0x664a2b72, 0x6e492768, 0x4e243d80, 0xa3965402},
|
||||
@@ -198,6 +230,14 @@ err:
|
||||
"3a70e829b83dc311970bc8d3e3e652f88a1ecd49b4672aa18c1c613c9a97d86f"
|
||||
|
||||
int test_sm9_fp4() {
|
||||
const SM9_TWIST_POINT _Ppubs = {
|
||||
{{0x96EA5E32, 0x8F14D656, 0x386A92DD, 0x414D2177, 0x24A3B573, 0x6CE843ED, 0x152D1F78, 0x29DBA116},
|
||||
{0x1B94C408, 0x0AB1B679, 0x5E392CFB, 0x1CE0711C, 0x41B56501, 0xE48AFF4B, 0x3084F733, 0x9F64080B}},
|
||||
{{0xB4E3216D, 0x0E75C05F, 0x5CDFF073, 0x1006E85F, 0xB7A46F74, 0x1A7CE027, 0xDDA532DA, 0x41E00A53},
|
||||
{0xD0EF1C25, 0xE89E1408, 0x1A77F335, 0xAD3E2FDB, 0x47E3A0CB, 0xB57329F4, 0xABEA0112, 0x69850938}},
|
||||
{{1,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}},
|
||||
};
|
||||
const SM9_TWIST_POINT *Ppubs = &_Ppubs;
|
||||
sm9_fp4_t x;
|
||||
sm9_fp4_t y;
|
||||
sm9_fp4_t r;
|
||||
|
||||
Reference in New Issue
Block a user