rubysl-openssl 2.2.1 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +4 -4
  3. data/MRI_LICENSE +56 -0
  4. data/ext/rubysl/openssl/openssl_missing.c +1 -1
  5. data/ext/rubysl/openssl/openssl_missing.h +1 -1
  6. data/ext/rubysl/openssl/ossl.c +17 -16
  7. data/ext/rubysl/openssl/ossl.h +7 -7
  8. data/ext/rubysl/openssl/ossl_asn1.c +5 -5
  9. data/ext/rubysl/openssl/ossl_asn1.h +1 -1
  10. data/ext/rubysl/openssl/ossl_bio.c +2 -2
  11. data/ext/rubysl/openssl/ossl_bio.h +1 -1
  12. data/ext/rubysl/openssl/ossl_bn.c +37 -13
  13. data/ext/rubysl/openssl/ossl_bn.h +1 -1
  14. data/ext/rubysl/openssl/ossl_cipher.c +64 -17
  15. data/ext/rubysl/openssl/ossl_cipher.h +1 -1
  16. data/ext/rubysl/openssl/ossl_config.c +3 -3
  17. data/ext/rubysl/openssl/ossl_config.h +1 -1
  18. data/ext/rubysl/openssl/ossl_digest.c +19 -7
  19. data/ext/rubysl/openssl/ossl_digest.h +1 -1
  20. data/ext/rubysl/openssl/ossl_engine.c +24 -17
  21. data/ext/rubysl/openssl/ossl_engine.h +1 -1
  22. data/ext/rubysl/openssl/ossl_hmac.c +15 -7
  23. data/ext/rubysl/openssl/ossl_hmac.h +1 -1
  24. data/ext/rubysl/openssl/ossl_ns_spki.c +19 -4
  25. data/ext/rubysl/openssl/ossl_ns_spki.h +1 -1
  26. data/ext/rubysl/openssl/ossl_ocsp.c +518 -60
  27. data/ext/rubysl/openssl/ossl_ocsp.h +1 -1
  28. data/ext/rubysl/openssl/ossl_pkcs12.c +18 -4
  29. data/ext/rubysl/openssl/ossl_pkcs12.h +1 -1
  30. data/ext/rubysl/openssl/ossl_pkcs5.c +1 -1
  31. data/ext/rubysl/openssl/ossl_pkcs7.c +59 -15
  32. data/ext/rubysl/openssl/ossl_pkcs7.h +1 -1
  33. data/ext/rubysl/openssl/ossl_pkey.c +16 -2
  34. data/ext/rubysl/openssl/ossl_pkey.h +4 -3
  35. data/ext/rubysl/openssl/ossl_pkey_dh.c +3 -3
  36. data/ext/rubysl/openssl/ossl_pkey_dsa.c +3 -3
  37. data/ext/rubysl/openssl/ossl_pkey_ec.c +32 -12
  38. data/ext/rubysl/openssl/ossl_pkey_rsa.c +3 -3
  39. data/ext/rubysl/openssl/ossl_rand.c +58 -34
  40. data/ext/rubysl/openssl/ossl_rand.h +1 -1
  41. data/ext/rubysl/openssl/ossl_ssl.c +75 -46
  42. data/ext/rubysl/openssl/ossl_ssl.h +8 -2
  43. data/ext/rubysl/openssl/ossl_ssl_session.c +16 -15
  44. data/ext/rubysl/openssl/ossl_version.h +1 -1
  45. data/ext/rubysl/openssl/ossl_x509.c +2 -2
  46. data/ext/rubysl/openssl/ossl_x509.h +1 -1
  47. data/ext/rubysl/openssl/ossl_x509attr.c +18 -4
  48. data/ext/rubysl/openssl/ossl_x509cert.c +27 -33
  49. data/ext/rubysl/openssl/ossl_x509crl.c +18 -4
  50. data/ext/rubysl/openssl/ossl_x509ext.c +29 -7
  51. data/ext/rubysl/openssl/ossl_x509name.c +22 -7
  52. data/ext/rubysl/openssl/ossl_x509req.c +18 -4
  53. data/ext/rubysl/openssl/ossl_x509revoked.c +18 -4
  54. data/ext/rubysl/openssl/ossl_x509store.c +33 -8
  55. data/ext/rubysl/openssl/ruby_missing.h +1 -1
  56. data/lib/openssl/bn.rb +8 -1
  57. data/lib/openssl/buffering.rb +1 -1
  58. data/lib/openssl/cipher.rb +1 -1
  59. data/lib/openssl/digest.rb +1 -1
  60. data/lib/openssl/ssl.rb +65 -7
  61. data/lib/openssl/x509.rb +22 -2
  62. data/lib/rubysl/openssl.rb +1 -1
  63. data/lib/rubysl/openssl/version.rb +1 -1
  64. metadata +4 -3
