Ruby  2.7.2p137(2020-10-01revision5445e0435260b449decf2ac16f9d09bae3cafe72)
Data Structures | Macros | Enumerations | Functions | Variables
ossl_asn1.c File Reference
#include "ossl.h"

Go to the source code of this file.

Data Structures

struct  ossl_asn1_info_t
 

Macros

#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_indefinite_length(o)   rb_attr_get((o),sivINDEFINITE_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_indefinite_length(o, v)   rb_ivar_set((o),sivINDEFINITE_LENGTH,(v))
 
#define OSSL_ASN1_IMPL_FACTORY_METHOD(klass)
 
#define OSSL_ASN1_DEFINE_CLASS(name, super)
 

Enumerations

enum  {
  DBL_BIGDIG = ((DBL_MANT_DIG + BITSPERDIG) / BITSPERDIG), COROUTINE_REGISTERS = 6, COROUTINE_REGISTERS = 8, COROUTINE_REGISTERS = 0xb0 / 8,
  COROUTINE_REGISTERS, COROUTINE_REGISTERS = 4, COROUTINE_REGISTERS = 8, COROUTINE_XMM_REGISTERS = 1+10*2,
  COROUTINE_REGISTERS = 4, NAME_ERR_MESG__MESG, NAME_ERR_MESG__RECV, NAME_ERR_MESG__NAME,
  NAME_ERR_MESG_COUNT, raise_opt_cause, raise_max_opt, RAISED_EXCEPTION = 1,
  RAISED_STACKOVERFLOW = 2, RAISED_NOMEMORY = 4, DECIMAL_SIZE_OF_LONG = DECIMAL_SIZE_OF_BITS(CHAR_BIT*sizeof(long)), JISX0301_DATE_SIZE = DECIMAL_SIZE_OF_LONG+8,
  FLAG_RETURNS_128BITS = 1 << (31-31), FLAG_RETURNS_NOTHING = 1 << (31-30), FLAG_RETURNS_FP = 1 << (31-29), FLAG_RETURNS_64BITS = 1 << (31-28),
  FLAG_RETURNS_STRUCT = 1 << (31-27), FLAG_ARG_NEEDS_COPY = 1 << (31- 7), FLAG_FP_ARGUMENTS = 1 << (31- 6), FLAG_4_GPR_ARGUMENTS = 1 << (31- 5),
  FLAG_RETVAL_REFERENCE = 1 << (31- 4), FLAG_RETURNS_SMST = 1 << (31-31), FLAG_RETURNS_NOTHING = 1 << (31-30), FLAG_RETURNS_FP = 1 << (31-29),
  FLAG_RETURNS_64BITS = 1 << (31-28), FLAG_RETURNS_128BITS = 1 << (31-27), FLAG_COMPAT = 1 << (31- 8), FLAG_ARG_NEEDS_COPY = 1 << (31- 7),
  FLAG_ARG_NEEDS_PSAVE = FLAG_ARG_NEEDS_COPY, FLAG_FP_ARGUMENTS = 1 << (31- 6), FLAG_4_GPR_ARGUMENTS = 1 << (31- 5), FLAG_RETVAL_REFERENCE = 1 << (31- 4),
  JSON_object_start = 1, ossl_asn1_info_size = (sizeof(ossl_asn1_info)/sizeof(ossl_asn1_info[0])), tIGNORED_NL = tLAST_TOKEN + 1, tCOMMENT,
  tEMBDOC_BEG, tEMBDOC, tEMBDOC_END, tHEREDOC_BEG,
  tHEREDOC_END, k__END__, ORDINAL_PARAM = -1, NO_PARAM = 0,
  NUMPARAM_MAX = 9, BITS_SIZE = sizeof(bits_t), BITS_BITLENGTH = ( BITS_SIZE * CHAR_BIT ), RSTRUCT_EMBED_LEN_MAX = RVALUE_EMBED_LEN_MAX,
  RSTRUCT_EMBED_LEN_MASK = (RUBY_FL_USER2|RUBY_FL_USER1), RSTRUCT_EMBED_LEN_SHIFT = (RUBY_FL_USHIFT+1), RSTRUCT_TRANSIENT_FLAG = FL_USER3, RSTRUCT_ENUM_END,
  bom_prefix_len = (int)sizeof(bom_prefix) - 1, MT_MAX_STATE = N, PCH_NOT_READY, PCH_FAILED,
  PCH_SUCCESS, ORDINAL_PARAM = -1, NO_PARAM = 0, NUMPARAM_MAX = 9,
  COMPILATION_FEATURES, DEFAULT_FEATURES, LONGEST_SIGNAME = 7, LEFT,
  CHCASE, LOWER, UPPER, AREF_HASH_UNIT = 5,
  AREF_HASH_THRESHOLD = 10, TMOPT_IN, TMOPT_MAX_, CALLER_BINDING_SELF,
  CALLER_BINDING_CLASS, CALLER_BINDING_BINDING, CALLER_BINDING_ISEQ, CALLER_BINDING_CFP,
  VM_FRAME_MAGIC_METHOD = 0x11110001, VM_FRAME_MAGIC_BLOCK = 0x22220001, VM_FRAME_MAGIC_CLASS = 0x33330001, VM_FRAME_MAGIC_TOP = 0x44440001,
  VM_FRAME_MAGIC_CFUNC = 0x55550001, VM_FRAME_MAGIC_IFUNC = 0x66660001, VM_FRAME_MAGIC_EVAL = 0x77770001, VM_FRAME_MAGIC_RESCUE = 0x78880001,
  VM_FRAME_MAGIC_DUMMY = 0x79990001, VM_FRAME_MAGIC_MASK = 0x7fff0001, VM_FRAME_FLAG_PASSED = 0x0010, VM_FRAME_FLAG_FINISH = 0x0020,
  VM_FRAME_FLAG_BMETHOD = 0x0040, VM_FRAME_FLAG_CFRAME = 0x0080, VM_FRAME_FLAG_LAMBDA = 0x0100, VM_FRAME_FLAG_MODIFIED_BLOCK_PARAM = 0x0200,
  VM_FRAME_FLAG_CFRAME_KW = 0x0400, VM_FRAME_FLAG_CFRAME_EMPTY_KW = 0x0800, VM_ENV_FLAG_LOCAL = 0x0002, VM_ENV_FLAG_ESCAPED = 0x0004,
  VM_ENV_FLAG_WB_REQUIRED = 0x0008, MINIMUM_REPARSE_BUFFER_PATH_LEN = 4, SI_USER = 0, SI_ASYNCIO = 2,
  SI_MESGQ, SI_TIMER, SI_QUEUE, SI_KERNEL,
  ILL_ILLOPC = 7, ILL_ILLOPN, ILL_ILLADR, ILL_ILLTRP,
  ILL_PRVOPC, ILL_PRVREG, ILL_COPROC, ILL_BADSTK,
  FPE_INTDIV = 15, FPE_INTOVF, FPE_FLTDIV, FPE_FLTOVF,
  FPE_FLTUND, FPE_FLTRES, FPE_FLTINV, FPE_FLTSUB,
  SEGV_MAPERR = 23, SEGV_ACCERR, BUS_ADRALN = 25, BUS_ADRERR,
  BUS_OBJERR, CLD_EXITED = 28, CLD_KILLED, CLD_DUMPED,
  CLD_TRAPPED, CLD_STOPPED, CLD_CONTINUED
}
 

