Ruby  2.0.0p648(2015-12-16revision53162)
Macros | Functions | Variables
ossl_ssl.c File Reference
#include "ossl.h"

Go to the source code of this file.

Macros

#define numberof(ary)   (int)(sizeof(ary)/sizeof((ary)[0]))
 
#define TO_SOCKET(s)   (s)
 
#define ossl_sslctx_set_cert(o, v)   rb_iv_set((o),"@cert",(v))
 
#define ossl_sslctx_set_key(o, v)   rb_iv_set((o),"@key",(v))
 
#define ossl_sslctx_set_client_ca(o, v)   rb_iv_set((o),"@client_ca",(v))
 
#define ossl_sslctx_set_ca_file(o, v)   rb_iv_set((o),"@ca_file",(v))
 
#define ossl_sslctx_set_ca_path(o, v)   rb_iv_set((o),"@ca_path",(v))
 
#define ossl_sslctx_set_timeout(o, v)   rb_iv_set((o),"@timeout",(v))
 
#define ossl_sslctx_set_verify_mode(o, v)   rb_iv_set((o),"@verify_mode",(v))
 
#define ossl_sslctx_set_verify_dep(o, v)   rb_iv_set((o),"@verify_depth",(v))
 
#define ossl_sslctx_set_verify_cb(o, v)   rb_iv_set((o),"@verify_callback",(v))
 
#define ossl_sslctx_set_options(o, v)   rb_iv_set((o),"@options",(v))
 
#define ossl_sslctx_set_cert_store(o, v)   rb_iv_set((o),"@cert_store",(v))
 
#define ossl_sslctx_set_extra_cert(o, v)   rb_iv_set((o),"@extra_chain_cert",(v))
 
#define ossl_sslctx_set_client_cert_cb(o, v)   rb_iv_set((o),"@client_cert_cb",(v))
 
#define ossl_sslctx_set_tmp_dh_cb(o, v)   rb_iv_set((o),"@tmp_dh_callback",(v))
 
#define ossl_sslctx_set_sess_id_ctx(o, v)   rb_iv_set((o),"@session_id_context",(v))
 
#define ossl_sslctx_get_cert(o)   rb_iv_get((o),"@cert")
 
#define ossl_sslctx_get_key(o)   rb_iv_get((o),"@key")
 
#define ossl_sslctx_get_client_ca(o)   rb_iv_get((o),"@client_ca")
 
#define ossl_sslctx_get_ca_file(o)   rb_iv_get((o),"@ca_file")
 
#define ossl_sslctx_get_ca_path(o)   rb_iv_get((o),"@ca_path")
 
#define ossl_sslctx_get_timeout(o)   rb_iv_get((o),"@timeout")
 
#define ossl_sslctx_get_verify_mode(o)   rb_iv_get((o),"@verify_mode")
 
#define ossl_sslctx_get_verify_dep(o)   rb_iv_get((o),"@verify_depth")
 
#define ossl_sslctx_get_verify_cb(o)   rb_iv_get((o),"@verify_callback")
 
#define ossl_sslctx_get_options(o)   rb_iv_get((o),"@options")
 
#define ossl_sslctx_get_cert_store(o)   rb_iv_get((o),"@cert_store")
 
#define ossl_sslctx_get_extra_cert(o)   rb_iv_get((o),"@extra_chain_cert")
 
#define ossl_sslctx_get_client_cert_cb(o)   rb_iv_get((o),"@client_cert_cb")
 
#define ossl_sslctx_get_tmp_dh_cb(o)   rb_iv_get((o),"@tmp_dh_callback")
 
#define ossl_sslctx_get_sess_id_ctx(o)   rb_iv_get((o),"@session_id_context")
 
#define ossl_ssl_get_io(o)   rb_iv_get((o),"@io")
 
#define ossl_ssl_get_ctx(o)   rb_iv_get((o),"@context")
 
#define ossl_ssl_get_sync_close(o)   rb_iv_get((o),"@sync_close")
 
#define ossl_ssl_get_x509(o)   rb_iv_get((o),"@x509")
 
#define ossl_ssl_get_key(o)   rb_iv_get((o),"@key")
 
#define ossl_ssl_get_tmp_dh(o)   rb_iv_get((o),"@tmp_dh")
 
#define ossl_ssl_set_io(o, v)   rb_iv_set((o),"@io",(v))
 
#define ossl_ssl_set_ctx(o, v)   rb_iv_set((o),"@context",(v))
 