@@ -1,5 +1,5 @@
1
1
  /*
2
- * $Id$
2
+ * $Id: ossl_ssl.h 48801 2014-12-12 21:58:34Z nobu $
3
3
  * 'OpenSSL for Ruby' project
4
4
  * Copyright (C) 2001-2002 Michal Rokos <m.rokos@sh.cvut.cz>
5
5
  * All rights reserved.
@@ -11,8 +11,12 @@
11
11
  #if !defined(_OSSL_SSL_H_)
12
12
  #define _OSSL_SSL_H_
13
13
 
14
+ #define GetSSL(obj, ssl) do { \
15
+ TypedData_Get_Struct((obj), SSL, &ossl_ssl_type, (ssl)); \
16
+ } while (0)
17
+
14
18
  #define GetSSLSession(obj, sess) do { \
15
- Data_Get_Struct((obj), SSL_SESSION, (sess)); \
19
+ TypedData_Get_Struct((obj), SSL_SESSION, &ossl_ssl_session_type, (sess)); \
16
20
  if (!(sess)) { \
17
21
  ossl_raise(rb_eRuntimeError, "SSL Session wasn't initialized."); \
18
22
  } \
@@ -23,6 +27,8 @@
23
27
  GetSSLSession((obj), (sess)); \
24
28
  } while (0)
25
29
 
30
+ extern const rb_data_type_t ossl_ssl_type;
31
+ extern const rb_data_type_t ossl_ssl_session_type;
26
32
  extern VALUE mSSL;
27
33
  extern VALUE eSSLError;
28
34
  extern VALUE cSSLSocket;
@@ -4,25 +4,26 @@
4
4
 
5
5
  #include "ossl.h"
6
6
 
7
- #define GetSSLSession(obj, sess) do { \
8
- Data_Get_Struct((obj), SSL_SESSION, (sess)); \
9
- if (!(sess)) { \
10
- ossl_raise(rb_eRuntimeError, "SSL Session wasn't initialized."); \
11
- } \
12
- } while (0)
13
-
14
- #define SafeGetSSLSession(obj, sess) do { \
15
- OSSL_Check_Kind((obj), cSSLSession); \
16
- GetSSLSession((obj), (sess)); \
17
- } while (0)
18
-
19
-
20
7
  VALUE cSSLSession;
21
8
  static VALUE eSSLSession;
22
9
 
10
+ static void
11
+ ossl_ssl_session_free(void *ptr)
12
+ {
13
+ SSL_SESSION_free(ptr);
14
+ }
15
+
16
+ const rb_data_type_t ossl_ssl_session_type = {
17
+ "OpenSSL/SSL/Session",
18
+ {
19
+ 0, ossl_ssl_session_free,
20
+ },
21
+ 0, 0, RUBY_TYPED_FREE_IMMEDIATELY,
22
+ };
23
+
23
24
  static VALUE ossl_ssl_session_alloc(VALUE klass)
24
25
  {
25
- return Data_Wrap_Struct(klass, 0, SSL_SESSION_free, NULL);
26
+ return TypedData_Wrap_Struct(klass, &ossl_ssl_session_type, NULL);
26
27
  }
27
28
 
28
29
  /*
@@ -43,7 +44,7 @@ static VALUE ossl_ssl_session_initialize(VALUE self, VALUE arg1)
43
44
  if (rb_obj_is_instance_of(arg1, cSSLSocket)) {
44
45
  SSL *ssl;
45
46
 
46
- Data_Get_Struct(arg1, SSL, ssl);
47
+ GetSSL(arg1, ssl);
47
48
 
48
49
  if (!ssl || (ctx = SSL_get1_session(ssl)) == NULL)
49
50
  ossl_raise(eSSLSession, "no session available");
@@ -1,5 +1,5 @@
1
1
  /*
2
- * $Id$
2
+ * $Id: ossl_version.h 25189 2009-10-02 12:04:37Z akr $
3
3
  * 'OpenSSL for Ruby' project
4
4
  * Copyright (C) 2001-2002 Michal Rokos <m.rokos@sh.cvut.cz>
5
5
  * All rights reserved.
@@ -1,5 +1,5 @@
1
1
  /*
2
- * $Id$
2
+ * $Id: ossl_x509.c 47744 2014-09-30 05:25:32Z nobu $
3
3
  * 'OpenSSL for Ruby' project
4
4
  * Copyright (C) 2001-2002 Michal Rokos <m.rokos@sh.cvut.cz>
5
5
  * All rights reserved.
@@ -17,7 +17,7 @@ VALUE mX509;
17
17
  rb_define_const(mX509, "DEFAULT_" #x, rb_str_new2(X509_get_default_##i()))
18
18
 
19
19
  void
20
- Init_ossl_x509()
20
+ Init_ossl_x509(void)
21
21
  {
22
22
  mX509 = rb_define_module_under(mOSSL, "X509");
23
23
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- * $Id$
2
+ * $Id: ossl_x509.h 25189 2009-10-02 12:04:37Z akr $
3
3
  * 'OpenSSL for Ruby' project
4
4
  * Copyright (C) 2001-2002 Michal Rokos <m.rokos@sh.cvut.cz>
5
5
  * All rights reserved.
@@ -1,5 +1,5 @@
1
1
  /*
2
- * $Id$
2
+ * $Id: ossl_x509attr.c 48809 2014-12-12 23:38:44Z nobu $
3
3
  * 'OpenSSL for Ruby' project
4
4
  * Copyright (C) 2001 Michal Rokos <m.rokos@sh.cvut.cz>
5
5
  * All rights reserved.
@@ -14,10 +14,10 @@
14
14
  if (!(attr)) { \
15
15
  ossl_raise(rb_eRuntimeError, "ATTR wasn't initialized!"); \
16
16
  } \
17
- (obj) = Data_Wrap_Struct((klass), 0, X509_ATTRIBUTE_free, (attr)); \
17
+ (obj) = TypedData_Wrap_Struct((klass), &ossl_x509attr_type, (attr)); \
18
18
  } while (0)
19
19
  #define GetX509Attr(obj, attr) do { \
20
- Data_Get_Struct((obj), X509_ATTRIBUTE, (attr)); \
20
+ TypedData_Get_Struct((obj), X509_ATTRIBUTE, &ossl_x509attr_type, (attr)); \
21
21
  if (!(attr)) { \
22
22
  ossl_raise(rb_eRuntimeError, "ATTR wasn't initialized!"); \
23
23
  } \
@@ -33,6 +33,20 @@
33
33
  VALUE cX509Attr;
34
34
  VALUE eX509AttrError;
35
35
 
36
+ static void
37
+ ossl_x509attr_free(void *ptr)
38
+ {
39
+ X509_ATTRIBUTE_free(ptr);
40
+ }
41
+
42
+ static const rb_data_type_t ossl_x509attr_type = {
43
+ "OpenSSL/X509/ATTRIBUTE",
44
+ {
45
+ 0, ossl_x509attr_free,
46
+ },
47
+ 0, 0, RUBY_TYPED_FREE_IMMEDIATELY,
48
+ };
49
+
36
50
  /*
37
51
  * Public
38
52
  */
