13 #define WrapX509Name(klass, obj, name) do { \ 15 ossl_raise(rb_eRuntimeError, "Name wasn't initialized."); \ 17 (obj) = Data_Wrap_Struct((klass), 0, X509_NAME_free, (name)); \ 19 #define GetX509Name(obj, name) do { \ 20 Data_Get_Struct((obj), X509_NAME, (name)); \ 22 ossl_raise(rb_eRuntimeError, "Name wasn't initialized."); \ 25 #define SafeGetX509Name(obj, name) do { \ 26 OSSL_Check_Kind((obj), cX509Name); \ 27 GetX509Name((obj), (name)); \ 30 #define OBJECT_TYPE_TEMPLATE \ 31 rb_const_get(cX509Name, rb_intern("OBJECT_TYPE_TEMPLATE")) 32 #define DEFAULT_OBJECT_TYPE \ 33 rb_const_get(cX509Name, rb_intern("DEFAULT_OBJECT_TYPE")) 51 new = X509_NAME_new();
53 new = X509_NAME_dup(
name);
82 if (!(
name = X509_NAME_new())) {
92 #define rb_aref(obj, key) rb_funcall((obj), id_aref, 1, (key)) 105 if(
NIL_P(entry[2])) entry[2] =
rb_aref(
template, entry[0]);
151 const unsigned char *
p;
239 if (!(out = BIO_new(BIO_s_mem())))
242 if (!X509_NAME_print_ex(out,
name, 0, iflag)){
262 X509_NAME_ENTRY *entry;
265 const char *short_name;
266 VALUE ary, vname, ret;
269 entries = X509_NAME_entry_count(
name);
275 for (
i=0;
i<entries;
i++) {
276 if (!(entry = X509_NAME_get_entry(
name,
i))) {
279 if (!i2t_ASN1_OBJECT(long_name,
sizeof(long_name), entry->object)) {
282 nid = OBJ_ln2nid(long_name);
283 if (nid == NID_undef) {
286 short_name = OBJ_nid2sn(nid);
291 rb_str_new((
const char *)entry->value->data, entry->value->length),
301 X509_NAME *name1, *name2;
306 return X509_NAME_cmp(name1, name2);
366 #ifdef HAVE_X509_NAME_HASH_OLD 374 ossl_x509name_hash_old(
VALUE self)
402 if((len = i2d_X509_NAME(
name,
NULL)) <= 0)
406 if(i2d_X509_NAME(
name, &
p) <= 0)
447 #ifdef HAVE_X509_NAME_HASH_OLD 452 utf8str =
INT2NUM(V_ASN1_UTF8STRING);
453 ptrstr =
INT2NUM(V_ASN1_PRINTABLESTRING);
454 ia5str =
INT2NUM(V_ASN1_IA5STRING);
VALUE rb_ary_entry(VALUE ary, long offset)
#define GetX509Name(obj, name)
#define ossl_str_adjust(str, p)
static VALUE ossl_x509name_alloc(VALUE klass)
void Init_ossl_x509name()
static VALUE ossl_x509name_init_i(VALUE i, VALUE args)
VALUE rb_ary_push(VALUE ary, VALUE item)
#define DEFAULT_OBJECT_TYPE
static int ossl_x509name_cmp0(VALUE self, VALUE other)
VALUE rb_define_class_under(VALUE outer, const char *name, VALUE super)
Defines a class under the namespace of outer.
void rb_define_alloc_func(VALUE, rb_alloc_func_t)
VALUE rb_ary_new3(long n,...)
static VALUE ossl_x509name_to_s_old(VALUE self)
void rb_include_module(VALUE klass, VALUE module)
#define SafeGetX509Name(obj, name)
VALUE rb_block_call(VALUE, ID, int, VALUE *, VALUE(*)(ANYARGS), VALUE)
VALUE ossl_membio2str(BIO *bio)
static VALUE ossl_x509name_to_s(int argc, VALUE *argv, VALUE self)
VALUE ossl_to_der_if_possible(VALUE obj)
RUBY_EXTERN VALUE rb_cObject
void rb_define_const(VALUE, const char *, VALUE)
static VALUE ossl_x509name_to_a(VALUE self)
static VALUE ossl_x509name_initialize(int argc, VALUE *argv, VALUE self)
#define WrapX509Name(klass, obj, name)
void rb_define_alias(VALUE klass, const char *name1, const char *name2)
Defines an alias of a method.
static VALUE ossl_x509name_eql(VALUE self, VALUE other)
int rb_scan_args(int argc, const VALUE *argv, const char *fmt,...)
unsigned char buf[MIME_BUF_SIZE]
VALUE ossl_x509name_new(X509_NAME *name)
#define OBJECT_TYPE_TEMPLATE
static VALUE ossl_x509name_to_der(VALUE self)
static VALUE ossl_x509name_hash(VALUE self)
#define rb_aref(obj, key)
static VALUE ossl_x509name_cmp(VALUE self, VALUE other)
VALUE rb_check_array_type(VALUE ary)
void ossl_raise(VALUE exc, const char *fmt,...)
static unsigned int hash(const char *str, unsigned int len)
VALUE rb_ary_new2(long capa)
#define RSTRING_LENINT(str)
X509_NAME * GetX509NamePtr(VALUE obj)
static VALUE ossl_x509name_add_entry(int, VALUE *, VALUE)
VALUE rb_hash_aset(VALUE, VALUE, VALUE)
void rb_define_method(VALUE klass, const char *name, VALUE(*func)(ANYARGS), int argc)
VALUE rb_str_new2(const char *)
VALUE rb_str_new(const char *, long)