Android-cuttlefish cvd tool
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
adb::tls::TlsConnection Class Referenceabstract

#include <tls_connection.h>

Inheritance diagram for adb::tls::TlsConnection:
Inheritance graph
[legend]

Public Types

enum class  Role { Server , Client }
 
enum class  TlsError : uint8_t { Success = 0 , CertificateRejected , PeerRejectedCertificate , UnknownFailure }
 
using CertVerifyCb = std::function< int(X509_STORE_CTX *)>
 
using SetCertCb = std::function< int(SSL *)>
 

Public Member Functions

virtual ~TlsConnection ()=default
 
virtual bool AddTrustedCertificate (std::string_view cert)=0
 
virtual void SetCertVerifyCallback (CertVerifyCb cb)=0
 
virtual void SetClientCAList (STACK_OF(X509_NAME) *ca_list)=0
 
virtual void SetCertificateCallback (SetCertCb cb)=0
 
virtual std::vector< uint8_t > ExportKeyingMaterial (size_t length)=0
 
virtual void EnableClientPostHandshakeCheck (bool enable)=0
 
virtual TlsError DoHandshake ()=0
 
virtual std::vector< uint8_t > ReadFully (size_t size)=0
 
virtual bool ReadFully (void *buf, size_t size)=0
 
virtual bool WriteFully (std::string_view data)=0
 

Static Public Member Functions

static std::unique_ptr< TlsConnectionCreate (Role role, std::string_view cert, std::string_view priv_key, android::base::borrowed_fd fd)
 
static bool SetCertAndKey (SSL *ssl, std::string_view cert_chain, std::string_view priv_key)
 

Protected Member Functions

 TlsConnection ()=default
 

Member Typedef Documentation

◆ CertVerifyCb

using adb::tls::TlsConnection::CertVerifyCb = std::function<int(X509_STORE_CTX*)>

◆ SetCertCb

using adb::tls::TlsConnection::SetCertCb = std::function<int(SSL*)>

Member Enumeration Documentation

◆ Role

enum class adb::tls::TlsConnection::Role
strong
Enumerator
Server 
Client 

◆ TlsError

enum class adb::tls::TlsConnection::TlsError : uint8_t
strong
Enumerator
Success 
CertificateRejected 
PeerRejectedCertificate 
UnknownFailure 

Constructor & Destructor Documentation

◆ ~TlsConnection()

virtual adb::tls::TlsConnection::~TlsConnection ( )
virtualdefault

◆ TlsConnection()

adb::tls::TlsConnection::TlsConnection ( )
protecteddefault

Member Function Documentation

◆ AddTrustedCertificate()

virtual bool adb::tls::TlsConnection::AddTrustedCertificate ( std::string_view  cert)
pure virtual

◆ Create()

std::unique_ptr< TlsConnection > adb::tls::TlsConnection::Create ( TlsConnection::Role  role,
std::string_view  cert,
std::string_view  priv_key,
android::base::borrowed_fd  fd 
)
static

◆ DoHandshake()

virtual TlsError adb::tls::TlsConnection::DoHandshake ( )
pure virtual

◆ EnableClientPostHandshakeCheck()

virtual void adb::tls::TlsConnection::EnableClientPostHandshakeCheck ( bool  enable)
pure virtual

◆ ExportKeyingMaterial()

virtual std::vector< uint8_t > adb::tls::TlsConnection::ExportKeyingMaterial ( size_t  length)
pure virtual

◆ ReadFully() [1/2]

virtual std::vector< uint8_t > adb::tls::TlsConnection::ReadFully ( size_t  size)
pure virtual

◆ ReadFully() [2/2]

virtual bool adb::tls::TlsConnection::ReadFully ( void *  buf,
size_t  size 
)
pure virtual

◆ SetCertAndKey()

bool adb::tls::TlsConnection::SetCertAndKey ( SSL *  ssl,
std::string_view  cert_chain,
std::string_view  priv_key 
)
static

◆ SetCertificateCallback()

virtual void adb::tls::TlsConnection::SetCertificateCallback ( SetCertCb  cb)
pure virtual

◆ SetCertVerifyCallback()

virtual void adb::tls::TlsConnection::SetCertVerifyCallback ( CertVerifyCb  cb)
pure virtual

◆ SetClientCAList()

virtual void adb::tls::TlsConnection::SetClientCAList ( STACK_OF(X509_NAME) *  ca_list)
pure virtual

◆ WriteFully()

virtual bool adb::tls::TlsConnection::WriteFully ( std::string_view  data)
pure virtual

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