Botan
1.11.15
|
#include <eac_asn_obj.h>
Public Member Functions | |
ASN1_EAC_String (const std::string &str, ASN1_Tag the_tag) | |
void | decode_from (class BER_Decoder &) |
void | encode_into (class DER_Encoder &) const |
std::string | iso_8859 () const |
ASN1_Tag | tagging () const |
std::string | value () const |
virtual | ~ASN1_EAC_String () |
Protected Member Functions | |
bool | sanity_check () const |
Base class for car/chr of cv certificates.
Definition at line 166 of file eac_asn_obj.h.
Botan::ASN1_EAC_String::ASN1_EAC_String | ( | const std::string & | str, |
ASN1_Tag | the_tag | ||
) |
Definition at line 22 of file asn1_eac_str.cpp.
References Botan::LATIN1_CHARSET, Botan::LOCAL_CHARSET, sanity_check(), and Botan::Charset::transcode().
Referenced by decode_from().
: tag(t) { iso_8859_str = Charset::transcode(str, LOCAL_CHARSET, LATIN1_CHARSET); if(!sanity_check()) throw Invalid_Argument("ASN1_EAC_String contains illegal characters"); }
virtual Botan::ASN1_EAC_String::~ASN1_EAC_String | ( | ) | [inline, virtual] |
Definition at line 187 of file eac_asn_obj.h.
{}
void Botan::ASN1_EAC_String::decode_from | ( | class BER_Decoder & | from | ) | [virtual] |
Decode whatever this object is from from
from | the BER_Decoder that will be read from |
Implements Botan::ASN1_Object.
Definition at line 66 of file asn1_eac_str.cpp.
References ASN1_EAC_String(), Botan::BER_Decoder::get_next_object(), Botan::LATIN1_CHARSET, Botan::LOCAL_CHARSET, Botan::ASN1::to_string(), Botan::Charset::transcode(), and Botan::BER_Object::type_tag.
{ BER_Object obj = source.get_next_object(); if(obj.type_tag != this->tag) { std::stringstream ss; ss << "ASN1_EAC_String tag mismatch, tag was " << std::hex << obj.type_tag << " expected " << std::hex << this->tag; throw Decoding_Error(ss.str()); } Character_Set charset_is; charset_is = LATIN1_CHARSET; try { *this = ASN1_EAC_String( Charset::transcode(ASN1::to_string(obj), charset_is, LOCAL_CHARSET), obj.type_tag); } catch(Invalid_Argument& inv_arg) { throw Decoding_Error(std::string("ASN1_EAC_String decoding failed: ") + inv_arg.what()); } }
void Botan::ASN1_EAC_String::encode_into | ( | class DER_Encoder & | to | ) | const [virtual] |
Encode whatever this object is into to
to | the DER_Encoder that will be written to |
Implements Botan::ASN1_Object.
Definition at line 57 of file asn1_eac_str.cpp.
References Botan::DER_Encoder::add_object(), Botan::APPLICATION, iso_8859(), tagging(), and value().
{ std::string value = iso_8859(); encoder.add_object(tagging(), APPLICATION, value); }
std::string Botan::ASN1_EAC_String::iso_8859 | ( | ) | const |
Get this objects string value.
Definition at line 33 of file asn1_eac_str.cpp.
Referenced by encode_into(), Botan::operator==(), and Botan::DE_EAC::sign_request().
{
return iso_8859_str;
}
bool Botan::ASN1_EAC_String::sanity_check | ( | ) | const [protected] |
Definition at line 100 of file asn1_eac_str.cpp.
Referenced by ASN1_EAC_String().
ASN1_Tag Botan::ASN1_EAC_String::tagging | ( | ) | const |
std::string Botan::ASN1_EAC_String::value | ( | ) | const |
Get this objects string value.
Definition at line 41 of file asn1_eac_str.cpp.
References Botan::LATIN1_CHARSET, Botan::LOCAL_CHARSET, and Botan::Charset::transcode().
Referenced by Botan::CVC_EAC::create_self_signed_cert(), encode_into(), and Botan::DE_EAC::sign_request().
{ return Charset::transcode(iso_8859_str, LATIN1_CHARSET, LOCAL_CHARSET); }