sync with OpenBSD -current

This commit is contained in:
purplerain 2024-08-19 17:15:41 +00:00
parent c78abe7784
commit eb9d621948
Signed by: purplerain
GPG key ID: F42C07F07E2E35B7
270 changed files with 666 additions and 538 deletions

View file

@ -1,4 +1,4 @@
/* $OpenBSD: conf_def.c,v 1.34 2024/04/09 13:56:30 beck Exp $ */
/* $OpenBSD: conf_def.c,v 1.35 2024/08/18 17:50:10 tb Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@ -80,57 +80,6 @@ static char *scan_quote(CONF *conf, char *p);
static char *scan_dquote(CONF *conf, char *p);
#define scan_esc(conf,p) (((IS_EOF((conf),(p)[1]))?((p)+1):((p)+2)))
static CONF *def_create(CONF_METHOD *meth);
static int def_init_default(CONF *conf);
static int def_init_WIN32(CONF *conf);
static int def_destroy(CONF *conf);
static int def_destroy_data(CONF *conf);
static int def_load(CONF *conf, const char *name, long *eline);
static int def_load_bio(CONF *conf, BIO *bp, long *eline);
static int def_dump(const CONF *conf, BIO *bp);
static int def_is_number(const CONF *conf, char c);
static int def_to_int(const CONF *conf, char c);
static CONF_METHOD default_method = {
.name = "OpenSSL default",
.create = def_create,
.init = def_init_default,
.destroy = def_destroy,
.destroy_data = def_destroy_data,
.load_bio = def_load_bio,
.dump = def_dump,
.is_number = def_is_number,
.to_int = def_to_int,
.load = def_load
};
static CONF_METHOD WIN32_method = {
"WIN32",
def_create,
def_init_WIN32,
def_destroy,
def_destroy_data,
def_load_bio,
def_dump,
def_is_number,
def_to_int,
def_load
};
CONF_METHOD *
NCONF_default(void)
{
return &default_method;
}
LCRYPTO_ALIAS(NCONF_default);
CONF_METHOD *
NCONF_WIN32(void)
{
return &WIN32_method;
}
LCRYPTO_ALIAS(NCONF_WIN32);
static CONF *
def_create(CONF_METHOD *meth)
{
@ -151,7 +100,7 @@ def_init_default(CONF *conf)
if (conf == NULL)
return 0;
conf->meth = &default_method;
conf->meth = NCONF_default();
conf->meth_data = CONF_type_default;
conf->data = NULL;
@ -164,23 +113,13 @@ def_init_WIN32(CONF *conf)
if (conf == NULL)
return 0;
conf->meth = &WIN32_method;
conf->meth = NCONF_WIN32();
conf->meth_data = (void *)CONF_type_win32;
conf->data = NULL;
return 1;
}
static int
def_destroy(CONF *conf)
{
if (def_destroy_data(conf)) {
free(conf);
return 1;
}
return 0;
}
static int
def_destroy_data(CONF *conf)
{
@ -191,24 +130,13 @@ def_destroy_data(CONF *conf)
}
static int
def_load(CONF *conf, const char *name, long *line)
def_destroy(CONF *conf)
{
int ret;
BIO *in = NULL;
in = BIO_new_file(name, "rb");
if (in == NULL) {
if (ERR_GET_REASON(ERR_peek_last_error()) == BIO_R_NO_SUCH_FILE)
CONFerror(CONF_R_NO_SUCH_FILE);
else
CONFerror(ERR_R_SYS_LIB);
return 0;
if (def_destroy_data(conf)) {
free(conf);
return 1;
}
ret = def_load_bio(conf, in, line);
BIO_free(in);
return ret;
return 0;
}
static int
@ -416,6 +344,27 @@ err:
return (0);
}
static int
def_load(CONF *conf, const char *name, long *line)
{
int ret;
BIO *in = NULL;
in = BIO_new_file(name, "rb");
if (in == NULL) {
if (ERR_GET_REASON(ERR_peek_last_error()) == BIO_R_NO_SUCH_FILE)
CONFerror(CONF_R_NO_SUCH_FILE);
else
CONFerror(ERR_R_SYS_LIB);
return 0;
}
ret = def_load_bio(conf, in, line);
BIO_free(in);
return ret;
}
static void
clear_comments(CONF *conf, char *p)
{
@ -698,3 +647,43 @@ def_to_int(const CONF *conf, char c)
{
return c - '0';
}
static CONF_METHOD default_method = {
.name = "OpenSSL default",
.create = def_create,
.init = def_init_default,
.destroy = def_destroy,
.destroy_data = def_destroy_data,
.load_bio = def_load_bio,
.dump = def_dump,
.is_number = def_is_number,
.to_int = def_to_int,
.load = def_load
};
static CONF_METHOD WIN32_method = {
"WIN32",
def_create,
def_init_WIN32,
def_destroy,
def_destroy_data,
def_load_bio,
def_dump,
def_is_number,
def_to_int,
def_load
};
CONF_METHOD *
NCONF_default(void)
{
return &default_method;
}
LCRYPTO_ALIAS(NCONF_default);
CONF_METHOD *
NCONF_WIN32(void)
{
return &WIN32_method;
}
LCRYPTO_ALIAS(NCONF_WIN32);

View file

@ -1,4 +1,4 @@
.\" $OpenBSD: X509_REQ_add_extensions.3,v 1.1 2021/10/27 14:54:07 schwarze Exp $
.\" $OpenBSD: X509_REQ_add_extensions.3,v 1.2 2024/08/18 11:04:55 tb Exp $
.\"
.\" Copyright (c) 2021 Ingo Schwarze <schwarze@openbsd.org>
.\"
@ -14,15 +14,13 @@
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: October 27 2021 $
.Dd $Mdocdate: August 18 2024 $
.Dt X509_REQ_ADD_EXTENSIONS 3
.Os
.Sh NAME
.Nm X509_REQ_add_extensions ,
.Nm X509_REQ_add_extensions_nid ,
.Nm X509_REQ_get_extensions ,
.Nm X509_REQ_set_extension_nids ,
.Nm X509_REQ_get_extension_nids ,
.Nm X509_REQ_extension_nid
.Nd extensions in certification requests
.Sh SYNOPSIS
@ -40,10 +38,6 @@
.Fc
.Ft STACK_OF(X509_EXTENSION) *
.Fn X509_REQ_get_extensions "X509_REQ *req"
.Ft void
.Fn X509_REQ_set_extension_nids "int *nids"
.Ft int *
.Fn X509_REQ_get_extension_nids void
.Ft int
.Fn X509_REQ_extension_nid "int nid"
.Sh DESCRIPTION
@ -77,21 +71,6 @@ and
.Dv NID_ms_ext_req
are considered appropriate.
.Pp
.Fn X509_REQ_set_extension_nids
replaces the list of attribute types that
.Fn X509_REQ_get_extensions
considers appropriate for storing extensions.
The
.Fa nids
argument is interpreted as a pointer to the first element
of a variable-sized array of
.Vt int .
The last element of the array has to be
.Dv NID_undef .
The array needs to remain valid until
.Fn X509_REQ_set_extension_nids
is called again with a different argument.
.Pp
.Fn X509_REQ_extension_nid
checks whether
.Fn X509_REQ_get_extensions
@ -118,13 +97,6 @@ does not contain
contains no attribute of an appropriate type,
or if decoding or memory allocation fails.
.Pp
.Fn X509_REQ_get_extension_nids
returns the pointer installed with
.Fn X509_REQ_set_extension_nids
or a pointer to a static array
.Brq Dv NID_ext_req , NID_ms_ext_req , NID_undef
by default.
.Pp
.Fn X509_REQ_extension_nid
returns 1 if
.Fa nid