Ruby 2.0.0p353(2013-11-22revision43784)

- Main Page
- Modules
- Data Structures
- Files

- File List
- Globals

Data Structures | Macros | Functions | Variables
ossl_asn1.c File Reference
`#include "ossl.h"`
Include dependency graph for ossl_asn1.c:

Go to the source code of this file.

## Data Structures
struct | timeval
struct | ossl_asn1_info_t

## Macros
#define | DO_IT_VIA_RUBY 0
#define | ossl_asn1_get_value(o) rb_attr_get((o),sivVALUE)
#define | ossl_asn1_get_tag(o) rb_attr_get((o),sivTAG)
#define | ossl_asn1_get_tagging(o) rb_attr_get((o),sivTAGGING)
#define | ossl_asn1_get_tag_class(o) rb_attr_get((o),sivTAG_CLASS)
#define | ossl_asn1_get_infinite_length(o) rb_attr_get((o),sivINFINITE_LENGTH)
#define | ossl_asn1_set_value(o, v) rb_ivar_set((o),sivVALUE,(v))
#define | ossl_asn1_set_tag(o, v) rb_ivar_set((o),sivTAG,(v))
#define | ossl_asn1_set_tagging(o, v) rb_ivar_set((o),sivTAGGING,(v))
#define | ossl_asn1_set_tag_class(o, v) rb_ivar_set((o),sivTAG_CLASS,(v))
#define | ossl_asn1_set_infinite_length(o, v) rb_ivar_set((o),sivINFINITE_LENGTH,(v))
#define | ossl_asn1_object_size(cons, len, tag) (cons) == 2 ? (len) + ASN1_object_size((cons), 0, (tag)) : ASN1_object_size((cons), (len), (tag))
#define | ossl_asn1_put_object(pp, cons, len, tag, xc) (cons) == 2 ? ASN1_put_object((pp), (cons), 0, (tag), (xc)) : ASN1_put_object((pp), (cons), (len), (tag), (xc))
#define | OSSL_ASN1_IMPL_FACTORY_METHOD(klass)
#define | OSSL_ASN1_DEFINE_CLASS(name, super)

## Functions
static VALUE | join_der (VALUE enumerable)
static VALUE | ossl_asn1_decode0 (unsigned char **pp, long length, long *offset, int depth, int yield, long *num_read)
static VALUE | ossl_asn1_initialize (int argc, VALUE *argv, VALUE self)
static VALUE | ossl_asn1eoc_initialize (VALUE self)
VALUE | asn1time_to_time (ASN1_TIME *time)
struct timeval | rb_time_timeval (VALUE)
time_t | time_to_time_t (VALUE time)
VALUE | asn1str_to_str (ASN1_STRING *str)
VALUE | asn1integer_to_num (ASN1_INTEGER *ai)
ASN1_INTEGER * | num_to_asn1integer (VALUE obj, ASN1_INTEGER *ai)
static ASN1_BOOLEAN | obj_to_asn1bool (VALUE obj)
static ASN1_INTEGER * | obj_to_asn1int (VALUE obj)
static ASN1_BIT_STRING * | obj_to_asn1bstr (VALUE obj, long unused_bits)
static ASN1_STRING * | obj_to_asn1str (VALUE obj)
static ASN1_NULL * | obj_to_asn1null (VALUE obj)
static ASN1_OBJECT * | obj_to_asn1obj (VALUE obj)
static ASN1_UTCTIME * | obj_to_asn1utime (VALUE time)
static ASN1_GENERALIZEDTIME * | obj_to_asn1gtime (VALUE time)
static ASN1_STRING * | obj_to_asn1derstr (VALUE obj)
static VALUE | decode_bool (unsigned char *der, long length)
static VALUE | decode_int (unsigned char *der, long length)
static VALUE | decode_bstr (unsigned char *der, long length, long *unused_bits)
static VALUE | decode_enum (unsigned char *der, long length)
static VALUE | decode_null (unsigned char *der, long length)
static VALUE | decode_obj (unsigned char *der, long length)
static VALUE | decode_time (unsigned char *der, long length)
static VALUE | decode_eoc (unsigned char *der, long length)
static int | ossl_asn1_default_tag (VALUE obj)
ASN1_TYPE * | ossl_asn1_get_asn1type (VALUE obj)
static int | ossl_asn1_tag (VALUE obj)
static int | ossl_asn1_is_explicit (VALUE obj)
static int | ossl_asn1_tag_class (VALUE obj)
static VALUE | ossl_asn1_class2sym (int tc)
static VALUE | ossl_asn1data_initialize (VALUE self, VALUE value, VALUE tag, VALUE tag_class)
static VALUE | join_der_i (VALUE i, VALUE str)
static VALUE | ossl_asn1data_to_der (VALUE self)
static VALUE | int_ossl_asn1_decode0_prim (unsigned char **pp, long length, long hlen, int tag, VALUE tc, long *num_read)
static VALUE | int_ossl_asn1_decode0_cons (unsigned char **pp, long max_len, long length, long *offset, int depth, int yield, int j, int tag, VALUE tc, long *num_read)
static void | int_ossl_decode_sanity_check (long len, long read, long offset)
static VALUE | ossl_asn1_traverse (VALUE self, VALUE obj)
static VALUE | ossl_asn1_decode (VALUE self, VALUE obj)
static VALUE | ossl_asn1_decode_all (VALUE self, VALUE obj)
static int | ossl_i2d_ASN1_TYPE (ASN1_TYPE *a, unsigned char **pp)
static void | ossl_ASN1_TYPE_free (ASN1_TYPE *a)
static VALUE | ossl_asn1prim_to_der (VALUE self)
static VALUE | ossl_asn1cons_to_der (VALUE self)
static VALUE | ossl_asn1cons_each (VALUE self)
static VALUE | ossl_asn1obj_s_register (VALUE self, VALUE oid, VALUE sn, VALUE ln)
static VALUE | ossl_asn1obj_get_sn (VALUE self)
static VALUE | ossl_asn1obj_get_ln (VALUE self)
static VALUE | ossl_asn1obj_get_oid (VALUE self)
void | Init_ossl_asn1 ()

