13
13
#define WrapX509Ext(klass, obj, ext) do { \
15
15
ossl_raise(rb_eRuntimeError, "EXT wasn't initialized!"); \
17
obj = Data_Wrap_Struct(klass, 0, X509_EXTENSION_free, ext); \
17
(obj) = Data_Wrap_Struct((klass), 0, X509_EXTENSION_free, (ext)); \
19
19
#define GetX509Ext(obj, ext) do { \
20
Data_Get_Struct(obj, X509_EXTENSION, ext); \
20
Data_Get_Struct((obj), X509_EXTENSION, (ext)); \
22
22
ossl_raise(rb_eRuntimeError, "EXT wasn't initialized!"); \
25
25
#define SafeGetX509Ext(obj, ext) do { \
26
OSSL_Check_Kind(obj, cX509Ext); \
27
GetX509Ext(obj, ext); \
26
OSSL_Check_Kind((obj), cX509Ext); \
27
GetX509Ext((obj), (ext)); \
29
29
#define MakeX509ExtFactory(klass, obj, ctx) do { \
30
if (!(ctx = OPENSSL_malloc(sizeof(X509V3_CTX)))) \
30
if (!((ctx) = OPENSSL_malloc(sizeof(X509V3_CTX)))) \
31
31
ossl_raise(rb_eRuntimeError, "CTX wasn't allocated!"); \
32
X509V3_set_ctx(ctx, NULL, NULL, NULL, NULL, 0); \
33
obj = Data_Wrap_Struct(klass, 0, ossl_x509extfactory_free, ctx); \
32
X509V3_set_ctx((ctx), NULL, NULL, NULL, NULL, 0); \
33
(obj) = Data_Wrap_Struct((klass), 0, ossl_x509extfactory_free, (ctx)); \
35
35
#define GetX509ExtFactory(obj, ctx) do { \
36
Data_Get_Struct(obj, X509V3_CTX, ctx); \
36
Data_Get_Struct((obj), X509V3_CTX, (ctx)); \
38
38
ossl_raise(rb_eRuntimeError, "CTX wasn't initialized!"); \
275
* OpenSSL::X509::Extension.new asn1
276
* OpenSSL::X509::Extension.new name, value
277
* OpenSSL::X509::Extension.new name, value, critical
279
* Creates an X509 extension.
281
* The extension may be created from +asn1+ data or from an extension +name+
282
* and +value+. The +name+ may be either an OID or an extension name. If
283
* +critical+ is true the extension is marked critical.
274
286
ossl_x509ext_initialize(int argc, VALUE *argv, VALUE self)
329
341
ossl_raise(eX509ExtError, NULL);
331
if(!M_ASN1_OCTET_STRING_set(asn1s, s, RSTRING_LEN(data))){
343
if(!M_ASN1_OCTET_STRING_set(asn1s, s, RSTRING_LENINT(data))){
333
345
ASN1_OCTET_STRING_free(asn1s);
334
346
ossl_raise(eX509ExtError, NULL);