8 #ifndef BOTAN_X509_DN_H__
9 #define BOTAN_X509_DN_H__
11 #include <botan/asn1_obj.h>
12 #include <botan/asn1_oid.h>
13 #include <botan/asn1_str.h>
25 void encode_into(
class DER_Encoder&)
const override;
28 std::multimap<OID, std::string> get_attributes()
const;
29 std::vector<std::string> get_attribute(
const std::string&)
const;
31 std::multimap<std::string, std::string> contents()
const;
33 void add_attribute(
const std::string&,
const std::string&);
34 void add_attribute(
const OID&,
const std::string&);
36 static std::string deref_info_field(
const std::string&);
38 std::vector<uint8_t> get_bits()
const;
40 bool empty()
const {
return m_dn_info.empty(); }
43 explicit X509_DN(
const std::multimap<OID, std::string>&);
44 explicit X509_DN(
const std::multimap<std::string, std::string>&);
46 std::multimap<OID, ASN1_String> m_dn_info;
47 std::vector<uint8_t> m_dn_bits;
50 bool BOTAN_DLL
operator==(
const X509_DN&,
const X509_DN&);
51 bool BOTAN_DLL
operator!=(
const X509_DN&,
const X509_DN&);
52 bool BOTAN_DLL
operator<(
const X509_DN&,
const X509_DN&);
54 BOTAN_DLL std::ostream&
operator<<(std::ostream& out,
const X509_DN& dn);
55 BOTAN_DLL std::istream&
operator>>(std::istream& in, X509_DN& dn);
std::istream & operator>>(std::istream &in, X509_DN &dn)
bool operator!=(const AlgorithmIdentifier &a1, const AlgorithmIdentifier &a2)
std::ostream & operator<<(std::ostream &out, const X509_DN &dn)
bool operator==(const AlgorithmIdentifier &a1, const AlgorithmIdentifier &a2)
bool operator<(const OID &a, const OID &b)