## Variables
VALUE | mASN1
VALUE | eASN1Error
VALUE | cASN1Data
VALUE | cASN1Primitive
VALUE | cASN1Constructive
VALUE | cASN1EndOfContent
VALUE | cASN1Boolean
VALUE | cASN1Integer
VALUE | cASN1Enumerated
VALUE | cASN1BitString
VALUE | cASN1OctetString
VALUE | cASN1UTF8String
VALUE | cASN1NumericString
VALUE | cASN1PrintableString
VALUE | cASN1T61String
VALUE | cASN1VideotexString
VALUE | cASN1IA5String
VALUE | cASN1GraphicString
VALUE | cASN1ISO64String
VALUE | cASN1GeneralString
VALUE | cASN1UniversalString
VALUE | cASN1BMPString
VALUE | cASN1Null
VALUE | cASN1ObjectId
VALUE | cASN1UTCTime
VALUE | cASN1GeneralizedTime
VALUE | cASN1Sequence
VALUE | cASN1Set
static ID | sIMPLICIT
static ID | sEXPLICIT
static ID | sUNIVERSAL
static ID | sAPPLICATION
static ID | sCONTEXT_SPECIFIC
static ID | sPRIVATE
static ID | sivVALUE
static ID | sivTAG
static ID | sivTAG_CLASS
static ID | sivTAGGING
static ID | sivINFINITE_LENGTH
static ID | sivUNUSED_BITS
static ossl_asn1_info_t | ossl_asn1_info []
int | ossl_asn1_info_size = (sizeof(ossl_asn1_info)/sizeof(ossl_asn1_info[0]))
static VALUE | class_tag_map

## Macro Definition Documentation

#define DO_IT_VIA_RUBY 0

Definition at line 103 of file ossl_asn1.c.

#define OSSL_ASN1_DEFINE_CLASS | ( |  | name,
|  |  | super
| ) |  |