#define ossl_ssl_set_sync_close(o, v)   rb_iv_set((o),"@sync_close",(v))
 
#define ossl_ssl_set_x509(o, v)   rb_iv_set((o),"@x509",(v))
 
#define ossl_ssl_set_key(o, v)   rb_iv_set((o),"@key",(v))
 
#define ossl_ssl_set_tmp_dh(o, v)   rb_iv_set((o),"@tmp_dh",(v))
 
#define OSSL_SSL_METHOD_ENTRY(name)   { #name, (SSL_METHOD *(*)(void))name##_method }
 
#define ssl_get_error(ssl, ret)   SSL_get_error((ssl), (ret))
 
#define ossl_ssl_data_get_struct(v, ssl)
 
#define ossl_ssl_def_const(x)   rb_define_const(mSSL, #x, INT2NUM(SSL_##x))
 

Functions

static void ossl_sslctx_free (SSL_CTX *ctx)
 
static VALUE ossl_sslctx_s_alloc (VALUE klass)
 
static VALUE ossl_sslctx_set_ssl_version (VALUE self, VALUE ssl_method)
 
static VALUE ossl_sslctx_initialize (int argc, VALUE *argv, VALUE self)
 
static VALUE ossl_call_client_cert_cb (VALUE obj)
 
static int ossl_client_cert_cb (SSL *ssl, X509 **x509, EVP_PKEY **pkey)
 
static VALUE ossl_call_tmp_dh_callback (VALUE *args)
 
static DH * ossl_tmp_dh_callback (SSL *ssl, int is_export, int keylength)
 
static DH * ossl_default_tmp_dh_callback (SSL *ssl, int is_export, int keylength)
 
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 (VALUE i, VALUE 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_ssl_cipher_to_ary (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_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 void ossl_ssl_shutdown (SSL *ssl)
 
static void ossl_ssl_free (SSL *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 VALUE ossl_start_ssl (VALUE self, int(*func)(), const char *funcname, int nonblock)
 
static VALUE ossl_ssl_connect (VALUE self)
 
static VALUE ossl_ssl_connect_nonblock (VALUE self)
 
static VALUE ossl_ssl_accept (VALUE self)
 
static VALUE ossl_ssl_accept_nonblock (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, int nonblock)
 
static VALUE ossl_ssl_write (VALUE self, VALUE str)
 
static VALUE ossl_ssl_write_nonblock (VALUE self, VALUE str)
 
static VALUE ossl_ssl_close (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 ()
 

Variables

VALUE mSSL
 
VALUE eSSLError
 
VALUE cSSLContext
 
VALUE cSSLSocket
 
static const char * ossl_sslctx_attrs []
 
static const char * ossl_ssl_attr_readers [] = { "io", "context", }
 
static const char * ossl_ssl_attrs []
 
ID ID_callback_state
 
struct {
   const char *   name
 
   SSL_METHOD *(*   func )(void)
 
ossl_ssl_method_tab []
 
int ossl_ssl_ex_vcb_idx
 
int ossl_ssl_ex_store_p
 
int ossl_ssl_ex_ptr_idx
 
int ossl_ssl_ex_client_cert_cb_idx
 
int ossl_ssl_ex_tmp_dh_callback_idx
 

Macro Definition Documentation

◆ numberof

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

Definition at line 19 of file ossl_ssl.c.

Referenced by Init_ossl_ssl(), ossl_sslctx_initialize(), and ossl_sslctx_set_ssl_version().

◆ ossl_ssl_data_get_struct

#define ossl_ssl_data_get_struct (   v,
  ssl 
)
Value:
do { \
Data_Get_Struct((v), SSL, (ssl)); \
if (!(ssl)) { \
rb_warning("SSL session is not started yet."); \
return Qnil; \
} \
} while (0)
#define Qnil
Definition: ruby.h:435
v
Definition: win32ole.c:798

Definition at line 1219 of file ossl_ssl.c.

Referenced by ossl_ssl_close(), 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_pending(), ossl_ssl_session_reused(), ossl_ssl_set_session(), and ossl_start_ssl().

◆ ossl_ssl_def_const

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

Referenced by Init_ossl_ssl().

◆ ossl_ssl_get_ctx

#define ossl_ssl_get_ctx (   o)    rb_iv_get((o),"@context")

Definition at line 80 of file ossl_ssl.c.

Referenced by ossl_ssl_setup().

◆ ossl_ssl_get_io

#define ossl_ssl_get_io (   o)    rb_iv_get((o),"@io")

◆ ossl_ssl_get_key

#define ossl_ssl_get_key (   o)    rb_iv_get((o),"@key")

Definition at line 83 of file ossl_ssl.c.

Referenced by ossl_client_cert_cb().

◆ ossl_ssl_get_sync_close

#define ossl_ssl_get_sync_close (   o)    rb_iv_get((o),"@sync_close")

Definition at line 81 of file ossl_ssl.c.

Referenced by ossl_ssl_close().

◆ ossl_ssl_get_tmp_dh

#define ossl_ssl_get_tmp_dh (   o)    rb_iv_get((o),"@tmp_dh")

Definition at line 84 of file ossl_ssl.c.

Referenced by ossl_tmp_dh_callback().

◆ ossl_ssl_get_x509

#define ossl_ssl_get_x509 (   o)    rb_iv_get((o),"@x509")

Definition at line 82 of file ossl_ssl.c.

Referenced by ossl_client_cert_cb().

◆ OSSL_SSL_METHOD_ENTRY

#define OSSL_SSL_METHOD_ENTRY (   name)    { #name, (SSL_METHOD *(*)(void))name##_method }

◆ ossl_ssl_set_ctx

#define ossl_ssl_set_ctx (   o,
  v 
)    rb_iv_set((o),"@context",(v))

Definition at line 87 of file ossl_ssl.c.

Referenced by ossl_ssl_initialize().

◆ ossl_ssl_set_io

#define ossl_ssl_set_io (   o,
  v 
)    rb_iv_set((o),"@io",(v))

Definition at line 86 of file ossl_ssl.c.

Referenced by ossl_ssl_initialize().

◆ ossl_ssl_set_key

#define ossl_ssl_set_key (   o,
  v 
)    rb_iv_set((o),"@key",(v))

Definition at line 90 of file ossl_ssl.c.

Referenced by ossl_call_client_cert_cb().

◆ ossl_ssl_set_sync_close

#define ossl_ssl_set_sync_close (   o,
  v 
)    rb_iv_set((o),"@sync_close",(v))

