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

Go to the source code of this file.

Data Structures

struct  rsa_blocking_gen_arg
 

Macros

#define GetPKeyRSA(obj, pkey)
 
#define GetRSA(obj, rsa)
 
#define DefRSAConst(x)   rb_define_const(cRSA, #x, INT2NUM(RSA_##x))
 

Functions

static int RSA_HAS_PRIVATE (RSA *rsa)
 
static int RSA_PRIVATE (VALUE obj, RSA *rsa)
 
static VALUE rsa_instance (VALUE klass, RSA *rsa)
 
VALUE ossl_rsa_new (EVP_PKEY *pkey)
 
static void * rsa_blocking_gen (void *arg)
 
static RSA * rsa_generate (int size, unsigned long exp)
 
static VALUE ossl_rsa_s_generate (int argc, VALUE *argv, VALUE klass)
 
static VALUE ossl_rsa_initialize (int argc, VALUE *argv, VALUE self)
 
static VALUE ossl_rsa_initialize_copy (VALUE self, VALUE other)
 
static VALUE ossl_rsa_is_public (VALUE self)
 
static VALUE ossl_rsa_is_private (VALUE self)
 
static VALUE ossl_rsa_export (int argc, VALUE *argv, VALUE self)
 
static VALUE ossl_rsa_to_der (VALUE self)
 
static VALUE ossl_rsa_public_encrypt (int argc, VALUE *argv, VALUE self)
 
static VALUE ossl_rsa_public_decrypt (int argc, VALUE *argv, VALUE self)
 
static VALUE ossl_rsa_private_encrypt (int argc, VALUE *argv, VALUE self)
 
static VALUE ossl_rsa_private_decrypt (int argc, VALUE *argv, VALUE self)
 
static VALUE ossl_rsa_get_params (VALUE self)
 
static VALUE ossl_rsa_to_text (VALUE self)
 
static VALUE ossl_rsa_to_public_key (VALUE self)
 
void Init_ossl_rsa (void)
 

Variables

VALUE cRSA
 
VALUE eRSAError
 

Macro Definition Documentation

◆ DefRSAConst

#define DefRSAConst (   x)    rb_define_const(cRSA, #x, INT2NUM(RSA_##x))

Definition at line 687 of file ossl_pkey_rsa.c.

Referenced by Init_ossl_rsa().

◆ GetPKeyRSA

#define GetPKeyRSA (   obj,
  pkey 
)
Value:
do { \
GetPKey((obj), (pkey)); \
if (EVP_PKEY_base_id(pkey) != EVP_PKEY_RSA) { /* PARANOIA? */ \
ossl_raise(rb_eRuntimeError, "THIS IS NOT A RSA!") ; \
} \
} while (0)
VALUE rb_eRuntimeError
Definition: error.c:761
#define EVP_PKEY_base_id(pkey)

Definition at line 14 of file ossl_pkey_rsa.c.

Referenced by ossl_rsa_to_public_key().

◆ GetRSA

#define GetRSA (   obj,
  rsa 
)
Value:
do { \
EVP_PKEY *_pkey; \
GetPKeyRSA((obj), _pkey); \
(rsa) = EVP_PKEY_get0_RSA(_pkey); \
} while (0)

Definition at line 20 of file ossl_pkey_rsa.c.

Referenced by ossl_rsa_export(), ossl_rsa_get_params(), ossl_rsa_initialize_copy(), ossl_rsa_is_private(), ossl_rsa_is_public(), ossl_rsa_private_decrypt(), ossl_rsa_private_encrypt(), ossl_rsa_public_decrypt(), ossl_rsa_public_encrypt(), ossl_rsa_to_der(), and ossl_rsa_to_text().

Function Documentation

◆ Init_ossl_rsa()

void Init_ossl_rsa ( void  )

◆ ossl_rsa_export()

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

◆ ossl_rsa_get_params()

static VALUE ossl_rsa_get_params ( VALUE  self)
static

◆ ossl_rsa_initialize()

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

◆ ossl_rsa_initialize_copy()

static VALUE ossl_rsa_initialize_copy ( VALUE  self,
VALUE  other 
)
static

Definition at line 275 of file ossl_pkey_rsa.c.

References eRSAError, EVP_PKEY_base_id, GetPKey, GetRSA, ossl_raise(), and rsa_blocking_gen_arg::rsa.

Referenced by Init_ossl_rsa().

◆ ossl_rsa_is_private()

static VALUE ossl_rsa_is_private ( VALUE  self)
static

Definition at line 321 of file ossl_pkey_rsa.c.

References GetRSA, Qfalse, Qtrue, rsa_blocking_gen_arg::rsa, and RSA_PRIVATE().

Referenced by Init_ossl_rsa().

◆ ossl_rsa_is_public()

static VALUE ossl_rsa_is_public ( VALUE  self)
static

Definition at line 302 of file ossl_pkey_rsa.c.

References GetRSA, Qtrue, and rsa_blocking_gen_arg::rsa.

Referenced by Init_ossl_rsa().

◆ ossl_rsa_new()

VALUE ossl_rsa_new ( EVP_PKEY *  pkey)

Definition at line 73 of file ossl_pkey_rsa.c.

References cRSA, eRSAError, EVP_PKEY_base_id, NewPKey, NULL, ossl_raise(), Qfalse, rb_eTypeError, rsa_instance(), and SetPKey.

Referenced by pkey_new0().

◆ ossl_rsa_private_decrypt()

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

◆ ossl_rsa_private_encrypt()

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

◆ ossl_rsa_public_decrypt()

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

◆ ossl_rsa_public_encrypt()

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

◆ ossl_rsa_s_generate()

static VALUE ossl_rsa_s_generate ( int  argc,
VALUE argv,
VALUE  klass 
)
static

◆ ossl_rsa_to_der()

static VALUE ossl_rsa_to_der ( VALUE  self)
static

◆ ossl_rsa_to_public_key()

static VALUE ossl_rsa_to_public_key ( VALUE  self)
static

◆ ossl_rsa_to_text()

static VALUE ossl_rsa_to_text ( VALUE  self)
static

Definition at line 586 of file ossl_pkey_rsa.c.

References eRSAError, GetRSA, NULL, ossl_membio2str(), ossl_raise(), and rsa_blocking_gen_arg::rsa.

Referenced by Init_ossl_rsa().

◆ rsa_blocking_gen()

static void* rsa_blocking_gen ( void *  arg)
static

◆ rsa_generate()

static RSA* rsa_generate ( int  size,
unsigned long  exp 
)
static

◆ RSA_HAS_PRIVATE()

static int RSA_HAS_PRIVATE ( RSA *  rsa)
inlinestatic

Definition at line 27 of file ossl_pkey_rsa.c.

Referenced by ossl_rsa_export(), ossl_rsa_to_der(), and RSA_PRIVATE().

◆ rsa_instance()

static VALUE rsa_instance ( VALUE  klass,
RSA *  rsa 
)
static

Definition at line 51 of file ossl_pkey_rsa.c.

References NewPKey, Qfalse, and SetPKey.

Referenced by ossl_rsa_new(), ossl_rsa_s_generate(), and ossl_rsa_to_public_key().

◆ RSA_PRIVATE()

static int RSA_PRIVATE ( VALUE  obj,
RSA *  rsa 
)
inlinestatic

Variable Documentation

◆ cRSA

VALUE cRSA

Definition at line 44 of file ossl_pkey_rsa.c.

Referenced by Init_ossl_rsa(), and ossl_rsa_new().

◆ eRSAError

VALUE eRSAError