Value:
do{\
cASN1##name = rb_define_class_under(mASN1, #name, cASN1##super);\
rb_define_module_function(mASN1, #name, ossl_asn1_##name, -1);\
}while(0)
mASN1
VALUE mASN1
Definition: ossl_asn1.c:189
rb_define_class_under
VALUE rb_define_class_under(VALUE outer, const char *name, VALUE super)
Defines a class under the namespace of outer.
Definition: class.c:545
rb_define_module_function
void rb_define_module_function(VALUE module, const char *name, VALUE(*func)(ANYARGS), int argc)
Defines a module function for module.
Definition: class.c:1512
name
const char * name
Definition: nkf.c:208

Referenced by Init_ossl_asn1().

#define ossl_asn1_get_infinite_length | ( |  | o | ) | rb_attr_get((o),sivINFINITE_LENGTH)

Definition at line 181 of file ossl_asn1.c.

Referenced by ossl_asn1cons_to_der(), and ossl_asn1data_to_der().

#define ossl_asn1_get_tag | ( |  | o | ) | rb_attr_get((o),sivTAG)

Definition at line 178 of file ossl_asn1.c.

Referenced by int_ossl_asn1_decode0_cons(), ossl_asn1_tag(), ossl_asn1cons_to_der(), and ossl_asn1prim_to_der().

#define ossl_asn1_get_tag_class | ( |  | o | ) | rb_attr_get((o),sivTAG_CLASS)

Definition at line 180 of file ossl_asn1.c.

Referenced by int_ossl_asn1_decode0_cons(), and ossl_asn1_tag_class().

#define ossl_asn1_get_tagging | ( |  | o | ) | rb_attr_get((o),sivTAGGING)

Definition at line 179 of file ossl_asn1.c.

Referenced by ossl_asn1_is_explicit().

#define ossl_asn1_get_value | ( |  | o | ) | rb_attr_get((o),sivVALUE)

Definition at line 177 of file ossl_asn1.c.

Referenced by ossl_asn1_get_asn1type(), ossl_asn1cons_each(), ossl_asn1cons_to_der(), ossl_asn1data_to_der(), ossl_asn1obj_get_ln(), ossl_asn1obj_get_oid(), and ossl_asn1obj_get_sn().

#define OSSL_ASN1_IMPL_FACTORY_METHOD | ( |  | klass | ) |

Value:
static VALUE ossl_asn1_##klass(int argc, VALUE *argv, VALUE self)\
{ return rb_funcall3(cASN1##klass, rb_intern("new"), argc, argv); }
argv
VALUE * argv
Definition: tcltklib.c:1971
argc
int argc
Definition: tcltklib.c:1970
rb_funcall3
VALUE rb_funcall3(VALUE, ID, int, const VALUE *)
Calls a method.
Definition: vm_eval.c:820
klass
klass
Definition: tcltklib.c:3504
VALUE
unsigned long VALUE
Definition: ripper.y:104
rb_intern
#define rb_intern(str)

Definition at line 1415 of file ossl_asn1.c.

#define ossl_asn1_object_size | ( |  | cons,
|  |  | len,
|  |  | tag
| ) |  | (cons) == 2 ? (len) + ASN1_object_size((cons), 0, (tag)) : ASN1_object_size((cons), (len), (tag))

Definition at line 221 of file ossl_asn1.c.

Referenced by ossl_asn1cons_to_der(), ossl_asn1data_to_der(), and ossl_asn1prim_to_der().

#define ossl_asn1_put_object | ( |  | pp,
|  |  | cons,
|  |  | len,
|  |  | tag,
|  |  | xc
| ) |  | (cons) == 2 ? ASN1_put_object((pp), (cons), 0, (tag), (xc)) : ASN1_put_object((pp), (cons), (len), (tag), (xc))

Definition at line 222 of file ossl_asn1.c.

Referenced by ossl_asn1cons_to_der(), ossl_asn1data_to_der(), and ossl_asn1prim_to_der().

#define ossl_asn1_set_infinite_length | ( |  | o,
|  |  | v
| ) |  | rb_ivar_set((o),sivINFINITE_LENGTH,(v))

Definition at line 187 of file ossl_asn1.c.

Referenced by int_ossl_asn1_decode0_cons(), ossl_asn1_initialize(), ossl_asn1data_initialize(), and ossl_asn1eoc_initialize().

#define ossl_asn1_set_tag | ( |  | o,
|  |  | v
| ) |  | rb_ivar_set((o),sivTAG,(v))

Definition at line 184 of file ossl_asn1.c.

Referenced by ossl_asn1_initialize(), ossl_asn1data_initialize(), and ossl_asn1eoc_initialize().

#define ossl_asn1_set_tag_class | ( |  | o,
|  |  | v
| ) |  | rb_ivar_set((o),sivTAG_CLASS,(v))

Definition at line 186 of file ossl_asn1.c.

Referenced by ossl_asn1_initialize(), ossl_asn1data_initialize(), and ossl_asn1eoc_initialize().

#define ossl_asn1_set_tagging | ( |  | o,
|  |  | v
| ) |  | rb_ivar_set((o),sivTAGGING,(v))

Definition at line 185 of file ossl_asn1.c.

Referenced by ossl_asn1_initialize(), and ossl_asn1eoc_initialize().

#define ossl_asn1_set_value | ( |  | o,
|  |  | v
| ) |  | rb_ivar_set((o),sivVALUE,(v))

Definition at line 183 of file ossl_asn1.c.

Referenced by ossl_asn1_initialize(), ossl_asn1data_initialize(), and ossl_asn1eoc_initialize().

## Function Documentation

VALUE asn1integer_to_num | ( | ASN1_INTEGER * | ai | ) |

Definition at line 105 of file ossl_asn1.c.

References eOSSLError, NULL, ossl_bn_new(), ossl_raise(), Qtrue, rb_cstr_to_inum(), and rb_eTypeError.

Referenced by decode_enum(), decode_int(), ossl_pkcs7ri_get_serial(), ossl_pkcs7si_get_serial(), ossl_x509_get_serial(), and ossl_x509revoked_get_serial().

VALUE asn1str_to_str | ( | ASN1_STRING * | str | ) |

Definition at line 94 of file ossl_asn1.c.

References rb_str_new().

Referenced by ossl_pkcs7ri_get_enc_key().

VALUE asn1time_to_time | ( | ASN1_TIME * | time | ) |

Definition at line 32 of file ossl_asn1.c.

References argv, count, INT2NUM, memset(), ossl_raise(), Qnil, rb_cTime, rb_eTypeError, rb_funcall2(), rb_intern, and rb_warning().

Referenced by decode_time(), ossl_pkcs7si_get_signed_time(), ossl_x509_get_not_after(), ossl_x509_get_not_before(), ossl_x509crl_get_last_update(), ossl_x509crl_get_next_update(), and ossl_x509revoked_get_time().

