Botan  2.11.0
Crypto and TLS for C++11
asn1_attribute.cpp
Go to the documentation of this file.
1 /*
2 * Attribute
3 * (C) 1999-2007 Jack Lloyd
4 *
5 * Botan is released under the Simplified BSD License (see license.txt)
6 */
7 
8 #include <botan/asn1_attribute.h>
9 #include <botan/der_enc.h>
10 #include <botan/ber_dec.h>
11 #include <botan/oids.h>
12 
13 namespace Botan {
14 
15 /*
16 * Create an Attribute
17 */
18 Attribute::Attribute(const OID& attr_oid, const std::vector<uint8_t>& attr_value) :
19  oid(attr_oid),
20  parameters(attr_value)
21  {}
22 
23 /*
24 * Create an Attribute
25 */
26 Attribute::Attribute(const std::string& attr_oid,
27  const std::vector<uint8_t>& attr_value) :
28  oid(OIDS::lookup(attr_oid)),
29  parameters(attr_value)
30  {}
31 
32 /*
33 * DER encode a Attribute
34 */
35 void Attribute::encode_into(DER_Encoder& codec) const
36  {
37  codec.start_cons(SEQUENCE)
38  .encode(oid)
39  .start_cons(SET)
40  .raw_bytes(parameters)
41  .end_cons()
42  .end_cons();
43  }
44 
45 /*
46 * Decode a BER encoded Attribute
47 */
48 void Attribute::decode_from(BER_Decoder& codec)
49  {
50  codec.start_cons(SEQUENCE)
51  .decode(oid)
52  .start_cons(SET)
53  .raw_bytes(parameters)
54  .end_cons()
55  .end_cons();
56  }
57 
58 }
Definition: alg_id.cpp:13
CK_ATTRIBUTE Attribute
Definition: p11.h:845
std::string lookup(const OID &oid)
Definition: oids.cpp:113