Botan 1.10.17
Botan::TLS_Policy Class Referenceabstract

#include <tls_policy.h>

Public Member Functions

virtual bool allow_edh_dsa () const
virtual bool allow_edh_rsa () const
virtual bool allow_static_rsa () const
virtual bool check_cert (const std::vector< X509_Certificate > &cert_chain) const =0
virtual byte choose_compression (const std::vector< byte > &client) const
virtual u16bit choose_suite (const std::vector< u16bit > &client_suites, bool rsa_ok, bool dsa_ok) const
std::vector< u16bitciphersuites () const
virtual std::vector< bytecompression () const
virtual DL_Group dh_group () const
virtual Version_Code min_version () const
virtual Version_Code pref_version () const
virtual bool require_client_auth () const
virtual size_t rsa_export_keysize () const
virtual ~TLS_Policy ()

Detailed Description

TLS Policy Base Class Inherit and overload as desired to suite local policy concerns

Definition at line 22 of file tls_policy.h.

Constructor & Destructor Documentation

◆ ~TLS_Policy()

virtual Botan::TLS_Policy::~TLS_Policy ( )
inlinevirtual

Definition at line 54 of file tls_policy.h.

54{}

Member Function Documentation

◆ allow_edh_dsa()

virtual bool Botan::TLS_Policy::allow_edh_dsa ( ) const
inlinevirtual

Definition at line 36 of file tls_policy.h.

36{ return true; }

Referenced by choose_suite(), and ciphersuites().

◆ allow_edh_rsa()

virtual bool Botan::TLS_Policy::allow_edh_rsa ( ) const
inlinevirtual

Definition at line 35 of file tls_policy.h.

35{ return true; }

Referenced by choose_suite(), and ciphersuites().

◆ allow_static_rsa()

virtual bool Botan::TLS_Policy::allow_static_rsa ( ) const
inlinevirtual

Definition at line 34 of file tls_policy.h.

34{ return true; }

Referenced by choose_suite(), and ciphersuites().

◆ check_cert()

virtual bool Botan::TLS_Policy::check_cert ( const std::vector< X509_Certificate > & cert_chain) const
pure virtual

◆ choose_compression()

byte Botan::TLS_Policy::choose_compression ( const std::vector< byte > & client) const
virtual

Definition at line 100 of file tls_policy.cpp.

101 {
102 std::vector<byte> s_comp = compression();
103
104 for(size_t i = 0; i != s_comp.size(); ++i)
105 for(size_t j = 0; j != c_comp.size(); ++j)
106 if(s_comp[i] == c_comp[j])
107 return s_comp[i];
108
109 return NO_COMPRESSION;
110 }
virtual std::vector< byte > compression() const
@ NO_COMPRESSION
Definition tls_magic.h:173

References compression(), and Botan::NO_COMPRESSION.

Referenced by Botan::Server_Hello::Server_Hello().

◆ choose_suite()

u16bit Botan::TLS_Policy::choose_suite ( const std::vector< u16bit > & client_suites,
bool rsa_ok,
bool dsa_ok ) const
virtual

Definition at line 78 of file tls_policy.cpp.

81 {
82 bool use_static_rsa = allow_static_rsa() && have_rsa;
83 bool use_edh_rsa = allow_edh_rsa() && have_rsa;
84 bool use_edh_dsa = allow_edh_dsa() && have_dsa;
85
86 std::vector<u16bit> s_suites = suite_list(use_static_rsa, use_edh_rsa,
87 use_edh_dsa);
88
89 for(size_t i = 0; i != s_suites.size(); ++i)
90 for(size_t j = 0; j != c_suites.size(); ++j)
91 if(s_suites[i] == c_suites[j])
92 return s_suites[i];
93
94 return 0;
95 }
virtual bool allow_edh_dsa() const
Definition tls_policy.h:36
virtual bool allow_static_rsa() const
Definition tls_policy.h:34
virtual bool allow_edh_rsa() const
Definition tls_policy.h:35

References allow_edh_dsa(), allow_edh_rsa(), and allow_static_rsa().

Referenced by Botan::Server_Hello::Server_Hello().

◆ ciphersuites()

std::vector< u16bit > Botan::TLS_Policy::ciphersuites ( ) const

Definition at line 16 of file tls_policy.cpp.

17 {
18 return suite_list(allow_static_rsa(), allow_edh_rsa(), allow_edh_dsa());
19 }

References allow_edh_dsa(), allow_edh_rsa(), and allow_static_rsa().

Referenced by Botan::Client_Hello::Client_Hello().

◆ compression()

std::vector< byte > Botan::TLS_Policy::compression ( ) const
virtual

Definition at line 68 of file tls_policy.cpp.

69 {
70 std::vector<byte> algs;
71 algs.push_back(NO_COMPRESSION);
72 return algs;
73 }

References Botan::NO_COMPRESSION.

Referenced by choose_compression(), and Botan::Client_Hello::Client_Hello().

◆ dh_group()

DL_Group Botan::TLS_Policy::dh_group ( ) const
virtual

Definition at line 115 of file tls_policy.cpp.

116 {
117 return DL_Group("modp/ietf/1024");
118 }

References Botan::DL_Group::DL_Group().

◆ min_version()

virtual Version_Code Botan::TLS_Policy::min_version ( ) const
inlinevirtual

Definition at line 45 of file tls_policy.h.

45{ return TLS_V10; }
@ TLS_V10
Definition tls_magic.h:25

References Botan::TLS_V10.

◆ pref_version()

virtual Version_Code Botan::TLS_Policy::pref_version ( ) const
inlinevirtual

Definition at line 50 of file tls_policy.h.

50{ return TLS_V11; }
@ TLS_V11
Definition tls_magic.h:26

References Botan::TLS_V11.

Referenced by Botan::Client_Hello::Client_Hello().

◆ require_client_auth()

virtual bool Botan::TLS_Policy::require_client_auth ( ) const
inlinevirtual

Definition at line 37 of file tls_policy.h.

37{ return false; }

◆ rsa_export_keysize()

virtual size_t Botan::TLS_Policy::rsa_export_keysize ( ) const
inlinevirtual

Definition at line 40 of file tls_policy.h.

40{ return 512; }

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