Definition at line 88 of file ossl_ssl.c.

Referenced by ossl_ssl_initialize().

◆ ossl_ssl_set_tmp_dh

#define ossl_ssl_set_tmp_dh (   o,
  v 
)    rb_iv_set((o),"@tmp_dh",(v))

Definition at line 91 of file ossl_ssl.c.

Referenced by ossl_call_tmp_dh_callback().

◆ ossl_ssl_set_x509

#define ossl_ssl_set_x509 (   o,
  v 
)    rb_iv_set((o),"@x509",(v))

Definition at line 89 of file ossl_ssl.c.

Referenced by ossl_call_client_cert_cb().

◆ ossl_sslctx_get_ca_file

#define ossl_sslctx_get_ca_file (   o)    rb_iv_get((o),"@ca_file")

Definition at line 51 of file ossl_ssl.c.

Referenced by ossl_sslctx_setup().

◆ ossl_sslctx_get_ca_path

#define ossl_sslctx_get_ca_path (   o)    rb_iv_get((o),"@ca_path")

Definition at line 52 of file ossl_ssl.c.

Referenced by ossl_sslctx_setup().

◆ ossl_sslctx_get_cert

#define ossl_sslctx_get_cert (   o)    rb_iv_get((o),"@cert")

Definition at line 48 of file ossl_ssl.c.

Referenced by ossl_sslctx_setup().

◆ ossl_sslctx_get_cert_store

#define ossl_sslctx_get_cert_store (   o)    rb_iv_get((o),"@cert_store")

Definition at line 58 of file ossl_ssl.c.

Referenced by ossl_sslctx_setup().

◆ ossl_sslctx_get_client_ca

#define ossl_sslctx_get_client_ca (   o)    rb_iv_get((o),"@client_ca")

Definition at line 50 of file ossl_ssl.c.

Referenced by ossl_sslctx_setup().

◆ ossl_sslctx_get_client_cert_cb

#define ossl_sslctx_get_client_cert_cb (   o)    rb_iv_get((o),"@client_cert_cb")

Definition at line 60 of file ossl_ssl.c.

Referenced by ossl_ssl_setup(), and ossl_sslctx_setup().

◆ ossl_sslctx_get_extra_cert

#define ossl_sslctx_get_extra_cert (   o)    rb_iv_get((o),"@extra_chain_cert")

Definition at line 59 of file ossl_ssl.c.

Referenced by ossl_sslctx_setup().

◆ ossl_sslctx_get_key

