Lines 1-6
Link Here
|
1 |
// dll.cpp - written and placed in the public domain by Wei Dai |
1 |
// dll.cpp - written and placed in the public domain by Wei Dai |
2 |
|
2 |
|
3 |
#define CRYPTOPP_MANUALLY_INSTANTIATE_TEMPLATES |
3 |
#if defined( __GNUC__ ) && __GNUC__ > 3 |
|
|
4 |
# undef CRYPTOPP_MANUALLY_INSTANTIATE_TEMPLATES |
5 |
#else |
6 |
# define CRYPTOPP_MANUALLY_INSTANTIATE_TEMPLATES |
7 |
#endif |
4 |
#define CRYPTOPP_DEFAULT_NO_DLL |
8 |
#define CRYPTOPP_DEFAULT_NO_DLL |
5 |
|
9 |
|
6 |
#include "dll.h" |
10 |
#include "dll.h" |
Lines 36-41
Link Here
|
36 |
CRYPTOPP_DLL_TEMPLATE_CLASS AdditiveCipherTemplate<AbstractPolicyHolder<AdditiveCipherAbstractPolicy, CTR_ModePolicy> >; |
40 |
CRYPTOPP_DLL_TEMPLATE_CLASS AdditiveCipherTemplate<AbstractPolicyHolder<AdditiveCipherAbstractPolicy, CTR_ModePolicy> >; |
37 |
CRYPTOPP_DLL_TEMPLATE_CLASS AbstractEuclideanDomain<Integer>; |
41 |
CRYPTOPP_DLL_TEMPLATE_CLASS AbstractEuclideanDomain<Integer>; |
38 |
#endif |
42 |
#endif |
|
|
43 |
|
44 |
#if defined(__GNUC__) && __GNUC__ > 3 |
45 |
template class CRYPTOPP_DLL AbstractEuclideanDomain<Integer>; |
46 |
template class CRYPTOPP_DLL AbstractEuclideanDomain<PolynomialMod2>; |
47 |
template class CRYPTOPP_DLL AbstractGroup<Integer>; |
48 |
template class CRYPTOPP_DLL AbstractGroup<EC2NPoint>; |
49 |
template class CRYPTOPP_DLL AbstractGroup<ECPPoint>; |
50 |
template class CRYPTOPP_DLL AbstractGroup<PolynomialMod2>; |
51 |
template class CRYPTOPP_DLL AbstractPolicyHolder<AdditiveCipherAbstractPolicy, TwoBases<SimpleKeyedTransformation<StreamTransformation>, RandomNumberGenerator> >; |
52 |
template class CRYPTOPP_DLL AbstractRing<Integer>; |
53 |
template class CRYPTOPP_DLL AbstractRing<PolynomialMod2>; |
54 |
template class CRYPTOPP_DLL AdditiveCipherTemplate<>; |
55 |
template class CRYPTOPP_DLL AdditiveCipherTemplate<AbstractPolicyHolder<AdditiveCipherAbstractPolicy, CTR_ModePolicy> >; |
56 |
template class CRYPTOPP_DLL AdditiveCipherTemplate<AbstractPolicyHolder<AdditiveCipherAbstractPolicy, OFB_ModePolicy> >; |
57 |
template class CRYPTOPP_DLL AllocatorWithCleanup<byte>; |
58 |
template class CRYPTOPP_DLL AllocatorWithCleanup<word16>; |
59 |
template class CRYPTOPP_DLL AllocatorWithCleanup<word32>; |
60 |
template class CRYPTOPP_DLL AutoSeededX917RNG<DES_EDE3>; |
61 |
template class CRYPTOPP_DLL CFB_CipherTemplate<AbstractPolicyHolder<CFB_CipherAbstractPolicy, CFB_ModePolicy> >; |
62 |
template class CRYPTOPP_DLL CFB_CipherTemplate<AbstractPolicyHolder<CFB_CipherAbstractPolicy, SymmetricCipher> >; |
63 |
template class CRYPTOPP_DLL CFB_DecryptionTemplate<>; |
64 |
template class CRYPTOPP_DLL CFB_DecryptionTemplate<AbstractPolicyHolder<CFB_CipherAbstractPolicy, CFB_ModePolicy> >; |
65 |
template class CRYPTOPP_DLL CFB_EncryptionTemplate<>; |
66 |
template class CRYPTOPP_DLL CFB_EncryptionTemplate<AbstractPolicyHolder<CFB_CipherAbstractPolicy, CFB_ModePolicy> >; |
67 |
template class CRYPTOPP_DLL CipherModeFinalTemplate_ExternalCipher<CBC_CTS_Decryption>; |
68 |
template class CRYPTOPP_DLL CipherModeFinalTemplate_ExternalCipher<CBC_CTS_Encryption>; |
69 |
template class CRYPTOPP_DLL CipherModeFinalTemplate_ExternalCipher<CBC_Decryption>; |
70 |
template class CRYPTOPP_DLL CipherModeFinalTemplate_ExternalCipher<CBC_Encryption>; |
71 |
template class CRYPTOPP_DLL CipherModeFinalTemplate_ExternalCipher<ECB_OneWay>; |
72 |
template class CRYPTOPP_DLL DH_Domain<DL_GroupParameters_GFP_DefaultSafePrime>; |
73 |
template class CRYPTOPP_DLL DL_Algorithm_GDSA<EC2N::Point>; |
74 |
template class CRYPTOPP_DLL DL_Algorithm_GDSA<ECP::Point>; |
75 |
template class CRYPTOPP_DLL DL_Algorithm_GDSA<Integer>; |
76 |
template class CRYPTOPP_DLL DL_FixedBasePrecomputationImpl<EC2N::Point>; |
77 |
template class CRYPTOPP_DLL DL_FixedBasePrecomputationImpl<ECPPoint>; |
78 |
template class CRYPTOPP_DLL DL_FixedBasePrecomputationImpl<Integer>; |
79 |
template class CRYPTOPP_DLL DL_GroupParameters<Integer>; |
80 |
template class CRYPTOPP_DLL DL_GroupParameters_EC<EC2N>; |
81 |
template class CRYPTOPP_DLL DL_GroupParameters_EC<ECP>; |
82 |
template class CRYPTOPP_DLL DL_GroupParameters_IntegerBasedImpl<ModExpPrecomputation>; |
83 |
template class CRYPTOPP_DLL DL_GroupPrecomputation<EC2N::Point>; |
84 |
template class CRYPTOPP_DLL DL_GroupPrecomputation<ECPPoint>; |
85 |
template class CRYPTOPP_DLL DL_PrivateKeyImpl<DL_GroupParameters_EC<EC2N> >; |
86 |
template class CRYPTOPP_DLL DL_PrivateKeyImpl<DL_GroupParameters_EC<ECP> >; |
87 |
template class CRYPTOPP_DLL DL_PrivateKey_EC<EC2N>; |
88 |
template class CRYPTOPP_DLL DL_PrivateKey_EC<ECP>; |
89 |
template class CRYPTOPP_DLL DL_PrivateKey_GFP<DL_GroupParameters_DSA>; |
90 |
template class CRYPTOPP_DLL DL_PrivateKey_WithSignaturePairwiseConsistencyTest<DL_PrivateKey_EC<EC2N>, ECDSA<EC2N> >; |
91 |
template class CRYPTOPP_DLL DL_PrivateKey_WithSignaturePairwiseConsistencyTest<DL_PrivateKey_EC<ECP>, ECDSA<ECP> >; |
92 |
template class CRYPTOPP_DLL DL_PrivateKey_WithSignaturePairwiseConsistencyTest<DL_PrivateKey_GFP<DL_GroupParameters_DSA>, DSA>; |
93 |
template class CRYPTOPP_DLL DL_PublicKeyImpl<DL_GroupParameters_EC<EC2N> >; |
94 |
template class CRYPTOPP_DLL DL_PublicKeyImpl<DL_GroupParameters_EC<ECP> >; |
95 |
template class CRYPTOPP_DLL DL_PublicKey_EC<EC2N>; |
96 |
template class CRYPTOPP_DLL DL_PublicKey_EC<ECP>; |
97 |
template class CRYPTOPP_DLL DL_PublicKey_GFP<DL_GroupParameters_DSA>; |
98 |
template class CRYPTOPP_DLL EuclideanDomainOf<PolynomialMod2>; |
99 |
template class CRYPTOPP_DLL IteratedHashBase<word32, HashTransformation>; |
100 |
template class CRYPTOPP_DLL IteratedHashBase<word32, MessageAuthenticationCode>; |
101 |
#ifdef WORD64_AVAILABLE |
102 |
template class CRYPTOPP_DLL IteratedHashBase<word64, HashTransformation>; |
103 |
template class CRYPTOPP_DLL IteratedHashBase<word64, MessageAuthenticationCode>; |
104 |
#endif |
105 |
template class CRYPTOPP_DLL OAEP<SHA>; |
106 |
#ifdef CRYPTOPP_IS_DLL |
107 |
template class CRYPTOPP_DLL PKCS_DigestDecoration<SHA>; |
108 |
#endif |
109 |
template class CRYPTOPP_DLL QuotientRing<EuclideanDomainOf<PolynomialMod2> >; |
110 |
template class CRYPTOPP_DLL SimpleKeyedTransformation<BlockTransformation>; |
111 |
template class CRYPTOPP_DLL SimpleKeyedTransformation<HashTransformation>; |
112 |
template class CRYPTOPP_DLL SimpleKeyedTransformation<StreamTransformation>; |
113 |
template class CRYPTOPP_DLL StringSinkTemplate<std::string>; |
114 |
template class CRYPTOPP_DLL TwoBases<SymmetricCipher, RandomNumberGenerator>; |
115 |
#endif // __GNUC__ > 3 |
39 |
|
116 |
|
40 |
template<> const byte PKCS_DigestDecoration<SHA>::decoration[] = {0x30,0x21,0x30,0x09,0x06,0x05,0x2B,0x0E,0x03,0x02,0x1A,0x05,0x00,0x04,0x14}; |
117 |
template<> const byte PKCS_DigestDecoration<SHA>::decoration[] = {0x30,0x21,0x30,0x09,0x06,0x05,0x2B,0x0E,0x03,0x02,0x1A,0x05,0x00,0x04,0x14}; |
41 |
template<> const unsigned int PKCS_DigestDecoration<SHA>::length = sizeof(PKCS_DigestDecoration<SHA>::decoration); |
118 |
template<> const unsigned int PKCS_DigestDecoration<SHA>::length = sizeof(PKCS_DigestDecoration<SHA>::decoration); |