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

Go to the source code of this file.

Data Structures

struct  dsa_blocking_gen_arg
 

Macros

#define GetPKeyDSA(obj, pkey)
 
#define GetDSA(obj, dsa)
 
#define PEM_read_bio_DSAPublicKey(bp, x, cb, u)
 
#define DSAPublicKey_dup(dsa)
 

Functions

static int DSA_HAS_PRIVATE (DSA *dsa)
 
static int DSA_PRIVATE (VALUE obj, DSA *dsa)
 
static VALUE dsa_instance (VALUE klass, DSA *dsa)
 
VALUE ossl_dsa_new (EVP_PKEY *pkey)
 
static void * dsa_blocking_gen (void *arg)
 
static DSA * dsa_generate (int size)
 
static VALUE ossl_dsa_s_generate (VALUE klass, VALUE size)
 
static VALUE ossl_dsa_initialize (int argc, VALUE *argv, VALUE self)
 
static VALUE ossl_dsa_initialize_copy (VALUE self, VALUE other)
 
static VALUE ossl_dsa_is_public (VALUE self)
 
static VALUE ossl_dsa_is_private (VALUE self)
 
static VALUE ossl_dsa_export (int argc, VALUE *argv, VALUE self)
 
static VALUE ossl_dsa_to_der (VALUE self)
 
static VALUE ossl_dsa_get_params (VALUE self)
 
static VALUE ossl_dsa_to_text (VALUE self)
 
static VALUE ossl_dsa_to_public_key (VALUE self)
 
static VALUE ossl_dsa_sign (VALUE self, VALUE data)
 
static VALUE ossl_dsa_verify (VALUE self, VALUE digest, VALUE sig)
 
void Init_ossl_dsa (void)
 

Variables

VALUE cDSA
 
VALUE eDSAError
 

Macro Definition Documentation

◆ DSAPublicKey_dup

#define DSAPublicKey_dup (   dsa)
Value:
(DSA *)ASN1_dup( \
(i2d_of_void *)i2d_DSAPublicKey, (d2i_of_void *)d2i_DSAPublicKey, (char *)(dsa))

Referenced by ossl_dsa_to_public_key().

◆ GetDSA

#define GetDSA (   obj,
  dsa 
)
Value:
do { \
EVP_PKEY *_pkey; \
GetPKeyDSA((obj), _pkey); \
(dsa) = EVP_PKEY_get0_DSA(_pkey); \
} while (0)

Definition at line 20 of file ossl_pkey_dsa.c.

Referenced by ossl_dsa_export(), ossl_dsa_get_params(), ossl_dsa_initialize_copy(), ossl_dsa_is_private(), ossl_dsa_is_public(), ossl_dsa_sign(), ossl_dsa_to_der(), ossl_dsa_to_text(), and ossl_dsa_verify().

◆ GetPKeyDSA

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

Definition at line 14 of file ossl_pkey_dsa.c.

Referenced by ossl_dsa_to_public_key().

◆ PEM_read_bio_DSAPublicKey

#define PEM_read_bio_DSAPublicKey (   bp,
  x,
  cb,
 
)
Value:
(DSA *)PEM_ASN1_read_bio( \
(d2i_of_void *)d2i_DSAPublicKey, PEM_STRING_DSA_PUBLIC, (bp), (void **)(x), (cb), (u))
#define bp()
Definition: vm_debug.h:25

Referenced by ossl_dsa_initialize().

Function Documentation

◆ dsa_blocking_gen()

static void* dsa_blocking_gen ( void *  arg)
static

◆ dsa_generate()

static DSA* dsa_generate ( int  size)
static

◆ DSA_HAS_PRIVATE()

static int DSA_HAS_PRIVATE ( DSA *  dsa)
inlinestatic

Definition at line 27 of file ossl_pkey_dsa.c.

References NULL.

Referenced by DSA_PRIVATE(), ossl_dsa_export(), and ossl_dsa_to_der().

◆ dsa_instance()

static VALUE dsa_instance ( VALUE  klass,
DSA *  dsa 
)
static

Definition at line 50 of file ossl_pkey_dsa.c.

References NewPKey, Qfalse, and SetPKey.

Referenced by ossl_dsa_new(), ossl_dsa_s_generate(), and ossl_dsa_to_public_key().

◆ DSA_PRIVATE()

static int DSA_PRIVATE ( VALUE  obj,
DSA *  dsa 
)
inlinestatic

Definition at line 35 of file ossl_pkey_dsa.c.

References DSA_HAS_PRIVATE(), and OSSL_PKEY_IS_PRIVATE.

Referenced by ossl_dsa_is_private(), and ossl_dsa_sign().

◆ Init_ossl_dsa()

void Init_ossl_dsa ( void  )

◆ ossl_dsa_export()

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

◆ ossl_dsa_get_params()

static VALUE ossl_dsa_get_params ( VALUE  self)
static

◆ ossl_dsa_initialize()

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

◆ ossl_dsa_initialize_copy()

static VALUE ossl_dsa_initialize_copy ( VALUE  self,
VALUE  other 
)
static

Definition at line 268 of file ossl_pkey_dsa.c.

References dsa_blocking_gen_arg::dsa, eDSAError, EVP_PKEY_base_id, GetDSA, GetPKey, and ossl_raise().

Referenced by Init_ossl_dsa().

◆ ossl_dsa_is_private()

static VALUE ossl_dsa_is_private ( VALUE  self)
static

Definition at line 314 of file ossl_pkey_dsa.c.

References dsa_blocking_gen_arg::dsa, DSA_PRIVATE(), GetDSA, Qfalse, and Qtrue.

Referenced by Init_ossl_dsa().

◆ ossl_dsa_is_public()

static VALUE ossl_dsa_is_public ( VALUE  self)
static

Definition at line 295 of file ossl_pkey_dsa.c.

References dsa_blocking_gen_arg::dsa, GetDSA, NULL, Qfalse, and Qtrue.

Referenced by Init_ossl_dsa().

◆ ossl_dsa_new()

VALUE ossl_dsa_new ( EVP_PKEY *  pkey)

Definition at line 72 of file ossl_pkey_dsa.c.

References cDSA, dsa_instance(), eDSAError, EVP_PKEY_base_id, NewPKey, NULL, ossl_raise(), Qfalse, rb_eTypeError, and SetPKey.

Referenced by pkey_new0().

◆ ossl_dsa_s_generate()

static VALUE ossl_dsa_s_generate ( VALUE  klass,
VALUE  size 
)
static

◆ ossl_dsa_sign()

static VALUE ossl_dsa_sign ( VALUE  self,
VALUE  data 
)
static

◆ ossl_dsa_to_der()

static VALUE ossl_dsa_to_der ( VALUE  self)
static

◆ ossl_dsa_to_public_key()

static VALUE ossl_dsa_to_public_key ( VALUE  self)
static

◆ ossl_dsa_to_text()

static VALUE ossl_dsa_to_text ( VALUE  self)
static

Definition at line 445 of file ossl_pkey_dsa.c.

References dsa_blocking_gen_arg::dsa, eDSAError, GetDSA, NULL, ossl_membio2str(), and ossl_raise().

Referenced by Init_ossl_dsa().

◆ ossl_dsa_verify()

static VALUE ossl_dsa_verify ( VALUE  self,
VALUE  digest,
VALUE  sig 
)
static

Variable Documentation

◆ cDSA

VALUE cDSA

Definition at line 43 of file ossl_pkey_dsa.c.

Referenced by Init_ossl_dsa(), and ossl_dsa_new().

◆ eDSAError

VALUE eDSAError