@@ -260,7 +274,7 @@ ossl_x509attr_to_der(VALUE self)
260
274
  * X509_ATTRIBUTE init
261
275
  */
262
276
  void
263
- Init_ossl_x509attr()
277
+ Init_ossl_x509attr(void)
264
278
  {
265
279
  eX509AttrError = rb_define_class_under(mX509, "AttributeError", eOSSLError);
266
280
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- * $Id$
2
+ * $Id: ossl_x509cert.c 48810 2014-12-12 23:38:55Z nobu $
3
3
  * 'OpenSSL for Ruby' project
4
4
  * Copyright (C) 2001-2002 Michal Rokos <m.rokos@sh.cvut.cz>
5
5
  * All rights reserved.
@@ -14,10 +14,10 @@
14
14
  if (!(x509)) { \
15
15
  ossl_raise(rb_eRuntimeError, "CERT wasn't initialized!"); \
16
16
  } \
17
- (obj) = Data_Wrap_Struct((klass), 0, X509_free, (x509)); \
17
+ (obj) = TypedData_Wrap_Struct((klass), &ossl_x509_type, (x509)); \
18
18
  } while (0)
19
19
  #define GetX509(obj, x509) do { \
20
- Data_Get_Struct((obj), X509, (x509)); \
20
+ TypedData_Get_Struct((obj), X509, &ossl_x509_type, (x509)); \
21
21
  if (!(x509)) { \
22
22
  ossl_raise(rb_eRuntimeError, "CERT wasn't initialized!"); \
23
23
  } \
