Ruby 3.0.5p211 (2022-11-24 revision ba5cf0f7c52d4d35cc6a173c89eda98ceffa2dcf)
Data Structures | Macros | Functions | Variables
ossl.c File Reference
#include "ossl.h"
#include <stdarg.h>
#include <ruby/thread_native.h>

Go to the source code of this file.

Data Structures

struct  CRYPTO_dynlock_value
 Stores locks needed for OpenSSL thread safety. More...
 

Macros

#define OSSL_IMPL_ARY2SK(name, type, expected_class, dup)
 
#define OSSL_IMPL_SK2ARY(name, type)
 

Functions

VALUE ossl_str_new (const char *ptr, long len, int *pstate)
 
VALUE ossl_buf2str (char *buf, int len)
 
void ossl_bin2hex (unsigned char *in, char *out, size_t inlen)
 
VALUE ossl_pem_passwd_value (VALUE pass)
 
int ossl_pem_passwd_cb (char *buf, int max_len, int flag, void *pwd_)
 
VALUE ossl_to_der (VALUE obj)
 
VALUE ossl_to_der_if_possible (VALUE obj)
 
void ossl_raise (VALUE exc, const char *fmt,...)
 
void ossl_clear_error (void)
 
VALUE ossl_get_errors (VALUE _)
 
void Init_openssl (void)
 

Variables

VALUE mOSSL
 
VALUE eOSSLError
 
VALUE dOSSL
 

Macro Definition Documentation

◆ OSSL_IMPL_ARY2SK

#define OSSL_IMPL_ARY2SK (   name,
  type,
  expected_class,
  dup 
)

Definition at line 17 of file ossl.c.

◆ OSSL_IMPL_SK2ARY

#define OSSL_IMPL_SK2ARY (   name,
  type 
)
Value:
VALUE \
ossl_##name##_sk2ary(const STACK_OF(type) *sk) \
{ \
type *t; \
int i, num; \
VALUE ary; \
\
if (!sk) { \
OSSL_Debug("empty sk!"); \
return Qnil; \
} \
num = sk_##type##_num(sk); \
if (num < 0) { \
OSSL_Debug("items in sk < -1???"); \
return rb_ary_new(); \
} \
ary = rb_ary_new2(num); \
\
for (i=0; i<num; i++) { \
t = sk_##type##_value(sk, i); \
rb_ary_push(ary, ossl_##name##_new(t)); \
} \
return ary; \
}
VALUE rb_ary_new(void)
Definition: array.c:749
big_t * num
Definition: enough.c:232
#define rb_ary_new2
Definition: array.h:72
VALUE type(ANYARGS)
ANYARGS-ed function type.
Definition: cxxanyargs.hpp:56
const char * name
Definition: nkf.c:208
STACK_OF(X509) *ossl_x509_ary2sk(VALUE)
#define Qnil
#define t
Definition: symbol.c:253
unsigned long VALUE
Definition: value.h:38

Definition at line 65 of file ossl.c.

Function Documentation

◆ Init_openssl()

void Init_openssl ( void  )

◆ ossl_bin2hex()

void ossl_bin2hex ( unsigned char *  in,
char *  out,
size_t  inlen 
)

Definition at line 133 of file ossl.c.

References assert, in(), LONG_MAX, and out.

◆ ossl_buf2str()

VALUE ossl_buf2str ( char *  buf,
int  len 
)

Definition at line 120 of file ossl.c.

References len, ossl_str_new(), rb_jump_tag(), and str.

◆ ossl_clear_error()

void ossl_clear_error ( void  )

Definition at line 304 of file ossl.c.

References dOSSL, NULL, Qtrue, and rb_warn().

◆ ossl_get_errors()

VALUE ossl_get_errors ( VALUE  _)

Definition at line 341 of file ossl.c.

References NULL, rb_ary_new(), rb_ary_push(), and rb_str_new2.

Referenced by Init_openssl().

◆ ossl_pem_passwd_cb()

int ossl_pem_passwd_cb ( char *  buf,
int  max_len,
int  flag,
void *  pwd_ 
)

◆ ossl_pem_passwd_value()

VALUE ossl_pem_passwd_value ( VALUE  pass)

Definition at line 151 of file ossl.c.

References eOSSLError, NIL_P, ossl_raise(), Qnil, RSTRING_LEN, and StringValue.

◆ ossl_raise()

void ossl_raise ( VALUE  exc,
const char *  fmt,
  ... 
)

◆ ossl_str_new()

VALUE ossl_str_new ( const char *  ptr,
long  len,
int pstate 
)

Definition at line 101 of file ossl.c.

References len, memcpy, ptr, Qnil, rb_protect(), rb_set_errinfo(), RSTRING_PTR, and str.

Referenced by ossl_buf2str(), and ossl_membio2str().

◆ ossl_to_der()

VALUE ossl_to_der ( VALUE  obj)

Definition at line 244 of file ossl.c.

References rb_funcall(), and StringValue.

Referenced by ossl_to_der_if_possible().

◆ ossl_to_der_if_possible()

VALUE ossl_to_der_if_possible ( VALUE  obj)

Definition at line 255 of file ossl.c.

References ossl_to_der(), and rb_respond_to().

Variable Documentation

◆ dOSSL

VALUE dOSSL

Definition at line 357 of file ossl.c.

Referenced by Init_openssl(), and ossl_clear_error().

◆ eOSSLError

VALUE eOSSLError

◆ mOSSL

VALUE mOSSL