static VALUE decode_bool | ( | unsigned char * | der,
|  | long | length
| ) |  |
| static

Definition at line 349 of file ossl_asn1.c.

References NULL, ossl_raise(), p, Qfalse, Qtrue, and val.

Referenced by int_ossl_asn1_decode0_prim().

static VALUE decode_bstr | ( | unsigned char * | der,
|  | long | length,
|  | long * | unused_bits
| ) |  |
| static

Definition at line 381 of file ossl_asn1.c.

References len, NULL, ossl_raise(), p, rb_str_new(), and ret.

Referenced by int_ossl_asn1_decode0_prim().

static VALUE decode_enum | ( | unsigned char * | der,
|  | long | length
| ) |  |
| static

Definition at line 402 of file ossl_asn1.c.

References _, asn1integer_to_num(), NULL, ossl_raise(), p, rb_jump_tag(), rb_protect(), ret, and status.

Referenced by int_ossl_asn1_decode0_prim().

static VALUE decode_eoc | ( | unsigned char * | der,
|  | long | length
| ) |  |
| static

Definition at line 483 of file ossl_asn1.c.

References NULL, ossl_raise(), and rb_str_new().

Referenced by int_ossl_asn1_decode0_prim().

static VALUE decode_int | ( | unsigned char * | der,
|  | long | length
| ) |  |
| static

Definition at line 362 of file ossl_asn1.c.

References _, asn1integer_to_num(), NULL, ossl_raise(), p, rb_jump_tag(), rb_protect(), ret, and status.

Referenced by int_ossl_asn1_decode0_prim().

static VALUE decode_null | ( | unsigned char * | der,
|  | long | length
| ) |  |
| static

Definition at line 421 of file ossl_asn1.c.

References NULL, ossl_raise(), p, and Qnil.

Referenced by int_ossl_asn1_decode0_prim().

static VALUE decode_obj | ( | unsigned char * | der,
|  | long | length
| ) |  |
| static

Definition at line 435 of file ossl_asn1.c.

References NULL, obj, ossl_membio2str(), ossl_raise(), p, rb_str_new2, and ret.

Referenced by int_ossl_asn1_decode0_prim().

static VALUE decode_time | ( | unsigned char * | der,
|  | long | length
| ) |  |
| static

Definition at line 464 of file ossl_asn1.c.

References _, asn1time_to_time(), NULL, ossl_raise(), p, rb_jump_tag(), rb_protect(), ret, status, and time.

Referenced by int_ossl_asn1_decode0_prim().

void Init_ossl_asn1 | ( | void |  | ) |

Definition at line 1444 of file ossl_asn1.c.

References ary, eOSSLError, i, INT2NUM, mOSSL, name, ossl_asn1_decode(), ossl_asn1_decode_all(), OSSL_ASN1_DEFINE_CLASS, ossl_asn1_info_size, ossl_asn1_initialize(), ossl_asn1_traverse(), ossl_asn1cons_each(), ossl_asn1cons_to_der(), ossl_asn1data_initialize(), ossl_asn1data_to_der(), ossl_asn1eoc_initialize(), ossl_asn1obj_get_ln(), ossl_asn1obj_get_oid(), ossl_asn1obj_get_sn(), ossl_asn1obj_s_register(), ossl_asn1prim_to_der(), Qtrue, rb_ary_new(), rb_ary_store(), rb_attr(), rb_cObject, rb_define_alias(), rb_define_class_under(), rb_define_const(), rb_define_method(), rb_define_module(), rb_define_module_function(), rb_define_module_under(), rb_define_singleton_method(), rb_global_variable(), rb_hash_aset(), rb_hash_new(), rb_include_module(), rb_intern, rb_mEnumerable, rb_str_new2, and rb_undef_method().

Referenced by Init_openssl().

static VALUE int_ossl_asn1_decode0_cons | ( | unsigned char ** | pp,
|  | long | max_len,
|  | long | length,
|  | long * | offset,
|  | int | depth,
|  | int | yield,
|  | int | j,
|  | int | tag,
|  | VALUE | tc,
|  | long * | num_read
| ) |  |
| static

Definition at line 868 of file ossl_asn1.c.

References args, ary, ID2SYM, INT2NUM, ossl_asn1_info_t::klass, klass, NUM2INT, ossl_asn1_decode0(), ossl_asn1_get_tag, ossl_asn1_get_tag_class, ossl_asn1_initialize(), ossl_asn1_set_infinite_length, ossl_asn1data_initialize(), ossl_raise(), Qfalse, Qnil, Qtrue, rb_ary_new(), rb_ary_push(), rb_obj_alloc(), SYM2ID, and value.

Referenced by ossl_asn1_decode0().

static VALUE int_ossl_asn1_decode0_prim | ( | unsigned char ** | pp,
|  | long | length,
|  | long | hlen,
|  | int | tag,
|  | VALUE | tc,
|  | long * | num_read
| ) |  |
| static

