Botan  1.11.15
Public Member Functions
Botan::TLS::Certificate Class Reference

#include <tls_messages.h>

Inheritance diagram for Botan::TLS::Certificate:
Botan::TLS::Handshake_Message

List of all members.

Public Member Functions

const std::vector
< X509_Certificate > & 
cert_chain () const
 Certificate (Handshake_IO &io, Handshake_Hash &hash, const std::vector< X509_Certificate > &certs)
 Certificate (const std::vector< byte > &buf)
size_t count () const
bool empty () const
Handshake_Type type () const override

Detailed Description

Certificate Message

Definition at line 353 of file tls_messages.h.


Constructor & Destructor Documentation

Botan::TLS::Certificate::Certificate ( Handshake_IO io,
Handshake_Hash hash,
const std::vector< X509_Certificate > &  cert_list 
)

Create a new Certificate message

Definition at line 23 of file msg_certificate.cpp.

References Botan::TLS::Handshake_IO::send(), and Botan::TLS::Handshake_Hash::update().

                                                                       :
   m_certs(cert_list)
   {
   hash.update(io.send(*this));
   }
Botan::TLS::Certificate::Certificate ( const std::vector< byte > &  buf)

Deserialize a Certificate message

Definition at line 34 of file msg_certificate.cpp.

References Botan::make_u32bit().

   {
   if(buf.size() < 3)
      throw Decoding_Error("Certificate: Message malformed");

   const size_t total_size = make_u32bit(0, buf[0], buf[1], buf[2]);

   if(total_size != buf.size() - 3)
      throw Decoding_Error("Certificate: Message malformed");

   const byte* certs = &buf[3];

   while(size_t remaining_bytes = &buf[buf.size()] - certs)
      {
      if(remaining_bytes < 3)
         throw Decoding_Error("Certificate: Message malformed");

      const size_t cert_size = make_u32bit(0, certs[0], certs[1], certs[2]);

      if(remaining_bytes < (3 + cert_size))
         throw Decoding_Error("Certificate: Message malformed");

      DataSource_Memory cert_buf(&certs[3], cert_size);
      m_certs.push_back(X509_Certificate(cert_buf));

      certs += cert_size + 3;
      }
   }

Member Function Documentation

const std::vector<X509_Certificate>& Botan::TLS::Certificate::cert_chain ( ) const [inline]

Definition at line 357 of file tls_messages.h.

{ return m_certs; }
size_t Botan::TLS::Certificate::count ( ) const [inline]

Definition at line 359 of file tls_messages.h.

{ return m_certs.size(); }
bool Botan::TLS::Certificate::empty ( ) const [inline]

Definition at line 360 of file tls_messages.h.

{ return m_certs.empty(); }
Handshake_Type Botan::TLS::Certificate::type ( ) const [inline, override, virtual]

Implements Botan::TLS::Handshake_Message.

Definition at line 356 of file tls_messages.h.

References Botan::TLS::CERTIFICATE.

{ return CERTIFICATE; }

The documentation for this class was generated from the following files: