Mercurial > dropbear
comparison libtomcrypt/src/pk/ecc/ecc.c @ 1511:5916af64acd4 fuzz
merge from main
author | Matt Johnston <matt@ucc.asn.au> |
---|---|
date | Sat, 17 Feb 2018 19:29:51 +0800 |
parents | 6dba84798cd5 |
children |
comparison
equal
deleted
inserted
replaced
1457:32f990cc96b1 | 1511:5916af64acd4 |
---|---|
3 * LibTomCrypt is a library that provides various cryptographic | 3 * LibTomCrypt is a library that provides various cryptographic |
4 * algorithms in a highly modular and flexible manner. | 4 * algorithms in a highly modular and flexible manner. |
5 * | 5 * |
6 * The library is free for all purposes without any express | 6 * The library is free for all purposes without any express |
7 * guarantee it works. | 7 * guarantee it works. |
8 * | |
9 * Tom St Denis, [email protected], http://libtom.org | |
10 */ | 8 */ |
11 | 9 |
12 /* Implements ECC over Z/pZ for curve y^2 = x^3 - 3x + b | 10 /* Implements ECC over Z/pZ for curve y^2 = x^3 - 3x + b |
13 * | 11 * |
14 * All curves taken from NIST recommendation paper of July 1999 | 12 * All curves taken from NIST recommendation paper of July 1999 |
17 #include "tomcrypt.h" | 15 #include "tomcrypt.h" |
18 | 16 |
19 /** | 17 /** |
20 @file ecc.c | 18 @file ecc.c |
21 ECC Crypto, Tom St Denis | 19 ECC Crypto, Tom St Denis |
22 */ | 20 */ |
23 | 21 |
24 #ifdef LTC_MECC | 22 #ifdef LTC_MECC |
25 | 23 |
26 /* This holds the key settings. ***MUST*** be organized by size from smallest to largest. */ | 24 /* This holds the key settings. ***MUST*** be organized by size from smallest to largest. */ |
27 const ltc_ecc_set_type ltc_ecc_sets[] = { | 25 const ltc_ecc_set_type ltc_ecc_sets[] = { |
28 #ifdef ECC112 | 26 #ifdef LTC_ECC112 |
29 { | 27 { |
30 14, | 28 14, |
31 "SECP112R1", | 29 "SECP112R1", |
32 "DB7C2ABF62E35E668076BEAD208B", | 30 "DB7C2ABF62E35E668076BEAD208B", |
33 "659EF8BA043916EEDE8911702B22", | 31 "659EF8BA043916EEDE8911702B22", |
34 "DB7C2ABF62E35E7628DFAC6561C5", | 32 "DB7C2ABF62E35E7628DFAC6561C5", |
35 "09487239995A5EE76B55F9C2F098", | 33 "09487239995A5EE76B55F9C2F098", |
36 "A89CE5AF8724C0A23E0E0FF77500" | 34 "A89CE5AF8724C0A23E0E0FF77500" |
37 }, | 35 }, |
38 #endif | 36 #endif |
39 #ifdef ECC128 | 37 #ifdef LTC_ECC128 |
40 { | 38 { |
41 16, | 39 16, |
42 "SECP128R1", | 40 "SECP128R1", |
43 "FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFF", | 41 "FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFF", |
44 "E87579C11079F43DD824993C2CEE5ED3", | 42 "E87579C11079F43DD824993C2CEE5ED3", |
45 "FFFFFFFE0000000075A30D1B9038A115", | 43 "FFFFFFFE0000000075A30D1B9038A115", |
46 "161FF7528B899B2D0C28607CA52C5B86", | 44 "161FF7528B899B2D0C28607CA52C5B86", |
47 "CF5AC8395BAFEB13C02DA292DDED7A83", | 45 "CF5AC8395BAFEB13C02DA292DDED7A83", |
48 }, | 46 }, |
49 #endif | 47 #endif |
50 #ifdef ECC160 | 48 #ifdef LTC_ECC160 |
51 { | 49 { |
52 20, | 50 20, |
53 "SECP160R1", | 51 "SECP160R1", |
54 "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF", | 52 "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF", |
55 "1C97BEFC54BD7A8B65ACF89F81D4D4ADC565FA45", | 53 "1C97BEFC54BD7A8B65ACF89F81D4D4ADC565FA45", |
56 "0100000000000000000001F4C8F927AED3CA752257", | 54 "0100000000000000000001F4C8F927AED3CA752257", |
57 "4A96B5688EF573284664698968C38BB913CBFC82", | 55 "4A96B5688EF573284664698968C38BB913CBFC82", |
58 "23A628553168947D59DCC912042351377AC5FB32", | 56 "23A628553168947D59DCC912042351377AC5FB32", |
59 }, | 57 }, |
60 #endif | 58 #endif |
61 #ifdef ECC192 | 59 #ifdef LTC_ECC192 |
62 { | 60 { |
63 24, | 61 24, |
64 "ECC-192", | 62 "ECC-192", |
65 "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF", | 63 "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF", |
66 "64210519E59C80E70FA7E9AB72243049FEB8DEECC146B9B1", | 64 "64210519E59C80E70FA7E9AB72243049FEB8DEECC146B9B1", |
67 "FFFFFFFFFFFFFFFFFFFFFFFF99DEF836146BC9B1B4D22831", | 65 "FFFFFFFFFFFFFFFFFFFFFFFF99DEF836146BC9B1B4D22831", |
68 "188DA80EB03090F67CBF20EB43A18800F4FF0AFD82FF1012", | 66 "188DA80EB03090F67CBF20EB43A18800F4FF0AFD82FF1012", |
69 "7192B95FFC8DA78631011ED6B24CDD573F977A11E794811", | 67 "7192B95FFC8DA78631011ED6B24CDD573F977A11E794811", |
70 }, | 68 }, |
71 #endif | 69 #endif |
72 #ifdef ECC224 | 70 #ifdef LTC_ECC224 |
73 { | 71 { |
74 28, | 72 28, |
75 "ECC-224", | 73 "ECC-224", |
76 "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001", | 74 "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001", |
77 "B4050A850C04B3ABF54132565044B0B7D7BFD8BA270B39432355FFB4", | 75 "B4050A850C04B3ABF54132565044B0B7D7BFD8BA270B39432355FFB4", |
78 "FFFFFFFFFFFFFFFFFFFFFFFFFFFF16A2E0B8F03E13DD29455C5C2A3D", | 76 "FFFFFFFFFFFFFFFFFFFFFFFFFFFF16A2E0B8F03E13DD29455C5C2A3D", |
79 "B70E0CBD6BB4BF7F321390B94A03C1D356C21122343280D6115C1D21", | 77 "B70E0CBD6BB4BF7F321390B94A03C1D356C21122343280D6115C1D21", |
80 "BD376388B5F723FB4C22DFE6CD4375A05A07476444D5819985007E34", | 78 "BD376388B5F723FB4C22DFE6CD4375A05A07476444D5819985007E34", |
81 }, | 79 }, |
82 #endif | 80 #endif |
83 #ifdef ECC256 | 81 #ifdef LTC_ECC256 |
84 { | 82 { |
85 32, | 83 32, |
86 "ECC-256", | 84 "ECC-256", |
87 "FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF", | 85 "FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF", |
88 "5AC635D8AA3A93E7B3EBBD55769886BC651D06B0CC53B0F63BCE3C3E27D2604B", | 86 "5AC635D8AA3A93E7B3EBBD55769886BC651D06B0CC53B0F63BCE3C3E27D2604B", |
89 "FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551", | 87 "FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551", |
90 "6B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C296", | 88 "6B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C296", |
91 "4FE342E2FE1A7F9B8EE7EB4A7C0F9E162BCE33576B315ECECBB6406837BF51F5", | 89 "4FE342E2FE1A7F9B8EE7EB4A7C0F9E162BCE33576B315ECECBB6406837BF51F5", |
92 }, | 90 }, |
93 #endif | 91 #endif |
94 #ifdef ECC384 | 92 #ifdef LTC_ECC384 |
95 { | 93 { |
96 48, | 94 48, |
97 "ECC-384", | 95 "ECC-384", |
98 "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFF0000000000000000FFFFFFFF", | 96 "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFF0000000000000000FFFFFFFF", |
99 "B3312FA7E23EE7E4988E056BE3F82D19181D9C6EFE8141120314088F5013875AC656398D8A2ED19D2A85C8EDD3EC2AEF", | 97 "B3312FA7E23EE7E4988E056BE3F82D19181D9C6EFE8141120314088F5013875AC656398D8A2ED19D2A85C8EDD3EC2AEF", |
100 "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7634D81F4372DDF581A0DB248B0A77AECEC196ACCC52973", | 98 "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7634D81F4372DDF581A0DB248B0A77AECEC196ACCC52973", |
101 "AA87CA22BE8B05378EB1C71EF320AD746E1D3B628BA79B9859F741E082542A385502F25DBF55296C3A545E3872760AB7", | 99 "AA87CA22BE8B05378EB1C71EF320AD746E1D3B628BA79B9859F741E082542A385502F25DBF55296C3A545E3872760AB7", |
102 "3617DE4A96262C6F5D9E98BF9292DC29F8F41DBD289A147CE9DA3113B5F0B8C00A60B1CE1D7E819D7A431D7C90EA0E5F", | 100 "3617DE4A96262C6F5D9E98BF9292DC29F8F41DBD289A147CE9DA3113B5F0B8C00A60B1CE1D7E819D7A431D7C90EA0E5F", |
103 }, | 101 }, |
104 #endif | 102 #endif |
105 #ifdef ECC521 | 103 #ifdef LTC_ECC521 |
106 { | 104 { |
107 66, | 105 66, |
108 "ECC-521", | 106 "ECC-521", |
109 "1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", | 107 "1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", |
110 "51953EB9618E1C9A1F929A21A0B68540EEA2DA725B99B315F3B8B489918EF109E156193951EC7E937B1652C0BD3BB1BF073573DF883D2C34F1EF451FD46B503F00", | 108 "51953EB9618E1C9A1F929A21A0B68540EEA2DA725B99B315F3B8B489918EF109E156193951EC7E937B1652C0BD3BB1BF073573DF883D2C34F1EF451FD46B503F00", |
119 } | 117 } |
120 }; | 118 }; |
121 | 119 |
122 #endif | 120 #endif |
123 | 121 |
124 /* $Source$ */ | 122 /* ref: $Format:%D$ */ |
125 /* $Revision$ */ | 123 /* git commit: $Format:%H$ */ |
126 /* $Date$ */ | 124 /* commit time: $Format:%ai$ */ |
127 | 125 |