Ruby  2.4.2p198(2017-09-14revision59899)
Data Structures | Macros | Functions | Variables
ossl_ssl.c File Reference
#include "ossl.h"
Include dependency graph for ossl_ssl.c:

Go to the source code of this file.

Data Structures

struct  tmp_dh_callback_args
 

Macros

#define numberof(ary)   (int)(sizeof(ary)/sizeof((ary)[0]))
 
#define TO_SOCKET(s)   (s)
 
#define GetSSLCTX(obj, ctx)
 
#define OSSL_SSL_METHOD_ENTRY(name, version)
 
#define ssl_get_error(ssl, ret)   SSL_get_error((ssl), (ret))
 
#define rb_intern(s)   rb_intern_const(s)
 
#define ossl_ssl_def_const(x)   rb_define_const(mSSL, #x, LONG2NUM(SSL_##x))
 
#define DefIVarID(name)
 

Functions

static void ossl_sslctx_free (void *ptr)
 
static VALUE ossl_sslctx_s_alloc (VALUE klass)
 
static VALUE ossl_sslctx_set_ssl_version (VALUE self, VALUE ssl_method)
 
static VALUE ossl_call_client_cert_cb (VALUE obj)
 
static int ossl_client_cert_cb (SSL *ssl, X509 **x509, EVP_PKEY **pkey)
 
static EVP_PKEY * ossl_call_tmp_dh_callback (struct tmp_dh_callback_args *args)
 
static DH * ossl_tmp_dh_callback (SSL *ssl, int is_export, int keylength)
 
static VALUE call_verify_certificate_identity (VALUE ctx_v)
 
static int ossl_ssl_verify_callback (int preverify_ok, X509_STORE_CTX *ctx)
 
static VALUE ossl_call_session_get_cb (VALUE ary)
 
static SSL_SESSION * ossl_sslctx_session_get_cb (SSL *ssl, unsigned char *buf, int len, int *copy)
 
static VALUE ossl_call_session_new_cb (VALUE ary)
 
static int ossl_sslctx_session_new_cb (SSL *ssl, SSL_SESSION *sess)
 
static VALUE ossl_call_session_remove_cb (VALUE ary)
 
static void ossl_sslctx_session_remove_cb (SSL_CTX *ctx, SSL_SESSION *sess)
 
static VALUE ossl_sslctx_add_extra_chain_cert_i (RB_BLOCK_CALL_FUNC_ARGLIST(i, arg))
 
static VALUE ossl_sslctx_setup (VALUE self)
 
static void ssl_renegotiation_cb (const SSL *ssl)
 
static void ssl_info_cb (const SSL *ssl, int where, int val)
 
static VALUE ossl_sslctx_get_options (VALUE self)
 
static VALUE ossl_sslctx_set_options (VALUE self, VALUE options)
 
static VALUE ossl_ssl_cipher_to_ary (const SSL_CIPHER *cipher)
 
static VALUE ossl_sslctx_get_ciphers (VALUE self)
 
static VALUE ossl_sslctx_set_ciphers (VALUE self, VALUE v)
 
static VALUE ossl_sslctx_set_ecdh_curves (VALUE self, VALUE arg)
 
static VALUE ossl_sslctx_get_security_level (VALUE self)
 
static VALUE ossl_sslctx_set_security_level (VALUE self, VALUE value)
 
static VALUE ossl_sslctx_session_add (VALUE self, VALUE arg)
 
static VALUE ossl_sslctx_session_remove (VALUE self, VALUE arg)
 
static VALUE ossl_sslctx_get_session_cache_mode (VALUE self)
 
static VALUE ossl_sslctx_set_session_cache_mode (VALUE self, VALUE arg)
 
static VALUE ossl_sslctx_get_session_cache_size (VALUE self)
 
static VALUE ossl_sslctx_set_session_cache_size (VALUE self, VALUE arg)
 
static VALUE ossl_sslctx_get_session_cache_stats (VALUE self)
 
static VALUE ossl_sslctx_flush_sessions (int argc, VALUE *argv, VALUE self)
 
static int ssl_started (SSL *ssl)
 
static void ossl_ssl_free (void *ssl)
 
static VALUE ossl_ssl_s_alloc (VALUE klass)
 
static VALUE ossl_ssl_initialize (int argc, VALUE *argv, VALUE self)
 
static VALUE ossl_ssl_setup (VALUE self)
 
static void write_would_block (int nonblock)
 
static void read_would_block (int nonblock)
 
static int no_exception_p (VALUE opts)
 
static VALUE ossl_start_ssl (VALUE self, int(*func)(), const char *funcname, VALUE opts)
 
static VALUE ossl_ssl_connect (VALUE self)
 
static VALUE ossl_ssl_connect_nonblock (int argc, VALUE *argv, VALUE self)
 
static VALUE ossl_ssl_accept (VALUE self)
 
static VALUE ossl_ssl_accept_nonblock (int argc, VALUE *argv, VALUE self)
 
static VALUE ossl_ssl_read_internal (int argc, VALUE *argv, VALUE self, int nonblock)
 