@@ -33,6 +33,20 @@
33
33
  VALUE cX509Cert;
34
34
  VALUE eX509CertError;
35
35
 
36
+ static void
37
+ ossl_x509_free(void *ptr)
38
+ {
39
+ X509_free(ptr);
40
+ }
41
+
42
+ static const rb_data_type_t ossl_x509_type = {
43
+ "OpenSSL/X509",
44
+ {
45
+ 0, ossl_x509_free,
46
+ },
47
+ 0, 0, RUBY_TYPED_FREE_IMMEDIATELY,
48
+ };
49
+
36
50
  /*
37
51
  * Public
38
52
  */
@@ -693,42 +707,22 @@ ossl_x509_add_extension(VALUE self, VALUE extension)
693
707
  static VALUE
694
708
  ossl_x509_inspect(VALUE self)
695
709
  {
696
- VALUE str;
697
- const char *cname = rb_class2name(rb_obj_class(self));
698
-
699
- str = rb_str_new2("#<");
700
- rb_str_cat2(str, cname);
701
- rb_str_cat2(str, " ");
702
-
703
- rb_str_cat2(str, "subject=");
704
- rb_str_append(str, rb_inspect(ossl_x509_get_subject(self)));
705
- rb_str_cat2(str, ", ");
706
-
707
- rb_str_cat2(str, "issuer=");
708
- rb_str_append(str, rb_inspect(ossl_x509_get_issuer(self)));
709
- rb_str_cat2(str, ", ");
710
-
711
- rb_str_cat2(str, "serial=");
712
- rb_str_append(str, rb_inspect(ossl_x509_get_serial(self)));
713
- rb_str_cat2(str, ", ");
714
-
715
- rb_str_cat2(str, "not_before=");
716
- rb_str_append(str, rb_inspect(ossl_x509_get_not_before(self)));
717
- rb_str_cat2(str, ", ");
718
-
719
- rb_str_cat2(str, "not_after=");
720
- rb_str_append(str, rb_inspect(ossl_x509_get_not_after(self)));
721
-
722
- str = rb_str_cat2(str, ">");
723
-
724
- return str;
710
+ return rb_sprintf("#<%"PRIsVALUE": subject=%+"PRIsVALUE", "
711
+ "issuer=%+"PRIsVALUE", serial=%+"PRIsVALUE", "
712
+ "not_before=%+"PRIsVALUE", not_after=%+"PRIsVALUE">",
713
+ rb_obj_class(self),
714
+ ossl_x509_get_subject(self),
715
+ ossl_x509_get_issuer(self),
716
+ ossl_x509_get_serial(self),
717
+ ossl_x509_get_not_before(self),
718
+ ossl_x509_get_not_after(self));
725
719
  }
726
720
 
727
721
  /*
728
722
  * INIT
729
723
  */
730
724
  void
