9#include <botan/pkix_types.h>
10#include <botan/pk_keys.h>
17 std::vector<std::string> str;
20 return "no_constraints";
23 str.push_back(
"digital_signature");
26 str.push_back(
"non_repudiation");
29 str.push_back(
"key_encipherment");
32 str.push_back(
"data_encipherment");
35 str.push_back(
"key_agreement");
38 str.push_back(
"key_cert_sign");
41 str.push_back(
"crl_sign");
44 str.push_back(
"encipher_only");
47 str.push_back(
"decipher_only");
51 return "other_unknown_constraints";
57 for(
size_t i = 0; i < str.size() - 1; ++i)
62 out += str[str.size() - 1];
77 const bool can_agree = (
name ==
"DH" ||
name ==
"ECDH");
78 const bool can_encrypt = (
name ==
"RSA" ||
name ==
"ElGamal");
82 name ==
"ECDSA" ||
name ==
"ECGDSA" ||
name ==
"ECKCDSA" ||
name ==
"Ed25519" ||
83 name ==
"GOST-34.10" ||
name ==
"GOST-34.10-2012-256" ||
name ==
"GOST-34.10-2012-512");
virtual std::string algo_name() const =0
void verify_cert_constraints_valid_for_key_type(const Public_Key &pub_key, Key_Constraints constraints)
std::string key_constraints_to_string(Key_Constraints constraints)