Botan  2.1.0
Crypto and TLS for C++11
asn1_alt_name.h
Go to the documentation of this file.
1 /*
2 * Common ASN.1 Objects
3 * (C) 1999-2007 Jack Lloyd
4 * 2007 Yves Jerschow
5 *
6 * Botan is released under the Simplified BSD License (see license.txt)
7 */
8 
9 #ifndef BOTAN_ASN1_ALT_NAME_H__
10 #define BOTAN_ASN1_ALT_NAME_H__
11 
12 #include <botan/asn1_obj.h>
13 #include <botan/asn1_str.h>
14 #include <botan/asn1_oid.h>
15 #include <map>
16 
17 namespace Botan {
18 
19 /**
20 * Alternative Name
21 */
22 class BOTAN_DLL AlternativeName final : public ASN1_Object
23  {
24  public:
25  void encode_into(class DER_Encoder&) const override;
26  void decode_from(class BER_Decoder&) override;
27 
28  std::multimap<std::string, std::string> contents() const;
29 
30  void add_attribute(const std::string&, const std::string&);
31  std::multimap<std::string, std::string> get_attributes() const;
32 
33  void add_othername(const OID&, const std::string&, ASN1_Tag);
34  std::multimap<OID, ASN1_String> get_othernames() const;
35 
36  bool has_items() const;
37 
38  AlternativeName(const std::string& = "", const std::string& = "",
39  const std::string& = "", const std::string& = "");
40  private:
41  std::multimap<std::string, std::string> m_alt_info;
42  std::multimap<OID, ASN1_String> m_othernames;
43  };
44 
45 }
46 
47 #endif
ASN1_Tag
Definition: asn1_obj.h:22
Definition: alg_id.cpp:13