aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNAKAMURA Hiroshi <nahi@keynauts.com>2003-07-01 04:11:32 +0000
committerNAKAMURA Hiroshi <nahi@keynauts.com>2003-07-01 04:11:32 +0000
commitb368037a3a6de720936182d594f0722c6664938d (patch)
tree1743a198163208131bdfcf43267d7ce7f4d844ff
parent72c5e53fd93ce0b14f50707c9544f0f39e4ff714 (diff)
downloadruby-openssl-history-b368037a3a6de720936182d594f0722c6664938d.tar.gz
* ossl_x509crl.c: Add OpenSSL::X509::CRL#to_der (ossl_x509crl_to_der).
-rw-r--r--ChangeLog3
-rw-r--r--ossl_x509crl.c24
2 files changed, 27 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index da4868e..f4ca953 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,6 @@
+Tue, 01 Jul 2003 13:08:11 +0900 -- NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+ * ossl_x509crl.c: Add OpenSSL::X509::CRL#to_der (ossl_x509crl_to_der).
+
Mon, 30 Jun 2003 04:32:40 +0900 -- GOTOU Yuuzou <gotoyuzo@notwork.org>
* ossl_ssl.c: @ca_cert is renamed to @client_ca;
and an Array can be specified to this.
diff --git a/ossl_x509crl.c b/ossl_x509crl.c
index 9dc509f..96a61ec 100644
--- a/ossl_x509crl.c
+++ b/ossl_x509crl.c
@@ -335,6 +335,29 @@ ossl_x509crl_verify(VALUE self, VALUE key)
}
static VALUE
+ossl_x509crl_to_der(VALUE self)
+{
+ X509_CRL *crl;
+ BIO *out;
+ BUF_MEM *buf;
+ VALUE str;
+
+ GetX509CRL(self, crl);
+ if (!(out = BIO_new(BIO_s_mem()))) {
+ ossl_raise(eX509CRLError, "");
+ }
+ if (!i2d_X509_CRL_bio(out, crl)) {
+ BIO_free(out);
+ ossl_raise(eX509CRLError, "");
+ }
+ BIO_get_mem_ptr(out, &buf);
+ str = rb_str_new(buf->data, buf->length);
+ BIO_free(out);
+
+ return str;
+}
+
+static VALUE
ossl_x509crl_to_pem(VALUE self)
{
X509_CRL *crl;
@@ -480,6 +503,7 @@ Init_ossl_x509crl()
rb_define_method(cX509CRL, "add_revoked", ossl_x509crl_add_revoked, 1);
rb_define_method(cX509CRL, "sign", ossl_x509crl_sign, 2);
rb_define_method(cX509CRL, "verify", ossl_x509crl_verify, 1);
+ rb_define_method(cX509CRL, "to_der", ossl_x509crl_to_der, 0);
rb_define_method(cX509CRL, "to_pem", ossl_x509crl_to_pem, 0);
rb_define_alias(cX509CRL, "to_s", "to_pem");
rb_define_method(cX509CRL, "to_text", ossl_x509crl_to_text, 0);