Definition at line 795 of file ossl_asn1.c.

References args, decode_bool(), decode_bstr(), decode_enum(), decode_eoc(), decode_int(), decode_null(), decode_obj(), decode_time(), flag, ID2SYM, INT2NUM, ossl_asn1_info_t::klass, klass, length, LONG2NUM, ossl_asn1_initialize(), ossl_asn1data_initialize(), p, Qnil, rb_ivar_set(), rb_obj_alloc(), rb_str_new(), and value.

Referenced by ossl_asn1_decode0().

static void int_ossl_decode_sanity_check | ( | long | len,
|  | long | read,
|  | long | offset
| ) |  |
| static

Definition at line 998 of file ossl_asn1.c.

References ossl_raise().

Referenced by ossl_asn1_decode(), ossl_asn1_decode_all(), and ossl_asn1_traverse().

static VALUE join_der | ( | VALUE | enumerable | ) |
| static

Definition at line 745 of file ossl_asn1.c.

References join_der_i(), rb_block_call(), rb_intern, rb_str_new(), and str.

Referenced by ossl_asn1cons_to_der(), and ossl_asn1data_to_der().

static VALUE join_der_i | ( | VALUE | i,
|  | VALUE | str
| ) |  |
| static

Definition at line 736 of file ossl_asn1.c.

References ossl_to_der_if_possible(), Qnil, rb_str_append(), and StringValue.

Referenced by join_der().

ASN1_INTEGER* num_to_asn1integer | ( | VALUE | obj,
|  | ASN1_INTEGER * | ai
| ) |  |

Definition at line 157 of file ossl_asn1.c.

References eOSSLError, GetBNPtr(), NIL_P(), NULL, ossl_raise(), and rb_eTypeError.

Referenced by obj_to_asn1int(), ossl_x509_set_serial(), and ossl_x509revoked_set_serial().

static ASN1_BOOLEAN obj_to_asn1bool | ( | VALUE | obj | ) |
| static

Definition at line 232 of file ossl_asn1.c.

References NIL_P(), ossl_raise(), rb_eTypeError, and RTEST.

Referenced by ossl_asn1_get_asn1type().

static ASN1_BIT_STRING* obj_to_asn1bstr | ( | VALUE | obj,
|  | long | unused_bits
| ) |  |
| static

Definition at line 251 of file ossl_asn1.c.

References NULL, ossl_raise(), RSTRING_LENINT, RSTRING_PTR, and StringValue.

Referenced by ossl_asn1_get_asn1type().

static ASN1_STRING* obj_to_asn1derstr | ( | VALUE | obj | ) |
| static

Definition at line 332 of file ossl_asn1.c.

References NULL, ossl_raise(), ossl_to_der(), RSTRING_LENINT, RSTRING_PTR, and str.

Referenced by ossl_asn1_get_asn1type().

static ASN1_GENERALIZEDTIME* obj_to_asn1gtime | ( | VALUE | time | ) |
| static

Definition at line 319 of file ossl_asn1.c.

References NULL, ossl_raise(), t, and time_to_time_t().

Referenced by ossl_asn1_get_asn1type().

static ASN1_INTEGER* obj_to_asn1int | ( | VALUE | obj | ) |
| static

Definition at line 245 of file ossl_asn1.c.

References NULL, and num_to_asn1integer().

Referenced by ossl_asn1_get_asn1type().

static ASN1_NULL* obj_to_asn1null | ( | VALUE | obj | ) |
| static

Definition at line 280 of file ossl_asn1.c.

References NIL_P(), NULL, and ossl_raise().

Referenced by ossl_asn1_get_asn1type().

static ASN1_OBJECT* obj_to_asn1obj | ( | VALUE | obj | ) |
| static

Definition at line 293 of file ossl_asn1.c.

References ossl_raise(), RSTRING_PTR, and StringValue.

Referenced by ossl_asn1_get_asn1type(), and ossl_asn1obj_get_oid().

static ASN1_STRING* obj_to_asn1str | ( | VALUE | obj | ) |
| static

Definition at line 267 of file ossl_asn1.c.

References NULL, ossl_raise(), RSTRING_LENINT, RSTRING_PTR, str, and StringValue.

Referenced by ossl_asn1_get_asn1type().

static ASN1_UTCTIME* obj_to_asn1utime | ( | VALUE | time | ) |
| static

Definition at line 306 of file ossl_asn1.c.

References NULL, ossl_raise(), t, and time_to_time_t().

Referenced by ossl_asn1_get_asn1type().

static VALUE ossl_asn1_class2sym | ( | int | tc | ) |
| static

Definition at line 692 of file ossl_asn1.c.

References ID2SYM.

Referenced by ossl_asn1_decode0().

static VALUE ossl_asn1_decode | ( | VALUE | self,
|  | VALUE | obj
| ) |  |
| static

Definition at line 1057 of file ossl_asn1.c.