731
- Init_ossl_x509cert()
725
+ Init_ossl_x509cert(void)
732
726
  {
733
727
 
734
728
  #if 0
@@ -1,5 +1,5 @@
1
1
  /*
2
- * $Id$
2
+ * $Id: ossl_x509crl.c 48811 2014-12-12 23:39:04Z nobu $
3
3
  * 'OpenSSL for Ruby' project
4
4
  * Copyright (C) 2001-2002 Michal Rokos <m.rokos@sh.cvut.cz>
5
5
  * All rights reserved.
@@ -14,10 +14,10 @@
14
14
  if (!(crl)) { \
15
15
  ossl_raise(rb_eRuntimeError, "CRL wasn't initialized!"); \
16
16
  } \
17
- (obj) = Data_Wrap_Struct((klass), 0, X509_CRL_free, (crl)); \
17
+ (obj) = TypedData_Wrap_Struct((klass), &ossl_x509crl_type, (crl)); \
18
18
  } while (0)
19
19
  #define GetX509CRL(obj, crl) do { \
20
- Data_Get_Struct((obj), X509_CRL, (crl)); \
20
+ TypedData_Get_Struct((obj), X509_CRL, &ossl_x509crl_type, (crl)); \
21
21
  if (!(crl)) { \
22
22
  ossl_raise(rb_eRuntimeError, "CRL wasn't initialized!"); \
23
23
  } \
@@ -33,6 +33,20 @@
33
33
  VALUE cX509CRL;
34
34
  VALUE eX509CRLError;
35
35
 
36
+ static void
37
+ ossl_x509crl_free(void *ptr)
38
+ {
39
+ X509_CRL_free(ptr);
40
+ }
41
+
42
+ static const rb_data_type_t ossl_x509crl_type = {
43
+ "OpenSSL/X509/CRL",
44
+ {
45
+ 0, ossl_x509crl_free,
46
+ },
47
+ 0, 0, RUBY_TYPED_FREE_IMMEDIATELY,
48
+ };
49
+
36
50
  /*
37
51
  * PUBLIC
38
52
  */
@@ -502,7 +516,7 @@ ossl_x509crl_add_extension(VALUE self, VALUE extension)
502
516
  * INIT
503
517
  */
504
518
  void
505
- Init_ossl_x509crl()
519
+ Init_ossl_x509crl(void)
506
520
  {
507
521
  eX509CRLError = rb_define_class_under(mX509, "CRLError", eOSSLError);
508
522
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- * $Id$
2
+ * $Id: ossl_x509ext.c 48813 2014-12-12 23:46:42Z nobu $
3
3
  * 'OpenSSL for Ruby' project
4
4
  * Copyright (C) 2001-2002 Michal Rokos <m.rokos@sh.cvut.cz>
5
5
  * All rights reserved.
@@ -14,10 +14,10 @@
14
14
  if (!(ext)) { \
15
15
  ossl_raise(rb_eRuntimeError, "EXT wasn't initialized!"); \
16
16
  } \
17
- (obj) = Data_Wrap_Struct((klass), 0, X509_EXTENSION_free, (ext)); \
17
+ (obj) = TypedData_Wrap_Struct((klass), &ossl_x509ext_type, (ext)); \
18
18
  } while (0)
19
19
  #define GetX509Ext(obj, ext) do { \
20
- Data_Get_Struct((obj), X509_EXTENSION, (ext)); \
20
+ TypedData_Get_Struct((obj), X509_EXTENSION, &ossl_x509ext_type, (ext)); \
21
21
  if (!(ext)) { \
22
22
  ossl_raise(rb_eRuntimeError, "EXT wasn't initialized!"); \
23
23
  } \
@@ -30,10 +30,10 @@
30
30
  if (!((ctx) = OPENSSL_malloc(sizeof(X509V3_CTX)))) \
31
31
  ossl_raise(rb_eRuntimeError, "CTX wasn't allocated!"); \
32
32
  X509V3_set_ctx((ctx), NULL, NULL, NULL, NULL, 0); \
33
- (obj) = Data_Wrap_Struct((klass), 0, ossl_x509extfactory_free, (ctx)); \
33
+ (obj) = TypedData_Wrap_Struct((klass), &ossl_x509extfactory_type, (ctx)); \
34
34
  } while (0)
35
35
  #define GetX509ExtFactory(obj, ctx) do { \
36
- Data_Get_Struct((obj), X509V3_CTX, (ctx)); \
36
+ TypedData_Get_Struct((obj), X509V3_CTX, &ossl_x509extfactory_type, (ctx)); \
37
37
  if (!(ctx)) { \
38
38
  ossl_raise(rb_eRuntimeError, "CTX wasn't initialized!"); \
39
39
  } \
@@ -46,6 +46,20 @@ VALUE cX509Ext;
46
46
  VALUE cX509ExtFactory;
47
47
  VALUE eX509ExtError;
48
48
 
49
+ static void
50
+ ossl_x509ext_free(void *ptr)
51
+ {
52
+ X509_EXTENSION_free(ptr);
53
+ }
54
+
55
+ static const rb_data_type_t ossl_x509ext_type = {
56
+ "OpenSSL/X509/EXTENSION",
57
+ {
58
+ 0, ossl_x509ext_free,
59
+ },
60
+ 0, 0, RUBY_TYPED_FREE_IMMEDIATELY,
61
+ };
62
+
49
63
  /*
50
64
  * Public
51
65
  */
@@ -98,11 +112,19 @@ DupX509ExtPtr(VALUE obj)
98
112
  * Ext factory
99
113
  */
100
114
  static void
101
- ossl_x509extfactory_free(X509V3_CTX *ctx)
115
+ ossl_x509extfactory_free(void *ctx)
102
116
  {
103
117
  OPENSSL_free(ctx);
104
118
  }
105
119
 
120
+ static const rb_data_type_t ossl_x509extfactory_type = {
121
+ "OpenSSL/X509/EXTENSION/Factory",
122
+ {
123
+ 0, ossl_x509extfactory_free,
124
+ },
125
+ 0, 0, RUBY_TYPED_FREE_IMMEDIATELY,
126
+ };
127
+
106
128
  static VALUE
