Commit graph

115 commits

Author SHA1 Message Date
gotoyuzo
260231d3f6 * ext/openssl/openssl/lib/openssl/buffering.rb (Buffering#do_write):
should clear data from the buffer which already been output.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9077 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-04 22:03:24 +00:00
gotoyuzo
393197aa7f * ext/openssl/openssl_missin.c: include <openssl/engine.h> before
<openssl/x509_vfy.h> to avoid compilation error of mswin32.
  suggested by NAKAMURA Usaku.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8837 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-26 03:59:39 +00:00
gotoyuzo
b6d87687e9 * ext/openssl/ossl_engine.c (ossl_engine_s_load): should check
OPENSSL_NO_STATIC_ENGINE.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8828 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-23 07:50:17 +00:00
gotoyuzo
36d6603e5f * ext/openssl/openssl_missing.c, ext/openssl/ossl.h,
ext/openssl/ossl_asn1.c, ext/openssl/ossl_bio.c,
  ext/openssl/ossl_pkcs12.h, ext/openssl/ossl_x509req.c: avoid
  compiler warnings. suggested by Mical Rokos.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8645 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-06-19 16:29:17 +00:00
gotoyuzo
76d714d88a * ext/openssl/ossl_x509store.c (ossl_x509stctx_set_time): should
not set internal flag directry.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8532 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-05-27 20:20:29 +00:00
gotoyuzo
736460bf9f * ext/openssl/lib/openssl/ssl.rb (OpenSSL::SSL::SSLServer#intialize):
should initialize session id context. [ruby-core:4663]

* ext/openssl/ossl_ssl.c (ossl_sslctx_setup): add session id support.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8498 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-05-22 10:18:41 +00:00
gotoyuzo
efbf103388 * ext/openssl/extconf.rb: check for OPENSSL_cleanse.
* ext/openssl/openssl_missing.h: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8335 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-04-15 19:16:18 +00:00
gotoyuzo
0c25a62834 * ext/openssl/ossl_ssl.c: add callbacks to OpenSSL::SSL::SSLContexts.
- SSLContext#client_cert_cb=(aProc). it is called when a client
    certificate is requested by a server and no certificate was not
    set for the SSLContext. it must return an Array which includes
    OpenSSL::X509::Certificate and OpenSSL::PKey::RSA/DSA objects.
  - SSLContext#tmp_dh_callback=(aProc). it is called in key
    exchange with DH algorithm. it must return an OpenSSL::PKey::DH
    object.

* ext/openssl/ossl_ssl.c (ossl_sslctx_set_ciphers): ignore the
  argument if it's nil.

* ext/openssl/ossl_pkey.c
  (GetPrivPKeyPtr, ossl_pkey_sign): should call rb_funcall first.
  (DupPrivPKeyPtr): new function.

* ext/openssl/ossl_pkey_dh.c: add default DH parameters.

* ext/openssl/ossl_pkey.h: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8277 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-04-08 09:26:54 +00:00
gotoyuzo
36aca6e1a5 * ext/openssl/ossl_engine.c (ossl_engine_s_load): should return
value. [ruby-dev:25971]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8229 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-03-31 05:16:13 +00:00
gotoyuzo
1928aa3c93 * ext/openssl/ossl_engine.c (ossl_engine_s_load): should not raise
error even if the specified engine could not be loaded. (Dynamic
  engines don't have fixed name to load.)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8223 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-03-30 21:01:04 +00:00
gotoyuzo
279c5947d1 * ext/openssl/ossl_ssl.c (ossl_start_ssl, ossl_ssl_write): call
rb_sys_fail if errno isn't 0. [ruby-dev:25831]

* ext/openssl/lib/openssl/cipher.rb: fix typo. [ruby-dev:24285]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8130 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-03-09 11:26:49 +00:00
gotoyuzo
24cb3707eb * ext/openssl/ossl_ssl.c (ossl_start_ssl, ossl_ssl_read,
ossl_ssl_write):
  - need to set errno on Win32 platform.
  - should call rb_sys_fail instead of rasing SSLError if
    SSL_ERROR_SYSCALL occured.
  - should wait for that the underlying IO become readable or
    writable if the error was SSL_ERROR_WANT_READ or
    SSL_ERROR_WANT_WRITE. [ruby-dev:25795]

* ext/openssl/lib/openssl/buffering.rb
  (Buffering#initialize): should set @eof and @rbuffer.
  (Buffering#fill_rbuff): should rescue Errno::EAGAIN.
  (Buffering#consume_rbuf): pointless eof flag resetting is deleted.
  (Buffering#read): should return an empty string if the specified
  size is zero.
  (Buffering#readpartial): new method.
  (Buffering#readline): fix typo.
  (Buffering#getc): return the first character of string correctly.
  (Buffering#each): fix typo.  suggested by Brian Ollenberger.
  (Buffering#readchar): fix typo.
  (Buffering#eof?): should read again it the input buffer is empty.
  (Buffering#do_write): should rescue Errno::EAGAIN.
  (Buffering#puts): use "\n" as the output field separator.

* ext/openssl/lib/openssl/ssl.rb: set non-blocking flag to the
  underlying IO.

* ext/openssl/extconf.rb: get rid of GNUmakefile generation.

* text/openssl/test_pair.rb: test for IO like methods.

* test/ruby/ut_eof.rb: test about empty file.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8104 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-03-07 12:10:03 +00:00
matz
88d5dcc8de * exception error messages updated. [ruby-core:04497]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8035 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-02-28 02:45:23 +00:00
gotoyuzo
fa480f489c * ext/openssl/lib/openssl/ssl.rb
(OpenSSL::SSL::SSLSocket#post_connection_check): new method.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7970 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-02-14 04:14:39 +00:00
gotoyuzo
dd90ca0a30 * ext/openss/ossl_x509store.c (ossl_x509store_set_default_paths):
new method OpenSSL::X509::Store#set_default_paths.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7945 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-02-11 08:42:57 +00:00
gotoyuzo
4c3e68b167 * ext/openssl/ossl_ocsp.c (ossl_ocspreq_to_der): should call
GetOCSPReq at first.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7810 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-01-22 20:28:02 +00:00
gotoyuzo
91af84cc66 * ext/openssl/ossl_ns_spki.c (ossl_spki_set_challenge): should call
StringValue before GetSPKI. fixed: [ruby-dev:25359].


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7697 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-31 19:24:11 +00:00
gotoyuzo
16cdfdad28 * ext/openssl/ossl_x509name.c (Init_ossl_x509name): should use
rb_hash_new to get exactly a Hash. fix [ruby-dev:25325].


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7666 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-27 07:55:56 +00:00
gotoyuzo
3a664c4b40 * ext/openssl/ossl_asn1.c (ossl_asn1_traverse, ossl_asn1_decode,
ossl_asn1_decode_all): temporary value should be marked volatile.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7627 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-21 13:09:55 +00:00
gotoyuzo
a8fee4c9bb * ext/openssl/ossl_asn1.c (ossl_asn1_traverse, ossl_asn1_decode):
use rb_str_new4 to avoid SEGV. fix [ruby-dev:25261]

* test/openssl/test_asn1.rb: add tests for OpenSSL::ASN1.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7625 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-21 05:40:23 +00:00
matz
139973f602 * ext/openssl/ossl_asn1.c (ossl_asn1_traverse): [ruby-dev:25261]
* ext/openssl/ossl_asn1.c (ossl_asn1_decode): ditto.

* ext/openssl/ossl_asn1.c (ossl_asn1_decode_all): ditto.

* struct.c (make_struct): [ruby-dev:25249]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7618 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-21 02:54:17 +00:00
gotoyuzo
fd71f860a1 * ext/openssl/lib/net/https.rb,protocols.rb,telnets.rb: delete
doc and code about SSLContext#{key_file,cert_file}.
  fixed: [ruby-dev:25243]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7609 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-20 03:49:16 +00:00
gotoyuzo
049c3927ff * ext/openssl/ossl_x509store.c
(ossl_x509store_set_time): add OpenSSL::X509::Store#time=.
  (ossl_x509stctx_set_time): add OpenSSL::X509::StoreContext#time=.

* test/openssl/ossl_x509store.rb: test certificate validity times.

* ext/openssl/ossl_x509name.c (ossl_x509name_to_s): add optional
  second argument to specify the output format (see also
  X509_NAME_print_ex).

* ext/openssl/ossl_x509name.c (ossl_x509name_init): new constants:
  OpenSSL::X509::Name::COMPAT, OpenSSL::X509::Name::RFC2253,
  OpenSSL::X509::ONELINE, OpenSSL::X509::MULTILINE.

* ext/openssl/lib/openssl/x509.rb (OpenSSL::X509::Name::RFC2253DN):
  new module to provide the parse for RFC2253 DN format.

* ext/openssl/lib/openssl/x509.rb (OpenSSL::X509::Name.parse_rfc2253):
  new method to parse RFC2253 DN format.

* test/openssl/ossl_x509name.rb: add tests about RFC2253 DN.

* text/openssl/ssl_server.rb: try to listen ports from 20443 to 20542
  while EADDRINUSE is raised.

* all changes in this entry are backport from 1.9.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7599 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-19 08:28:33 +00:00
gotoyuzo
d238fd1322 * ext/openssl/ossl.c (ossl_raise): refine message format.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7577 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-16 09:39:54 +00:00
gotoyuzo
db82a3315b * ext/openssl/ossl_x509name.c (ossl_x509name_to_a): avoid SEGV
(rollback the previous commit).


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7564 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-15 06:46:19 +00:00
matz
d89b8333c5 * ext/openssl/ossl_digest.c (ossl_digest_initialize): [ruby-dev:25198]
* lib/cgi/session.rb (CGI::Session::initialize): generate new
  session if given session_id does not exist.  [ruby-list:40368]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7556 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-15 01:54:40 +00:00
gotoyuzo
08dc317502 * ext/openssl/ossl.c (ossl_raise): avoid buffer overrun. [ruby-dev:25187]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7550 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-14 05:05:17 +00:00
gotoyuzo
e3400ffb9a * ext/openssl/ossl_pkey_rsa.c (ossl_rsa_public_encrypt,
ossl_rsa_public_decrypt, ossl_rsa_private_encrypt,
  ossl_rsa_private_decrypt): should take an optional argument
  to specify padding mode. [ruby-talk:122539]

* ext/openssl/ossl_pkey_rsa.c (Init_ossl_rsa): add new constants
  PKCS1_PADDING, SSLV23_PADDING, NO_PADDING and PKCS1_OAEP_PADDING
  under OpenSSL::PKey::RSA.

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


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7468 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-05 16:43:26 +00:00
eban
d271544bb6 * MANIFEST, ext/**/MANIFEST: removed.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7171 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-01 10:19:37 +00:00
gotoyuzo
4e5fbd0b8a * 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/branches/ruby_1_8@6811 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-08-24 00:09:47 +00:00
gotoyuzo
c0309bdb02 * ext/openssl/ossl_ssl.c (ossl_ssl_read):
- should return an empty string if specified length to read is 0.
  - should check for pending data and wait for fd before reading.
  - call underlying IO's sysread if SSL session is not started.
  [ruby-dev:24072], [ruby-dev:24075]

* ext/openssl/ossl_ssl.c (ossl_ssl_write):
  - call underlying IO's syswrite if SSL session is not started.

* ext/openssl/ossl_ssl.c (ossl_ssl_pending): new method
  OpenSSL::SSL#pending.

* ext/openssl/lib/openssl/buffering.rb: should not use select.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6809 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-08-23 05:06:17 +00:00
gotoyuzo
03fc2ae03e * ext/openssl/ossl_asn1.c (ossl_asn1cons_to_der): fix type of
argument. [ruby-dev:23891]

* test/openssl/test_x509store.rb: prune tests for CRL checking
  unless X509::V_FLAG_CRL_CHECK is defined.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6626 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-07-14 09:09:36 +00:00
gotoyuzo
ad0add9f08 * ext/openssl/ossl_cipher.c (ossl_cipher_set_padding): last modify is
rolled back for future compatibility.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6557 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-07-01 04:51:19 +00:00
gotoyuzo
a9244b8aa7 * ext/openssl/extconf.rb: check for EVP_CIPHER_CTX_copy, ENGINE_add,
EVP_CIPHER_CTX_set_padding, EVP_CipherFinal_ex, EVP_CipherInit_ex,
  EVP_DigestFinal_ex and EVP_DigestInit_ex.

* ext/openssl/openssl_missing.c (EVP_CIPHER_CTX_copy): new function.

* ext/openssl/openssl_missing.h (EVP_DigestInit_ex, EVP_DigestFinal_ex,
  EVP_CipherInit_ex, EVP_CipherFinal_ex, HMAC_Init_ex): new macro for
  OpenSSL 0.9.6.

* ext/openssl/ossl_cipher.c (ossl_cipher_encrypt, ossl_cipher_decrypt):
  re-implemnt (the arguments for this method is ).

* ext/openssl/ossl_cipher.c (ossl_cipher_pkcs5_keyivgen): new method
  OpenSSL::Cipher::Cipher#pkcs5_keyivgen. it calls EVP_BytesToKey().

* ext/openssl/ossl_cipher.c (ossl_cipher_alloc, ossl_cipher_initialize,
  ossl_cipher_copy, ossl_cipher_reset ossl_cipher_final,
  ossl_cipher_set_key, ossl_cipher_set_iv): replace all EVP_CipherInit
  and EVP_CipherFinal into EVP_CipherInit_ex and EVP_CipherFinal_ex.
  and EVP_CIPHER_CTX_init should only be called once.

* ext/openssl/ossl_cipher.c (ossl_cipher_set_key_length): new method
  OpenSSL::Cipher::Cipher#key_len=.

* ext/openssl/ossl_cipher.c (ossl_cipher_set_padding): the type of
  argument is changed from integer to boolean.

* ext/openssl/ossl_cipher.c (ossl_cipher_init_deprecated): new
  finction; print warning for Cipher#<<.

* ext/openssl/ossl_digest.c: replace all EVP_DigestInit and
  EVP_DigestFinal into EVP_DigestInit_ex and EVP_DigestFinal_ex.
  and EVP_MD_CTX_init should only be called once.

* ext/openssl/ossl_digest.c (digest_final): should call
  EVP_MD_CTX_cleanup to avoid memory leak.

* ext/openssl/ossl_hmac.c (ossl_hmac_initialize): repalce HMAC_init
  into HMAC_init_ex. and HMAC_CTX_init is moved to ossl_hmac_alloc.

* ext/openssl/ossl_hmac.c (hmac_final): should call
  HMAC_CTX_cleanup to avoid memory leak.

* test/openssl/test_cipher.rb, test/openssl/test_digest.rb,
  test/openssl/test_hmac.rb: new file.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6555 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-07-01 03:01:07 +00:00
gotoyuzo
fbc87479bb * ext/openssl/ossl_asn1.c (ossl_i2d_ASN1_TYPE, ossl_ASN1_TYPE_free):
workaround for the versions earlier than OpenSSL-0.9.7.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6552 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-06-30 19:09:03 +00:00
gotoyuzo
7922fdd795 * ext/openssl/ossl_pkey_dh.c (ossl_dh_initialize): should create
empty pkey object if no argument is passed. [ruby-talk:103328]

* ext/openssl/ossl_pkey_dsa.c (ossl_dsa_initialize): ditto.

* ext/openssl/ossl_pkey_rsa.c (ossl_rsa_initialize): ditto.

* ext/openssl/ossl_pkey_dh.c: add new methods: OpenSSL::PKey::DH#p,
  OpenSSL::PKey::DH#p=, OpenSSL::PKey::DH#g, OpenSSL::PKey::DH#g=,
  OpenSSL::PKey::DH#pub_key, OpenSSL::PKey::DH#pub_key=,
  OpenSSL::PKey::DH#priv_key and OpenSSL::PKey::DH#priv_key=.

* ext/openssl/ossl_pkey_dsa.c: add new methods: OpenSSL::PKey::DSA#p,
  OpenSSL::PKey::DSA#p=, OpenSSL::PKey::DSA#q, OpenSSL::PKey::DSA#q=,
  OpenSSL::PKey::DSA#g, OpenSSL::PKey::DSA#g=,
  OpenSSL::PKey::DSA#pub_key, OpenSSL::PKey::DSA#pub_key=,
  OpenSSL::PKey::DSA#priv_key and OpenSSL::PKey::DSA#priv_key=.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6551 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-06-30 18:34:59 +00:00
gotoyuzo
907911feda * ext/openssl/ossl_ssl.c (ossl_ssl_read): take optional second argument
to specify a string to be written.

* ext/openssl/lib/openssl/buffering.rb (OpenSSL::Buffering#read):
  take optional second argument to specify a string to be written.

* ext/openssl/lib/openssl/buffering.rb (OpenSSL::Buffering#gets):
  refine regexp for end-of-line.

* ext/opnessl/lib/openssl/ssl.rb
  (OpenSSL::SSL::SocketForwarder#listen): fix typo.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6550 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-06-30 18:21:39 +00:00
gotoyuzo
a472b97810 * ext/openssl/ossl_x509name.c: attribute value of DC (short name of
domainComponent) should be IA5String.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6295 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-05-12 05:38:20 +00:00
gotoyuzo
86faa72cde * ext/openssl/ossl_x509name.c (ossl_x509name_init_i): should return a value.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6144 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-04-12 09:53:14 +00:00
matz
849bc0234a * eval.c (top_include): include in the wrapped load is done for
the wrapper, not for a singleton class for wrapped main.
  [ruby-dev:23305]

* bignum.c (rb_big_eq): use temporary double variable to save the
  result (internal float register may be bigger than 64 bits, for
  example, 80 bits on x86).  [ruby-dev:23311]

* eval.c (block_pass): should generate unique identifier of the
  pushing block.  [ruby-talk:96363]

* ext/socket/socket.c (make_hostent): fix memory leak, based on
  the patch from HORIKAWA Hisashi <vzw00011@nifty.ne.jp>.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6092 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-04-05 07:45:32 +00:00
gotoyuzo
f84f600ffa * ext/openssl/ossl_config.c (ossl_config_each): add new method
OpenSSL::Config#each. it iterates with section name, field name
  and value.

* ext/openssl/ossl_config.c (Init_ossl_config): include Enumerable.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@5814 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-02-23 19:08:31 +00:00
gotoyuzo
d097999e44 backport from Ruby-1.9.
* ext/openssl/ossl_x509hame.c (ossl_x509name_initialize): change
  second argument. it expected to be a Hash not an Integer.

* ext/openssl/ossl_x509name.c (ossl_x509name_add_entry): add new
  function for OpenSSL::X509::Name#add_entry.

* ext/openssl/ossl_x509name.c (ossl_x509name_to_a): append ASN.1
  tag number to each element of return value.

* ext/openssl/ossl_x509name.c (Init_ossl_x509name): add constants
  OpenSSL::X509::Name::DEFAULT_OBJECT_TYPE and OBJECT_TYPE_TEMPLATE.

* ext/openssl/lib/openssl/x509.rb (OpenSSL::X509::Name#initialize):
  second argument takes OBJECT_TYPE_TEMPLATE by default.

* sample/openssl/gen_csr.rb: use OpenSSL::X509::Name.parse.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@5575 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-01-29 06:49:11 +00:00
gotoyuzo
c4fc5f52f8 * ext/openssl/extconf.rb: should check <openssl/conf_api.h> instead
of OPENSSL_VERSION_NUMBER. [ruby-list:39056]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@5515 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-01-20 05:49:14 +00:00
gotoyuzo
b2a773d487 * ext/openssl/extconf.rb: add check for OpenSSL version.
[ruby-list:39054]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@5509 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-01-19 17:55:18 +00:00
gotoyuzo
cc8ee0ad14 * ext/openssl/ossl_pkey.c (ossl_pkey_to_der): removed; it returns
public key only.

* ext/openssl/ossl_pkey_dh.c (ossl_dh_to_der): new function for
  OpenSSL::PKey::DH#to_der.

* ext/openssl/ossl_pkey_dsa.c (ossl_dsa_to_der): new function for
  OpenSSL::PKey::DSA#to_der.

* ext/openssl/ossl_pkey_rsa.c (ossl_rsa_to_der): new function for
  OpenSSL::PKey::RSA#to_der.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@5418 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-01-08 12:30:37 +00:00
gotoyuzo
932075e82e * ext/openssl/ossl_ssl.c (ossl_ssl_read): should check for error
status by SSL_get_error().

* ext/openssl/ossl_ssl.c (ossl_ssl_write): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5278 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-24 07:29:40 +00:00
usa
8e43498222 * ext/openssl/ossl_pkcs12.c (ossl_pkcs12_initialize): first argument
of rb_protect should take an argument of VALUE.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5190 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-15 00:30:12 +00:00
gotoyuzo
ab2e1c141f * ext/openssl/ossl_pkcs12.[ch]: new files. add OpenSSL::PKCS12.
* ext/openssl/ossl_ossl.[ch]: ditto.

* ext/openssl/MANIFEST: add ossl_pkcs12.[ch].


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5172 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-11 12:29:08 +00:00
gotoyuzo
7cc4f065fa no need to care SSL_ERROR_NONE and SSL_ERROR_WANT_X509_LOOKUP.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5128 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-06 14:33:52 +00:00
gotoyuzo
70daacc533 * ext/openssl/ossl_ssl.c (ossl_start_ssl): new function to wrap
SSL_connect and SSL_accept; if SSL_connect (or SSL_accept) returned
  but not finished the handshake process, we should retry it.

* ext/openssl/ossl_ssl.c (ossl_ssl_connect): call ossl_start_ssl.

* ext/openssl/ossl_ssl.c (ossl_ssl_accept): ditto.

* ext/openssl/ossl_ssl.c (ossl_ssl_read): allow signal traps.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5127 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-06 13:59:31 +00:00