diff options
author | GOTOU Yuuzou <gotoyuzo@notwork.org> | 2002-10-15 10:16:17 +0000 |
---|---|---|
committer | GOTOU Yuuzou <gotoyuzo@notwork.org> | 2002-10-15 10:16:17 +0000 |
commit | 61cd7c6870fdf6ced31477133cd6b6cd81ae0883 (patch) | |
tree | 6a594356339c02a571cb333c85ef2a67ec81af1f /ossl_ssl.c | |
parent | ae036910ee7206c85c67da9f9fb91b5b959fc84a (diff) | |
download | ruby-openssl-history-61cd7c6870fdf6ced31477133cd6b6cd81ae0883.tar.gz |
*** empty log message ***
Diffstat (limited to 'ossl_ssl.c')
-rw-r--r-- | ossl_ssl.c | 25 |
1 files changed, 12 insertions, 13 deletions
@@ -32,7 +32,7 @@ VALUE cSSLSocket; #define ossl_sslctx_set_cert_file(o,v) rb_iv_set((o),"@cert_file",(v)) #define ossl_sslctx_set_key(o,v) rb_iv_set((o),"@key",(v)) #define ossl_sslctx_set_key_file(o,v) rb_iv_set((o),"@key_file",(v)) -#define ossl_sslctx_set_ca(o,v) rb_iv_set((o),"@ca_cert",(v)) +#define ossl_sslctx_set_ca_cert(o,v) rb_iv_set((o),"@ca_cert",(v)) #define ossl_sslctx_set_ca_file(o,v) rb_iv_set((o),"@ca_file",(v)) #define ossl_sslctx_set_ca_path(o,v) rb_iv_set((o),"@ca_path",(v)) #define ossl_sslctx_set_timeout(o,v) rb_iv_set((o),"@timeout",(v)) @@ -45,7 +45,7 @@ VALUE cSSLSocket; #define ossl_sslctx_get_cert_file(o) rb_iv_get((o),"@cert_file") #define ossl_sslctx_get_key(o) rb_iv_get((o),"@key") #define ossl_sslctx_get_key_file(o) rb_iv_get((o),"@key_file") -#define ossl_sslctx_get_ca(o) rb_iv_get((o),"@ca_cert") +#define ossl_sslctx_get_ca_cert(o) rb_iv_get((o),"@ca_cert") #define ossl_sslctx_get_ca_file(o) rb_iv_get((o),"@ca_file") #define ossl_sslctx_get_ca_path(o) rb_iv_get((o),"@ca_path") #define ossl_sslctx_get_timeout(o) rb_iv_get((o),"@timeout") @@ -184,7 +184,7 @@ static VALUE ossl_sslctx_setup(VALUE self) { ossl_sslctx_st *p = NULL; - X509 *cert = NULL, *ca = NULL; + X509 *cert = NULL, *ca_cert = NULL; EVP_PKEY *key = NULL; char *ca_path = NULL, *ca_file = NULL; int verify_mode; @@ -202,7 +202,6 @@ ossl_sslctx_setup(VALUE self) cert = NIL_P(val) ? NULL : GetX509CertPtr(val); /* NO DUP NEEDED */ val = ossl_sslctx_get_key(self); key = NIL_P(val) ? NULL : GetPKeyPtr(val); /* NO NEED TO DUP */ - if (cert && key) { if (!SSL_CTX_use_certificate(p->ctx, cert)) { /* Adds a ref => Safe to FREE */ @@ -217,19 +216,19 @@ ossl_sslctx_setup(VALUE self) } } - val = ossl_sslctx_get_ca(self); - ca = NIL_P(val) ? NULL : GetX509CertPtr(val); /* NO DUP NEEDED. */ - val = ossl_sslctx_get_ca_file(self); - ca_file = NIL_P(val) ? NULL : StringValuePtr(val); - val = ossl_sslctx_get_ca_path(self); - ca_path = NIL_P(val) ? NULL : StringValuePtr(val); - - if (ca){ - if (!SSL_CTX_add_client_CA(p->ctx, ca)){ + val = ossl_sslctx_get_ca_cert(self); + ca_cert = NIL_P(val) ? NULL : GetX509CertPtr(val); /* NO DUP NEEDED. */ + if (ca_cert){ + if (!SSL_CTX_add_client_CA(p->ctx, ca_cert)){ /* Copies X509_NAME => FREE it. */ ossl_raise(eSSLError, "SSL_CTX_add_client_CA"); } } + + val = ossl_sslctx_get_ca_file(self); + ca_file = NIL_P(val) ? NULL : StringValuePtr(val); + val = ossl_sslctx_get_ca_path(self); + ca_path = NIL_P(val) ? NULL : StringValuePtr(val); if ((!SSL_CTX_load_verify_locations(p->ctx, ca_file, ca_path) || !SSL_CTX_set_default_verify_paths(p->ctx))) { rb_warning("can't set verify locations"); |