#define ossl_sslctx_get_key (   o)    rb_iv_get((o),"@key")

Definition at line 49 of file ossl_ssl.c.

Referenced by ossl_sslctx_setup().

◆ ossl_sslctx_get_options

#define ossl_sslctx_get_options (   o)    rb_iv_get((o),"@options")

Definition at line 57 of file ossl_ssl.c.

Referenced by ossl_sslctx_setup().

◆ ossl_sslctx_get_sess_id_ctx

#define ossl_sslctx_get_sess_id_ctx (   o)    rb_iv_get((o),"@session_id_context")

Definition at line 62 of file ossl_ssl.c.

Referenced by ossl_sslctx_setup().

◆ ossl_sslctx_get_timeout

#define ossl_sslctx_get_timeout (   o)    rb_iv_get((o),"@timeout")

Definition at line 53 of file ossl_ssl.c.

Referenced by ossl_sslctx_setup().

◆ ossl_sslctx_get_tmp_dh_cb

#define ossl_sslctx_get_tmp_dh_cb (   o)    rb_iv_get((o),"@tmp_dh_callback")

Definition at line 61 of file ossl_ssl.c.

Referenced by ossl_ssl_setup(), and ossl_sslctx_setup().

◆ ossl_sslctx_get_verify_cb

#define ossl_sslctx_get_verify_cb (   o)    rb_iv_get((o),"@verify_callback")

Definition at line 56 of file ossl_ssl.c.

Referenced by ossl_ssl_setup().

◆ ossl_sslctx_get_verify_dep

#define ossl_sslctx_get_verify_dep (   o)    rb_iv_get((o),"@verify_depth")

Definition at line 55 of file ossl_ssl.c.

Referenced by ossl_sslctx_setup().

◆ ossl_sslctx_get_verify_mode

#define ossl_sslctx_get_verify_mode (   o)    rb_iv_get((o),"@verify_mode")

Definition at line 54 of file ossl_ssl.c.

Referenced by ossl_sslctx_setup().

◆ ossl_sslctx_set_ca_file

#define ossl_sslctx_set_ca_file (   o,
  v 
)    rb_iv_set((o),"@ca_file",(v))

Definition at line 35 of file ossl_ssl.c.

◆ ossl_sslctx_set_ca_path

#define ossl_sslctx_set_ca_path (   o,
  v 
)    rb_iv_set((o),"@ca_path",(v))

Definition at line 36 of file ossl_ssl.c.

◆ ossl_sslctx_set_cert

#define ossl_sslctx_set_cert (   o,
  v 
)    rb_iv_set((o),"@cert",(v))

Definition at line 32 of file ossl_ssl.c.

◆ ossl_sslctx_set_cert_store

#define ossl_sslctx_set_cert_store (   o,
  v 
)    rb_iv_set((o),"@cert_store",(v))

Definition at line 42 of file ossl_ssl.c.

◆ ossl_sslctx_set_client_ca

#define ossl_sslctx_set_client_ca (   o,
  v 
)    rb_iv_set((o),"@client_ca",(v))

Definition at line 34 of file ossl_ssl.c.

◆ ossl_sslctx_set_client_cert_cb

#define ossl_sslctx_set_client_cert_cb (   o,
  v 
)    rb_iv_set((o),"@client_cert_cb",(v))

Definition at line 44 of file ossl_ssl.c.

◆ ossl_sslctx_set_extra_cert

#define ossl_sslctx_set_extra_cert (   o,
  v 
)    rb_iv_set((o),"@extra_chain_cert",(v))

Definition at line 43 of file ossl_ssl.c.

◆ ossl_sslctx_set_key

#define ossl_sslctx_set_key (   o,
  v 
)    rb_iv_set((o),"@key",(v))

Definition at line 33 of file ossl_ssl.c.

◆ ossl_sslctx_set_options

#define ossl_sslctx_set_options (   o,
  v 
)    rb_iv_set((o),"@options",(v))

Definition at line 41 of file ossl_ssl.c.

◆ ossl_sslctx_set_sess_id_ctx

#define ossl_sslctx_set_sess_id_ctx (   o,
  v 
)    rb_iv_set((o),"@session_id_context",(v))

Definition at line 46 of file ossl_ssl.c.

◆ ossl_sslctx_set_timeout

#define ossl_sslctx_set_timeout (   o,
  v 
)    rb_iv_set((o),"@timeout",(v))

Definition at line 37 of file ossl_ssl.c.