107
129
  ossl_x509extfactory_alloc(VALUE klass)
108
130
  {
@@ -436,7 +458,7 @@ ossl_x509ext_to_der(VALUE obj)
436
458
  * INIT
437
459
  */
438
460
  void
439
- Init_ossl_x509ext()
461
+ Init_ossl_x509ext(void)
440
462
  {
441
463
  eX509ExtError = rb_define_class_under(mX509, "ExtensionError", eOSSLError);
442
464
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- * $Id$
2
+ * $Id: ossl_x509name.c 48814 2014-12-12 23:59:19Z nobu $
3
3
  * 'OpenSSL for Ruby' project
4
4
  * Copyright (C) 2001 Michal Rokos <m.rokos@sh.cvut.cz>
5
5
  * All rights reserved.
@@ -14,10 +14,10 @@
14
14
  if (!(name)) { \
15
15
  ossl_raise(rb_eRuntimeError, "Name wasn't initialized."); \
16
16
  } \
17
- (obj) = Data_Wrap_Struct((klass), 0, X509_NAME_free, (name)); \
17
+ (obj) = TypedData_Wrap_Struct((klass), &ossl_x509name_type, (name)); \
18
18
  } while (0)
19
19
  #define GetX509Name(obj, name) do { \
20
- Data_Get_Struct((obj), X509_NAME, (name)); \
20
+ TypedData_Get_Struct((obj), X509_NAME, &ossl_x509name_type, (name)); \
21
21
  if (!(name)) { \
22
22
  ossl_raise(rb_eRuntimeError, "Name wasn't initialized."); \
23
23
  } \
@@ -38,6 +38,20 @@
38
38
  VALUE cX509Name;
39
39
  VALUE eX509NameError;
40
40
 
41
+ static void
42
+ ossl_x509name_free(void *ptr)
43
+ {
44
+ X509_NAME_free(ptr);
45
+ }
46
+
47
+ static const rb_data_type_t ossl_x509name_type = {
48
+ "OpenSSL/X509/NAME",
49
+ {
50
+ 0, ossl_x509name_free,
51
+ },
52
+ 0, 0, RUBY_TYPED_FREE_IMMEDIATELY,
53
+ };
54
+
41
55
  /*
42
56
  * Public
43
57
  */
@@ -183,13 +197,14 @@ VALUE ossl_x509name_add_entry(int argc, VALUE *argv, VALUE self)
183
197
  {
184
198
  X509_NAME *name;
185
199
  VALUE oid, value, type;
200
+ const char *oid_name;
186
201
 
187
202
  rb_scan_args(argc, argv, "21", &oid, &value, &type);
188
- StringValue(oid);
203
+ oid_name = StringValueCStr(oid);
189
204
  StringValue(value);
190
205
  if(NIL_P(type)) type = rb_aref(OBJECT_TYPE_TEMPLATE, oid);
191
206
  GetX509Name(self, name);
192
- if (!X509_NAME_add_entry_by_txt(name, RSTRING_PTR(oid), NUM2INT(type),
207
+ if (!X509_NAME_add_entry_by_txt(name, oid_name, NUM2INT(type),
193
208
  (const unsigned char *)RSTRING_PTR(value), RSTRING_LENINT(value), -1, 0)) {
194
209
  ossl_raise(eX509NameError, NULL);
195
210
  }
@@ -425,7 +440,7 @@ ossl_x509name_to_der(VALUE self)
425
440
  */
426
441
 
427
442
  void
428
- Init_ossl_x509name()
443
+ Init_ossl_x509name(void)
429
444
  {
430
445
  VALUE utf8str, ptrstr, ia5str, hash;
431
446
 
@@ -459,7 +474,7 @@ Init_ossl_x509name()
459
474
  */
460
475
  rb_define_const(cX509Name, "DEFAULT_OBJECT_TYPE", utf8str);
461
476
  hash = rb_hash_new();
462
- rb_funcall(hash, rb_intern("default="), 1, utf8str);
477
+ RHASH_SET_IFNONE(hash, utf8str);
463
478
  rb_hash_aset(hash, rb_str_new2("C"), ptrstr);
464
479
  rb_hash_aset(hash, rb_str_new2("countryName"), ptrstr);
465
480
  rb_hash_aset(hash, rb_str_new2("serialNumber"), ptrstr);