9 #include <botan/key_constraint.h>
10 #include <botan/x509_key.h>
16 std::vector<std::string> str;
19 return "no_constraints";
22 str.push_back(
"digital_signature");
25 str.push_back(
"non_repudiation");
28 str.push_back(
"key_encipherment");
31 str.push_back(
"data_encipherment");
34 str.push_back(
"key_agreement");
37 str.push_back(
"key_cert_sign");
40 str.push_back(
"crl_sign");
43 str.push_back(
"encipher_only");
46 str.push_back(
"decipher_only");
50 return "other_unknown_constraints";
56 for(
size_t i = 0; i < str.size() - 1; ++i)
61 out += str[str.size() - 1];
72 const std::string name = pub_key.
algo_name();
76 if(name ==
"DH" || name ==
"ECDH")
81 if(name ==
"RSA" || name ==
"ElGamal")
86 if(name ==
"RSA" || name ==
"DSA" || name ==
"ECDSA" || name ==
"ECGDSA" || name ==
"ECKCDSA" || name ==
"GOST-34.10")
91 if((constraints & permitted) != constraints)
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)