◆ ossl_sslctx_set_tmp_dh_cb

#define ossl_sslctx_set_tmp_dh_cb (   o,
  v 
)    rb_iv_set((o),"@tmp_dh_callback",(v))

Definition at line 45 of file ossl_ssl.c.

◆ ossl_sslctx_set_verify_cb

#define ossl_sslctx_set_verify_cb (   o,
  v 
)    rb_iv_set((o),"@verify_callback",(v))

Definition at line 40 of file ossl_ssl.c.

◆ ossl_sslctx_set_verify_dep

#define ossl_sslctx_set_verify_dep (   o,
  v 
)    rb_iv_set((o),"@verify_depth",(v))

Definition at line 39 of file ossl_ssl.c.

◆ ossl_sslctx_set_verify_mode

#define ossl_sslctx_set_verify_mode (   o,
  v 
)    rb_iv_set((o),"@verify_mode",(v))

Definition at line 38 of file ossl_ssl.c.

◆ ssl_get_error

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

Definition at line 1216 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 24 of file ossl_ssl.c.

Referenced by ossl_ssl_setup().

Function Documentation

◆ Init_ossl_ssl()

void Init_ossl_ssl ( void  )

Definition at line 1823 of file ossl_ssl.c.

References cSSLContext, cSSLSocket, eOSSLError, eSSLError, i, ID2SYM, ID_callback_state, Init_ossl_ssl_session(), LONG2FIX, mOSSL, mSSL, name, numberof, ossl_ssl_accept(), ossl_ssl_accept_nonblock(), ossl_ssl_attr_readers, ossl_ssl_attrs, ossl_ssl_close(), ossl_ssl_connect(), ossl_ssl_connect_nonblock(), ossl_ssl_def_const, ossl_ssl_ex_client_cert_cb_idx, ossl_ssl_ex_ptr_idx, ossl_ssl_ex_store_p, ossl_ssl_ex_tmp_dh_callback_idx, 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_write(), ossl_ssl_write_nonblock(), ossl_sslctx_flush_sessions(), ossl_sslctx_get_ciphers(), ossl_sslctx_get_session_cache_mode(), ossl_sslctx_get_session_cache_size(), ossl_sslctx_get_session_cache_stats(), ossl_sslctx_initialize(), ossl_sslctx_s_alloc(), ossl_sslctx_session_add(), ossl_sslctx_session_remove(), ossl_sslctx_set_ciphers(), ossl_sslctx_set_session_cache_mode(), ossl_sslctx_set_session_cache_size(), ossl_sslctx_set_ssl_version(), ossl_sslctx_setup(), Qfalse, rb_ary_new2(), rb_ary_push(), rb_attr(), 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_intern, and rb_obj_freeze().

Referenced by Init_openssl().

◆ 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

Definition at line 332 of file ossl_ssl.c.

References Check_Type, NIL_P, Qnil, rb_ary_entry(), rb_funcall(), rb_intern, rb_iv_get(), and T_ARRAY.

Referenced by ossl_sslctx_session_get_cb().

◆ ossl_call_session_new_cb()

static VALUE ossl_call_session_new_cb ( VALUE  ary)
static

Definition at line 379 of file ossl_ssl.c.

References Check_Type, NIL_P, Qnil, rb_ary_entry(), rb_funcall(), rb_intern, rb_iv_get(), and T_ARRAY.

Referenced by ossl_sslctx_session_new_cb().

◆ ossl_call_session_remove_cb()

static VALUE ossl_call_session_remove_cb ( VALUE  ary)
static

Definition at line 431 of file ossl_ssl.c.

References Check_Type, NIL_P, Qnil, rb_ary_entry(), rb_funcall(), rb_intern, rb_iv_get(), and T_ARRAY.

Referenced by ossl_sslctx_session_remove_cb().

◆ ossl_call_tmp_dh_callback()

static VALUE ossl_call_tmp_dh_callback ( VALUE args)
static

◆ ossl_client_cert_cb()

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

◆ ossl_default_tmp_dh_callback()

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

Definition at line 305 of file ossl_ssl.c.

References NULL, OSSL_DEFAULT_DH_1024, OSSL_DEFAULT_DH_512, and rb_warning().

Referenced by ossl_sslctx_setup().

◆ ossl_ssl_accept()

static VALUE ossl_ssl_accept ( VALUE  self)
static

Definition at line 1338 of file ossl_ssl.c.

References ossl_ssl_setup(), and ossl_start_ssl().

Referenced by Init_ossl_ssl().