static VALUE ossl_ssl_read (int argc, VALUE *argv, VALUE self)
 
static VALUE ossl_ssl_read_nonblock (int argc, VALUE *argv, VALUE self)
 
static VALUE ossl_ssl_write_internal (VALUE self, VALUE str, VALUE opts)
 
static VALUE ossl_ssl_write (VALUE self, VALUE str)
 
static VALUE ossl_ssl_write_nonblock (int argc, VALUE *argv, VALUE self)
 
static VALUE ossl_ssl_stop (VALUE self)
 
static VALUE ossl_ssl_get_cert (VALUE self)
 
static VALUE ossl_ssl_get_peer_cert (VALUE self)
 
static VALUE ossl_ssl_get_peer_cert_chain (VALUE self)
 
static VALUE ossl_ssl_get_version (VALUE self)
 
static VALUE ossl_ssl_get_cipher (VALUE self)
 
static VALUE ossl_ssl_get_state (VALUE self)
 
static VALUE ossl_ssl_pending (VALUE self)
 
static VALUE ossl_ssl_session_reused (VALUE self)
 
static VALUE ossl_ssl_set_session (VALUE self, VALUE arg1)
 
static VALUE ossl_ssl_get_verify_result (VALUE self)
 
static VALUE ossl_ssl_get_client_ca_list (VALUE self)
 
void Init_ossl_ssl (void)
 

Variables

VALUE mSSL
 
static VALUE mSSLExtConfig
 
static VALUE eSSLError
 
VALUE cSSLContext
 
VALUE cSSLSocket
 
static VALUE eSSLErrorWaitReadable
 
static VALUE eSSLErrorWaitWritable
 
static ID ID_callback_state
 
static ID id_tmp_dh_callback
 
static ID id_tmp_ecdh_callback
 
static ID id_npn_protocols_encoded
 
static VALUE sym_exception
 
static VALUE sym_wait_readable
 
static VALUE sym_wait_writable
 
static ID id_i_cert_store
 
static ID id_i_ca_file
 
static ID id_i_ca_path
 
static ID id_i_verify_mode
 
static ID id_i_verify_depth
 
static ID id_i_verify_callback
 
static ID id_i_client_ca
 
static ID id_i_renegotiation_cb
 
static ID id_i_cert
 
static ID id_i_key
 
static ID id_i_extra_chain_cert
 
static ID id_i_client_cert_cb
 
static ID id_i_tmp_ecdh_callback
 
static ID id_i_timeout
 
static ID id_i_session_id_context
 
static ID id_i_session_get_cb
 
static ID id_i_session_new_cb
 
static ID id_i_session_remove_cb
 
static ID id_i_npn_select_cb
 
static ID id_i_npn_protocols
 
static ID id_i_alpn_select_cb
 
static ID id_i_alpn_protocols
 
static ID id_i_servername_cb
 
static ID id_i_verify_hostname
 
static ID id_i_io
 
static ID id_i_context
 
static ID id_i_hostname
 
struct {
   const char *   name
 
   SSL_METHOD *(*   func )(void)
 
   int   version
 
ossl_ssl_method_tab []
 
static int ossl_ssl_ex_vcb_idx
 
static int ossl_ssl_ex_store_p
 
static int ossl_ssl_ex_ptr_idx
 
static const rb_data_type_t ossl_sslctx_type
 
const rb_data_type_t ossl_ssl_type
 

Macro Definition Documentation

◆ DefIVarID

#define DefIVarID (   name)
Value:
do \
id_i_##name = rb_intern("@"#name); while (0)
const char * name
Definition: ossl_ssl.c:53
#define rb_intern(s)
Definition: ossl_ssl.c:2241

Referenced by Init_ossl_ssl().

◆ GetSSLCTX

#define GetSSLCTX (   obj,
  ctx 
)

◆ numberof

#define numberof (   ary)    (int)(sizeof(ary)/sizeof((ary)[0]))

Definition at line 14 of file ossl_ssl.c.

Referenced by Init_ossl_ssl(), and ossl_sslctx_set_ssl_version().

◆ ossl_ssl_def_const

#define ossl_ssl_def_const (   x)    rb_define_const(mSSL, #x, LONG2NUM(SSL_##x))

Referenced by Init_ossl_ssl().

◆ OSSL_SSL_METHOD_ENTRY

