Botan 2.13.0 Crypto and TLS for C++11

- Main Page
- Namespaces
- Classes
- Files

- File List
- File Members

asn1_str.h
Go to the documentation of this file.
1 /*
2 * ASN.1 string type
3 * (C) 1999-2010 Jack Lloyd
4 *
5 * Botan is released under the Simplified BSD License (see license.txt)
6 */
7
8 #ifndef BOTAN_ASN1_STRING_H_
9 #define BOTAN_ASN1_STRING_H_
10
11 #include <botan/asn1_obj.h>
12
13 namespace Botan {
14
15 /**
16 * ASN.1 string type
17 * This class normalizes all inputs to a UTF-8 std::string
18 */
19 class BOTAN_PUBLIC_API(2,0) ASN1_String final : public ASN1_Object
20 {
21 public:
22 void encode_into(class DER_Encoder&) const override;
23 void decode_from(class BER_Decoder&) override;
24
25 ASN1_Tag tagging() const { return m_tag; }
26
27 const std::string& value() const { return m_utf8_str; }
28
29 size_t size() const { return value().size(); }
30
31 bool empty() const { return m_utf8_str.empty(); }
32
33 std::string BOTAN_DEPRECATED("Use value() to get UTF-8 string instead")
34 iso_8859() const;
35
36 /**
37 * Return true iff this is a tag for a known string type we can handle.
38 * This ignores string types that are not supported, eg teletexString
39 */
40 static bool is_string_type(ASN1_Tag tag);
41
42 bool operator==(const ASN1_String& other) const
43 { return value() == other.value(); }
44
45 explicit ASN1_String(const std::string& utf8 = "");
46 ASN1_String(const std::string& utf8, ASN1_Tag tag);
47 private:
48 std::vector<uint8_t> m_data;
49 std::string m_utf8_str;
50 ASN1_Tag m_tag;
51 };
52
53 }
54
55 #endif
Botan::ASN1_String::tagging
ASN1_Tag tagging() const
Definition: asn1_str.h:25
Botan::ASN1_Object
Definition: asn1_obj.h:66
final
int(* final)(unsigned char *, CTX *)
Definition: commoncrypto_hash.cpp:28
BOTAN_PUBLIC_API
#define BOTAN_PUBLIC_API(maj, min)
Definition: compiler.h:31
Botan::ASN1_Tag
ASN1_Tag
Definition: asn1_obj.h:23
Botan::ASN1_String
Definition: asn1_str.h:19
Botan::DER_Encoder
Definition: der_enc.h:23
Botan::ASN1_String::size
size_t size() const
Definition: asn1_str.h:29
Botan
Definition: alg_id.cpp:13
Botan::ASN1_String::empty
bool empty() const
Definition: asn1_str.h:31
Botan::ASN1_String::value
const std::string & value() const
Definition: asn1_str.h:27
Botan::BER_Decoder
Definition: ber_dec.h:21