Functions

VALUE asn1time_to_time (const ASN1_TIME *time)
 
void ossl_time_split (VALUE time, time_t *sec, int *days)
 
VALUE asn1str_to_str (const ASN1_STRING *str)
 
VALUE asn1integer_to_num (const ASN1_INTEGER *ai)
 
ASN1_INTEGER * num_to_asn1integer (VALUE obj, ASN1_INTEGER *ai)
 
ASN1_TYPE * ossl_asn1_get_asn1type (VALUE obj)
 
void Init_ossl_asn1 (void)
 

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
 

Macro Definition Documentation

◆ OSSL_ASN1_DEFINE_CLASS

#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)

◆ ossl_asn1_get_indefinite_length

#define ossl_asn1_get_indefinite_length (   o)    rb_attr_get((o),sivINDEFINITE_LENGTH)

Definition at line 147 of file ossl_asn1.c.

◆ ossl_asn1_get_tag

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

Definition at line 144 of file ossl_asn1.c.

◆ ossl_asn1_get_tag_class

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

Definition at line 146 of file ossl_asn1.c.

◆ ossl_asn1_get_tagging

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

Definition at line 145 of file ossl_asn1.c.

◆ ossl_asn1_get_value

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

Definition at line 143 of file ossl_asn1.c.

◆ OSSL_ASN1_IMPL_FACTORY_METHOD

