diff options
author | weidai <weidai@57ff6487-cd31-0410-9ec3-f628ee90f5f0> | 2005-09-05 21:43:43 +0000 |
---|---|---|
committer | weidai <weidai@57ff6487-cd31-0410-9ec3-f628ee90f5f0> | 2005-09-05 21:43:43 +0000 |
commit | 4e37f436f4425ce1c428f93bedd81bfdc4dc23f7 (patch) | |
tree | 7c9380467a43a9fd9b4095024796ccabfdce1280 /eccrypto.h | |
parent | 25699d1dcc22ac8aaa36d285e02959962e1b502c (diff) | |
download | cryptopp-4e37f436f4425ce1c428f93bedd81bfdc4dc23f7.tar.gz |
port to GCC 4
git-svn-id: svn://svn.code.sf.net/p/cryptopp/code/trunk/c5@211 57ff6487-cd31-0410-9ec3-f628ee90f5f0
Diffstat (limited to 'eccrypto.h')
-rw-r--r-- | eccrypto.h | 52 |
1 files changed, 28 insertions, 24 deletions
@@ -93,7 +93,7 @@ public: Integer GetMaxExponent() const {return GetSubgroupOrder()-1;} bool IsIdentity(const Element &element) const {return element.identity;} void SimultaneousExponentiate(Element *results, const Element &base, const Integer *exponents, unsigned int exponentsCount) const; - static std::string StaticAlgorithmNamePrefix() {return "EC";} + static std::string CRYPTOPP_API StaticAlgorithmNamePrefix() {return "EC";} // ASN1Key OID GetAlgorithmID() const; @@ -105,7 +105,7 @@ public: // non-inherited // enumerate OIDs for recommended parameters, use OID() to get first one - static OID GetNextRecommendedParametersOID(const OID &oid); + static OID CRYPTOPP_API GetNextRecommendedParametersOID(const OID &oid); void BERDecode(BufferedTransformation &bt); void DEREncode(BufferedTransformation &bt) const; @@ -137,11 +137,6 @@ protected: mutable Integer m_k; // cofactor }; -CRYPTOPP_DLL_TEMPLATE_CLASS DL_GroupParameters_EC<ECP>; -CRYPTOPP_DLL_TEMPLATE_CLASS DL_GroupParameters_EC<EC2N>; -CRYPTOPP_DLL_TEMPLATE_CLASS DL_PublicKeyImpl<DL_GroupParameters_EC<ECP> >; -CRYPTOPP_DLL_TEMPLATE_CLASS DL_PublicKeyImpl<DL_GroupParameters_EC<EC2N> >; - //! EC public key template <class EC> class DL_PublicKey_EC : public DL_PublicKeyImpl<DL_GroupParameters_EC<EC> > @@ -159,11 +154,6 @@ public: void DEREncodeKey(BufferedTransformation &bt) const; }; -CRYPTOPP_DLL_TEMPLATE_CLASS DL_PublicKey_EC<ECP>; -CRYPTOPP_DLL_TEMPLATE_CLASS DL_PublicKey_EC<EC2N>; -CRYPTOPP_DLL_TEMPLATE_CLASS DL_PrivateKeyImpl<DL_GroupParameters_EC<ECP> >; -CRYPTOPP_DLL_TEMPLATE_CLASS DL_PrivateKeyImpl<DL_GroupParameters_EC<EC2N> >; - //! EC private key template <class EC> class DL_PrivateKey_EC : public DL_PrivateKeyImpl<DL_GroupParameters_EC<EC> > @@ -185,9 +175,6 @@ public: void DEREncodeKey(BufferedTransformation &bt) const; }; -CRYPTOPP_DLL_TEMPLATE_CLASS DL_PrivateKey_EC<ECP>; -CRYPTOPP_DLL_TEMPLATE_CLASS DL_PrivateKey_EC<EC2N>; - //! Elliptic Curve Diffie-Hellman, AKA <a href="http://www.weidai.com/scan-mirror/ka.html#ECDH">ECDH</a> template <class EC, class COFACTOR_OPTION = CPP_TYPENAME DL_GroupParameters_EC<EC>::DefaultCofactorOption> struct ECDH @@ -221,15 +208,12 @@ struct DL_Keys_ECDSA typedef DL_PrivateKey_WithSignaturePairwiseConsistencyTest<DL_PrivateKey_EC<EC>, ECDSA<EC> > PrivateKey; }; -CRYPTOPP_DLL_TEMPLATE_CLASS DL_Algorithm_GDSA<ECP::Point>; -CRYPTOPP_DLL_TEMPLATE_CLASS DL_Algorithm_GDSA<EC2N::Point>; - //! ECDSA algorithm template <class EC> class DL_Algorithm_ECDSA : public DL_Algorithm_GDSA<typename EC::Point> { public: - static const char * StaticAlgorithmName() {return "ECDSA";} + static const char * CRYPTOPP_API StaticAlgorithmName() {return "ECDSA";} }; //! ECNR algorithm @@ -237,7 +221,7 @@ template <class EC> class DL_Algorithm_ECNR : public DL_Algorithm_NR<typename EC::Point> { public: - static const char * StaticAlgorithmName() {return "ECNR";} + static const char * CRYPTOPP_API StaticAlgorithmName() {return "ECNR";} }; //! <a href="http://www.weidai.com/scan-mirror/sig.html#ECDSA">ECDSA</a> @@ -246,9 +230,6 @@ struct ECDSA : public DL_SS<DL_Keys_ECDSA<EC>, DL_Algorithm_ECDSA<EC>, DL_Signat { }; -CRYPTOPP_DLL_TEMPLATE_CLASS DL_PrivateKey_WithSignaturePairwiseConsistencyTest<DL_PrivateKey_EC<ECP>, ECDSA<ECP> >; -CRYPTOPP_DLL_TEMPLATE_CLASS DL_PrivateKey_WithSignaturePairwiseConsistencyTest<DL_PrivateKey_EC<EC2N>, ECDSA<EC2N> >; - //! ECNR template <class EC, class H = SHA> struct ECNR : public DL_SS<DL_Keys_EC<EC>, DL_Algorithm_ECNR<EC>, DL_SignatureMessageEncodingMethod_NR, H> @@ -268,9 +249,32 @@ struct ECIES DL_EncryptionAlgorithm_Xor<HMAC<SHA1>, DHAES_MODE>, ECIES<EC> > { - static std::string StaticAlgorithmName() {return "ECIES";} // TODO: fix this after name is standardized + static std::string CRYPTOPP_API StaticAlgorithmName() {return "ECIES";} // TODO: fix this after name is standardized }; NAMESPACE_END +#ifdef CRYPTOPP_MANUALLY_INSTANTIATE_TEMPLATES +#include "eccrypto.cpp" +#endif + +NAMESPACE_BEGIN(CryptoPP) + +CRYPTOPP_DLL_TEMPLATE_CLASS DL_GroupParameters_EC<ECP>; +CRYPTOPP_DLL_TEMPLATE_CLASS DL_GroupParameters_EC<EC2N>; +CRYPTOPP_DLL_TEMPLATE_CLASS DL_PublicKeyImpl<DL_GroupParameters_EC<ECP> >; +CRYPTOPP_DLL_TEMPLATE_CLASS DL_PublicKeyImpl<DL_GroupParameters_EC<EC2N> >; +CRYPTOPP_DLL_TEMPLATE_CLASS DL_PublicKey_EC<ECP>; +CRYPTOPP_DLL_TEMPLATE_CLASS DL_PublicKey_EC<EC2N>; +CRYPTOPP_DLL_TEMPLATE_CLASS DL_PrivateKeyImpl<DL_GroupParameters_EC<ECP> >; +CRYPTOPP_DLL_TEMPLATE_CLASS DL_PrivateKeyImpl<DL_GroupParameters_EC<EC2N> >; +CRYPTOPP_DLL_TEMPLATE_CLASS DL_PrivateKey_EC<ECP>; +CRYPTOPP_DLL_TEMPLATE_CLASS DL_PrivateKey_EC<EC2N>; +CRYPTOPP_DLL_TEMPLATE_CLASS DL_Algorithm_GDSA<ECP::Point>; +CRYPTOPP_DLL_TEMPLATE_CLASS DL_Algorithm_GDSA<EC2N::Point>; +CRYPTOPP_DLL_TEMPLATE_CLASS DL_PrivateKey_WithSignaturePairwiseConsistencyTest<DL_PrivateKey_EC<ECP>, ECDSA<ECP> >; +CRYPTOPP_DLL_TEMPLATE_CLASS DL_PrivateKey_WithSignaturePairwiseConsistencyTest<DL_PrivateKey_EC<EC2N>, ECDSA<EC2N> >; + +NAMESPACE_END + #endif |