Граф коммитов

35 Коммитов

Автор SHA1 Сообщение Дата
technorama 9fa80b19a6 * ext/openssl/{extconf.rb,ossl_ssl_session.c}:
Fix ruby-Bugs-11513.

* ext/openssl/ossl_pkey_ec.c
  New methods EC::Point.[eql,make_affine!,invert!,on_curve?,infinity?]
  By default output the same key form as the openssl command.

* ext/openssl/ossl_rand.c
  New method Random.status?

* test/openssl/test_ec.rb
  New tests.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12571 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-18 08:56:21 +00:00
nobu 2b592580bf * include/ruby: moved public headers.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12501 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-10 03:06:15 +00:00
technorama 953e8aca2b * ext/openssl/ossl_pkcs5.c: New module.
* ext/openssl/ossl_{cipher,digest,pkcs7,pkcs12}.c:
  Remove redundant module namespace.

* ext/openssl/lib/openssl/{cipher,digest}.rb
  Add backwards compatibile classes for rearranged classes.

* ext/openssl/ossl_{pkcs7,pkcs12}.c: Add documentation.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12148 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-04-05 05:59:22 +00:00
nobu 043479247c * ext/openssl/extconf.rb: check for functions added in 1.9.
* ext/openssl/ruby_missing.h: check per features instead by
  checking version code.  [ruby-core:10845]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12140 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-04-03 07:21:53 +00:00
usa cebb4b5ca0 * ext/openssl/extconf.rb: no need to check unistd.h and sys/time.h.
they are already checked at configure.
  reported by KOBAYASHI Yasuhiro [ruby-list:43225]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11930 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-28 09:32:56 +00:00
gotoyuzo d995f01f67 * ext/openssl/extconf.rb: use create_header.
* ext/openssl/ossl.h, ext/openssl/openssl_missing.h:
  include RUBY_EXTCONF_H.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10209 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-06-02 10:03:16 +00:00
gotoyuzo 55ef220fe0 * ext/openssl/extconf.rb: add check for OBJ_NAME_do_all_sorted.
* ext/openssl/ossl_cipher.c (ossl_s_ciphers): new method
  OpenSSL::Cipher.ciphers. it returns all the cipher names.

* ext/openssl/ossl_cipher.c (ossl_cipher_init): refine warning message.

* ext/openssl/lib/openssl/cipher.rb: reimplement without eval() and
  add constants AES128, AES192, AES256. [ruby-dev:28610]

* ext/openssl/lib/openssl/digest.rb: reimplement without eval().

* test/openssl/test_cipher.rb, test_digest: fix about reimplemented               features.

* sample/openssl/cipher.rb: rewrite all.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10137 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-05-08 00:12:00 +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
gotoyuzo 79bf99f7b2 * ext/openssl/extconf.rb: should check ERR_peek_last_error().
[ruby-dev:27597]

* ext/openssl/ossl.c (ossl_raise): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9488 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-11-01 01:52:13 +00:00
gotoyuzo 385d24afa5 * ext/openssl/extconf.rb: check for OPENSSL_cleanse.
* ext/openssl/openssl_missing.h: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8335 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-04-15 19:16:18 +00:00
gotoyuzo a9fb0817a1 * ext/openssl/ossl_ssl.c (ossl_start_ssl): 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/ossl_ssl.c (ossl_ssl_read, ossl_ssl_write): ditto.

* ext/openssl/lib/openssl/buffering.rb
  (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#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/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/trunk@8081 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-03-05 21:36:11 +00:00
gotoyuzo 22ab58c03c * 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_alloc, ossl_cipher_initialize,
  ossl_cipher_copy, ossl_cipher_reset, ossl_cipher_encrypt,
  ossl_cipher_decrypt, 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_padding): check for
  EVP_CIPHER_CTX_set_padding.

* ext/openssl/ossl_cipher.c (Init_ossl_cipher): Cipher#<< is deprecated.

* 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/trunk@6548 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-06-30 10:48:43 +00:00
gotoyuzo 91482546b5 * 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/trunk@5515 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-01-20 05:49:14 +00:00
gotoyuzo 0ecdbb65a8 * ext/openssl/extconf.rb: add check for OpenSSL version.
[ruby-list:39054]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5509 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-01-19 17:55:18 +00:00
gotoyuzo f58812a7e2 * lib/ext/openssl/extconf.rb: add check for some engine functions
unavailable in OpenSSL-0.9.6.

* lib/ext/openssl/ossl_engine.c: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4698 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-05 13:58:02 +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 5af0a758d4 * ext/openssl/ossl_asn1.c: add DER encoder and decoder.
* ext/openssl/ossl_asn1.h: add OpenSSL::ASN1 module.

* ext/openssl/ossl.c (Init_openssl): call Init_ossl_asn1.

* ext/openssl/ossl.h: include ossl_asn1.h.

* ext/openssl/extconf.rb: check if X509_ATTRIBUTE has field "single".

* ext/openssl/ossl_x509attr.c (ossl_x509attr_set_value): accept
  DER encoded data argument.

* ext/openssl/ossl_x509attr.c (ossl_x509attr_get_value): return
  DER encoded data in OpenSSL::ASN1 types.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4660 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-03 08:58:01 +00:00
gotoyuzo d77b606edd * ext/openssl/ossl_engine.c: add a new module OpenSSL::Engine.
it supports OpenSSL hardware cryptographic engine interface.

* ext/openssl/ossl_engine.h: ditto.

* ext/openssl/MANIFEST: add ossl_engine.c and ossl_engine.h.

* ext/openssl/extconf.rb: add check for openssl/engine.h.

* ext/openssl/ossl.c: call Init_ossl_engine().

* ext/openssl/ossl.h: include openssl/engine.h.

* ext/openssl/ossl_pkey_{rsa,dsa,dh}.c: check if underlying
  EVP_PKEY referes engine.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4652 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-02 08:47:11 +00:00
gotoyuzo ad143475b9 fix command line in 'dep'.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4559 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-09-17 09:09:31 +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
nobu c7b5c0489b * ext/openssl/extconf.rb (HAVE_VA_ARGS_MACRO): need to compile.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4402 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-08-17 14:40:00 +00:00
nobu 8695612caf * marshal.c (w_symbol, w_object): get rid of warnings.
* re.c (rb_memsearch): ditto.

* time.c (time_dump): ditto.

* ext/extmk.rb (extmake): not continue making when extconf.rb
  failed.

* ext/openssl/extconf.rb: check __VA_ARGS__ macro more precisely.

* ext/openssl/ossl.h: remove version.h dependency.

* ext/openssl/ruby_missing.h: ditto.

* lib/mkmf.rb (pkg_config): use --libs output except with
  only-L for other options.  [ruby-list:38099]

* lib/mkmf.rb (create_makefile): separate rule for static
  library from shared object.

* win32/Makefile.sub, bcc32/Makefile.sub, wince/Makefile.sub:
  define exec_prefix and libdir.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4396 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-08-16 14:58:34 +00:00
nobu 63f5a7164b * lib/mkmf.rb (pkg_config): get configuration by pkg-config. [new]
* ext/openssl/extconf.rb: use pkg_config.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4284 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-08-02 05:54:00 +00:00
nobu a222ce3000 *** empty log message ***
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4265 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-08-01 08:20:20 +00:00
nobu 2c2e81ff98 * ext/openssl/extconf.rb: should replace literally.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4264 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-08-01 08:13:29 +00:00
gotoyuzo 00dfd7d7cc * ext/openssl/extconf.rb: move gmake specific features
into GNUmakefile.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4239 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-31 05:22:06 +00:00
eban 906ab8e25d * ext/openssl/extconf.rb: check again after pkg-config for MinGW on
Cygwin.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4192 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-28 09:55:12 +00:00
eban 39bc97b078 * ext/openssl/extconf.rb: better support MinGW. add
dir_config("kerberos") and with_config("pkg-config).


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4181 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-27 12:19:18 +00:00
gotoyuzo d89358aba3 * ext/openssl/extconf.rb: refine va-args macro detection.
[ruby-talk:76983]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4164 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-25 19:16:19 +00:00
gotoyuzo b35031495a * ext/openssl/extconf.rb: add check for BN_rand_range() and
BN_pseudo_rand_range().

* ext/openssl/ossl_bn.c (ossl_bn_s_rand_range): should raise
  NotImplementedError if BN_rand_range() wan not defined.

* ext/openssl/ossl_bn.c (ossl_bn_s_pseudo_rand_range): should raise
  NotImplementedError if BN_pseudo_rand_range() wan not defined.

* ext/openssl/ossl_pkcs7.c (ossl_pkcs7_s_encrypt): avoid compiler
  warning for OpenSSL-0.9.6.

* ext/openssl/ossl_pkcs7.c (ossl_pkcs7si_initialize): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4159 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-25 06:50:55 +00:00
gotoyuzo c9aad4c098 * ext/openssl/extconf.rb: add check for libsocket and libnsl.
* ext/openssl/extconf.rb: use pkg-config to build CFLAGS and LDFLAGS.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4150 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-24 17:58:56 +00:00
gotoyuzo c1008ab51b * ext/openssl/extconf.rb: add check for win32 OpenSSL libraries.
* ext/openssl/extconf.rb: add check for __VA_AEGS__.

* ext/openssl/ossl.h: avoid non C99 compiler errors.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4143 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-24 06:56:02 +00:00
eban 3150436c85 * ext/openssl/extconf.rb: revert use of dir_config.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4137 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-24 02:10:04 +00:00
michal 3f71dcc79b Cut check for OpenSSL version
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4133 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-23 18:48:07 +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