/* * PK Key Factory * (C) 1999-2010,2016 Jack Lloyd * * Botan is released under the Simplified BSD License (see license.txt) */ #ifndef BOTAN_PK_KEY_FACTORY_H__ #define BOTAN_PK_KEY_FACTORY_H__ #include #include #include namespace Botan { BOTAN_DLL std::unique_ptr load_public_key(const AlgorithmIdentifier& alg_id, const secure_vector& key_bits); BOTAN_DLL std::unique_ptr load_private_key(const AlgorithmIdentifier& alg_id, const secure_vector& key_bits, RandomNumberGenerator& rng); /** * Create a new key * For ECC keys, algo_params specifies EC group (eg, "secp256r1") * For DH/DSA/ElGamal keys, algo_params is DL group (eg, "modp/ietf/2048") * For RSA, algo_params is integer keylength * For McEliece, algo_params is n,t * If algo_params is left empty, suitable default parameters are chosen. */ BOTAN_DLL std::unique_ptr create_private_key(const std::string& algo_name, RandomNumberGenerator& rng, const std::string& algo_params = ""); } #endif