#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); }

Definition at line 1332 of file ossl_asn1.c.

◆ ossl_asn1_set_indefinite_length

#define ossl_asn1_set_indefinite_length (   o,
  v 
)    rb_ivar_set((o),sivINDEFINITE_LENGTH,(v))

Definition at line 153 of file ossl_asn1.c.

◆ ossl_asn1_set_tag

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

Definition at line 150 of file ossl_asn1.c.

◆ ossl_asn1_set_tag_class

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

Definition at line 152 of file ossl_asn1.c.

◆ ossl_asn1_set_tagging

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

Definition at line 151 of file ossl_asn1.c.

◆ ossl_asn1_set_value

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

Definition at line 149 of file ossl_asn1.c.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
DBL_BIGDIG 
COROUTINE_REGISTERS 
COROUTINE_REGISTERS 
COROUTINE_REGISTERS 
COROUTINE_REGISTERS 
COROUTINE_REGISTERS 
COROUTINE_REGISTERS 
COROUTINE_XMM_REGISTERS 
COROUTINE_REGISTERS 
NAME_ERR_MESG__MESG 
NAME_ERR_MESG__RECV 
NAME_ERR_MESG__NAME 
NAME_ERR_MESG_COUNT 
raise_opt_cause 
raise_max_opt 
RAISED_EXCEPTION 
RAISED_STACKOVERFLOW 
RAISED_NOMEMORY 
DECIMAL_SIZE_OF_LONG 
JISX0301_DATE_SIZE 
FLAG_RETURNS_128BITS 
FLAG_RETURNS_NOTHING 
FLAG_RETURNS_FP 
FLAG_RETURNS_64BITS 
FLAG_RETURNS_STRUCT 
FLAG_ARG_NEEDS_COPY 
FLAG_FP_ARGUMENTS 
FLAG_4_GPR_ARGUMENTS 
FLAG_RETVAL_REFERENCE 
FLAG_RETURNS_SMST 
FLAG_RETURNS_NOTHING 
FLAG_RETURNS_FP 
FLAG_RETURNS_64BITS 
FLAG_RETURNS_128BITS 
FLAG_COMPAT 
FLAG_ARG_NEEDS_COPY 
FLAG_ARG_NEEDS_PSAVE 
FLAG_FP_ARGUMENTS 
FLAG_4_GPR_ARGUMENTS 
FLAG_RETVAL_REFERENCE 
JSON_object_start 
ossl_asn1_info_size 
tIGNORED_NL 
tCOMMENT 
tEMBDOC_BEG 
tEMBDOC 
tEMBDOC_END 
tHEREDOC_BEG 
tHEREDOC_END 
k__END__ 
ORDINAL_PARAM 
NO_PARAM 
NUMPARAM_MAX 
BITS_SIZE 
BITS_BITLENGTH 
RSTRUCT_EMBED_LEN_MAX 
RSTRUCT_EMBED_LEN_MASK 
RSTRUCT_EMBED_LEN_SHIFT 
RSTRUCT_TRANSIENT_FLAG 
RSTRUCT_ENUM_END 
bom_prefix_len 
MT_MAX_STATE 
PCH_NOT_READY 
PCH_FAILED 
PCH_SUCCESS 
ORDINAL_PARAM 
NO_PARAM 
NUMPARAM_MAX 
COMPILATION_FEATURES 
DEFAULT_FEATURES 
LONGEST_SIGNAME 
LEFT 
CHCASE 
LOWER 
UPPER 
AREF_HASH_UNIT 
AREF_HASH_THRESHOLD 
TMOPT_IN 
TMOPT_MAX_ 
CALLER_BINDING_SELF 
CALLER_BINDING_CLASS 
CALLER_BINDING_BINDING 
CALLER_BINDING_ISEQ 
CALLER_BINDING_CFP 
VM_FRAME_MAGIC_METHOD 
VM_FRAME_MAGIC_BLOCK 
VM_FRAME_MAGIC_CLASS 
VM_FRAME_MAGIC_TOP 
VM_FRAME_MAGIC_CFUNC 
VM_FRAME_MAGIC_IFUNC 
VM_FRAME_MAGIC_EVAL 
VM_FRAME_MAGIC_RESCUE 
VM_FRAME_MAGIC_DUMMY 
VM_FRAME_MAGIC_MASK 
VM_FRAME_FLAG_PASSED 
VM_FRAME_FLAG_FINISH 
VM_FRAME_FLAG_BMETHOD 
VM_FRAME_FLAG_CFRAME 
VM_FRAME_FLAG_LAMBDA 
VM_FRAME_FLAG_MODIFIED_BLOCK_PARAM 
VM_FRAME_FLAG_CFRAME_KW 
VM_FRAME_FLAG_CFRAME_EMPTY_KW 
VM_ENV_FLAG_LOCAL 
VM_ENV_FLAG_ESCAPED 
VM_ENV_FLAG_WB_REQUIRED 
MINIMUM_REPARSE_BUFFER_PATH_LEN 
SI_USER 
SI_ASYNCIO 
SI_MESGQ 
SI_TIMER 
SI_QUEUE 
SI_KERNEL 
ILL_ILLOPC 
ILL_ILLOPN 
ILL_ILLADR 
ILL_ILLTRP 
ILL_PRVOPC 
ILL_PRVREG 
ILL_COPROC 
ILL_BADSTK 
FPE_INTDIV 
FPE_INTOVF 
FPE_FLTDIV 
FPE_FLTOVF 
FPE_FLTUND 
FPE_FLTRES 
FPE_FLTINV 
FPE_FLTSUB 
SEGV_MAPERR 
SEGV_ACCERR 
BUS_ADRALN 
BUS_ADRERR 
BUS_OBJERR 
CLD_EXITED 
CLD_KILLED 
CLD_DUMPED 
CLD_TRAPPED 
CLD_STOPPED 
CLD_CONTINUED 

