summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoremboss <emboss@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-05-11 21:51:52 +0000
committeremboss <emboss@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-05-11 21:51:52 +0000
commit1915a913ecee168610f17d6b9c9e2d20d2a219d8 (patch)
tree1412d4a330ddc0ef9de4c0008c4673c603a97cf9
parentfcd7300bf28ac8571b54dcf356e797a786946b6c (diff)
Thu May 12 07:27:31 2011 Martin Bosslet <Martin.Bosslet@googlemail.com>
* ext/openssl/ossl_pkey_rsa.c: Use generic X.509 SubjectPublicKeyInfo format for encoding RSA public keys. [ruby-core:35327] [Bug #4421] Previous revision: 31507 M ChangeLog M ext/openssl/ossl_pkey_rsa.c git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31520 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog6
-rw-r--r--ext/openssl/ossl_pkey_rsa.c14
2 files changed, 13 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index e029fda..77caf51 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Thu May 12 07:27:31 2011 Martin Bosslet <Martin.Bosslet@googlemail.com>
+
+ * ext/openssl/ossl_pkey_rsa.c: Use generic X.509 SubjectPublicKeyInfo
+ format for encoding RSA public keys.
+ [ruby-core:35327] [Bug #4421]
+
Wed May 11 19:45:27 2011 Keiju Ishitsuka <keiju@ishitsuka.com>
* lib/forwardable.rb: support 'delegate :foo => :bar' for to meet
diff --git a/ext/openssl/ossl_pkey_rsa.c b/ext/openssl/ossl_pkey_rsa.c
index 15c1d69..d57e5b5 100644
--- a/ext/openssl/ossl_pkey_rsa.c
+++ b/ext/openssl/ossl_pkey_rsa.c
@@ -159,27 +159,27 @@ ossl_rsa_initialize(int argc, VALUE *argv, VALUE self)
if (!rsa) {
(void)BIO_reset(in);
(void)ERR_get_error();
- rsa = PEM_read_bio_RSAPublicKey(in, NULL, NULL, NULL);
+ rsa = PEM_read_bio_RSA_PUBKEY(in, NULL, NULL, NULL);
}
if (!rsa) {
(void)BIO_reset(in);
(void)ERR_get_error();
- rsa = PEM_read_bio_RSA_PUBKEY(in, NULL, NULL, NULL);
+ rsa = d2i_RSAPrivateKey_bio(in, NULL);
}
if (!rsa) {
(void)BIO_reset(in);
(void)ERR_get_error();
- rsa = d2i_RSAPrivateKey_bio(in, NULL);
+ rsa = d2i_RSA_PUBKEY_bio(in, NULL);
}
if (!rsa) {
(void)BIO_reset(in);
(void)ERR_get_error();
- rsa = d2i_RSAPublicKey_bio(in, NULL);
+ rsa = PEM_read_bio_RSAPublicKey(in, NULL, NULL, NULL);
}
if (!rsa) {
(void)BIO_reset(in);
(void)ERR_get_error();
- rsa = d2i_RSA_PUBKEY_bio(in, NULL);
+ rsa = d2i_RSAPublicKey_bio(in, NULL);
}
BIO_free(in);
if (!rsa) {
@@ -268,7 +268,7 @@ ossl_rsa_export(int argc, VALUE *argv, VALUE self)
ossl_raise(eRSAError, NULL);
}
} else {
- if (!PEM_write_bio_RSAPublicKey(out, pkey->pkey.rsa)) {
+ if (!PEM_write_bio_RSA_PUBKEY(out, pkey->pkey.rsa)) {
BIO_free(out);
ossl_raise(eRSAError, NULL);
}
@@ -297,7 +297,7 @@ ossl_rsa_to_der(VALUE self)
if(RSA_HAS_PRIVATE(pkey->pkey.rsa))
i2d_func = i2d_RSAPrivateKey;
else
- i2d_func = i2d_RSAPublicKey;
+ i2d_func = (int (*)(const RSA*, unsigned char**))i2d_RSA_PUBKEY;
if((len = i2d_func(pkey->pkey.rsa, NULL)) <= 0)
ossl_raise(eRSAError, NULL);
str = rb_str_new(0, len);