From 03e389cf049e4bbc2f6d0028dc320fb0583aad2c Mon Sep 17 00:00:00 2001 From: Andy Polyakov Date: Wed, 14 Sep 2011 20:48:49 +0000 Subject: Allow for dynamic base in Win64 FIPS module. --- crypto/ec/ec_curve.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) (limited to 'crypto/ec/ec_curve.c') diff --git a/crypto/ec/ec_curve.c b/crypto/ec/ec_curve.c index 7d56dfcf4e..a51a545500 100644 --- a/crypto/ec/ec_curve.c +++ b/crypto/ec/ec_curve.c @@ -84,6 +84,7 @@ typedef struct { } EC_CURVE_DATA; /* the nist prime curves */ +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[20+24*6]; } _EC_NIST_PRIME_192 = { { NID_X9_62_prime_field,20,24,1 }, @@ -110,6 +111,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[20+24*6]; } 0xB4,0xD2,0x28,0x31 } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[20+28*6]; } _EC_NIST_PRIME_224 = { { NID_X9_62_prime_field,20,28,1 }, @@ -136,6 +138,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[20+28*6]; } 0x13,0xDD,0x29,0x45,0x5C,0x5C,0x2A,0x3D } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[20+48*6]; } _EC_NIST_PRIME_384 = { { NID_X9_62_prime_field,20,48,1 }, @@ -174,6 +177,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[20+48*6]; } 0xEC,0xEC,0x19,0x6A,0xCC,0xC5,0x29,0x73 } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[20+66*6]; } _EC_NIST_PRIME_521 = { { NID_X9_62_prime_field,20,66,1 }, @@ -225,6 +229,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[20+66*6]; } }; /* the x9.62 prime curves (minus the nist prime curves) */ +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[20+24*6]; } _EC_X9_62_PRIME_192V2 = { { NID_X9_62_prime_field,20,24,1 }, @@ -251,6 +256,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[20+24*6]; } 0x48,0xD8,0xDD,0x31 } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[20+24*6]; } _EC_X9_62_PRIME_192V3 = { { NID_X9_62_prime_field,20,24,1 }, @@ -277,6 +283,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[20+24*6]; } 0xF6,0x40,0xEC,0x13 } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[20+30*6]; } _EC_X9_62_PRIME_239V1 = { { NID_X9_62_prime_field,20,30,1 }, @@ -308,6 +315,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[20+30*6]; } 0x90,0x71,0xFB,0xD1,0x52,0x26,0x88,0x90,0x9D,0x0B } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[20+30*6]; } _EC_X9_62_PRIME_239V2 = { { NID_X9_62_prime_field,20,30,1 }, @@ -339,6 +347,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[20+30*6]; } 0x77,0xD4,0x14,0xC0,0x38,0x21,0xBC,0x58,0x20,0x63 } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[20+30*6]; } _EC_X9_62_PRIME_239V3 = { { NID_X9_62_prime_field,20,30,1 }, @@ -371,6 +380,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[20+30*6]; } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[20+32*6]; } _EC_X9_62_PRIME_256V1 = { { NID_X9_62_prime_field,20,32,1 }, @@ -404,6 +414,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[20+32*6]; } }; /* the secg prime curves (minus the nist and x9.62 prime curves) */ +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[20+14*6]; } _EC_SECG_PRIME_112R1 = { { NID_X9_62_prime_field,20,14,1 }, @@ -424,6 +435,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[20+14*6]; } 0xAC,0x65,0x61,0xC5 } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[20+14*6]; } _EC_SECG_PRIME_112R2 = { { NID_X9_62_prime_field,20,14,4 }, @@ -444,6 +456,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[20+14*6]; } 0x05,0x20,0xD0,0x4B } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[20+16*6]; } _EC_SECG_PRIME_128R1 = { { NID_X9_62_prime_field,20,16,1 }, @@ -464,6 +477,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[20+16*6]; } 0x0D,0x1B,0x90,0x38,0xA1,0x15 } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[20+16*6]; } _EC_SECG_PRIME_128R2 = { { NID_X9_62_prime_field,20,16,4 }, @@ -484,6 +498,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[20+16*6]; } 0x24,0x72,0x06,0x13,0xB5,0xA3 } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[0+21*6]; } _EC_SECG_PRIME_160K1 = { { NID_X9_62_prime_field,0,21,1 }, @@ -508,6 +523,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[0+21*6]; } 0xB3 } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[20+21*6]; } _EC_SECG_PRIME_160R1 = { { NID_X9_62_prime_field,20,21,1 }, @@ -534,6 +550,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[20+21*6]; } 0x57 } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[20+21*6]; } _EC_SECG_PRIME_160R2 = { { NID_X9_62_prime_field,20,21,1 }, @@ -560,6 +577,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[20+21*6]; } 0x6B } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[0+24*6]; } _EC_SECG_PRIME_192K1 = { { NID_X9_62_prime_field,0,24,1 }, @@ -584,6 +602,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[0+24*6]; } 0x74,0xDE,0xFD,0x8D } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[0+29*6]; } _EC_SECG_PRIME_224K1 = { { NID_X9_62_prime_field,0,29,1 }, @@ -608,6 +627,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[0+29*6]; } 0x84,0xCA,0xF0,0xA9,0x71,0x76,0x9F,0xB1,0xF7 } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[0+32*6]; } _EC_SECG_PRIME_256K1 = { { NID_X9_62_prime_field,0,32,1 }, @@ -639,6 +659,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[0+32*6]; } }; /* some wap/wtls curves */ +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[0+15*6]; } _EC_WTLS_8 = { { NID_X9_62_prime_field,0,15,1 }, @@ -657,6 +678,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[0+15*6]; } 0x55,0x1A,0xD8,0x37,0xE9 } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[0+21*6]; } _EC_WTLS_9 = { { NID_X9_62_prime_field,0,21,1 }, @@ -681,6 +703,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[0+21*6]; } 0x33 } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[0+28*6]; } _EC_WTLS_12 = { { NID_X9_62_prime_field,0,28,1 }, @@ -708,6 +731,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[0+28*6]; } #ifndef OPENSSL_NO_EC2M /* characteristic two curves */ +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[20+15*6]; } _EC_SECG_CHAR2_113R1 = { { NID_X9_62_characteristic_two_field,20,15,2 }, @@ -728,6 +752,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[20+15*6]; } 0xEC,0x8A,0x39,0xE5,0x6F } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[20+15*6]; } _EC_SECG_CHAR2_113R2 = { { NID_X9_62_characteristic_two_field,20,15,2 }, @@ -748,6 +773,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[20+15*6]; } 0x9B,0x24,0x96,0xAF,0x93 } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[20+17*6]; } _EC_SECG_CHAR2_131R1 = { { NID_X9_62_characteristic_two_field,20,17,2 }, @@ -768,6 +794,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[20+17*6]; } 0x23,0x95,0x3A,0x94,0x64,0xB5,0x4D } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[20+17*6]; } _EC_SECG_CHAR2_131R2 = { { NID_X9_62_characteristic_two_field,20,17,2 }, @@ -788,6 +815,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[20+17*6]; } 0x54,0xA2,0x33,0x04,0x9B,0xA9,0x8F } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[0+21*6]; } _EC_NIST_CHAR2_163K = { { NID_X9_62_characteristic_two_field,0,21,2 }, @@ -812,6 +840,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[0+21*6]; } 0xEF } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[0+21*6]; } _EC_SECG_CHAR2_163R1 = { { NID_X9_62_characteristic_two_field,0,21,2 }, @@ -843,6 +872,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[0+21*6]; } 0x9B } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[0+21*6]; } _EC_NIST_CHAR2_163B = { { NID_X9_62_characteristic_two_field,0,21,2 }, @@ -873,6 +903,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[0+21*6]; } 0x33 } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[20+25*6]; } _EC_SECG_CHAR2_193R1 = { { NID_X9_62_characteristic_two_field,20,25,2 }, @@ -899,6 +930,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[20+25*6]; } 0xCC,0x92,0x0E,0xBA,0x49 } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[20+25*6]; } _EC_SECG_CHAR2_193R2 = { { NID_X9_62_characteristic_two_field,20,25,2 }, @@ -925,6 +957,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[20+25*6]; } 0xCC,0xD4,0xEE,0x99,0xD5 } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[0+30*6]; } _EC_NIST_CHAR2_233K = { { NID_X9_62_characteristic_two_field,0,30,4 }, @@ -954,6 +987,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[0+30*6]; } 0xBC,0xD4,0x6E,0xFB,0x1A,0xD5,0xF1,0x73,0xAB,0xDF } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[20+30*6]; } _EC_NIST_CHAR2_233B = { { NID_X9_62_characteristic_two_field,20,30,2 }, @@ -985,6 +1019,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[20+30*6]; } 0x8A,0x69,0x22,0x03,0x1D,0x26,0x03,0xCF,0xE0,0xD7 } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[0+30*6]; } _EC_SECG_CHAR2_239K1 = { { NID_X9_62_characteristic_two_field,0,30,4 }, @@ -1014,6 +1049,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[0+30*6]; } 0xB6,0xE9,0x1F,0x1C,0x1D,0xA8,0x00,0xE4,0x78,0xA5 } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[0+36*6]; } _EC_NIST_CHAR2_283K = { { NID_X9_62_characteristic_two_field,0,36,4 }, @@ -1044,6 +1080,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[0+36*6]; } 0x1E,0x06,0x1E,0x16,0x3C,0x61 } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[20+36*6]; } _EC_NIST_CHAR2_283B = { { NID_X9_62_characteristic_two_field,20,36,2 }, @@ -1076,6 +1113,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[20+36*6]; } 0x2A,0x7C,0xEF,0xAD,0xB3,0x07 } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[0+52*6]; } _EC_NIST_CHAR2_409K = { { NID_X9_62_characteristic_two_field,0,52,4 }, @@ -1118,6 +1156,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[0+52*6]; } 0x5F,0xCF } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[20+52*6]; } _EC_NIST_CHAR2_409B = { { NID_X9_62_characteristic_two_field,20,52,2 }, @@ -1162,6 +1201,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[20+52*6]; } 0x11,0x73 } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[0+72*6]; } _EC_NIST_CHAR2_571K = { { NID_X9_62_characteristic_two_field,0,72,4 }, @@ -1216,6 +1256,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[0+72*6]; } 0x10,0x01 } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[20+72*6]; } _EC_NIST_CHAR2_571B = { { NID_X9_62_characteristic_two_field,20,72,2 }, @@ -1272,6 +1313,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[20+72*6]; } 0x4E,0x47 } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[20+21*6]; } _EC_X9_62_CHAR2_163V1 = { { NID_X9_62_characteristic_two_field,20,21,2 }, @@ -1298,6 +1340,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[20+21*6]; } 0xC1 } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[20+21*6]; } _EC_X9_62_CHAR2_163V2 = { { NID_X9_62_characteristic_two_field,20,21,2 }, @@ -1324,6 +1367,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[20+21*6]; } 0xA7 } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[20+21*6]; } _EC_X9_62_CHAR2_163V3 = { { NID_X9_62_characteristic_two_field,20,21,2 }, @@ -1350,6 +1394,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[20+21*6]; } 0x09 } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[0+23*6]; } _EC_X9_62_CHAR2_176V1 = { { NID_X9_62_characteristic_two_field,0,23,0xFF6E }, @@ -1374,6 +1419,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[0+23*6]; } 0xFE,0x26,0xAD } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[20+24*6]; } _EC_X9_62_CHAR2_191V1 = { { NID_X9_62_characteristic_two_field,20,24,2 }, @@ -1400,6 +1446,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[20+24*6]; } 0x93,0xBB,0xB9,0xA5 } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[20+24*6]; } _EC_X9_62_CHAR2_191V2 = { { NID_X9_62_characteristic_two_field,20,24,4 }, @@ -1426,6 +1473,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[20+24*6]; } 0xE0,0x6B,0x81,0x73 } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[20+24*6]; } _EC_X9_62_CHAR2_191V3 = { { NID_X9_62_characteristic_two_field,20,24,6 }, @@ -1452,6 +1500,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[20+24*6]; } 0x28,0x8A,0x3E,0xA3 } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[0+27*6]; } _EC_X9_62_CHAR2_208W1 = { { NID_X9_62_characteristic_two_field,0,27,0xFE48 }, @@ -1476,6 +1525,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[0+27*6]; } 0xBD,0xD5,0x71,0x7E,0x21,0x2F,0x9D } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[20+30*6]; } _EC_X9_62_CHAR2_239V1 = { { NID_X9_62_characteristic_two_field,20,30,4 }, @@ -1507,6 +1557,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[20+30*6]; } 0x49,0x2A,0x49,0x93,0xF1,0xCA,0xD6,0x66,0xE4,0x47 } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[20+30*6]; } _EC_X9_62_CHAR2_239V2 = { { NID_X9_62_characteristic_two_field,20,30,6 }, @@ -1538,6 +1589,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[20+30*6]; } 0x9C,0x31,0xE3,0xFC,0xDF,0x15,0x46,0x24,0x52,0x2D } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[20+30*6]; } _EC_X9_62_CHAR2_239V3 = { { NID_X9_62_characteristic_two_field,20,30,0xA }, @@ -1569,6 +1621,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[20+30*6]; } 0xDF,0x90,0x3E,0xF9,0x88,0x8B,0x8A,0x0E,0x4C,0xFF } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[0+35*6]; } _EC_X9_62_CHAR2_272W1 = { { NID_X9_62_characteristic_two_field,0,35,0xFF06 }, @@ -1599,6 +1652,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[0+35*6]; } 0x8F,0x1E,0x62,0x95,0x21 } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[0+39*6]; } _EC_X9_62_CHAR2_304W1 = { { NID_X9_62_characteristic_two_field,0,39,0xFE2E }, @@ -1629,6 +1683,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[0+39*6]; } 0x61,0xDA,0x68,0x99,0x16,0x44,0x43,0x05,0x1D } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[20+45*6]; } _EC_X9_62_CHAR2_359V1 = { { NID_X9_62_characteristic_two_field,20,45,0x4C }, @@ -1667,6 +1722,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[20+45*6]; } 0xF4,0x90,0x75,0x8D,0x3B } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[0+47*6]; } _EC_X9_62_CHAR2_368W1 = { { NID_X9_62_characteristic_two_field,0,47,0xFF70 }, @@ -1703,6 +1759,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[0+47*6]; } 0x31,0xE9,0xCF,0xCE,0x5B,0xD9,0x67 } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[0+54*6]; } _EC_X9_62_CHAR2_431R1 = { { NID_X9_62_characteristic_two_field,0,54,0x2760 }, @@ -1745,6 +1802,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[0+54*6]; } 0xC1,0xAD,0x4A,0x91 } }; +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[0+15*6]; } _EC_WTLS_1 = { { NID_X9_62_characteristic_two_field,0,15,2 }, @@ -1769,6 +1827,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[0+15*6]; } * As the group order is not a prime this curve is not suitable * for ECDSA. */ +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[0+20*6]; } _EC_IPSEC_155_ID3 = { { NID_X9_62_characteristic_two_field,0,20,3 }, @@ -1797,6 +1856,7 @@ static const struct { EC_CURVE_DATA h; unsigned char data[0+20*6]; } * As the group order is not a prime this curve is not suitable * for ECDSA. */ +__fips_constseg static const struct { EC_CURVE_DATA h; unsigned char data[0+24*6]; } _EC_IPSEC_185_ID4 = { { NID_X9_62_characteristic_two_field,0,24,2 }, -- cgit v1.2.3