Definition at line 488 of file ossl_asn1.c.

Function Documentation

◆ asn1integer_to_num()

VALUE asn1integer_to_num ( const ASN1_INTEGER *  ai)

Definition at line 101 of file ossl_asn1.c.

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

◆ asn1str_to_str()

VALUE asn1str_to_str ( const ASN1_STRING *  str)

Definition at line 92 of file ossl_asn1.c.

References rb_str_new, and str.

◆ asn1time_to_time()

VALUE asn1time_to_time ( const ASN1_TIME *  time)

◆ Init_ossl_asn1()

void Init_ossl_asn1 ( void  )

◆ num_to_asn1integer()

ASN1_INTEGER* num_to_asn1integer ( VALUE  obj,
ASN1_INTEGER *  ai 
)

Definition at line 124 of file ossl_asn1.c.

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

◆ ossl_asn1_get_asn1type()

ASN1_TYPE* ossl_asn1_get_asn1type ( VALUE  obj)

Definition at line 495 of file ossl_asn1.c.

References ptr, and void.

◆ ossl_time_split()

void ossl_time_split ( VALUE  time,
time_t sec,
int days 
)

Definition at line 73 of file ossl_asn1.c.

References FIX2LONG, FIXNUM_P, INT2FIX, NUM2INT, NUM2TIMET, rb_funcall, rb_Integer(), rb_intern, rb_long2int, and time().