#define OSSL_SSL_METHOD_ENTRY (   name,
  version 
)
Value:
{ #name, (SSL_METHOD *(*)(void))name##_method, version }, \
{ #name"_server", (SSL_METHOD *(*)(void))name##_server_method, version }, \
{ #name"_client", (SSL_METHOD *(*)(void))name##_client_method, version }
const char * name
Definition: ossl_ssl.c:53

◆ rb_intern

#define rb_intern (   s)    rb_intern_const(s)

◆ ssl_get_error

#define ssl_get_error (   ssl,
  ret 
)    SSL_get_error((ssl), (ret))

Definition at line 1497 of file ossl_ssl.c.

Referenced by ossl_ssl_read_internal(), ossl_ssl_write_internal(), and ossl_start_ssl().

◆ TO_SOCKET

#define TO_SOCKET (   s)    (s)

Definition at line 19 of file ossl_ssl.c.

Referenced by ossl_ssl_setup().

Function Documentation

◆ call_verify_certificate_identity()

static VALUE call_verify_certificate_identity ( VALUE  ctx_v)
static

◆ Init_ossl_ssl()

void Init_ossl_ssl ( void  )

Definition at line 2243 of file ossl_ssl.c.

References cSSLContext, cSSLSocket, DefIVarID, eOSSLError, eSSLError, eSSLErrorWaitReadable, eSSLErrorWaitWritable, ID2SYM, ID_callback_state, id_npn_protocols_encoded, id_tmp_dh_callback, id_tmp_ecdh_callback, Init_ossl_ssl_session(), key, LONG2NUM, mOSSL, mSSL, mSSLExtConfig, name, numberof, ossl_ssl_accept(), ossl_ssl_accept_nonblock(), ossl_ssl_connect(), ossl_ssl_connect_nonblock(), ossl_ssl_def_const, ossl_ssl_ex_ptr_idx, ossl_ssl_ex_store_p, ossl_ssl_ex_vcb_idx, ossl_ssl_get_cert(), ossl_ssl_get_cipher(), ossl_ssl_get_client_ca_list(), ossl_ssl_get_peer_cert(), ossl_ssl_get_peer_cert_chain(), ossl_ssl_get_state(), ossl_ssl_get_verify_result(), ossl_ssl_get_version(), ossl_ssl_initialize(), ossl_ssl_method_tab, ossl_ssl_pending(), ossl_ssl_read(), ossl_ssl_read_nonblock(), ossl_ssl_s_alloc(), ossl_ssl_session_reused(), ossl_ssl_set_session(), ossl_ssl_stop(), ossl_ssl_write(), ossl_ssl_write_nonblock(), ossl_sslctx_flush_sessions(), ossl_sslctx_get_ciphers(), ossl_sslctx_get_options(), ossl_sslctx_get_security_level(), ossl_sslctx_get_session_cache_mode(), ossl_sslctx_get_session_cache_size(), ossl_sslctx_get_session_cache_stats(), ossl_sslctx_s_alloc(), ossl_sslctx_session_add(), ossl_sslctx_session_remove(), ossl_sslctx_set_ciphers(), ossl_sslctx_set_ecdh_curves(), ossl_sslctx_set_options(), ossl_sslctx_set_security_level(), ossl_sslctx_set_session_cache_mode(), ossl_sslctx_set_session_cache_size(), ossl_sslctx_set_ssl_version(), Qfalse, Qtrue, rb_ary_new2, rb_ary_push(), rb_attr(), rb_cIO, rb_cObject, rb_define_alias(), rb_define_alloc_func(), rb_define_class_under(), rb_define_const(), rb_define_method(), rb_define_module(), rb_define_module_under(), rb_define_private_method(), rb_eStandardError, rb_f_notimplement(), rb_include_module(), rb_intern, rb_mWaitReadable, rb_mWaitWritable, rb_obj_freeze(), rb_undef_method(), sym_exception, sym_wait_readable, and sym_wait_writable.

Referenced by Init_openssl().

◆ no_exception_p()

static int no_exception_p ( VALUE  opts)
static

◆ ossl_call_client_cert_cb()

static VALUE ossl_call_client_cert_cb ( VALUE  obj)
static

◆ ossl_call_session_get_cb()

static VALUE ossl_call_session_get_cb ( VALUE  ary)
static

◆ ossl_call_session_new_cb()

static VALUE ossl_call_session_new_cb ( VALUE  ary)
static

◆ ossl_call_session_remove_cb()

static VALUE ossl_call_session_remove_cb ( VALUE  ary)
static

◆ ossl_call_tmp_dh_callback()

static EVP_PKEY* ossl_call_tmp_dh_callback ( struct tmp_dh_callback_args args)
static

◆ ossl_client_cert_cb()

static int ossl_client_cert_cb ( SSL *  ssl,
X509 **  x509,
EVP_PKEY **  pkey 
)
static

◆ ossl_ssl_accept()

static VALUE ossl_ssl_accept ( VALUE  self)
static

Definition at line 1628 of file ossl_ssl.c.

References ossl_ssl_setup(), ossl_start_ssl(), and Qfalse.

Referenced by Init_ossl_ssl().

◆ ossl_ssl_accept_nonblock()

static VALUE ossl_ssl_accept_nonblock ( int  argc,
VALUE argv,
VALUE  self 
)
static

Definition at line 1658 of file ossl_ssl.c.

References ossl_ssl_setup(), ossl_start_ssl(), and rb_scan_args().

Referenced by Init_ossl_ssl().

◆ ossl_ssl_cipher_to_ary()

static VALUE ossl_ssl_cipher_to_ary ( const SSL_CIPHER *  cipher)
static

Definition at line 961 of file ossl_ssl.c.

References INT2NUM, rb_ary_new2, rb_ary_push(), and rb_str_new2.

Referenced by ossl_ssl_get_cipher(), and ossl_sslctx_get_ciphers().

◆ ossl_ssl_connect()

static VALUE ossl_ssl_connect ( VALUE  self)
static

Definition at line 1580 of file ossl_ssl.c.

References ossl_ssl_setup(), ossl_start_ssl(), and Qfalse.

Referenced by Init_ossl_ssl().

◆ ossl_ssl_connect_nonblock()

static VALUE ossl_ssl_connect_nonblock ( int  argc,
VALUE argv,
VALUE  self 
)
static

Definition at line 1610 of file ossl_ssl.c.

References ossl_ssl_setup(), ossl_start_ssl(), and rb_scan_args().

Referenced by Init_ossl_ssl().

◆ ossl_ssl_free()

static void ossl_ssl_free ( void *  ssl)
static

Definition at line 1401 of file ossl_ssl.c.

◆ ossl_ssl_get_cert()

static VALUE ossl_ssl_get_cert ( VALUE  self)
static

Definition at line 1912 of file ossl_ssl.c.

References GetSSL, NULL, ossl_x509_new(), and Qnil.

Referenced by Init_ossl_ssl().

◆ ossl_ssl_get_cipher()

static VALUE ossl_ssl_get_cipher ( VALUE  self)
static

Definition at line 2010 of file ossl_ssl.c.

References GetSSL, and ossl_ssl_cipher_to_ary().

Referenced by Init_ossl_ssl().

◆ ossl_ssl_get_client_ca_list()

static VALUE ossl_ssl_get_client_ca_list ( VALUE  self)
static

Definition at line 2158 of file ossl_ssl.c.

References GetSSL, key, ossl_pkey_new(), ossl_x509name_sk2ary(), Qnil, rb_str_new(), and STACK_OF().

Referenced by Init_ossl_ssl().

◆ ossl_ssl_get_peer_cert()

static VALUE ossl_ssl_get_peer_cert ( VALUE  self)
static

Definition at line 1938 of file ossl_ssl.c.

References GetSSL, NULL, ossl_x509_new(), and Qnil.

Referenced by Init_ossl_ssl().

◆ ossl_ssl_get_peer_cert_chain()

static VALUE ossl_ssl_get_peer_cert_chain ( VALUE  self)
static

Definition at line 1964 of file ossl_ssl.c.

References GetSSL, ossl_x509_new(), Qnil, rb_ary_new2, rb_ary_push(), and STACK_OF().

Referenced by Init_ossl_ssl().

◆ ossl_ssl_get_state()

static VALUE ossl_ssl_get_state ( VALUE  self)
static

Definition at line 2030 of file ossl_ssl.c.

References GetSSL, rb_str_cat2(), rb_str_new2, and ruby_verbose.

Referenced by Init_ossl_ssl().

◆ ossl_ssl_get_verify_result()

static VALUE ossl_ssl_get_verify_result ( VALUE  self)
static

Definition at line 2137 of file ossl_ssl.c.

References GetSSL, and INT2NUM.

Referenced by Init_ossl_ssl().

◆ ossl_ssl_get_version()

static VALUE ossl_ssl_get_version ( VALUE  self)
static

Definition at line 1994 of file ossl_ssl.c.

References GetSSL, and rb_str_new2.

Referenced by Init_ossl_ssl().

◆ ossl_ssl_initialize()

static VALUE ossl_ssl_initialize ( int  argc,
VALUE argv,
VALUE  self 
)
static

◆ ossl_ssl_pending()

static VALUE ossl_ssl_pending ( VALUE  self)
static

Definition at line 2052 of file ossl_ssl.c.

References GetSSL, and INT2NUM.

Referenced by Init_ossl_ssl().

◆ ossl_ssl_read()

static VALUE ossl_ssl_read ( int  argc,
VALUE argv,
VALUE  self 
)
static

Definition at line 1763 of file ossl_ssl.c.

References ossl_ssl_read_internal().

Referenced by Init_ossl_ssl().

◆ ossl_ssl_read_internal()

static VALUE ossl_ssl_read_internal ( int  argc,
VALUE argv,
VALUE  self,
int  nonblock 
)
static

◆ ossl_ssl_read_nonblock()

static VALUE ossl_ssl_read_nonblock ( int  argc,
VALUE argv,
VALUE  self 
)
static

Definition at line 1782 of file ossl_ssl.c.

References ossl_ssl_read_internal().

Referenced by Init_ossl_ssl().

◆ ossl_ssl_s_alloc()

static VALUE ossl_ssl_s_alloc ( VALUE  klass)
static

Definition at line 1415 of file ossl_ssl.c.

References NULL, and TypedData_Wrap_Struct.

Referenced by Init_ossl_ssl().

◆ ossl_ssl_session_reused()

static VALUE ossl_ssl_session_reused ( VALUE  self)
static

Definition at line 2068 of file ossl_ssl.c.

References GetSSL, Qfalse, and Qtrue.

Referenced by Init_ossl_ssl().

◆ ossl_ssl_set_session()

static VALUE ossl_ssl_set_session ( VALUE  self,
VALUE  arg1 
)
static

◆ ossl_ssl_setup()

static VALUE ossl_ssl_setup ( VALUE  self)
static

◆ ossl_ssl_stop()

static VALUE ossl_ssl_stop ( VALUE  self)
static

Definition at line 1881 of file ossl_ssl.c.

References GetSSL, ossl_clear_error(), Qnil, and ssl_started().

Referenced by Init_ossl_ssl().

◆ ossl_ssl_verify_callback()

static int ossl_ssl_verify_callback ( int  preverify_ok,
X509_STORE_CTX *  ctx 
)
static

◆ ossl_ssl_write()

static VALUE ossl_ssl_write ( VALUE  self,
VALUE  str 
)
static

Definition at line 1851 of file ossl_ssl.c.

References ossl_ssl_write_internal(), and Qfalse.

Referenced by Init_ossl_ssl().

◆ ossl_ssl_write_internal()

static VALUE ossl_ssl_write_internal ( VALUE  self,
VALUE  str,
VALUE  opts 
)
static

◆ ossl_ssl_write_nonblock()

static VALUE ossl_ssl_write_nonblock ( int  argc,
VALUE argv,
VALUE  self 
)
static

Definition at line 1864 of file ossl_ssl.c.

References ossl_ssl_write_internal(), and rb_scan_args().

Referenced by Init_ossl_ssl().

◆ ossl_sslctx_add_extra_chain_cert_i()

static VALUE ossl_sslctx_add_extra_chain_cert_i ( RB_BLOCK_CALL_FUNC_ARGLIST(i, arg)  )
static

◆ ossl_sslctx_flush_sessions()

static VALUE ossl_sslctx_flush_sessions ( int  argc,
VALUE argv,
VALUE  self 
)
static

◆ ossl_sslctx_free()

static void ossl_sslctx_free ( void *  ptr)
static

Definition at line 92 of file ossl_ssl.c.

References NULL, and ossl_ssl_ex_store_p.

◆ ossl_sslctx_get_ciphers()

static VALUE ossl_sslctx_get_ciphers ( VALUE  self)
static

◆ ossl_sslctx_get_options()

static VALUE ossl_sslctx_get_options ( VALUE  self)
static

Definition at line 736 of file ossl_ssl.c.

References GetSSLCTX, and LONG2NUM.

Referenced by Init_ossl_ssl().

◆ ossl_sslctx_get_security_level()

static VALUE ossl_sslctx_get_security_level ( VALUE  self)
static

Definition at line 1150 of file ossl_ssl.c.

References GetSSLCTX, INT2FIX, and INT2NUM.

Referenced by Init_ossl_ssl().

◆ ossl_sslctx_get_session_cache_mode()

static VALUE ossl_sslctx_get_session_cache_mode ( VALUE  self)
static

Definition at line 1246 of file ossl_ssl.c.

References GetSSLCTX, and LONG2NUM.

Referenced by Init_ossl_ssl().

◆ ossl_sslctx_get_session_cache_size()

static VALUE ossl_sslctx_get_session_cache_size ( VALUE  self)
static

Definition at line 1283 of file ossl_ssl.c.

References GetSSLCTX, and LONG2NUM.

Referenced by Init_ossl_ssl().

◆ ossl_sslctx_get_session_cache_stats()

static VALUE ossl_sslctx_get_session_cache_stats ( VALUE  self)
static

Definition at line 1334 of file ossl_ssl.c.

References GetSSLCTX, hash(), ID2SYM, LONG2NUM, rb_hash_aset(), rb_hash_new(), and rb_intern.

Referenced by Init_ossl_ssl().

◆ ossl_sslctx_s_alloc()

static VALUE ossl_sslctx_s_alloc ( VALUE  klass)
static

Definition at line 111 of file ossl_ssl.c.

References eSSLError, ossl_raise(), ossl_ssl_ex_ptr_idx, RTYPEDDATA_DATA, and TypedData_Wrap_Struct.

Referenced by Init_ossl_ssl().

◆ ossl_sslctx_session_add()

static VALUE ossl_sslctx_session_add ( VALUE  self,
VALUE  arg 
)
static

Definition at line 1210 of file ossl_ssl.c.

References GetSSLCTX, Qfalse, Qtrue, and SafeGetSSLSession.

Referenced by Init_ossl_ssl().

◆ ossl_sslctx_session_get_cb()

static SSL_SESSION* ossl_sslctx_session_get_cb ( SSL *  ssl,
unsigned char *  buf,
int  len,
int *  copy 
)
static

◆ ossl_sslctx_session_new_cb()

static int ossl_sslctx_session_new_cb ( SSL *  ssl,
SSL_SESSION *  sess 
)
static

◆ ossl_sslctx_session_remove()

static VALUE ossl_sslctx_session_remove ( VALUE  self,
VALUE  arg 
)
static

Definition at line 1228 of file ossl_ssl.c.

References GetSSLCTX, Qfalse, Qtrue, and SafeGetSSLSession.

Referenced by Init_ossl_ssl().

◆ ossl_sslctx_session_remove_cb()

static void ossl_sslctx_session_remove_cb ( SSL_CTX *  ctx,
SSL_SESSION *  sess 
)
static

◆ ossl_sslctx_set_ciphers()

static VALUE ossl_sslctx_set_ciphers ( VALUE  self,
VALUE  v 
)
static

◆ ossl_sslctx_set_ecdh_curves()

static VALUE ossl_sslctx_set_ecdh_curves ( VALUE  self,
VALUE  arg 
)
static

◆ ossl_sslctx_set_options()

static VALUE ossl_sslctx_set_options ( VALUE  self,
VALUE  options 
)
static

Definition at line 747 of file ossl_ssl.c.

References GetSSLCTX, NIL_P, NUM2LONG, rb_check_frozen, and SSL_CTX_clear_options.

Referenced by Init_ossl_ssl().

◆ ossl_sslctx_set_security_level()

static VALUE ossl_sslctx_set_security_level ( VALUE  self,
VALUE  value 
)
static

Definition at line 1184 of file ossl_ssl.c.

References GetSSLCTX, NUM2INT, ossl_raise(), rb_check_frozen, and rb_eNotImpError.

Referenced by Init_ossl_ssl().

◆ ossl_sslctx_set_session_cache_mode()

static VALUE ossl_sslctx_set_session_cache_mode ( VALUE  self,
VALUE  arg 
)
static

Definition at line 1264 of file ossl_ssl.c.

References GetSSLCTX, and NUM2LONG.

Referenced by Init_ossl_ssl().

◆ ossl_sslctx_set_session_cache_size()

static VALUE ossl_sslctx_set_session_cache_size ( VALUE  self,
VALUE  arg 
)
static

Definition at line 1300 of file ossl_ssl.c.

References GetSSLCTX, and NUM2LONG.

Referenced by Init_ossl_ssl().

◆ ossl_sslctx_set_ssl_version()

static VALUE ossl_sslctx_set_ssl_version ( VALUE  self,
VALUE  ssl_method 
)
static

◆ ossl_sslctx_setup()

static VALUE ossl_sslctx_setup ( VALUE  self)
static

◆ ossl_start_ssl()

static VALUE ossl_start_ssl ( VALUE  self,
int(*)()  func,
const char *  funcname,
VALUE  opts 
)
static

◆ ossl_tmp_dh_callback()

static DH* ossl_tmp_dh_callback ( SSL *  ssl,
int  is_export,
int  keylength 
)
static

◆ read_would_block()

static void read_would_block ( int  nonblock)
static

◆ ssl_info_cb()

static void ssl_info_cb ( const SSL *  ssl,
int  where,
int  val 
)
static

Definition at line 723 of file ossl_ssl.c.

References SSL_is_server, and ssl_renegotiation_cb().

Referenced by ossl_ssl_initialize().

◆ ssl_renegotiation_cb()

static void ssl_renegotiation_cb ( const SSL *  ssl)
static

◆ ssl_started()

static int ssl_started ( SSL *  ssl)
inlinestatic

◆ write_would_block()

static void write_would_block ( int  nonblock)
static

Variable Documentation

◆ cSSLContext

VALUE cSSLContext

◆ cSSLSocket

VALUE cSSLSocket

Definition at line 30 of file ossl_ssl.c.

Referenced by Init_ossl_ssl(), and ossl_ssl_session_initialize().

◆ eSSLError

VALUE eSSLError
static

◆ eSSLErrorWaitReadable

VALUE eSSLErrorWaitReadable
static

Definition at line 32 of file ossl_ssl.c.

Referenced by Init_ossl_ssl(), and read_would_block().

◆ eSSLErrorWaitWritable

VALUE eSSLErrorWaitWritable
static

Definition at line 33 of file ossl_ssl.c.

Referenced by Init_ossl_ssl(), and write_would_block().

◆ func

SSL_METHOD*(* func) (void)

Definition at line 54 of file ossl_ssl.c.

Referenced by backtrace_collect(), call_cfunc_0(), call_cfunc_1(), call_cfunc_10(), call_cfunc_11(), call_cfunc_12(), call_cfunc_13(), call_cfunc_14(), call_cfunc_15(), call_cfunc_2(), call_cfunc_3(), call_cfunc_4(), call_cfunc_5(), call_cfunc_6(), call_cfunc_7(), call_cfunc_8(), call_cfunc_9(), call_cfunc_m1(), call_cfunc_m2(), call_without_gvl(), check_cfunc(), class_instance_method_list(), console_emulator_p(), default_handler(), define_filetest_function(), do_checksum(), enum_count(), enum_find_index(), enum_uniq(), exec_end_call_list(), exec_recursive(), extract_fd(), f_divide(), f_format(), f_round_common(), fiddle_handle_sym(), gen_ivar_each(), get_final_path_unknown(), get_freefunc(), get_special_folder(), id2key(), init_env(), insn_data_to_s_detail(), lazy_uniq(), lazy_zip(), method_for_self(), num_funcall_bit_1(), num_funcall_op_0(), num_funcall_op_1(), obj_ivar_each(), onig_add_end_call(), onig_foreach_name(), onig_name_to_backref_number(), onig_number_of_names(), ossl_start_ssl(), parser_here_document(), parser_heredoc_identifier(), parser_parse_string(), parser_set_compile_option_flag(), rb_add_method_cfunc(), rb_catch(), rb_catch_obj(), rb_define_alloc_func(), rb_define_global_function(), rb_define_method(), rb_define_method_id(), rb_define_module_function(), rb_define_private_method(), rb_define_protected_method(), rb_define_singleton_method(), rb_enc_foreach_name(), rb_exec_recursive(), rb_exec_recursive_outer(), rb_exec_recursive_paired(), rb_exec_recursive_paired_outer(), rb_fiber_new(), rb_fiddle_ptr_new2(), rb_get_values_at(), rb_glob(), rb_hash_foreach(), rb_hash_update_by(), rb_iseqw_line_trace_each(), rb_ivar_foreach(), rb_mutex_synchronize(), rb_objspace_reachable_objects_from(), rb_objspace_reachable_objects_from_root(), rb_proc_new(), rb_stat_inspect(), rb_str_locktmp_ensure(), rb_thread_call_without_gvl(), rb_thread_call_without_gvl2(), rb_thread_io_blocking_region(), rb_vm_ifunc_new(), rb_vm_ifunc_proc_new(), rb_w32_asynchronize(), rb_zlib_version(), remove_invalid_alternative_data(), rollback_ensure_stack(), rsock_bsock_send(), rsock_connect(), ruby_brace_glob_with_enc(), ruby_vm_at_exit(), ruby_vm_run_at_exit_hooks(), set_unblock_function(), setup_method_cfunc_struct(), sig_trap(), signal_ignored(), st_foreach(), st_foreach_check(), st_foreach_safe(), sys_enc_warning_in(), trace_object_allocations(), trap_handler(), ttymode(), and vm_caller_setup_arg_block().

◆ ID_callback_state

ID ID_callback_state
static

◆ id_i_alpn_protocols

ID id_i_alpn_protocols
static

Definition at line 39 of file ossl_ssl.c.

Referenced by ossl_sslctx_setup().

◆ id_i_alpn_select_cb

ID id_i_alpn_select_cb
static

Definition at line 39 of file ossl_ssl.c.

Referenced by ossl_sslctx_setup(), and ssl_renegotiation_cb().

◆ id_i_ca_file

ID id_i_ca_file
static

Definition at line 39 of file ossl_ssl.c.

Referenced by ossl_sslctx_setup().

◆ id_i_ca_path

ID id_i_ca_path
static

Definition at line 39 of file ossl_ssl.c.

Referenced by ossl_sslctx_setup().

◆ id_i_cert

ID id_i_cert
static

Definition at line 39 of file ossl_ssl.c.

Referenced by ossl_sslctx_setup().

◆ id_i_cert_store

ID id_i_cert_store
static

Definition at line 39 of file ossl_ssl.c.

Referenced by ossl_sslctx_setup().

◆ id_i_client_ca

ID id_i_client_ca
static

Definition at line 39 of file ossl_ssl.c.

Referenced by ossl_sslctx_setup().

◆ id_i_client_cert_cb

ID id_i_client_cert_cb
static

Definition at line 39 of file ossl_ssl.c.

Referenced by ossl_call_client_cert_cb(), and ossl_sslctx_setup().

◆ id_i_context

ID id_i_context
static

◆ id_i_extra_chain_cert

ID id_i_extra_chain_cert
static

Definition at line 39 of file ossl_ssl.c.

Referenced by ossl_sslctx_setup().

◆ id_i_hostname

ID id_i_hostname
static

Definition at line 47 of file ossl_ssl.c.

Referenced by call_verify_certificate_identity(), and ossl_ssl_set_session().

◆ id_i_io

ID id_i_io
static

◆ id_i_key

ID id_i_key
static

Definition at line 39 of file ossl_ssl.c.

Referenced by ossl_sslctx_setup().

◆ id_i_npn_protocols

ID id_i_npn_protocols
static

Definition at line 39 of file ossl_ssl.c.

Referenced by ossl_sslctx_setup().

◆ id_i_npn_select_cb

ID id_i_npn_select_cb
static

Definition at line 39 of file ossl_ssl.c.

Referenced by ossl_sslctx_setup(), and ssl_renegotiation_cb().

◆ id_i_renegotiation_cb

ID id_i_renegotiation_cb
static

Definition at line 39 of file ossl_ssl.c.

Referenced by ssl_renegotiation_cb().

◆ id_i_servername_cb

ID id_i_servername_cb
static

Definition at line 39 of file ossl_ssl.c.

Referenced by ossl_sslctx_add_extra_chain_cert_i(), and ossl_sslctx_setup().

◆ id_i_session_get_cb

ID id_i_session_get_cb
static

Definition at line 39 of file ossl_ssl.c.

Referenced by ossl_sslctx_setup().

◆ id_i_session_id_context

ID id_i_session_id_context
static

Definition at line 39 of file ossl_ssl.c.

Referenced by ossl_sslctx_setup().

◆ id_i_session_new_cb

ID id_i_session_new_cb
static

Definition at line 39 of file ossl_ssl.c.

Referenced by ossl_sslctx_setup().

◆ id_i_session_remove_cb

ID id_i_session_remove_cb
static

Definition at line 39 of file ossl_ssl.c.

Referenced by ossl_call_session_remove_cb(), and ossl_sslctx_setup().

◆ id_i_timeout

ID id_i_timeout
static

Definition at line 39 of file ossl_ssl.c.

Referenced by ossl_sslctx_setup().

◆ id_i_tmp_ecdh_callback

ID id_i_tmp_ecdh_callback
static

Definition at line 39 of file ossl_ssl.c.

Referenced by ossl_sslctx_setup().

◆ id_i_verify_callback

ID id_i_verify_callback
static

Definition at line 39 of file ossl_ssl.c.

Referenced by ossl_ssl_initialize().

◆ id_i_verify_depth

ID id_i_verify_depth
static

Definition at line 39 of file ossl_ssl.c.

Referenced by ossl_sslctx_setup().

◆ id_i_verify_hostname

ID id_i_verify_hostname
static

Definition at line 39 of file ossl_ssl.c.

Referenced by ossl_ssl_verify_callback().

◆ id_i_verify_mode

ID id_i_verify_mode
static

Definition at line 39 of file ossl_ssl.c.

Referenced by ossl_sslctx_setup().

◆ id_npn_protocols_encoded

ID id_npn_protocols_encoded
static

Definition at line 35 of file ossl_ssl.c.

Referenced by Init_ossl_ssl(), and ossl_sslctx_setup().

◆ id_tmp_dh_callback

ID id_tmp_dh_callback
static

Definition at line 35 of file ossl_ssl.c.

Referenced by Init_ossl_ssl(), and ossl_tmp_dh_callback().

◆ id_tmp_ecdh_callback

ID id_tmp_ecdh_callback
static

Definition at line 35 of file ossl_ssl.c.

Referenced by Init_ossl_ssl(), and ossl_tmp_dh_callback().

◆ mSSL

VALUE mSSL

◆ mSSLExtConfig

VALUE mSSLExtConfig
static

Definition at line 27 of file ossl_ssl.c.

Referenced by Init_ossl_ssl().

◆ name

const char* name

Definition at line 53 of file ossl_ssl.c.

Referenced by Init_ossl_ssl(), and ossl_sslctx_set_ssl_version().

◆ ossl_ssl_ex_ptr_idx

int ossl_ssl_ex_ptr_idx
static

◆ ossl_ssl_ex_store_p

int ossl_ssl_ex_store_p
static

Definition at line 88 of file ossl_ssl.c.

Referenced by Init_ossl_ssl(), ossl_sslctx_free(), and ossl_sslctx_setup().

◆ ossl_ssl_ex_vcb_idx

int ossl_ssl_ex_vcb_idx
static

Definition at line 87 of file ossl_ssl.c.

Referenced by Init_ossl_ssl(), ossl_ssl_initialize(), and ossl_ssl_verify_callback().

◆ ossl_ssl_method_tab

const { ... } ossl_ssl_method_tab[]
Initial value:
= {
#define OSSL_SSL_METHOD_ENTRY(name, version)
OSSL_SSL_METHOD_ENTRY(TLSv1, TLS1_VERSION),
}
#define OSSL_SSL_METHOD_ENTRY(name, version)

Referenced by Init_ossl_ssl(), and ossl_sslctx_set_ssl_version().

◆ ossl_ssl_type

const rb_data_type_t ossl_ssl_type
Initial value:
= {
"OpenSSL/SSL",
{
},
}
#define RUBY_TYPED_FREE_IMMEDIATELY
Definition: ruby.h:1145
static void ossl_ssl_free(void *ssl)
Definition: ossl_ssl.c:1401

Definition at line 1406 of file ossl_ssl.c.

◆ ossl_sslctx_type

const rb_data_type_t ossl_sslctx_type
static
Initial value:
= {
"OpenSSL/SSL/CTX",
{
},
}
#define RUBY_TYPED_FREE_IMMEDIATELY
Definition: ruby.h:1145
static void ossl_sslctx_free(void *ptr)
Definition: ossl_ssl.c:92

Definition at line 102 of file ossl_ssl.c.

◆ sym_exception

VALUE sym_exception
static

Definition at line 37 of file ossl_ssl.c.

Referenced by Init_ossl_ssl(), and no_exception_p().

◆ sym_wait_readable

VALUE sym_wait_readable
static

◆ sym_wait_writable

VALUE sym_wait_writable
static

◆ version

int version