References int_ossl_decode_sanity_check(), len, ossl_asn1_decode0(), ossl_to_der_if_possible(), p, rb_str_new4, ret, RSTRING_LEN, RSTRING_PTR, StringValue, and tmp.

Referenced by Init_ossl_asn1().

static VALUE ossl_asn1_decode0 | ( | unsigned char ** | pp,
|  | long | length,
|  | long * | offset,
|  | int | depth,
|  | int | yield,
|  | long * | num_read
| ) |  |
| static

Definition at line 935 of file ossl_asn1.c.

References arg, INT2NUM, int_ossl_asn1_decode0_cons(), int_ossl_asn1_decode0_prim(), len, LONG2NUM, NULL, ossl_asn1_class2sym(), ossl_raise(), p, Qfalse, Qtrue, rb_ary_new(), rb_ary_push(), rb_yield(), sAPPLICATION, sCONTEXT_SPECIFIC, sPRIVATE, and sUNIVERSAL.

Referenced by int_ossl_asn1_decode0_cons(), ossl_asn1_decode(), ossl_asn1_decode_all(), and ossl_asn1_traverse().

static VALUE ossl_asn1_decode_all | ( | VALUE | self,
|  | VALUE | obj
| ) |  |
| static

Definition at line 1087 of file ossl_asn1.c.

References ary, int_ossl_decode_sanity_check(), len, ossl_asn1_decode0(), ossl_to_der_if_possible(), p, rb_ary_new(), rb_ary_push(), rb_str_new4, RSTRING_LEN, RSTRING_PTR, StringValue, tmp, and val.

Referenced by Init_ossl_asn1().

static int ossl_asn1_default_tag | ( | VALUE | obj | ) |
| static

Definition at line 615 of file ossl_asn1.c.

References CLASS_OF, NUM2INT, ossl_raise(), Qnil, rb_class2name(), rb_class_superclass(), and rb_hash_lookup.

Referenced by ossl_asn1_get_asn1type(), ossl_asn1_initialize(), ossl_asn1cons_to_der(), and ossl_asn1eoc_initialize().

ASN1_TYPE* ossl_asn1_get_asn1type | ( | VALUE | obj | ) |

Definition at line 539 of file ossl_asn1.c.

References flag, memset(), NIL_P(), NULL, NUM2INT, obj_to_asn1bool(), obj_to_asn1bstr(), obj_to_asn1derstr(), obj_to_asn1gtime(), obj_to_asn1int(), obj_to_asn1null(), obj_to_asn1obj(), obj_to_asn1str(), obj_to_asn1utime(), ossl_asn1_default_tag(), ossl_asn1_get_value, ossl_raise(), ptr, rb_attr_get(), ret, value, and void.

Referenced by ossl_asn1prim_to_der(), and ossl_x509attr_set_value().

static VALUE ossl_asn1_initialize | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | self
| ) |  |
| static

Definition at line 1135 of file ossl_asn1.c.

References ID2SYM, INT2NUM, NIL_P(), NUM2INT, ossl_asn1_default_tag(), ossl_asn1_set_infinite_length, ossl_asn1_set_tag, ossl_asn1_set_tag_class, ossl_asn1_set_tagging, ossl_asn1_set_value, ossl_raise(), Qfalse, Qnil, rb_scan_args(), SYM2ID, SYMBOL_P, and value.

Referenced by Init_ossl_asn1(), int_ossl_asn1_decode0_cons(), and int_ossl_asn1_decode0_prim().

static int ossl_asn1_is_explicit | ( | VALUE | obj | ) |
| static

Definition at line 646 of file ossl_asn1.c.

References NIL_P(), ossl_asn1_get_tagging, ossl_raise(), ret, s, SYM2ID, and SYMBOL_P.

Referenced by ossl_asn1cons_to_der(), and ossl_asn1prim_to_der().

static int ossl_asn1_tag | ( | VALUE | obj | ) |
| static

Definition at line 634 of file ossl_asn1.c.

References NIL_P(), NUM2INT, ossl_asn1_get_tag, and ossl_raise().

Referenced by ossl_asn1data_to_der().

static int ossl_asn1_tag_class | ( | VALUE | obj | ) |
| static

Definition at line 667 of file ossl_asn1.c.

References NIL_P(), ossl_asn1_get_tag_class, ossl_raise(), ret, s, SYM2ID, and SYMBOL_P.

Referenced by ossl_asn1cons_to_der(), ossl_asn1data_to_der(), and ossl_asn1prim_to_der().

static VALUE ossl_asn1_traverse | ( | VALUE | self,
|  | VALUE | obj
| ) |  |
| static

Definition at line 1029 of file ossl_asn1.c.

References int_ossl_decode_sanity_check(), len, ossl_asn1_decode0(), ossl_to_der_if_possible(), p, Qnil, rb_str_new4, RSTRING_LEN, RSTRING_PTR, StringValue, and tmp.

Referenced by Init_ossl_asn1().

