Botan  1.10.9
Public Member Functions | List of all members
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

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

Definition at line 54 of file tls_policy.h.

54 {}

Member Function Documentation

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

Definition at line 36 of file tls_policy.h.

Referenced by choose_suite(), and ciphersuites().

36 { return true; }
virtual bool Botan::TLS_Policy::allow_edh_rsa ( ) const
inlinevirtual

Definition at line 35 of file tls_policy.h.

Referenced by choose_suite(), and ciphersuites().

35 { return true; }
virtual bool Botan::TLS_Policy::allow_static_rsa ( ) const
inlinevirtual

Definition at line 34 of file tls_policy.h.

Referenced by choose_suite(), and ciphersuites().

34 { return true; }
virtual bool Botan::TLS_Policy::check_cert ( const std::vector< X509_Certificate > &  cert_chain) const
pure virtual
byte Botan::TLS_Policy::choose_compression ( const std::vector< byte > &  client) const
virtual

Definition at line 100 of file tls_policy.cpp.

References compression(), and Botan::NO_COMPRESSION.

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

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
Definition: tls_policy.cpp:68
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.

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

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

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_rsa() const
Definition: tls_policy.h:35
virtual bool allow_edh_dsa() const
Definition: tls_policy.h:36
virtual bool allow_static_rsa() const
Definition: tls_policy.h:34
std::vector< u16bit > Botan::TLS_Policy::ciphersuites ( ) const

Definition at line 16 of file tls_policy.cpp.

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

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

17  {
18  return suite_list(allow_static_rsa(), allow_edh_rsa(), allow_edh_dsa());
19  }
virtual bool allow_edh_rsa() const
Definition: tls_policy.h:35
virtual bool allow_edh_dsa() const
Definition: tls_policy.h:36
virtual bool allow_static_rsa() const
Definition: tls_policy.h:34
std::vector< byte > Botan::TLS_Policy::compression ( ) const
virtual

Definition at line 68 of file tls_policy.cpp.

References Botan::NO_COMPRESSION.

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

69  {
70  std::vector<byte> algs;
71  algs.push_back(NO_COMPRESSION);
72  return algs;
73  }
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  }
virtual Version_Code Botan::TLS_Policy::min_version ( ) const
inlinevirtual

Definition at line 45 of file tls_policy.h.

References Botan::TLS_V10.

45 { return TLS_V10; }
virtual Version_Code Botan::TLS_Policy::pref_version ( ) const
inlinevirtual

Definition at line 50 of file tls_policy.h.

References Botan::TLS_V11.

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

50 { return TLS_V11; }
virtual bool Botan::TLS_Policy::require_client_auth ( ) const
inlinevirtual

Definition at line 37 of file tls_policy.h.

37 { return false; }
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: