diff options
author | NAKAMURA Hiroshi <nahi@keynauts.com> | 2003-07-10 17:33:48 +0000 |
---|---|---|
committer | NAKAMURA Hiroshi <nahi@keynauts.com> | 2003-07-10 17:33:48 +0000 |
commit | 6977f8bfb4809f743cba359f51fd4215b453e959 (patch) | |
tree | 67361e82a47a795553eeae56df472cf35a1ac4a3 | |
parent | 9b4c6b968f46df7d2b75da5a173d0cc5af3828ab (diff) | |
download | ruby-openssl-history-6977f8bfb4809f743cba359f51fd4215b453e959.tar.gz |
* ossl_x509req.c: Add Request#signature_algorithm.
* ossl_x509crl.c: eX509CertError -> eX509CRLError.
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | ossl_x509crl.c | 6 | ||||
-rw-r--r-- | ossl_x509req.c | 24 |
3 files changed, 31 insertions, 3 deletions
@@ -1,3 +1,7 @@ +Thu, 11 Jul 2003 02:33:59 +0900 -- NAKAMURA, Hiroshi <nahi@ruby-lang.org> + * ossl_x509req.c: Add Request#signature_algorithm. + * ossl_x509crl.c: eX509CertError -> eX509CRLError. + Thu, 11 Jul 2003 02:30:55 +0900 -- NAKAMURA, Hiroshi <nahi@ruby-lang.org> * examples/gen_csr.rb: Add 'key' option to specify keypair file. We need this feature for creating cross certificate. diff --git a/ossl_x509crl.c b/ossl_x509crl.c index 89133f7..9292eb9 100644 --- a/ossl_x509crl.c +++ b/ossl_x509crl.c @@ -64,7 +64,7 @@ ossl_x509crl_new(X509_CRL *crl) VALUE obj; tmp = crl ? X509_CRL_dup(crl) : X509_CRL_new(); - if(!tmp) ossl_raise(eX509CertError, NULL); + if(!tmp) ossl_raise(eX509CRLError, NULL); WrapX509CRL(cX509CRL, obj, tmp); return obj; @@ -183,11 +183,11 @@ ossl_x509crl_get_signature_algorithm(VALUE self) GetX509CRL(self, crl); if (!(out = BIO_new(BIO_s_mem()))) { - ossl_raise(eX509CertError, NULL); + ossl_raise(eX509CRLError, NULL); } if (!i2a_ASN1_OBJECT(out, crl->sig_alg->algorithm)) { BIO_free(out); - ossl_raise(eX509CertError, NULL); + ossl_raise(eX509CRLError, NULL); } BIO_get_mem_ptr(out, &buf); str = rb_str_new(buf->data, buf->length); diff --git a/ossl_x509req.c b/ossl_x509req.c index b24ba05..cda70d7 100644 --- a/ossl_x509req.c +++ b/ossl_x509req.c @@ -264,6 +264,29 @@ ossl_x509req_set_subject(VALUE self, VALUE subject) } static VALUE +ossl_x509req_get_signature_algorithm(VALUE self) +{ + X509_REQ *req; + BIO *out; + BUF_MEM *buf; + VALUE str; + + GetX509Req(self, req); + + if (!(out = BIO_new(BIO_s_mem()))) { + ossl_raise(eX509ReqError, NULL); + } + if (!i2a_ASN1_OBJECT(out, req->sig_alg->algorithm)) { + BIO_free(out); + ossl_raise(eX509ReqError, NULL); + } + BIO_get_mem_ptr(out, &buf); + str = rb_str_new(buf->data, buf->length); + BIO_free(out); + return str; +} + +static VALUE ossl_x509req_get_public_key(VALUE self) { X509_REQ *req; @@ -414,6 +437,7 @@ Init_ossl_x509req() rb_define_method(cX509Req, "version=", ossl_x509req_set_version, 1); rb_define_method(cX509Req, "subject", ossl_x509req_get_subject, 0); rb_define_method(cX509Req, "subject=", ossl_x509req_set_subject, 1); + rb_define_method(cX509Req, "signature_algorithm", ossl_x509req_get_signature_algorithm, 0); rb_define_method(cX509Req, "public_key", ossl_x509req_get_public_key, 0); rb_define_method(cX509Req, "public_key=", ossl_x509req_set_public_key, 1); rb_define_method(cX509Req, "sign", ossl_x509req_sign, 2); |