Ruby
3.1.0dev(2021-09-10revisionb76ad15ed0da636161de0243c547ee1e6fc95681)
|
Go to the documentation of this file.
12 #if !defined(OPENSSL_NO_DSA)
14 #define GetPKeyDSA(obj, pkey) do { \
15 GetPKey((obj), (pkey)); \
16 if (EVP_PKEY_base_id(pkey) != EVP_PKEY_DSA) { \
17 ossl_raise(rb_eRuntimeError, "THIS IS NOT A DSA!"); \
20 #define GetDSA(obj, dsa) do { \
22 GetPKeyDSA((obj), _pkey); \
23 (dsa) = EVP_PKEY_get0_DSA(_pkey); \
27 DSA_HAS_PRIVATE(DSA *dsa)
30 DSA_get0_key(dsa,
NULL, &bn);
35 DSA_PRIVATE(
VALUE obj, DSA *dsa)
106 if (EVP_PKEY_base_id(tmp) != EVP_PKEY_DSA)
108 OBJ_nid2sn(EVP_PKEY_base_id(tmp)));
109 dsa = EVP_PKEY_get1_DSA(tmp);
114 #define PEM_read_bio_DSAPublicKey(bp,x,cb,u) (DSA *)PEM_ASN1_read_bio( \
115 (d2i_of_void *)d2i_DSAPublicKey, PEM_STRING_DSA_PUBLIC, (bp), (void **)(x), (cb), (u))
117 #undef PEM_read_bio_DSAPublicKey
125 if (!EVP_PKEY_assign_DSA(
pkey, dsa)) {
134 ossl_dsa_initialize_copy(
VALUE self,
VALUE other)
140 if (EVP_PKEY_base_id(
pkey) != EVP_PKEY_NONE)
144 dsa_new = ASN1_dup((i2d_of_void *)i2d_DSAPrivateKey, (d2i_of_void *)d2i_DSAPrivateKey, (
char *)dsa);
148 EVP_PKEY_assign_DSA(
pkey, dsa_new);
161 ossl_dsa_is_public(
VALUE self)
167 DSA_get0_key(dsa, &bn,
NULL);
180 ossl_dsa_is_private(
VALUE self)
212 if (DSA_HAS_PRIVATE(dsa))
226 ossl_dsa_to_der(
VALUE self)
231 if (DSA_HAS_PRIVATE(dsa))
247 ossl_dsa_get_params(
VALUE self)
254 DSA_get0_pqg(dsa, &p, &q, &g);
VALUE ossl_pkey_export_traditional(int argc, VALUE *argv, VALUE self, int to_der)
#define OSSL_PKEY_BN_DEF3(_keytype, _type, _group, a1, a2, a3)
VALUE rb_define_module_under(VALUE outer, const char *name)
VALUE ossl_to_der_if_possible(VALUE obj)
VALUE ossl_pkey_export_spki(VALUE self, int to_der)
BIO * ossl_obj2bio(volatile VALUE *pobj)
#define OSSL_BIO_reset(bio)
void ossl_clear_error(void)
#define OSSL_PKEY_BN_DEF2(_keytype, _type, _group, a1, a2)
void rb_define_alias(VALUE klass, const char *name1, const char *name2)
Defines an alias of a method.
void rb_raise(VALUE exc, const char *fmt,...)
#define DEF_OSSL_PKEY_BN(class, keytype, name)
VALUE rb_cObject
Object class.
VALUE ossl_pem_passwd_value(VALUE pass)
#define GetPKey(obj, pkey)
VALUE ossl_bn_new(const BIGNUM *bn)
void ossl_raise(VALUE exc, const char *fmt,...)
int rb_scan_args(int argc, const VALUE *argv, const char *fmt,...)
#define OSSL_PKEY_IS_PRIVATE(obj)
VALUE rb_hash_aset(VALUE hash, VALUE key, VALUE val)
#define PEM_read_bio_DSAPublicKey(bp, x, cb, u)
VALUE rb_define_class_under(VALUE outer, const char *name, VALUE super)
Defines a class under the namespace of outer.
#define rb_define_method(klass, mid, func, arity)
Defines klass#mid.
EVP_PKEY * ossl_pkey_read_generic(BIO *bio, VALUE pass)