9 #ifndef BOTAN_X509_DN_H_
10 #define BOTAN_X509_DN_H_
12 #include <botan/asn1_obj.h>
13 #include <botan/asn1_oid.h>
14 #include <botan/asn1_str.h>
29 explicit X509_DN(
const std::multimap<OID, std::string>& args)
32 add_attribute(i.first, i.second);
35 explicit X509_DN(
const std::multimap<std::string, std::string>& args)
38 add_attribute(i.first, i.second);
41 void encode_into(
class DER_Encoder&)
const override;
44 bool has_field(
const OID& oid)
const;
50 const std::vector<uint8_t>&
get_bits()
const {
return m_dn_bits; }
52 bool empty()
const {
return m_rdn.empty(); }
56 const std::vector<std::pair<OID,ASN1_String>>&
dn_info()
const {
return m_rdn; }
58 std::multimap<OID, std::string> get_attributes()
const;
59 std::multimap<std::string, std::string> contents()
const;
61 bool has_field(
const std::string& attr)
const;
62 std::vector<std::string> get_attribute(
const std::string& attr)
const;
63 std::string get_first_attribute(
const std::string& attr)
const;
65 void add_attribute(
const std::string& key,
const std::string& val);
74 static std::string deref_info_field(
const std::string& key);
83 static size_t lookup_ub(
const OID& oid);
86 std::vector<std::pair<OID,ASN1_String>> m_rdn;
87 std::vector<uint8_t> m_dn_bits;
90 bool BOTAN_PUBLIC_API(2,0) operator==(const X509_DN& dn1, const X509_DN& dn2);
91 bool BOTAN_PUBLIC_API(2,0) operator!=(const X509_DN& dn1, const X509_DN& dn2);
97 bool BOTAN_PUBLIC_API(2,0) operator<(const X509_DN& dn1, const X509_DN& dn2);
99 BOTAN_PUBLIC_API(2,0)
std::ostream& operator<<(
std::ostream& out, const X509_DN& dn);
100 BOTAN_PUBLIC_API(2,0)
std::istream& operator>>(
std::istream& in, X509_DN& dn);
int(* final)(unsigned char *, CTX *)
#define BOTAN_PUBLIC_API(maj, min)
std::string to_string(ErrorType type)
Convert an ErrorType to string.
X509_DN(const std::multimap< std::string, std::string > &args)
const std::vector< uint8_t > & get_bits() const
const std::vector< std::pair< OID, ASN1_String > > & dn_info() const
X509_DN(const std::multimap< OID, std::string > &args)
void add_attribute(const OID &oid, const std::string &val)