2 // Test that binfos aren't erroneously shared between instantiations.
7 class PK_Encryptor : public virtual PK_CryptoSystem
10 class PK_FixedLengthCryptoSystem : public virtual PK_CryptoSystem
13 virtual unsigned int CipherTextLength() const =0;
15 class PK_FixedLengthEncryptor : public virtual PK_Encryptor, public virtual PK_FixedLengthCryptoSystem
18 class PK_SignatureSystem
21 virtual ~PK_SignatureSystem() {};
23 class PK_Signer : public virtual PK_SignatureSystem
26 virtual void Sign() = 0;
28 class PK_Verifier : public virtual PK_SignatureSystem
31 class PK_Precomputation
34 template <class T> class
35 PK_WithPrecomputation : public T, public virtual PK_Precomputation
38 typedef PK_WithPrecomputation<PK_FixedLengthEncryptor> PKWPFLE;
39 typedef PK_WithPrecomputation<PK_Signer> PKWPS;
40 template <class EC> class
41 ECPublicKey : public PKWPFLE
44 unsigned int CipherTextLength() const { return 1; }
48 class ECPrivateKey : public ECPublicKey<EC>, public PKWPS
54 class ECKEP : public ECPrivateKey<EC>
57 class GF2NT : public PK_CryptoSystem
61 class EC2N : public PK_CryptoSystem
66 template class ECKEP<EC2N>;
67 template class ECKEP<int>;