◆ ossl_ssl_accept_nonblock()

static VALUE ossl_ssl_accept_nonblock ( VALUE  self)
static

Definition at line 1363 of file ossl_ssl.c.

References ossl_ssl_setup(), and ossl_start_ssl().

Referenced by Init_ossl_ssl().

◆ ossl_ssl_cipher_to_ary()

static VALUE ossl_ssl_cipher_to_ary ( SSL_CIPHER *  cipher)
static

Definition at line 809 of file ossl_ssl.c.

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

Referenced by ossl_ssl_get_cipher(), and ossl_sslctx_get_ciphers().

◆ ossl_ssl_close()

static VALUE ossl_ssl_close ( VALUE  self)
static

◆ ossl_ssl_connect()

static VALUE ossl_ssl_connect ( VALUE  self)
static

Definition at line 1299 of file ossl_ssl.c.

References ossl_ssl_setup(), and ossl_start_ssl().

Referenced by Init_ossl_ssl().

◆ ossl_ssl_connect_nonblock()

static VALUE ossl_ssl_connect_nonblock ( VALUE  self)
static

Definition at line 1324 of file ossl_ssl.c.

References ossl_ssl_setup(), and ossl_start_ssl().

Referenced by Init_ossl_ssl().

◆ ossl_ssl_free()

static void ossl_ssl_free ( SSL *  ssl)
static

Definition at line 1117 of file ossl_ssl.c.

Referenced by ossl_ssl_s_alloc().

◆ ossl_ssl_get_cert()

static VALUE ossl_ssl_get_cert ( VALUE  self)
static

Definition at line 1560 of file ossl_ssl.c.

References NULL, ossl_ssl_data_get_struct, 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 1658 of file ossl_ssl.c.

References ossl_ssl_cipher_to_ary(), and ossl_ssl_data_get_struct.

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 1786 of file ossl_ssl.c.

References ossl_ssl_data_get_struct, ossl_x509name_sk2ary(), 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 1586 of file ossl_ssl.c.

References NULL, ossl_ssl_data_get_struct, 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 1612 of file ossl_ssl.c.

References i, ossl_ssl_data_get_struct, 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 1677 of file ossl_ssl.c.

References ossl_ssl_data_get_struct, 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 1765 of file ossl_ssl.c.

References INT2FIX, and ossl_ssl_data_get_struct.

Referenced by Init_ossl_ssl().

◆ ossl_ssl_get_version()

static VALUE ossl_ssl_get_version ( VALUE  self)
static

Definition at line 1642 of file ossl_ssl.c.

References ossl_ssl_data_get_struct, 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 1699 of file ossl_ssl.c.

References INT2NUM, and ossl_ssl_data_get_struct.

Referenced by Init_ossl_ssl().

◆ ossl_ssl_read()

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

Definition at line 1437 of file ossl_ssl.c.

References argc, argv, and 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 1454 of file ossl_ssl.c.

References argc, argv, and 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 1123 of file ossl_ssl.c.

References Data_Wrap_Struct, NULL, and ossl_ssl_free().

Referenced by Init_ossl_ssl().

◆ ossl_ssl_session_reused()

static VALUE ossl_ssl_session_reused ( VALUE  self)
static

Definition at line 1715 of file ossl_ssl.c.

References eSSLError, ossl_raise(), ossl_ssl_data_get_struct, Qfalse, Qtrue, and UNREACHABLE.

Referenced by Init_ossl_ssl().

◆ ossl_ssl_set_session()

static VALUE ossl_ssl_set_session ( VALUE  self,
VALUE  arg1 
)
static

Definition at line 1737 of file ossl_ssl.c.

References eSSLError, ossl_raise(), ossl_ssl_data_get_struct, ossl_ssl_setup(), and SafeGetSSLSession.

Referenced by Init_ossl_ssl().

◆ ossl_ssl_setup()

static VALUE ossl_ssl_setup ( VALUE  self)
static

◆ ossl_ssl_shutdown()

static void ossl_ssl_shutdown ( SSL *  ssl)
static

Definition at line 1096 of file ossl_ssl.c.

References i.

Referenced by ossl_ssl_close().

◆ ossl_ssl_verify_callback()

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

Definition at line 320 of file ossl_ssl.c.

References ossl_ssl_ex_vcb_idx, ossl_verify_cb(), and ossl_verify_cb_idx.

Referenced by ossl_sslctx_setup().

◆ ossl_ssl_write()