static void ossl_ASN1_TYPE_free | ( | ASN1_TYPE * | a | ) |
| static

Definition at line 1197 of file ossl_asn1.c.

Referenced by ossl_asn1prim_to_der().

static VALUE ossl_asn1cons_each | ( | VALUE | self | ) |
| static

Definition at line 1355 of file ossl_asn1.c.

References ossl_asn1_get_value, and rb_ary_each().

Referenced by Init_ossl_asn1().

static VALUE ossl_asn1cons_to_der | ( | VALUE | self | ) |
| static

Definition at line 1259 of file ossl_asn1.c.

References ary, ASN1_put_eoc(), CLASS_OF, join_der(), length, memcpy(), NUM2INT, ossl_asn1_default_tag(), ossl_asn1_get_infinite_length, ossl_asn1_get_tag, ossl_asn1_get_value, ossl_asn1_is_explicit(), ossl_asn1_object_size, ossl_asn1_put_object, ossl_asn1_tag_class(), ossl_raise(), ossl_str_adjust, p, Qnil, Qtrue, rb_ary_entry(), rb_cArray, rb_obj_is_kind_of(), rb_str_new(), RSTRING_LEN, RSTRING_LENINT, RSTRING_PTR, str, and value.

Referenced by Init_ossl_asn1().

static VALUE ossl_asn1data_initialize | ( | VALUE | self,
|  | VALUE | value,
|  | VALUE | tag,
|  | VALUE | tag_class
| ) |  |
| static

Definition at line 721 of file ossl_asn1.c.

References NUM2INT, ossl_asn1_set_infinite_length, ossl_asn1_set_tag, ossl_asn1_set_tag_class, ossl_asn1_set_value, ossl_raise(), Qfalse, SYM2ID, and SYMBOL_P.

Referenced by Init_ossl_asn1(), int_ossl_asn1_decode0_cons(), and int_ossl_asn1_decode0_prim().

static VALUE ossl_asn1data_to_der | ( | VALUE | self | ) |
| static

Definition at line 762 of file ossl_asn1.c.

References join_der(), length, memcpy(), NULL, ossl_asn1_get_infinite_length, ossl_asn1_get_value, ossl_asn1_object_size, ossl_asn1_put_object, ossl_asn1_tag(), ossl_asn1_tag_class(), ossl_raise(), ossl_str_adjust, p, Qtrue, rb_cArray, rb_obj_is_kind_of(), rb_str_new(), RSTRING_LEN, RSTRING_LENINT, RSTRING_PTR, StringValue, and value.

Referenced by Init_ossl_asn1().

static VALUE ossl_asn1eoc_initialize | ( | VALUE | self | ) |
| static

Definition at line 1171 of file ossl_asn1.c.

References ID2SYM, INT2NUM, ossl_asn1_default_tag(), ossl_asn1_set_infinite_length, ossl_asn1_set_tag, ossl_asn1_set_tag_class, ossl_asn1_set_tagging, ossl_asn1_set_value, Qfalse, Qnil, rb_str_new(), and value.

Referenced by Init_ossl_asn1().

static VALUE ossl_asn1obj_get_ln | ( | VALUE | self | ) |
| static

Definition at line 1388 of file ossl_asn1.c.

References ossl_asn1_get_value, Qnil, rb_str_new2, ret, StringValuePtr, and val.

Referenced by Init_ossl_asn1().

static VALUE ossl_asn1obj_get_oid | ( | VALUE | self | ) |
| static

Definition at line 1401 of file ossl_asn1.c.

References buf, obj_to_asn1obj(), ossl_asn1_get_value, rb_str_new2, and val.

Referenced by Init_ossl_asn1().

static VALUE ossl_asn1obj_get_sn | ( | VALUE | self | ) |
| static

Definition at line 1375 of file ossl_asn1.c.

References ossl_asn1_get_value, Qnil, rb_str_new2, ret, StringValuePtr, and val.

Referenced by Init_ossl_asn1().

static VALUE ossl_asn1obj_s_register | ( | VALUE | self,
|  | VALUE | oid,
|  | VALUE | sn,
|  | VALUE | ln
| ) |  |
| static

Definition at line 1362 of file ossl_asn1.c.

References NULL, ossl_raise(), Qtrue, RSTRING_PTR, and StringValue.

Referenced by Init_ossl_asn1().

static VALUE ossl_asn1prim_to_der | ( | VALUE | self | ) |
| static

Definition at line 1216 of file ossl_asn1.c.

References assert, buf, len, NULL, NUM2INT, ossl_asn1_get_asn1type(), ossl_asn1_get_tag, ossl_asn1_is_explicit(), ossl_asn1_object_size, ossl_asn1_put_object, ossl_asn1_tag_class(), ossl_ASN1_TYPE_free(), ossl_buf2str(), ossl_i2d_ASN1_TYPE(), ossl_raise(), p, rb_long2int, and str.

Referenced by Init_ossl_asn1().

