Add |X509_EXT_conf_nid| to decrepit.

This function is a deprecated version of |X509_EXT_nconf_nid| that takes
a hash of |CONF_VALUE|s directly rather than a |CONF|.

Change-Id: I5fd1025b31d73b988d9298b2624453017dd34ff4
Reviewed-on: https://boringssl-review.googlesource.com/7363
Reviewed-by: David Benjamin <davidben@google.com>
This commit is contained in:
Adam Langley 2016-03-07 17:07:54 -08:00 committed by David Benjamin
parent 8ba4b2d5bf
commit 6e96eaebe0
4 changed files with 54 additions and 0 deletions

View File

@ -5,6 +5,7 @@ add_subdirectory(des)
add_subdirectory(dsa)
add_subdirectory(evp)
add_subdirectory(rsa)
add_subdirectory(x509)
add_subdirectory(xts)
add_library(
@ -17,6 +18,7 @@ add_library(
$<TARGET_OBJECTS:dsa_decrepit>
$<TARGET_OBJECTS:evp_decrepit>
$<TARGET_OBJECTS:rsa_decrepit>
$<TARGET_OBJECTS:x509>
$<TARGET_OBJECTS:xts>
)

View File

@ -0,0 +1,9 @@
include_directories(../../include)
add_library(
x509_decrepit
OBJECT
x509_decrepit.c
)

View File

@ -0,0 +1,42 @@
/* Copyright (c) 2016, Google Inc.
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
* SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
#include <openssl/conf.h>
#include <openssl/x509v3.h>
X509_EXTENSION *X509V3_EXT_conf_nid(LHASH_OF(CONF_VALUE) *conf,
X509V3_CTX *ctx, int ext_nid, char *value) {
CONF *nconf = NULL;
LHASH_OF(CONF_VALUE) *orig_data = NULL;
if (conf != NULL) {
nconf = NCONF_new(NULL /* no method */);
if (nconf == NULL) {
return NULL;
}
orig_data = nconf->data;
nconf->data = conf;
}
X509_EXTENSION *ret = X509V3_EXT_nconf_nid(nconf, ctx, ext_nid, value);
if (nconf != NULL) {
nconf->data = orig_data;
NCONF_free(nconf);
}
return ret;
}

View File

@ -600,6 +600,7 @@ OPENSSL_EXPORT GENERAL_NAME *v2i_GENERAL_NAME_ex(GENERAL_NAME *out,
X509V3_CTX *ctx, CONF_VALUE *cnf, int is_nc);
OPENSSL_EXPORT void X509V3_conf_free(CONF_VALUE *val);
OPENSSL_EXPORT X509_EXTENSION *X509V3_EXT_conf_nid(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, int ext_nid, char *value);
OPENSSL_EXPORT X509_EXTENSION *X509V3_EXT_nconf_nid(CONF *conf, X509V3_CTX *ctx, int ext_nid, char *value);
OPENSSL_EXPORT X509_EXTENSION *X509V3_EXT_nconf(CONF *conf, X509V3_CTX *ctx, char *name, char *value);
OPENSSL_EXPORT int X509V3_EXT_add_nconf_sk(CONF *conf, X509V3_CTX *ctx, char *section, STACK_OF(X509_EXTENSION) **sk);