13 SSL_SESSION_free(ptr);
17 "OpenSSL/SSL/Session",
39 SSL_SESSION *ctx =
NULL;
41 if (
RDATA(
self)->data)
49 if ((ctx = SSL_get1_session(ssl)) ==
NULL)
58 ctx = d2i_SSL_SESSION_bio(in,
NULL);
71 RDATA(
self)->data = ctx;
79 SSL_SESSION *sess, *sess_other, *sess_new;
85 sess_new = ASN1_dup((i2d_of_void *)i2d_SSL_SESSION, (d2i_of_void *)d2i_SSL_SESSION,
91 SSL_SESSION_free(sess);
96 #if !defined(HAVE_SSL_SESSION_CMP) 100 const unsigned char *a_sid = SSL_SESSION_get_id(a, &a_len);
102 const unsigned char *b_sid = SSL_SESSION_get_id(b, &b_len);
109 return CRYPTO_memcmp(a_sid, b_sid, a_len);
111 #define SSL_SESSION_cmp(a, b) ossl_SSL_SESSION_cmp(a, b) 122 SSL_SESSION *ctx1, *ctx2;
128 case 0:
return Qtrue;
146 t = SSL_SESSION_get_time(ctx);
168 t = SSL_SESSION_get_timeout(ctx);
191 SSL_SESSION_set_time(ctx, t);
208 SSL_SESSION_set_timeout(ctx, t);
221 const unsigned char *p =
NULL;
226 p = SSL_SESSION_get_id(ctx, &i);
245 len = i2d_SSL_SESSION(ctx,
NULL);
252 i2d_SSL_SESSION(ctx, &p);
270 if (!(out = BIO_new(BIO_s_mem()))) {
274 if (!PEM_write_bio_SSL_SESSION(out, ctx)) {
297 if (!(out = BIO_new(BIO_s_mem()))) {
301 if (!SSL_SESSION_print(out, ctx)) {
#define RUBY_TYPED_FREE_IMMEDIATELY
static VALUE ossl_ssl_session_initialize(VALUE self, VALUE arg1)
static VALUE ossl_ssl_session_to_text(VALUE self)
static VALUE ossl_ssl_session_get_timeout(VALUE self)
#define ossl_str_adjust(str, p)
#define TypedData_Wrap_Struct(klass, data_type, sval)
BIO * ossl_obj2bio(volatile VALUE *pobj)
VALUE rb_funcall(VALUE, ID, int,...)
Calls a method.
int ossl_SSL_SESSION_cmp(const SSL_SESSION *a, const SSL_SESSION *b)
static VALUE ossl_ssl_session_set_time(VALUE self, VALUE time_v)
VALUE rb_define_class_under(VALUE outer, const char *name, VALUE super)
Defines a class under the namespace of outer.
void rb_define_alloc_func(VALUE, rb_alloc_func_t)
static VALUE ossl_ssl_session_alloc(VALUE klass)
VALUE ossl_membio2str(BIO *bio)
#define SSL_SESSION_get_protocol_version(s)
static void ossl_ssl_session_free(void *ptr)
#define rb_define_copy_func(klass, func)
void Init_ossl_ssl_session(void)
RUBY_EXTERN VALUE rb_cObject
#define SSL_SESSION_cmp(a, b)
#define OSSL_BIO_reset(bio)
#define GetSSLSession(obj, sess)
static VALUE ossl_ssl_session_get_time(VALUE self)
static VALUE ossl_ssl_session_initialize_copy(VALUE self, VALUE other)
const rb_data_type_t ossl_ssl_session_type
static VALUE ossl_ssl_session_set_timeout(VALUE self, VALUE time_v)
register unsigned int len
VALUE rb_define_module_under(VALUE outer, const char *name)
VALUE rb_obj_is_instance_of(VALUE, VALUE)
static VALUE ossl_ssl_session_eq(VALUE val1, VALUE val2)
void ossl_raise(VALUE exc, const char *fmt,...)
#define RTYPEDDATA_DATA(v)
#define SafeGetSSLSession(obj, sess)
#define rb_check_frozen(obj)
VALUE rb_define_module(const char *name)
RUBY_EXTERN VALUE rb_cTime
static VALUE ossl_ssl_session_get_id(VALUE self)
void rb_define_method(VALUE klass, const char *name, VALUE(*func)(ANYARGS), int argc)
static VALUE ossl_ssl_session_to_pem(VALUE self)
static VALUE ossl_ssl_session_to_der(VALUE self)
VALUE rb_str_new(const char *, long)