Botan  1.11.15
Functions
Botan::ASN1 Namespace Reference

Functions

bool maybe_BER (DataSource &source)
std::vector< byteput_in_sequence (const std::vector< byte > &contents)
std::string to_string (const BER_Object &obj)

Function Documentation

bool Botan::ASN1::maybe_BER ( DataSource &  src)

Heuristics tests; is this object possibly BER?

Parameters:
srca data source that will be peeked at but not modified

Definition at line 55 of file asn1_obj.cpp.

References Botan::CONSTRUCTED, Botan::DataSource::peek_byte(), and Botan::SEQUENCE.

Referenced by Botan::X509::load_key().

   {
   byte first_byte;
   if(!source.peek_byte(first_byte))
      throw Stream_IO_Error("ASN1::maybe_BER: Source was empty");

   if(first_byte == (SEQUENCE | CONSTRUCTED))
      return true;
   return false;
   }
std::vector< byte > Botan::ASN1::put_in_sequence ( const std::vector< byte > &  contents)

Definition at line 34 of file asn1_obj.cpp.

References Botan::DER_Encoder::end_cons(), Botan::DER_Encoder::get_contents_unlocked(), Botan::DER_Encoder::raw_bytes(), Botan::SEQUENCE, and Botan::DER_Encoder::start_cons().

Referenced by Botan::X509_Certificate::subject_public_key(), and Botan::X509_Object::tbs_data().

   {
   return DER_Encoder()
      .start_cons(SEQUENCE)
         .raw_bytes(contents)
      .end_cons()
   .get_contents_unlocked();
   }
std::string Botan::ASN1::to_string ( const BER_Object &  obj)

Definition at line 46 of file asn1_obj.cpp.

References Botan::BER_Object::value.

Referenced by Botan::Data_Store::add(), Botan::TLS::Stream_Handshake_IO::add_record(), Botan::TLS::Alert::Alert(), Botan::SCAN_Name::arg(), Botan::EAC_Time::as_string(), Botan::OID::as_string(), Botan::ASN1_String::ASN1_String(), Botan::BER_Object::assert_is_a(), Botan::DL_Group::BER_decode(), Botan::CCM_Mode::CCM_Mode(), Botan::CFB_Mode::CFB_Mode(), Botan::check_passhash9(), Botan::PK_Verifier::check_signature(), Botan::TLS::Client_Key_Exchange::Client_Key_Exchange(), Botan::CMAC::CMAC(), Botan::TLS::Handshake_State::confirm_transition_to(), Botan::ASN1_String::decode_from(), Botan::X509_Time::decode_from(), Botan::AlternativeName::decode_from(), Botan::ASN1_EAC_String::decode_from(), Botan::DL_Group::DER_encode(), Botan::DL_Group::DL_Group(), Botan::EAX_Mode::EAX_Mode(), Botan::Blowfish::eks_key_schedule(), Botan::GCM_Mode::GCM_Mode(), Botan::generate_dsa_primes(), Botan::generate_passhash9(), Botan::gf2m_small_m::Gf2m_Field::Gf2m_Field(), Botan::TLS::Heartbeat_Support_Indicator::Heartbeat_Support_Indicator(), Botan::HTTP::http_sync(), Botan::ipv4_to_string(), Botan::Keccak_1600::Keccak_1600(), Botan::make_compressor(), Botan::TLS::Maximum_Fragment_Length::Maximum_Fragment_Length(), Botan::Tiger::name(), Botan::SipHash::name(), Botan::CFB_Mode::name(), Botan::RC5::name(), Botan::RC4::name(), Botan::SAFER_SK::name(), Botan::CCM_Mode::name(), Botan::Keccak_1600::name(), Botan::Skein_512::name(), Botan::Lion::name(), Botan::OCB_Mode::OCB_Mode(), Botan::HTTP::operator<<(), Botan::OS2ECP(), Botan::pbkdf2(), Botan::DL_Group::PEM_encode(), Botan::CMAC::poly_double(), Botan::random_prime(), Botan::random_safe_prime(), Botan::RC5::RC5(), Botan::read_cfg(), Botan::TLS::Channel::received_data(), Botan::OCSP::Response::Response(), Botan::RSA_PrivateKey::RSA_PrivateKey(), Botan::RW_PrivateKey::RW_PrivateKey(), Botan::TLS::Maximum_Fragment_Length::serialize(), Botan::TLS::Server_Key_Exchange::Server_Key_Exchange(), Botan::X509_Time::set_to(), Botan::DE_EAC::sign_request(), Botan::PK_Signer::signature(), Botan::srp6_group_identifier(), Botan::Tiger::Tiger(), Botan::Charset::transcode(), and Botan::TLS::Alert::type_string().

   {
   return std::string(reinterpret_cast<const char*>(&obj.value[0]),
                      obj.value.size());
   }