8#include <botan/internal/core_engine.h>
10#if defined(BOTAN_HAS_RSA)
11 #include <botan/rsa.h>
14#if defined(BOTAN_HAS_RW)
18#if defined(BOTAN_HAS_DSA)
19 #include <botan/dsa.h>
22#if defined(BOTAN_HAS_ECDSA)
23 #include <botan/ecdsa.h>
26#if defined(BOTAN_HAS_ELGAMAL)
27 #include <botan/elgamal.h>
30#if defined(BOTAN_HAS_GOST_34_10_2001)
31 #include <botan/gost_3410.h>
34#if defined(BOTAN_HAS_NYBERG_RUEPPEL)
38#if defined(BOTAN_HAS_DIFFIE_HELLMAN)
42#if defined(BOTAN_HAS_ECDH)
43 #include <botan/ecdh.h>
51#if defined(BOTAN_HAS_RSA)
56#if defined(BOTAN_HAS_ELGAMAL)
67#if defined(BOTAN_HAS_RSA)
72#if defined(BOTAN_HAS_ELGAMAL)
83#if defined(BOTAN_HAS_DIFFIE_HELLMAN)
88#if defined(BOTAN_HAS_ECDH)
99#if defined(BOTAN_HAS_RSA)
104#if defined(BOTAN_HAS_RW)
109#if defined(BOTAN_HAS_DSA)
114#if defined(BOTAN_HAS_ECDSA)
119#if defined(BOTAN_HAS_GOST_34_10_2001)
120 if(
const GOST_3410_PrivateKey* s =
121 dynamic_cast<const GOST_3410_PrivateKey*
>(&key))
122 return new GOST_3410_Signature_Operation(*s);
125#if defined(BOTAN_HAS_NYBERG_RUEPPEL)
136#if defined(BOTAN_HAS_RSA)
141#if defined(BOTAN_HAS_RW)
146#if defined(BOTAN_HAS_DSA)
151#if defined(BOTAN_HAS_ECDSA)
156#if defined(BOTAN_HAS_GOST_34_10_2001)
157 if(
const GOST_3410_PublicKey* s =
158 dynamic_cast<const GOST_3410_PublicKey*
>(&key))
159 return new GOST_3410_Verification_Operation(*s);
162#if defined(BOTAN_HAS_NYBERG_RUEPPEL)
PK_Ops::Signature * get_signature_op(const Private_Key &key) const
PK_Ops::Key_Agreement * get_key_agreement_op(const Private_Key &key) const
PK_Ops::Encryption * get_encryption_op(const Public_Key &key) const
PK_Ops::Decryption * get_decryption_op(const Private_Key &key) const
PK_Ops::Verification * get_verify_op(const Public_Key &key) const
DH_KA_Operation(const DH_PrivateKey &key)
DSA_Signature_Operation(const DSA_PrivateKey &dsa)
DSA_Verification_Operation(const DSA_PublicKey &dsa)
ECDH_KA_Operation(const ECDH_PrivateKey &key)
ECDSA_Signature_Operation(const ECDSA_PrivateKey &ecdsa)
ECDSA_Verification_Operation(const ECDSA_PublicKey &ecdsa)
ElGamal_Decryption_Operation(const ElGamal_PrivateKey &key)
ElGamal_Encryption_Operation(const ElGamal_PublicKey &key)
NR_Signature_Operation(const NR_PrivateKey &nr)
NR_Verification_Operation(const NR_PublicKey &nr)
RSA_Private_Operation(const RSA_PrivateKey &rsa)
RSA_Public_Operation(const RSA_PublicKey &rsa)
RW_Signature_Operation(const RW_PrivateKey &rw)
RW_Verification_Operation(const RW_PublicKey &rw)