modify-sm9

This commit is contained in:
Gorachya
2019-02-02 20:24:54 -08:00
parent 58b3927232
commit 54a4d1b9aa
15 changed files with 48 additions and 20 deletions

32
crypto/sm9/sm9_params.c Normal file → Executable file
View File

@@ -62,6 +62,7 @@
#define BN_SM9_BN256_TOP (256+BN_BITS2-1)/BN_BITS2
#define BN_SM9_LOOP_TOP (66+BN_BITS2-1)/BN_BITS2
#define BN_SM9_FINAL_EXPO_TOP (2816+BN_BITS2-1)/BN_BITS2
#define BN_SM9_FAST_FINAL_EXPO_P3_TOP (768+BN_BITS2-1)/BN_BITS2
#if BN_BITS2 == 64
static const BN_ULONG _sm9bn256v1_prime[BN_SM9_BN256_TOP] = {
@@ -122,6 +123,15 @@ static const BN_ULONG _sm9bn256v1_final_expo[BN_SM9_FINAL_EXPO_TOP] = {
0x1A09A6AE43ADE454ULL, 0x061835E8B1259499ULL,
};
static const BN_ULONG _sm9bn256v1_fast_final_expo_p3[BN_SM9_FAST_FINAL_EXPO_P3_TOP] = {
0xA9B2ADA593152855ULL, 0x44BF9D0FA74DDFB7ULL,
0x83687EE0C6D9188CULL, 0xE0D49DE3AA8A4748ULL,
0x0DA3D71BCDB13FE5ULL, 0xA5782C82FDB6B0A1ULL,
0x7C0CA02D9B0D8649ULL, 0xBA4CADE09029E471ULL,
0xDC53E586930846F1ULL, 0xD62CD8FB7B497A0AULL,
0xF12FCAD3B31FE2B0ULL, 0x5C5E452404034E2AULL,
};
#elif BN_BITS2 == 32
static const BN_ULONG _sm9bn256v1_prime[BN_SM9_BN256_TOP] = {
0xE351457D, 0xE56F9B27, 0x1A7AEEDB, 0x21F2934B,
@@ -181,6 +191,15 @@ static const BN_ULONG _sm9bn256v1_final_expo[BN_SM9_FINAL_EXPO_TOP] = {
0x43ADE454, 0x1A09A6AE, 0xB1259499, 0x061835E8,
};
static const BN_ULONG _sm9bn256v1_fast_final_expo_p3[BN_SM9_FAST_FINAL_EXPO_P3_TOP] = {
0xA9B2ADA5, 0x93152855, 0x44BF9D0F, 0xA74DDFB7,
0x83687EE0, 0xC6D9188C, 0xE0D49DE3, 0xAA8A4748,
0x0DA3D71B, 0xCDB13FE5, 0xA5782C82, 0xFDB6B0A1,
0x7C0CA02D, 0x9B0D8649, 0xBA4CADE0, 0x9029E471,
0xDC53E586, 0x930846F1, 0xD62CD8FB, 0x7B497A0A,
0xF12FCAD3, 0xB31FE2B0, 0x5C5E4524, 0x04034E2A,
};
#else
# error "unsupported BN_BITS2"
#endif
@@ -225,6 +244,14 @@ static const BIGNUM _bignum_sm9bn256v1_final_expo = {
BN_FLG_STATIC_DATA
};
static const BIGNUM _bignum_sm9bn256v1_fast_final_expo_p3 = {
(BN_ULONG *)_sm9bn256v1_fast_final_expo_p3,
BN_SM9_FAST_FINAL_EXPO_P3_TOP,
BN_SM9_FAST_FINAL_EXPO_P3_TOP,
0,
BN_FLG_STATIC_DATA
};
static const BIGNUM _bignum_sm9bn256v1_x20 = {
(BN_ULONG *)_sm9bn256v1_x2[0],
BN_SM9_BN256_TOP,
@@ -301,3 +328,8 @@ const BIGNUM *SM9_get0_final_exponent(void)
{
return &_bignum_sm9bn256v1_final_expo;
}
const BIGNUM *SM9_get0_fast_final_exponent(void)
{
return &_bignum_sm9bn256v1_fast_final_expo_p3;
}