Referenced by ossl_x509_time_adjust().

Variable Documentation

◆ cASN1BitString

VALUE cASN1BitString

Definition at line 165 of file ossl_asn1.c.

◆ cASN1BMPString

VALUE cASN1BMPString

Definition at line 171 of file ossl_asn1.c.

◆ cASN1Boolean

VALUE cASN1Boolean

Definition at line 163 of file ossl_asn1.c.

◆ cASN1Constructive

VALUE cASN1Constructive

Definition at line 160 of file ossl_asn1.c.

◆ cASN1Data

VALUE cASN1Data

Definition at line 158 of file ossl_asn1.c.

◆ cASN1EndOfContent

VALUE cASN1EndOfContent

Definition at line 162 of file ossl_asn1.c.

◆ cASN1Enumerated

VALUE cASN1Enumerated

Definition at line 164 of file ossl_asn1.c.

◆ cASN1GeneralizedTime

VALUE cASN1GeneralizedTime

Definition at line 174 of file ossl_asn1.c.

◆ cASN1GeneralString

VALUE cASN1GeneralString

Definition at line 170 of file ossl_asn1.c.

◆ cASN1GraphicString

VALUE cASN1GraphicString

Definition at line 169 of file ossl_asn1.c.

◆ cASN1IA5String

VALUE cASN1IA5String

Definition at line 169 of file ossl_asn1.c.

◆ cASN1Integer

VALUE cASN1Integer

Definition at line 164 of file ossl_asn1.c.

◆ cASN1ISO64String

VALUE cASN1ISO64String

Definition at line 170 of file ossl_asn1.c.

◆ cASN1Null

VALUE cASN1Null

Definition at line 172 of file ossl_asn1.c.

◆ cASN1NumericString

VALUE cASN1NumericString

Definition at line 167 of file ossl_asn1.c.

◆ cASN1ObjectId

VALUE cASN1ObjectId

Definition at line 173 of file ossl_asn1.c.

◆ cASN1OctetString

VALUE cASN1OctetString

Definition at line 166 of file ossl_asn1.c.

◆ cASN1Primitive

VALUE cASN1Primitive

Definition at line 159 of file ossl_asn1.c.

◆ cASN1PrintableString

VALUE cASN1PrintableString

Definition at line 167 of file ossl_asn1.c.

◆ cASN1Sequence

VALUE cASN1Sequence

Definition at line 175 of file ossl_asn1.c.

◆ cASN1Set

VALUE cASN1Set

Definition at line 175 of file ossl_asn1.c.

◆ cASN1T61String

VALUE cASN1T61String

Definition at line 168 of file ossl_asn1.c.

◆ cASN1UniversalString

VALUE cASN1UniversalString

Definition at line 171 of file ossl_asn1.c.

◆ cASN1UTCTime

VALUE cASN1UTCTime

Definition at line 174 of file ossl_asn1.c.

◆ cASN1UTF8String

VALUE cASN1UTF8String

Definition at line 166 of file ossl_asn1.c.

◆ cASN1VideotexString

VALUE cASN1VideotexString

Definition at line 168 of file ossl_asn1.c.

◆ eASN1Error

VALUE eASN1Error

Definition at line 156 of file ossl_asn1.c.

◆ mASN1

VALUE mASN1

Definition at line 155 of file ossl_asn1.c.

VALUE
unsigned long VALUE
Definition: ruby.h:102
rb_intern
#define rb_intern(str)
klass
VALUE klass
Definition: rb_mjit_min_header-2.7.2.h:13302
argv
char ** argv
Definition: ruby.c:223
argc
int argc
Definition: ruby.c:222
rb_funcall3
#define rb_funcall3
Definition: ruby.h:1896
mASN1
VALUE mASN1
Definition: ossl_asn1.c:155
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:698
name
const char * name
Definition: nkf.c:208