static int ossl_i2d_ASN1_TYPE | ( | ASN1_TYPE * | a,
|  | unsigned char ** | pp
| ) |  |
| static

Definition at line 1186 of file ossl_asn1.c.

Referenced by ossl_asn1prim_to_der().

struct timeval rb_time_timeval | ( | VALUE |  | ) |

Definition at line 2498 of file time.c.

Referenced by rb_thread_sleep().

time_t time_to_time_t | ( | VALUE | time | ) |

Definition at line 85 of file ossl_asn1.c.

References NUM2LONG, and rb_Integer().

Referenced by obj_to_asn1gtime(), obj_to_asn1utime(), ossl_x509_set_not_after(), ossl_x509_set_not_before(), ossl_x509crl_set_last_update(), ossl_x509crl_set_next_update(), and ossl_x509revoked_set_time().

## Variable Documentation

VALUE cASN1BitString

Definition at line 199 of file ossl_asn1.c.

VALUE cASN1BMPString

Definition at line 205 of file ossl_asn1.c.

VALUE cASN1Boolean

Definition at line 197 of file ossl_asn1.c.

VALUE cASN1Constructive

Definition at line 194 of file ossl_asn1.c.

VALUE cASN1Data

Definition at line 192 of file ossl_asn1.c.

VALUE cASN1EndOfContent

Definition at line 196 of file ossl_asn1.c.

VALUE cASN1Enumerated

Definition at line 198 of file ossl_asn1.c.

VALUE cASN1GeneralizedTime

Definition at line 208 of file ossl_asn1.c.

VALUE cASN1GeneralString

Definition at line 204 of file ossl_asn1.c.

VALUE cASN1GraphicString

Definition at line 203 of file ossl_asn1.c.

VALUE cASN1IA5String

Definition at line 203 of file ossl_asn1.c.

VALUE cASN1Integer

Definition at line 198 of file ossl_asn1.c.

VALUE cASN1ISO64String

Definition at line 204 of file ossl_asn1.c.

VALUE cASN1Null

Definition at line 206 of file ossl_asn1.c.

VALUE cASN1NumericString

Definition at line 201 of file ossl_asn1.c.

VALUE cASN1ObjectId

Definition at line 207 of file ossl_asn1.c.

VALUE cASN1OctetString

Definition at line 200 of file ossl_asn1.c.

VALUE cASN1Primitive

Definition at line 193 of file ossl_asn1.c.

VALUE cASN1PrintableString

Definition at line 201 of file ossl_asn1.c.

VALUE cASN1Sequence

Definition at line 209 of file ossl_asn1.c.

VALUE cASN1Set

Definition at line 209 of file ossl_asn1.c.

VALUE cASN1T61String

Definition at line 202 of file ossl_asn1.c.

VALUE cASN1UniversalString

Definition at line 205 of file ossl_asn1.c.

VALUE cASN1UTCTime

Definition at line 208 of file ossl_asn1.c.

VALUE cASN1UTF8String

Definition at line 200 of file ossl_asn1.c.

VALUE cASN1VideotexString

Definition at line 202 of file ossl_asn1.c.

VALUE class_tag_map
| static

Definition at line 534 of file ossl_asn1.c.

VALUE eASN1Error

Definition at line 190 of file ossl_asn1.c.

Referenced by ossl_x509attr_set_value().

VALUE mASN1

Definition at line 189 of file ossl_asn1.c.

Referenced by ossl_x509attr_get_value().

ossl_asn1_info_t ossl_asn1_info[]
| static

Definition at line 498 of file ossl_asn1.c.

int ossl_asn1_info_size = (sizeof(ossl_asn1_info)/sizeof(ossl_asn1_info[0]))

Definition at line 532 of file ossl_asn1.c.

Referenced by Init_ossl_asn1().

ID sAPPLICATION
| static

Definition at line 212 of file ossl_asn1.c.

Referenced by ossl_asn1_decode0().

ID sCONTEXT_SPECIFIC
| static

Definition at line 212 of file ossl_asn1.c.

Referenced by ossl_asn1_decode0().

ID sEXPLICIT
| static

Definition at line 211 of file ossl_asn1.c.

ID sIMPLICIT
| static

Definition at line 211 of file ossl_asn1.c.

ID sivINFINITE_LENGTH
| static

Definition at line 213 of file ossl_asn1.c.

ID sivTAG
| static

Definition at line 213 of file ossl_asn1.c.

ID sivTAG_CLASS
| static

Definition at line 213 of file ossl_asn1.c.

ID sivTAGGING
| static

Definition at line 213 of file ossl_asn1.c.

ID sivUNUSED_BITS
| static

Definition at line 213 of file ossl_asn1.c.

ID sivVALUE
| static

Definition at line 213 of file ossl_asn1.c.

ID sPRIVATE
| static

Definition at line 212 of file ossl_asn1.c.

Referenced by ossl_asn1_decode0().

ID sUNIVERSAL
| static

Definition at line 212 of file ossl_asn1.c.

Referenced by ossl_asn1_decode0().