Commit Graph

13 Commits

Author SHA1 Message Date
usa 974037a542 * eval.c (search_required): use RSTRING_PTR and RSTRING_STR.
* object.c (nil_plus): ditto.

* ext/dl/cptr.c (rb_dlptr_s_to_ptr): ditto.

* ext/openssl/ossl_x509ext.c (ossl_x509extfactory_create_ext): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10813 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-08-31 12:10:08 +00:00
matz 25c50cd193 * ruby.h (struct RString): embed small strings.
(RSTRING_LEN): defined for accessing string members.
  (RSTRING_PTR): ditto.

* string.c: use RSTRING_LEN and RSTRING_PTR.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10809 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-08-31 10:30:33 +00:00
gotoyuzo 67673f6b47 * ext/openssl/extconf.rb: check for X509V3_EXT_nconf_nid.
* ext/openssl/ossl_x509ext.c (MakeX509ExtFactory): should use
  OPENSSL_malloc to allocate X509V3_CTX.

* ext/openssl/ossl_x509ext.c (ossl_x509extfactory_create_ext): use
  X509V3_EXT_nconf_nid to avoid SEGV (and to build extensions which
  values are placed in separate section).

* test/openssl/test_x509ext.rb: new file.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9592 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-11-22 22:29:13 +00:00
matz 2edbb9d0f8 * lib/set.rb (Set#==): [ruby-dev:25206]
* ext/openssl/ossl_digest.c (ossl_digest_initialize): [ruby-dev:25198]

* utf8.c (utf8_is_mbc_ambiguous): [ruby-talk:123561]

* utf8.c (utf8_mbc_to_normalize): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7563 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-15 06:35:55 +00:00
gotoyuzo ef5ce7029d * ext/openssl/ossl_x509attr.c (ossl_x509attr_initialize): d2i
functions may replace the pointer indicated by the first argument.

* ext/openssl/ossl_x509ext.c (ossl_x509ext_initialize): ditto.

* ext/openssl/ossl_x509name.c (ossl_x509name_initialize): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6810 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-08-23 23:59:44 +00:00
gotoyuzo abbffef10c * /ext/openssl/ossl_x509ext.c (ossl_x509extfactory_create_ext):
refine error message.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4961 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-15 13:19:17 +00:00
gotoyuzo fc133b8997 * ext/openssl/ossl_ssl.c (ossl_ssl_peer_cert_chain): add new method
SSLSocket#peer_cert_chain.

* ext/openssl/ossl_x509req.c (GetX509ReqPtr): new function
  which returns underlying X509_REQ.

* ext/openssl/ossl_x509ext.c (ossl_x509extfactory_set_issuer_cert,
  ossl_x509extfactory_set_subject_cert, ossl_x509extfactory_set_crl,
  ossl_x509extfactory_set_subject_req, ossl_x509extfactory_set_config):
  use underlying C struct without duplication not to leak momory.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4884 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-01 09:24:55 +00:00
gotoyuzo 7d18f560f5 * ext/openssl/extconf.rb: add check for X509V3_set_nconf.
* ext/openssl/ossl_x509ext.c (ossl_x509extfactory_set_config):
  cannot implement if X509V3_set_nconf doesn't exist.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4666 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-03 19:29:13 +00:00
gotoyuzo ca8be43f0e * ext/openssl/ossl_ocsp.c (ossl_ocspreq_initialize): the argument
should be a String.

* ext/openssl/ossl_ocsp.c (ossl_ocspres_initialize): ditt.

* ext/openssl/ossl_x509attr.c (ossl_x509attr_initialize): ditto.

* ext/openssl/ossl_x509ext.c (ossl_x509ext_initialize): ditto.

* ext/openssl/ossl_x509ext.c (ossl_x509ext_set_value): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4582 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-09-20 19:18:22 +00:00
gotoyuzo 30103702c3 * ext/openssl: all files are reviewed to simplify and avoid memory leak.
* ext/openssl/extconf.rb: add check for assert.h.

* ext/openssl/ossl.c (ossl_buf2str): new function to convert
  C buffer to String and free buffer.

* ext/openssl/ossl.c (ossl_x509_ary2sk): new function to convert
  Array of OpenSSL::X509 to STACK_OF(X509) with exception safe.

* ext/openssl/ossl.c (ossl_to_der, ossl_to_der_if_possible): new
  functions to convert object to DER string.

* ext/openssl/ossl.h: ditto.

* ext/openssl/ossl_bio.c (ossl_membio2str): new function to convert
  BIO to String object and free BIO.

* ext/openssl/ossl_bio.h: ditto.

* ext/openssl/ossl_pkcs7.c (ossl_pkcs7_to_der): add for "to_der".

* ext/openssl/ossl_x509name.c (ossl_x509name_to_der): ditto.

* ext/openssl/ossl_x509ext.c (ossl_x509ext_to_der): ditto.

* ext/openssl/ossl_x509ext.c (create_ext_from_array): removed
  and reimplement in openssl/x509.rb.

* ext/openssl/ossl_x509attr.c: reimplemented and disable some
  method temporarily. this class doesn't work fine without ASN.1
  data support;-) I'll rewrite in near future.

* ext/openssl/lib/openssl/x509.c (X509::Attribute): get rid off
  unused code.

* ext/openssl/lib/openssl/x509.c (X509::ExtensionFactory): refine all.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4558 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-09-17 09:05:02 +00:00
gotoyuzo 78ff3833fb * ext/openssl/ossl.h: include openssl/conf.h and openssl/conf_api.h.
* ext/openssl/ossl_config.c: refine all with backward compatibility.

* ext/openssl/ossl_config.h: export GetConfigPtr() and DupConfigPtr().

* ext/openssl/ossl_x509.c: added new constants under X509 module.
  DEFAULT_CERT_AREA, DEFAULT_CERT_DIR, DEFAULT_CERT_FILE,
  DEFAULT_CERT_DIR_ENV, DEFAULT_CERT_FILE_ENV and DEFAULT_PRIVATE_DIR.

* ext/openssl/ossl_x509ext.c (ossl_x509extfactory_free): don't free
  the members of the struct. it's left to GC.

* ext/openssl/ossl_x509ext.c (ossl_x509_set_config): add for config=.

* ext/openssl/ossl_x509ext.c (Xossl_x509extfactory_initialize):
  add attr readers: issuer_certificate, subject_certificate,
  subject_request, crl and config.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4531 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-09-08 10:31:38 +00:00
gotoyuzo 256d273e69 * ext/openssl/ruby_missing.c: rid of unnecessary backward
compatibility stuff. and remove DEFINE_ALLOC_WRAPPER from
  all sources.

* ext/openssl/ossl_x509ext.c (X509::Extension.new): new method.

* ext/openssl/ossl_x509ext.c (X509::Extension#oid=): new method.

* ext/openssl/ossl_x509ext.c (X509::Extension#value=): new method.

* ext/openssl/ossl_x509ext.c (X509::Extension#critical=): new method.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4522 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-09-06 08:56:09 +00:00
gotoyuzo 231247c010 * ext/openssl: imported.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4128 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-23 16:12:24 +00:00