diff --git a/eccrypto.cpp b/eccrypto.cpp index 3e39d92f..3ac4f194 100644 --- a/eccrypto.cpp +++ b/eccrypto.cpp @@ -122,24 +122,6 @@ template<> struct EcRecommendedParameters unsigned int h; }; -template<> struct EcRecommendedParameters -{ - EcRecommendedParameters(const OID &oid, const char *p, const char *A, const char *B, const char *g, const char *n, unsigned int h) - : oid(oid), p(p), A(A), B(B), g(g), n(n), h(h) {} - ECPM *NewEC() const - { - StringSource ssP(p, true, new HexDecoder); - StringSource ssA(A, true, new HexDecoder); - StringSource ssB(B, true, new HexDecoder); - return new ECPM(Integer(ssP, (size_t)ssP.MaxRetrievable()), ECPM::FieldElement(ssA, (size_t)ssA.MaxRetrievable()), ECPM::FieldElement(ssB, (size_t)ssB.MaxRetrievable())); - }; - - OID oid; - const char *p; - const char *A, *B, *g, *n; - unsigned int h; -}; - struct OIDLessThan { template @@ -448,58 +430,6 @@ static void GetRecommendedParameters(const EcRecommendedParameters *&begin, end = rec + sizeof(rec)/sizeof(rec[0]); } -static void GetRecommendedParameters(const EcRecommendedParameters *&begin, const EcRecommendedParameters *&end) -{ - // this array must be sorted by OID - static const EcRecommendedParameters rec[] = - { - EcRecommendedParameters(ASN1::cryptoppM221(), - "1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD", - "0000000000000000000000000000000000000000000000000001C93A", - "00000000000000000000000000000000000000000000000000000001", - "04000000000000000000000000000000000000000000000000000000040F7ACDD2A4939571D1CEF14ECA37C228E61DBFF10707DC6C08C5056D", - "040000000000000000000000000015A08ED730E8A2F77F005042605B", - 8), - EcRecommendedParameters(ASN1::cryptoppM383(), - "7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45", - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001F82FE", - "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001", - "0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000C1EC7ED04AAF834AF310E304B2DA0F328E7C165F0E8988ABD3992861290F617AA1F1B2E7D0B6E332E969991B62555E77E", - "10000000000000000000000000000000000000000000000006C79673AC36BA6E7A32576F7B1B249E46BBC225BE9071D7", - 8), - EcRecommendedParameters(ASN1::cryptoppM511(), - "7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45", - "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081806", - "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001", - "04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000052fbdc0ad8530803d28fdbad354bb488d32399ac1cf8f6e01ee3f96389b90c809422b9429e8a43dbf49308ac4455940abe9f1dbca542093a895e30a64af056fa5", - "100000000000000000000000000000000000000000000000000000000000000017B5FEFF30C7F5677AB2AEEBD13779A2AC125042A6AA10BFA54C15BAB76BAF1B", - 8), - EcRecommendedParameters(ASN1::cryptoppCurve383187(), - "7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45", - "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038251", - "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001", - "040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000051EEBE07DC1871896732B12D5504A32370471965C7A11F2C89865F855AB3CBD7C224E3620C31AF3370788457DD5CE46DF", - "1000000000000000000000000000000000000000000000000e85a85287a1488acd41ae84b2b7030446f72088b00a0e21", - 8), - EcRecommendedParameters(ASN1::ietfCurve25519(), - "7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED", - "0000000000000000000000000000000000000000000000000000000000076D06", - "0000000000000000000000000000000000000000000000000000000000000001", - "04000000000000000000000000000000000000000000000000000000000000000920AE19A1B8A086B4E01EDD2C7748D14C923D4D7E6D7C61B229E9C5A27ECED3D9", - "1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed", - 8), - EcRecommendedParameters(ASN1::ietfCurve448(), - "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", - "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000262A6", - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001", - "0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000057D235D1295F5B1F66C98AB6E58326FCECBAE5D34F55545D060F75DC28DF3F6EDB8027E2346430D211312C4B150677AF76FD7223D457B5B1A", - "3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CCA23E9C44EDB49AED63690216CC2728DC58F552378C292AB5844F3", - 4), - }; - begin = rec; - end = rec + sizeof(rec) / sizeof(rec[0]); -} - template OID DL_GroupParameters_EC::GetNextRecommendedParametersOID(const OID &oid) { const EcRecommendedParameters *begin, *end;