diff options
author | Samuel Williams <samuel.williams@oriontransfer.co.nz> | 2019-06-13 16:54:38 +1200 |
---|---|---|
committer | Samuel Williams <samuel.williams@oriontransfer.co.nz> | 2019-06-13 16:55:57 +1200 |
commit | 46e4bdba40c5e9c0b84b9ce8a3d1a2012bb1136e (patch) | |
tree | 784ca45477c1b7b822db1e086f725342795b318c | |
parent | 4e9801dff8557e96d4076febe6ecabd531bd0779 (diff) | |
download | ruby-openssl-46e4bdba40c5e9c0b84b9ce8a3d1a2012bb1136e.tar.gz |
Add support for SSL_CTX_use_certificate_chain_file. Fixes #254.
-rw-r--r-- | ext/openssl/ossl_ssl.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/ext/openssl/ossl_ssl.c b/ext/openssl/ossl_ssl.c index 7996f227..df2304e4 100644 --- a/ext/openssl/ossl_ssl.c +++ b/ext/openssl/ossl_ssl.c @@ -1318,6 +1318,17 @@ ossl_sslctx_add_certificate(int argc, VALUE *argv, VALUE self) return self; } +static VALUE +ossl_sslctx_add_certificate_chain_file(VALUE self, VALUE path) +{ + StringValue(path); + SSL_CTX *ctx = NULL; + + GetSSLCTX(self, ctx); + + return SSL_CTX_use_certificate_chain_file(ctx, RSTRING_PTR(path)) == 1 ? Qtrue : Qfalse; +} + /* * call-seq: * ctx.session_add(session) -> true | false @@ -2700,6 +2711,7 @@ Init_ossl_ssl(void) rb_define_method(cSSLContext, "enable_fallback_scsv", ossl_sslctx_enable_fallback_scsv, 0); #endif rb_define_method(cSSLContext, "add_certificate", ossl_sslctx_add_certificate, -1); + rb_define_method(cSSLContext, "add_certificate_chain_file", ossl_sslctx_add_certificate_chain_file, 1); rb_define_method(cSSLContext, "setup", ossl_sslctx_setup, 0); rb_define_alias(cSSLContext, "freeze", "setup"); |