static VALUE ossl_ssl_write ( VALUE  self,
VALUE  str 
)
static

Definition at line 1508 of file ossl_ssl.c.

References ossl_ssl_write_internal().

Referenced by Init_ossl_ssl().

◆ ossl_ssl_write_internal()

static VALUE ossl_ssl_write_internal ( VALUE  self,
VALUE  str,
int  nonblock 
)
static

◆ ossl_ssl_write_nonblock()

static VALUE ossl_ssl_write_nonblock ( VALUE  self,
VALUE  str 
)
static

Definition at line 1521 of file ossl_ssl.c.

References ossl_ssl_write_internal().

Referenced by Init_ossl_ssl().

◆ ossl_sslctx_add_extra_chain_cert_i()

static VALUE ossl_sslctx_add_extra_chain_cert_i ( VALUE  i,
VALUE  arg 
)
static

Definition at line 475 of file ossl_ssl.c.

References Data_Get_Struct, DupX509CertPtr(), eSSLError, i, NULL, and ossl_raise().

Referenced by ossl_sslctx_setup().

◆ 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 ( SSL_CTX *  ctx)
static

Definition at line 148 of file ossl_ssl.c.

References NULL, and ossl_ssl_ex_store_p.

Referenced by ossl_sslctx_s_alloc().

◆ ossl_sslctx_get_ciphers()

static VALUE ossl_sslctx_get_ciphers ( VALUE  self)
static

◆ ossl_sslctx_get_session_cache_mode()

static VALUE ossl_sslctx_get_session_cache_mode ( VALUE  self)
static

Definition at line 949 of file ossl_ssl.c.

References Data_Get_Struct, 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 986 of file ossl_ssl.c.

References Data_Get_Struct, 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 1037 of file ossl_ssl.c.

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

Referenced by Init_ossl_ssl().

◆ ossl_sslctx_initialize()

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

◆ ossl_sslctx_s_alloc()

static VALUE ossl_sslctx_s_alloc ( VALUE  klass)
static

Definition at line 156 of file ossl_ssl.c.

References Data_Wrap_Struct, eSSLError, ossl_raise(), and ossl_sslctx_free().

Referenced by Init_ossl_ssl().

◆ ossl_sslctx_session_add()

static VALUE ossl_sslctx_session_add ( VALUE  self,
VALUE  arg 
)
static

Definition at line 913 of file ossl_ssl.c.

References Data_Get_Struct, 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 931 of file ossl_ssl.c.

References Data_Get_Struct, 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_session_cache_mode()

static VALUE ossl_sslctx_set_session_cache_mode ( VALUE  self,
VALUE  arg 
)
static

Definition at line 967 of file ossl_ssl.c.

References Data_Get_Struct, 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 1003 of file ossl_ssl.c.

References Data_Get_Struct, 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,
int  nonblock 
)
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 632 of file ossl_ssl.c.

References ssl_renegotiation_cb().

Referenced by ossl_ssl_setup().

◆ ssl_renegotiation_cb()

static void ssl_renegotiation_cb ( const SSL *  ssl)
static

Definition at line 550 of file ossl_ssl.c.

References eSSLError, NIL_P, NULL, ossl_raise(), ossl_ssl_ex_ptr_idx, rb_funcall(), rb_intern, and rb_iv_get().

Referenced by ssl_info_cb().

◆ write_would_block()

static void write_would_block ( int  nonblock)
static

Variable Documentation

◆ cSSLContext

VALUE cSSLContext

Definition at line 29 of file ossl_ssl.c.

Referenced by Init_ossl_ssl(), and ossl_ssl_initialize().

◆ 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

◆ func

SSL_METHOD*(* func) (void)

Definition at line 108 of file ossl_ssl.c.

