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)    52    if(
const RSA_PublicKey* s = dynamic_cast<const RSA_PublicKey*>(&key))
    56 #if defined(BOTAN_HAS_ELGAMAL)    67 #if defined(BOTAN_HAS_RSA)    68    if(
const RSA_PrivateKey* s = dynamic_cast<const RSA_PrivateKey*>(&key))
    72 #if defined(BOTAN_HAS_ELGAMAL)    83 #if defined(BOTAN_HAS_DIFFIE_HELLMAN)    84    if(
const DH_PrivateKey* dh = dynamic_cast<const DH_PrivateKey*>(&key))
    88 #if defined(BOTAN_HAS_ECDH)    89    if(
const ECDH_PrivateKey* ecdh = dynamic_cast<const ECDH_PrivateKey*>(&key))
    99 #if defined(BOTAN_HAS_RSA)   100    if(
const RSA_PrivateKey* s = dynamic_cast<const RSA_PrivateKey*>(&key))
   104 #if defined(BOTAN_HAS_RW)   105    if(
const RW_PrivateKey* s = dynamic_cast<const RW_PrivateKey*>(&key))
   109 #if defined(BOTAN_HAS_DSA)   110    if(
const DSA_PrivateKey* s = dynamic_cast<const DSA_PrivateKey*>(&key))
   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)   126    if(
const NR_PrivateKey* s = dynamic_cast<const NR_PrivateKey*>(&key))
   136 #if defined(BOTAN_HAS_RSA)   137    if(
const RSA_PublicKey* s = dynamic_cast<const RSA_PublicKey*>(&key))
   141 #if defined(BOTAN_HAS_RW)   142    if(
const RW_PublicKey* s = dynamic_cast<const RW_PublicKey*>(&key))
   146 #if defined(BOTAN_HAS_DSA)   147    if(
const DSA_PublicKey* s = dynamic_cast<const DSA_PublicKey*>(&key))
   151 #if defined(BOTAN_HAS_ECDSA)   152    if(
const ECDSA_PublicKey* s = dynamic_cast<const ECDSA_PublicKey*>(&key))
   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)   163    if(
const NR_PublicKey* s = dynamic_cast<const NR_PublicKey*>(&key))
 PK_Ops::Verification * get_verify_op(const Public_Key &key) const
PK_Ops::Decryption * get_decryption_op(const Private_Key &key) const
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