Referenced by alloc_event_hook(), 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(), default_handler(), define_filetest_function(), dlhandle_sym(), do_checksum(), enum_count(), enum_find_index(), enumerator_block_call(), exec_recursive(), extract_fd(), f_addsub(), f_divide(), f_format(), f_round_common(), fiddle_handle_sym(), get_freefunc(), get_proc_address(), glob_helper(), lazy_zip(), obj_ivar_each(), onig_foreach_name(), ossl_start_ssl(), parser_here_document(), parser_heredoc_identifier(), parser_parse_string(), parser_str_new(), parser_tokadd_string(), rb_add_event_hook(), rb_add_event_hook2(), rb_add_method_cfunc(), rb_catch(), 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_dlcfunc2ptr(), rb_dlcfunc_kind_p(), rb_dlcfunc_new(), rb_dlptr_malloc(), rb_dlptr_new(), rb_dlptr_new2(), rb_exec_recursive(), rb_exec_recursive_outer(), rb_exec_recursive_paired(), rb_exec_recursive_paired_outer(), rb_fiber_new(), rb_fiddle_ptr_malloc(), rb_fiddle_ptr_new(), rb_fiddle_ptr_new2(), rb_get_values_at(), rb_glob(), rb_glob2(), rb_hash_foreach(), rb_hash_update_by(), rb_iseq_build_for_ruby2cext(), rb_iseq_line_trace_each(), rb_ivar_foreach(), rb_mutex_synchronize(), rb_num_coerce_bin(), rb_num_coerce_bit(), rb_num_coerce_cmp(), rb_num_coerce_relop(), rb_objspace_reachable_objects_from(), rb_proc_new(), rb_remove_event_hook(), rb_remove_event_hook_with_data(), rb_set_end_proc(), rb_stat_inspect(), rb_str_locktmp_ensure(), rb_thread_add_event_hook(), rb_thread_add_event_hook2(), rb_thread_blocking_region(), rb_thread_call_without_gvl(), rb_thread_call_without_gvl2(), rb_thread_io_blocking_region(), rb_thread_remove_event_hook(), rb_thread_remove_event_hook_with_data(), rb_threadptr_add_event_hook(), rb_threadptr_remove_event_hook(), rb_tracepoint_new(), rb_w32_asynchronize(), remove_event_hook(), rsock_bsock_send(), rsock_connect(), ruby_brace_expand(), ruby_brace_glob(), ruby_brace_glob0(), ruby_brace_glob_with_enc(), ruby_glob(), ruby_glob0(), ruby_vm_at_exit(), ruby_vm_run_at_exit_hooks(), set_unblock_function(), setup_method_cfunc_struct(), sig_trap(), st_foreach_safe(), tk_funcall(), tracepoint_new(), trap(), trap_handler(), ttymode(), and zstream_init().

◆ ID_callback_state

ID ID_callback_state

◆ mSSL

VALUE mSSL

Definition at line 27 of file ossl_ssl.c.

Referenced by Init_ossl_ssl(), and Init_ossl_ssl_session().

◆ name

const char* name

Definition at line 107 of file ossl_ssl.c.

Referenced by Init_ossl_ssl(), and ossl_sslctx_set_ssl_version().

◆ ossl_ssl_attr_readers

const char* ossl_ssl_attr_readers[] = { "io", "context", }
static

Definition at line 93 of file ossl_ssl.c.

Referenced by Init_ossl_ssl().

◆ ossl_ssl_attrs

const char* ossl_ssl_attrs[]
static
Initial value:
= {
"sync_close",
}

Definition at line 94 of file ossl_ssl.c.

Referenced by Init_ossl_ssl().

◆ ossl_ssl_ex_client_cert_cb_idx

int ossl_ssl_ex_client_cert_cb_idx

Definition at line 144 of file ossl_ssl.c.

Referenced by Init_ossl_ssl(), ossl_call_client_cert_cb(), and ossl_ssl_setup().

◆ ossl_ssl_ex_ptr_idx

int ossl_ssl_ex_ptr_idx

◆ ossl_ssl_ex_store_p

int ossl_ssl_ex_store_p

Definition at line 142 of file ossl_ssl.c.

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

◆ ossl_ssl_ex_tmp_dh_callback_idx

int ossl_ssl_ex_tmp_dh_callback_idx

Definition at line 145 of file ossl_ssl.c.

Referenced by Init_ossl_ssl(), ossl_call_tmp_dh_callback(), and ossl_ssl_setup().

◆ ossl_ssl_ex_vcb_idx

int ossl_ssl_ex_vcb_idx

Definition at line 141 of file ossl_ssl.c.

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

◆ ossl_ssl_method_tab

struct { ... } ossl_ssl_method_tab[]

◆ ossl_sslctx_attrs

const char* ossl_sslctx_attrs[]
static
Initial value:
= {
"cert", "key", "client_ca", "ca_file", "ca_path",
"timeout", "verify_mode", "verify_depth", "renegotiation_cb",
"verify_callback", "options", "cert_store", "extra_chain_cert",
"client_cert_cb", "tmp_dh_callback", "session_id_context",
"session_get_cb", "session_new_cb", "session_remove_cb",
}

Definition at line 64 of file ossl_ssl.c.

Referenced by ossl_sslctx_initialize().