Merge conflicts between 3.0.9 and 3.0.12

This commit is contained in:
christos 2023-10-25 17:17:49 +00:00
parent 4778aede46
commit 8dcce544ab
775 changed files with 2704 additions and 1969 deletions

View File

@ -597,8 +597,7 @@ my @disable_cascades = (
"crypto-mdebug" => [ "crypto-mdebug-backtrace" ],
# If no modules, then no dynamic engines either
"module" => [ "dynamic-engine" ],
"module" => [ "dynamic-engine", "fips" ],
# Without shared libraries, dynamic engines aren't possible.
# This is due to them having to link with libcrypto and register features
@ -616,8 +615,6 @@ my @disable_cascades = (
# or modules.
"pic" => [ "shared", "module" ],
"module" => [ "fips", "dso" ],
"engine" => [ "dynamic-engine", grep(/eng$/, @disablables) ],
"dynamic-engine" => [ "loadereng" ],
"hw" => [ "padlockeng" ],

View File

@ -1,5 +1,5 @@
/*
* Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved.
* Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@ -628,6 +628,8 @@ end_of_options:
f = NCONF_get_string(conf, section, ENV_NAMEOPT);
if (f == NULL)
ERR_clear_error();
if (f != NULL) {
if (!set_nameopt(f)) {
BIO_printf(bio_err, "Invalid name options: \"%s\"\n", f);
@ -785,8 +787,10 @@ end_of_options:
/* We can have sections in the ext file */
if (extensions == NULL) {
extensions = NCONF_get_string(extfile_conf, "default", "extensions");
if (extensions == NULL)
if (extensions == NULL) {
ERR_clear_error();
extensions = "default";
}
}
}
@ -802,15 +806,20 @@ end_of_options:
/*
* EVP_PKEY_get_default_digest_name() returns 2 if the digest is
* mandatory for this algorithm.
*
* That call may give back the name "UNDEF", which has these meanings:
*
* when def_ret == 2: the user MUST leave the digest unspecified
* when def_ret == 1: the user MAY leave the digest unspecified
*/
if (def_ret == 2 && strcmp(def_dgst, "UNDEF") == 0) {
/* The signing algorithm requires there to be no digest */
dgst = NULL;
} else if (dgst == NULL
&& (dgst = lookup_conf(conf, section, ENV_DEFAULT_MD)) == NULL) {
&& (dgst = lookup_conf(conf, section, ENV_DEFAULT_MD)) == NULL
&& strcmp(def_dgst, "UNDEF") != 0) {
goto end;
} else {
if (strcmp(dgst, "default") == 0) {
if (strcmp(dgst, "default") == 0 || strcmp(def_dgst, "UNDEF") == 0) {
if (def_ret <= 0) {
BIO_puts(bio_err, "no default digest\n");
goto end;
@ -824,6 +833,8 @@ end_of_options:
char *tmp_email_dn = NULL;
tmp_email_dn = NCONF_get_string(conf, section, ENV_DEFAULT_EMAIL_DN);
if (tmp_email_dn == NULL)
ERR_clear_error();
if (tmp_email_dn != NULL && strcmp(tmp_email_dn, "no") == 0)
email_dn = 0;
}
@ -839,6 +850,7 @@ end_of_options:
if (NCONF_get_string(conf, section, ENV_RAND_SERIAL) != NULL) {
rand_ser = 1;
} else {
ERR_clear_error();
serialfile = lookup_conf(conf, section, ENV_SERIAL);
if (serialfile == NULL)
goto end;
@ -908,8 +920,10 @@ end_of_options:
}
if (days == 0) {
if (!NCONF_get_number(conf, section, ENV_DEFAULT_DAYS, &days))
if (!NCONF_get_number(conf, section, ENV_DEFAULT_DAYS, &days)) {
ERR_clear_error();
days = 0;
}
}
if (enddate == NULL && days == 0) {
BIO_printf(bio_err, "cannot lookup how many days to certify for\n");
@ -1034,7 +1048,7 @@ end_of_options:
}
}
/*
* we have a stack of newly certified certificates and a data base
* we have a stack of newly certified certificates and a database
* and serial number that need updating
*/
@ -1135,7 +1149,7 @@ end_of_options:
if (!rotate_index(dbfile, "new", "old"))
goto end;
BIO_printf(bio_err, "Data Base Updated\n");
BIO_printf(bio_err, "Database updated\n");
}
}
@ -1161,22 +1175,28 @@ end_of_options:
}
}
if ((crlnumberfile = NCONF_get_string(conf, section, ENV_CRLNUMBER))
!= NULL)
crlnumberfile = NCONF_get_string(conf, section, ENV_CRLNUMBER);
if (crlnumberfile != NULL) {
if ((crlnumber = load_serial(crlnumberfile, NULL, 0, NULL))
== NULL) {
BIO_printf(bio_err, "error while loading CRL number\n");
goto end;
}
} else {
ERR_clear_error();
}
if (!crldays && !crlhours && !crlsec) {
if (!NCONF_get_number(conf, section,
ENV_DEFAULT_CRL_DAYS, &crldays))
ENV_DEFAULT_CRL_DAYS, &crldays)) {
ERR_clear_error();
crldays = 0;
}
if (!NCONF_get_number(conf, section,
ENV_DEFAULT_CRL_HOURS, &crlhours))
ENV_DEFAULT_CRL_HOURS, &crlhours)) {
ERR_clear_error();
crlhours = 0;
ERR_clear_error();
}
}
if ((crl_nextupdate == NULL) &&
(crldays == 0) && (crlhours == 0) && (crlsec == 0)) {
@ -1316,7 +1336,7 @@ end_of_options:
if (!rotate_index(dbfile, "new", "old"))
goto end;
BIO_printf(bio_err, "Data Base Updated\n");
BIO_printf(bio_err, "Database updated\n");
}
}
ret = 0;
@ -1758,7 +1778,7 @@ static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *x509,
if (verbose)
BIO_printf(bio_err,
"The subject name appears to be ok, checking data base for clashes\n");
"The subject name appears to be ok, checking database for clashes\n");
/* Build the correct Subject if no e-mail is wanted in the subject. */
if (!email_dn) {
@ -1847,7 +1867,7 @@ static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *x509,
else if (rrow[DB_type][0] == DB_TYPE_VAL)
p = "Valid";
else
p = "\ninvalid type, Data base error\n";
p = "\ninvalid type, Database error\n";
BIO_printf(bio_err, "Type :%s\n", p);;
if (rrow[DB_type][0] == DB_TYPE_REV) {
p = rrow[DB_exp_date];

View File

@ -2115,7 +2115,7 @@ static const char *prev_item(const char *opt, const char *end)
beg = end;
while (beg > opt) {
--beg;
if (beg[0] == ',' || isspace((unsigned char)beg[0])) {
if (beg[0] == ',' || isspace(_UC(beg[0]))) {
++beg;
break;
}
@ -2130,7 +2130,7 @@ static const char *prev_item(const char *opt, const char *end)
opt_item[len] = '\0';
while (beg > opt) {
--beg;
if (beg[0] != ',' && !isspace((unsigned char)beg[0])) {
if (beg[0] != ',' && !isspace(_UC(beg[0]))) {
++beg;
break;
}
@ -2148,6 +2148,7 @@ static char *conf_get_string(const CONF *src_conf, const char *groups,
while ((end = prev_item(groups, end)) != NULL) {
if ((res = NCONF_get_string(src_conf, opt_item, name)) != NULL)
return res;
ERR_clear_error();
}
return res;
}
@ -2511,7 +2512,7 @@ static int get_opts(int argc, char **argv)
}
break;
case OPT_CSR:
opt_csr = opt_arg();
opt_csr = opt_str();
break;
case OPT_OUT_TRUSTED:
opt_out_trusted = opt_str();

View File

@ -638,13 +638,13 @@ void *app_malloc(size_t sz, const char *what)
char *next_item(char *opt) /* in list separated by comma and/or space */
{
/* advance to separator (comma or whitespace), if any */
while (*opt != ',' && !isspace((unsigned char)*opt) && *opt != '\0')
while (*opt != ',' && !isspace(_UC(*opt)) && *opt != '\0')
opt++;
if (*opt != '\0') {
/* terminate current item */
*opt++ = '\0';
/* skip over any whitespace after separator */
while (isspace((unsigned char)*opt))
while (isspace(_UC(*opt)))
opt++;
}
return *opt == '\0' ? NULL : opt; /* NULL indicates end of input */
@ -944,7 +944,7 @@ int load_key_certs_crls_suppress(const char *uri, int format, int maybe_stdin,
BIO *bio;
if (!maybe_stdin) {
BIO_printf(bio_err, "No filename or uri specified for loading");
BIO_printf(bio_err, "No filename or uri specified for loading\n");
goto end;
}
uri = "<stdin>";
@ -964,8 +964,10 @@ int load_key_certs_crls_suppress(const char *uri, int format, int maybe_stdin,
BIO_printf(bio_err, "Could not open file or uri for loading");
goto end;
}
if (expect > 0 && !OSSL_STORE_expect(ctx, expect))
if (expect > 0 && !OSSL_STORE_expect(ctx, expect)) {
BIO_printf(bio_err, "Internal error trying to load");
goto end;
}
failed = NULL;
while (cnt_expectations > 0 && !OSSL_STORE_eof(ctx)) {
@ -1679,7 +1681,10 @@ CA_DB *load_index(const char *dbfile, DB_ATTR *db_attr)
char *p = NCONF_get_string(dbattr_conf, NULL, "unique_subject");
if (p) {
retdb->attributes.unique_subject = parse_yesno(p, 1);
} else {
ERR_clear_error();
}
}
retdb->dbfname = OPENSSL_strdup(dbfile);
@ -1945,16 +1950,17 @@ X509_NAME *parse_name(const char *cp, int chtype, int canmulti,
nid = OBJ_txt2nid(typestr);
if (nid == NID_undef) {
BIO_printf(bio_err,
"%s: Skipping unknown %s name attribute \"%s\"\n",
"%s warning: Skipping unknown %s name attribute \"%s\"\n",
opt_getprog(), desc, typestr);
if (ismulti)
BIO_printf(bio_err,
"Hint: a '+' in a value string needs be escaped using '\\' else a new member of a multi-valued RDN is expected\n");
"%s hint: a '+' in a value string needs be escaped using '\\' else a new member of a multi-valued RDN is expected\n",
opt_getprog());
continue;
}
if (*valstr == '\0') {
BIO_printf(bio_err,
"%s: No value provided for %s name attribute \"%s\", skipped\n",
"%s warning: No value provided for %s name attribute \"%s\", skipped\n",
opt_getprog(), desc, typestr);
continue;
}
@ -2008,7 +2014,8 @@ int bio_to_mem(unsigned char **out, int maxlen, BIO *in)
BIO_free(mem);
return -1;
}
maxlen -= len;
if (maxlen != -1)
maxlen -= len;
if (maxlen == 0)
break;
@ -3356,8 +3363,8 @@ EVP_PKEY *app_keygen(EVP_PKEY_CTX *ctx, const char *alg, int bits, int verbose)
BIO_printf(bio_err, "Warning: generating random key material may take a long time\n"
"if the system has a poor entropy source\n");
if (EVP_PKEY_keygen(ctx, &res) <= 0)
app_bail_out("%s: Error generating %s key\n", opt_getprog(),
alg != NULL ? alg : "asymmetric");
BIO_printf(bio_err, "%s: Error generating %s key\n", opt_getprog(),
alg != NULL ? alg : "asymmetric");
return res;
}
@ -3369,8 +3376,8 @@ EVP_PKEY *app_paramgen(EVP_PKEY_CTX *ctx, const char *alg)
BIO_printf(bio_err, "Warning: generating random key parameters may take a long time\n"
"if the system has a poor entropy source\n");
if (EVP_PKEY_paramgen(ctx, &res) <= 0)
app_bail_out("%s: Generating %s key parameters failed\n",
opt_getprog(), alg != NULL ? alg : "asymmetric");
BIO_printf(bio_err, "%s: Generating %s key parameters failed\n",
opt_getprog(), alg != NULL ? alg : "asymmetric");
return res;
}

View File

@ -1,5 +1,5 @@
/*
* Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved.
* Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@ -199,7 +199,7 @@ static int duplicated(LHASH_OF(OPENSSL_STRING) *addexts, char *kv)
/* Check syntax. */
/* Skip leading whitespace, make a copy. */
while (*kv && isspace((unsigned char)*kv))
while (*kv && isspace(_UC(*kv)))
if (*++kv == '\0')
return 1;
if ((p = strchr(kv, '=')) == NULL)
@ -210,7 +210,7 @@ static int duplicated(LHASH_OF(OPENSSL_STRING) *addexts, char *kv)
/* Skip trailing space before the equal sign. */
for (p = kv + off; p > kv; --p)
if (!isspace((unsigned char)p[-1]))
if (!isspace(_UC(p[-1])))
break;
if (p == kv) {
OPENSSL_free(kv);
@ -635,8 +635,10 @@ int req_main(int argc, char **argv)
if (newreq && pkey == NULL) {
app_RAND_load_conf(req_conf, section);
if (!NCONF_get_number(req_conf, section, BITS, &newkey_len))
if (!NCONF_get_number(req_conf, section, BITS, &newkey_len)) {
ERR_clear_error();
newkey_len = DEFAULT_KEY_LENGTH;
}
genctx = set_keygen_ctx(keyalg, &keyalgstr, &newkey_len, gen_eng);
if (genctx == NULL)
@ -683,6 +685,8 @@ int req_main(int argc, char **argv)
EVP_PKEY_CTX_set_app_data(genctx, bio_err);
pkey = app_keygen(genctx, keyalgstr, newkey_len, verbose);
if (pkey == NULL)
goto end;
EVP_PKEY_CTX_free(genctx);
genctx = NULL;
@ -988,10 +992,10 @@ int req_main(int argc, char **argv)
else
tpubkey = X509_REQ_get0_pubkey(req);
if (tpubkey == NULL) {
fprintf(stdout, "Modulus is unavailable\n");
BIO_puts(bio_err, "Modulus is unavailable\n");
goto end;
}
fprintf(stdout, "Modulus=");
BIO_puts(out, "Modulus=");
if (EVP_PKEY_is_a(tpubkey, "RSA") || EVP_PKEY_is_a(tpubkey, "RSA-PSS")) {
BIGNUM *n = NULL;
@ -1000,9 +1004,9 @@ int req_main(int argc, char **argv)
BN_print(out, n);
BN_free(n);
} else {
fprintf(stdout, "Wrong Algorithm type");
BIO_puts(out, "Wrong Algorithm type");
}
fprintf(stdout, "\n");
BIO_puts(out, "\n");
}
if (!noout && !gen_x509) {

View File

@ -1,5 +1,5 @@
/*
* Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved.
* Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved.
* Copyright 2005 Nokia. All rights reserved.
*
* Licensed under the Apache License 2.0 (the "License"). You may not use

View File

@ -789,7 +789,7 @@ const OPTIONS s_server_options[] = {
"second server certificate chain file in PEM format"},
{"dkey", OPT_DKEY, '<',
"Second private key file to use (usually for DSA)"},
{"dkeyform", OPT_DKEYFORM, 'F',
{"dkeyform", OPT_DKEYFORM, 'f',
"Second key file format (ENGINE, other values ignored)"},
{"dpass", OPT_DPASS, 's',
"Second private key and cert file pass phrase source"},

View File

@ -1,5 +1,5 @@
/*
* Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved.
* Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved.
* Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
@ -1005,6 +1005,13 @@ static int EdDSA_sign_loop(void *args)
int ret, count;
for (count = 0; COND(eddsa_c[testnum][0]); count++) {
ret = EVP_DigestSignInit(edctx[testnum], NULL, NULL, NULL, NULL);
if (ret == 0) {
BIO_printf(bio_err, "EdDSA sign init failure\n");
ERR_print_errors(bio_err);
count = -1;
break;
}
ret = EVP_DigestSign(edctx[testnum], eddsasig, eddsasigsize, buf, 20);
if (ret == 0) {
BIO_printf(bio_err, "EdDSA sign failure\n");
@ -1026,6 +1033,13 @@ static int EdDSA_verify_loop(void *args)
int ret, count;
for (count = 0; COND(eddsa_c[testnum][1]); count++) {
ret = EVP_DigestVerifyInit(edctx[testnum], NULL, NULL, NULL, NULL);
if (ret == 0) {
BIO_printf(bio_err, "EdDSA verify init failure\n");
ERR_print_errors(bio_err);
count = -1;
break;
}
ret = EVP_DigestVerify(edctx[testnum], eddsasig, eddsasigsize, buf, 20);
if (ret != 1) {
BIO_printf(bio_err, "EdDSA verify failure\n");
@ -3133,12 +3147,22 @@ skip_hmac:
}
for (k = 0; k < ALGOR_NUM; k++) {
const char *alg_name = names[k];
if (!doit[k])
continue;
if (k == D_EVP) {
if (evp_cipher == NULL)
alg_name = evp_md_name;
else if ((alg_name = EVP_CIPHER_get0_name(evp_cipher)) == NULL)
app_bail_out("failed to get name of cipher '%s'\n", evp_cipher);
}
if (mr)
printf("+F:%u:%s", k, names[k]);
printf("+F:%u:%s", k, alg_name);
else
printf("%-13s", names[k]);
printf("%-13s", alg_name);
for (testnum = 0; testnum < size_num; testnum++) {
if (results[k][testnum] > 10000 && !mr)
printf(" %11.2fk", results[k][testnum] / 1e3);
@ -3676,7 +3700,8 @@ static void multiblock_speed(const EVP_CIPHER *evp_cipher, int lengths_single,
} else {
int pad;
RAND_bytes(out, 16);
if (RAND_bytes(inp, 16) <= 0)
app_bail_out("error setting random bytes\n");
len += 16;
aad[11] = (unsigned char)(len >> 8);
aad[12] = (unsigned char)(len);

View File

@ -1,82 +0,0 @@
image:
- Visual Studio 2017
platform:
- x64
- x86
environment:
fast_finish: true
matrix:
- VSVER: 15
configuration:
- shared
- minimal
for:
-
branches:
only:
- master
configuration:
- shared
- plain
- minimal
before_build:
- ps: >-
Install-Module VSSetup -Scope CurrentUser
- ps: >-
Get-VSSetupInstance -All
- ps: >-
If ($env:Platform -Match "x86") {
$env:VCVARS_PLATFORM="x86"
$env:TARGET="VC-WIN32 no-asm --strict-warnings"
} Else {
$env:VCVARS_PLATFORM="amd64"
$env:TARGET="VC-WIN64A-masm"
}
- ps: >-
If ($env:Configuration -Match "shared") {
$env:CONFIG_OPTS="enable-fips"
} ElseIf ($env:Configuration -Match "minimal") {
$env:CONFIG_OPTS="no-bulk no-asm -DOPENSSL_SMALL_FOOTPRINT"
} Else {
$env:CONFIG_OPTS="no-fips no-shared"
}
- call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" %VCVARS_PLATFORM%
- mkdir _build
- cd _build
- perl ..\Configure %TARGET% no-makedepend %CONFIG_OPTS%
- perl configdata.pm --dump
- cd ..
- ps: >-
If ($env:BUILDONLY -or $env:MAKEVERBOSE) {
$env:NMAKE="nmake"
} Else {
$env:NMAKE="nmake /S"
}
- ps: >-
gci env:* | sort-object name
build_script:
- cd _build
- "%NMAKE% build_all_generated"
- "%NMAKE% PERL=no-perl"
- cd ..
test_script:
- cd _build
- ps: >-
if ($env:Configuration -Match "plain") {
cmd /c "%NMAKE% test VERBOSE_FAILURE=yes 2>&1"
} Else {
cmd /c "%NMAKE% test VERBOSE_FAILURE=yes TESTS=-test_fuzz 2>&1"
}
- ps: >-
if ($env:Configuration -Match "shared") {
mkdir ..\_install
cmd /c "%NMAKE% install DESTDIR=..\_install 2>&1"
}
- cd ..

View File

@ -1,5 +1,5 @@
/*
* Copyright 2011-2022 The OpenSSL Project Authors. All Rights Reserved.
* Copyright 2011-2023 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@ -21,11 +21,6 @@
# elif defined(__GNUC__) || defined(__lint__)
# if defined(__aarch64__)
# define __ARM_ARCH__ 8
# if __BYTE_ORDER__==__ORDER_BIG_ENDIAN__
# define __ARMEB__
# else
# define __ARMEL__
# endif
/*
* Why doesn't gcc define __ARM_ARCH__? Instead it defines
* bunch of below macros. See all_architectures[] table in

View File

@ -1,5 +1,5 @@
/*
* Copyright 2008-2022 The OpenSSL Project Authors. All Rights Reserved.
* Copyright 2008-2023 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@ -516,6 +516,12 @@ int SMIME_crlf_copy(BIO *in, BIO *out, int flags)
int len;
char linebuf[MAX_SMLEN];
int ret;
if (in == NULL || out == NULL) {
ERR_raise(ERR_LIB_ASN1, ERR_R_PASSED_NULL_PARAMETER);
return 0;
}
/*
* Buffer output so we don't write one line at a time. This is useful
* when streaming as we don't end up with one OCTET STRING per line.

View File

@ -1,5 +1,5 @@
/*
* Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved.
* Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@ -116,6 +116,8 @@ static DH *dh_new_intern(ENGINE *engine, OSSL_LIB_CTX *libctx)
goto err;
#endif /* FIPS_MODULE */
ossl_ffc_params_init(&ret->params);
if ((ret->meth->init != NULL) && !ret->meth->init(ret)) {
ERR_raise(ERR_LIB_DH, ERR_R_INIT_FAIL);
goto err;

View File

@ -1,5 +1,5 @@
/*
* Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved.
* Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@ -176,6 +176,8 @@ static DSA *dsa_new_intern(ENGINE *engine, OSSL_LIB_CTX *libctx)
goto err;
#endif
ossl_ffc_params_init(&ret->params);
if ((ret->meth->init != NULL) && !ret->meth->init(ret)) {
ERR_raise(ERR_LIB_DSA, ERR_R_INIT_FAIL);
goto err;

View File

@ -133,28 +133,34 @@ static ENGINE_CLEANUP_ITEM *int_cleanup_item(ENGINE_CLEANUP_CB *cb)
return item;
}
void engine_cleanup_add_first(ENGINE_CLEANUP_CB *cb)
int engine_cleanup_add_first(ENGINE_CLEANUP_CB *cb)
{
ENGINE_CLEANUP_ITEM *item;
if (!int_cleanup_check(1))
return;
item = int_cleanup_item(cb);
if (item != NULL)
if (sk_ENGINE_CLEANUP_ITEM_insert(cleanup_stack, item, 0) <= 0)
OPENSSL_free(item);
}
void engine_cleanup_add_last(ENGINE_CLEANUP_CB *cb)
{
ENGINE_CLEANUP_ITEM *item;
if (!int_cleanup_check(1))
return;
return 0;
item = int_cleanup_item(cb);
if (item != NULL) {
if (sk_ENGINE_CLEANUP_ITEM_push(cleanup_stack, item) <= 0)
OPENSSL_free(item);
if (sk_ENGINE_CLEANUP_ITEM_insert(cleanup_stack, item, 0))
return 1;
OPENSSL_free(item);
}
return 0;
}
int engine_cleanup_add_last(ENGINE_CLEANUP_CB *cb)
{
ENGINE_CLEANUP_ITEM *item;
if (!int_cleanup_check(1))
return 0;
item = int_cleanup_item(cb);
if (item != NULL) {
if (sk_ENGINE_CLEANUP_ITEM_push(cleanup_stack, item) > 0)
return 1;
OPENSSL_free(item);
}
return 0;
}
/* The API function that performs all cleanup */

View File

@ -1,5 +1,5 @@
/*
* Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved.
* Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@ -192,7 +192,12 @@ static int evp_cipher_init_internal(EVP_CIPHER_CTX *ctx,
#endif
}
if (cipher->prov != NULL) {
if (!ossl_assert(cipher->prov != NULL)) {
ERR_raise(ERR_LIB_EVP, EVP_R_INITIALIZATION_ERROR);
return 0;
}
if (cipher != ctx->fetched_cipher) {
if (!EVP_CIPHER_up_ref((EVP_CIPHER *)cipher)) {
ERR_raise(ERR_LIB_EVP, EVP_R_INITIALIZATION_ERROR);
return 0;
@ -218,6 +223,42 @@ static int evp_cipher_init_internal(EVP_CIPHER_CTX *ctx,
return 0;
}
#ifndef FIPS_MODULE
/*
* Fix for CVE-2023-5363
* Passing in a size as part of the init call takes effect late
* so, force such to occur before the initialisation.
*
* The FIPS provider's internal library context is used in a manner
* such that this is not an issue.
*/
if (params != NULL) {
OSSL_PARAM param_lens[3] = { OSSL_PARAM_END, OSSL_PARAM_END,
OSSL_PARAM_END };
OSSL_PARAM *q = param_lens;
const OSSL_PARAM *p;
p = OSSL_PARAM_locate_const(params, OSSL_CIPHER_PARAM_KEYLEN);
if (p != NULL)
memcpy(q++, p, sizeof(*q));
/*
* Note that OSSL_CIPHER_PARAM_AEAD_IVLEN is a synomym for
* OSSL_CIPHER_PARAM_IVLEN so both are covered here.
*/
p = OSSL_PARAM_locate_const(params, OSSL_CIPHER_PARAM_IVLEN);
if (p != NULL)
memcpy(q++, p, sizeof(*q));
if (q != param_lens) {
if (!EVP_CIPHER_CTX_set_params(ctx, param_lens)) {
ERR_raise(ERR_LIB_EVP, EVP_R_INVALID_LENGTH);
return 0;
}
}
}
#endif
if (enc) {
if (ctx->cipher->einit == NULL) {
ERR_raise(ERR_LIB_EVP, EVP_R_INITIALIZATION_ERROR);

View File

@ -1,5 +1,5 @@
/*
* Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved.
* Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@ -163,6 +163,8 @@ int ossl_crypto_get_ex_new_index_ex(OSSL_LIB_CTX *ctx, int class_index,
* "app_data" routines use ex_data index zero. See RT 3710. */
if (ip->meth == NULL
|| !sk_EX_CALLBACK_push(ip->meth, NULL)) {
sk_EX_CALLBACK_free(ip->meth);
ip->meth = NULL;
ERR_raise(ERR_LIB_CRYPTO, ERR_R_MALLOC_FAILURE);
goto err;
}

View File

@ -1,5 +1,5 @@
/*
* Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved.
* Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@ -266,12 +266,12 @@ static void contract(OPENSSL_LHASH *lh)
if (n == NULL) {
/* fputs("realloc error in lhash",stderr); */
lh->error++;
return;
} else {
lh->b = n;
}
lh->num_alloc_nodes /= 2;
lh->pmax /= 2;
lh->p = lh->pmax - 1;
lh->b = n;
} else
lh->p--;

View File

@ -1,5 +1,5 @@
/*
* Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved.
* Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@ -100,6 +100,9 @@ void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount)
* or 100;100@25;0
* This means 100 mallocs succeed, then next 100 fail 25% of the time, and
* all remaining (count is zero) succeed.
* The failure percentge can have 2 digits after the comma. For example:
* 0@0.01
* This means 0.01% of all allocations will fail.
*/
static void parseit(void)
{
@ -112,26 +115,27 @@ static void parseit(void)
/* Get the count (atol will stop at the @ if there), and percentage */
md_count = atol(md_failstring);
atsign = strchr(md_failstring, '@');
md_fail_percent = atsign == NULL ? 0 : atoi(atsign + 1);
md_fail_percent = atsign == NULL ? 0 : (int)(atof(atsign + 1) * 100 + 0.5);
if (semi != NULL)
md_failstring = semi;
}
/*
* Windows doesn't have random(), but it has rand()
* Windows doesn't have random() and srandom(), but it has rand() and srand().
* Some rand() implementations aren't good, but we're not
* dealing with secure randomness here.
*/
# ifdef _WIN32
# define random() rand()
# define srandom(seed) srand(seed)
# endif
/*
* See if the current malloc should fail.
*/
static int shouldfail(void)
{
int roll = (int)(random() % 100);
int roll = (int)(random() % 10000);
int shoulditfail = roll < md_fail_percent;
# ifndef _WIN32
/* suppressed on Windows as POSIX-like file descriptors are non-inheritable */
@ -165,6 +169,8 @@ void ossl_malloc_setup_failures(void)
parseit();
if ((cp = getenv("OPENSSL_MALLOC_FD")) != NULL)
md_tracefd = atoi(cp);
if ((cp = getenv("OPENSSL_MALLOC_SEED")) != NULL)
srandom(atoi(cp));
}
#endif
@ -195,7 +201,6 @@ void *CRYPTO_zalloc(size_t num, const char *file, int line)
void *ret;
ret = CRYPTO_malloc(num, file, line);
FAILTEST();
if (ret != NULL)
memset(ret, 0, num);
@ -208,7 +213,6 @@ void *CRYPTO_realloc(void *str, size_t num, const char *file, int line)
if (realloc_impl != CRYPTO_realloc)
return realloc_impl(str, num, file, line);
FAILTEST();
if (str == NULL)
return CRYPTO_malloc(num, file, line);
@ -217,6 +221,7 @@ void *CRYPTO_realloc(void *str, size_t num, const char *file, int line)
return NULL;
}
FAILTEST();
return realloc(str, num);
}

View File

@ -1,5 +1,5 @@
/*
* Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved.
* Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@ -753,18 +753,22 @@ int ossl_rsa_set0_all_params(RSA *r, const STACK_OF(BIGNUM) *primes,
return 0;
pnum = sk_BIGNUM_num(primes);
if (pnum < 2
|| pnum != sk_BIGNUM_num(exps)
|| pnum != sk_BIGNUM_num(coeffs) + 1)
if (pnum < 2)
return 0;
if (!RSA_set0_factors(r, sk_BIGNUM_value(primes, 0),
sk_BIGNUM_value(primes, 1))
|| !RSA_set0_crt_params(r, sk_BIGNUM_value(exps, 0),
sk_BIGNUM_value(exps, 1),
sk_BIGNUM_value(coeffs, 0)))
sk_BIGNUM_value(primes, 1)))
return 0;
if (pnum == sk_BIGNUM_num(exps)
&& pnum == sk_BIGNUM_num(coeffs) + 1) {
if (!RSA_set0_crt_params(r, sk_BIGNUM_value(exps, 0),
sk_BIGNUM_value(exps, 1),
sk_BIGNUM_value(coeffs, 0)))
return 0;
}
#ifndef FIPS_MODULE
old_infos = r->prime_infos;
#endif
@ -1084,6 +1088,12 @@ int EVP_PKEY_CTX_get_rsa_mgf1_md(EVP_PKEY_CTX *ctx, const EVP_MD **md)
int EVP_PKEY_CTX_set0_rsa_oaep_label(EVP_PKEY_CTX *ctx, void *label, int llen)
{
OSSL_PARAM rsa_params[2], *p = rsa_params;
const char *empty = "";
/*
* Needed as we swap label with empty if it is NULL, and label is
* freed at the end of this function.
*/
void *plabel = label;
int ret;
if (ctx == NULL || !EVP_PKEY_CTX_IS_ASYM_CIPHER_OP(ctx)) {
@ -1096,9 +1106,13 @@ int EVP_PKEY_CTX_set0_rsa_oaep_label(EVP_PKEY_CTX *ctx, void *label, int llen)
if (!EVP_PKEY_CTX_is_a(ctx, "RSA"))
return -1;
/* Accept NULL for backward compatibility */
if (label == NULL && llen == 0)
plabel = (void *)empty;
/* Cast away the const. This is read only so should be safe */
*p++ = OSSL_PARAM_construct_octet_string(OSSL_ASYM_CIPHER_PARAM_OAEP_LABEL,
(void *)label, (size_t)llen);
(void *)plabel, (size_t)llen);
*p++ = OSSL_PARAM_construct_end();
ret = evp_pkey_ctx_set_params_strict(ctx, rsa_params);

View File

@ -1,5 +1,5 @@
/*
* Copyright 2016-2022 The OpenSSL Project Authors. All Rights Reserved.
* Copyright 2016-2023 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@ -72,8 +72,6 @@ CRYPTO_RWLOCK *CRYPTO_THREAD_lock_new(void)
# if !defined (__TANDEM) && !defined (_SPT_MODEL_)
# if !defined(NDEBUG) && !defined(OPENSSL_NO_MUTEX_ERRORCHECK)
pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ERRORCHECK);
# else
pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_NORMAL);
# endif
# else
/* The SPT Thread Library does not define MUTEX attributes. */

View File

@ -1,5 +1,5 @@
/*
* Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved.
* Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved.
* Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved
* Copyright 2005 Nokia. All rights reserved.
*
@ -582,7 +582,7 @@ int SSL_clear(SSL *s)
OPENSSL_free(s->psksession_id);
s->psksession_id = NULL;
s->psksession_id_len = 0;
s->hello_retry_request = 0;
s->hello_retry_request = SSL_HRR_NONE;
s->sent_tickets = 0;
s->error = 0;
@ -2809,14 +2809,14 @@ char *SSL_get_shared_ciphers(const SSL *s, char *buf, int size)
if (sk_SSL_CIPHER_find(srvrsk, c) < 0)
continue;
n = strlen(c->name);
if (n + 1 > size) {
n = OPENSSL_strnlen(c->name, size);
if (n >= size) {
if (p != buf)
--p;
*p = '\0';
return buf;
}
strcpy(p, c->name);
memcpy(p, c->name, n);
p += n;
*(p++) = ':';
size -= n + 1;

View File

@ -198,8 +198,11 @@ SSL_SESSION *ssl_session_dup(const SSL_SESSION *src, int ticket)
dest->references = 1;
dest->lock = CRYPTO_THREAD_lock_new();
if (dest->lock == NULL)
if (dest->lock == NULL) {
OPENSSL_free(dest);
dest = NULL;
goto err;
}
if (!CRYPTO_new_ex_data(CRYPTO_EX_INDEX_SSL_SESSION, dest, &dest->ex_data))
goto err;

View File

@ -23,6 +23,7 @@
#include "internal/nelem.h"
#include "internal/sizes.h"
#include "internal/tlsgroups.h"
#include "internal/cryptlib.h"
#include "ssl_local.h"
#include <openssl/ct.h>
@ -600,6 +601,7 @@ uint16_t tls1_shared_group(SSL *s, int nmatch)
const uint16_t *pref, *supp;
size_t num_pref, num_supp, i;
int k;
SSL_CTX *ctx = s->ctx;
/* Can't do anything on client side */
if (s->server == 0)
@ -636,10 +638,29 @@ uint16_t tls1_shared_group(SSL *s, int nmatch)
for (k = 0, i = 0; i < num_pref; i++) {
uint16_t id = pref[i];
const TLS_GROUP_INFO *inf;
if (!tls1_in_list(id, supp, num_supp)
|| !tls_group_allowed(s, id, SSL_SECOP_CURVE_SHARED))
continue;
|| !tls_group_allowed(s, id, SSL_SECOP_CURVE_SHARED))
continue;
inf = tls1_group_id_lookup(ctx, id);
if (!ossl_assert(inf != NULL))
return 0;
if (SSL_IS_DTLS(s)) {
if (inf->maxdtls == -1)
continue;
if ((inf->mindtls != 0 && DTLS_VERSION_LT(s->version, inf->mindtls))
|| (inf->maxdtls != 0
&& DTLS_VERSION_GT(s->version, inf->maxdtls)))
continue;
} else {
if (inf->maxtls == -1)
continue;
if ((inf->mintls != 0 && s->version < inf->mintls)
|| (inf->maxtls != 0 && s->version > inf->maxtls))
continue;
}
if (nmatch == k)
return id;
k++;

View File

@ -1,5 +1,5 @@
/*
* Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved.
* Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@ -73,7 +73,7 @@ static int dh_test(void)
goto err1;
/* check fails, because p is way too small */
if (!DH_check(dh, &i))
if (!TEST_true(DH_check(dh, &i)))
goto err2;
i ^= DH_MODULUS_TOO_SMALL;
if (!TEST_false(i & DH_CHECK_P_NOT_PRIME)
@ -124,6 +124,29 @@ static int dh_test(void)
/* We'll have a stale error on the queue from the above test so clear it */
ERR_clear_error();
if (!TEST_ptr(BN_copy(q, p)) || !TEST_true(BN_add(q, q, BN_value_one())))
goto err3;
if (!TEST_true(DH_check(dh, &i)))
goto err3;
if (!TEST_true(i & DH_CHECK_INVALID_Q_VALUE)
|| !TEST_false(i & DH_CHECK_Q_NOT_PRIME))
goto err3;
/* Modulus of size: dh check max modulus bits + 1 */
if (!TEST_true(BN_set_word(p, 1))
|| !TEST_true(BN_lshift(p, p, OPENSSL_DH_CHECK_MAX_MODULUS_BITS)))
goto err3;
/*
* We expect no checks at all for an excessively large modulus
*/
if (!TEST_false(DH_check(dh, &i)))
goto err3;
/* We'll have a stale error on the queue from the above test so clear it */
ERR_clear_error();
/*
* II) key generation
*/
@ -138,7 +161,7 @@ static int dh_test(void)
goto err3;
/* ... and check whether it is valid */
if (!DH_check(a, &i))
if (!TEST_true(DH_check(a, &i)))
goto err3;
if (!TEST_false(i & DH_CHECK_P_NOT_PRIME)
|| !TEST_false(i & DH_CHECK_P_NOT_SAFE_PRIME)

View File

@ -1133,11 +1133,11 @@ static int test_EVP_PKEY_sign(int tst)
if (tst == 0 ) {
if (!TEST_ptr(pkey = load_example_rsa_key()))
goto out;
goto out;
} else if (tst == 1) {
#ifndef OPENSSL_NO_DSA
if (!TEST_ptr(pkey = load_example_dsa_key()))
goto out;
goto out;
#else
ret = 1;
goto out;
@ -1145,7 +1145,7 @@ static int test_EVP_PKEY_sign(int tst)
} else {
#ifndef OPENSSL_NO_EC
if (!TEST_ptr(pkey = load_example_ec_key()))
goto out;
goto out;
#else
ret = 1;
goto out;
@ -1179,6 +1179,88 @@ static int test_EVP_PKEY_sign(int tst)
return ret;
}
#ifndef OPENSSL_NO_DEPRECATED_3_0
static int test_EVP_PKEY_sign_with_app_method(int tst)
{
int ret = 0;
EVP_PKEY *pkey = NULL;
RSA *rsa = NULL;
RSA_METHOD *rsa_meth = NULL;
#ifndef OPENSSL_NO_DSA
DSA *dsa = NULL;
DSA_METHOD *dsa_meth = NULL;
#endif
unsigned char *sig = NULL;
size_t sig_len = 0, shortsig_len = 1;
EVP_PKEY_CTX *ctx = NULL;
unsigned char tbs[] = {
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b,
0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13
};
if (tst == 0) {
if (!TEST_ptr(pkey = load_example_rsa_key()))
goto out;
if (!TEST_ptr(rsa_meth = RSA_meth_dup(RSA_get_default_method())))
goto out;
if (!TEST_ptr(rsa = EVP_PKEY_get1_RSA(pkey))
|| !TEST_int_gt(RSA_set_method(rsa, rsa_meth), 0)
|| !TEST_int_gt(EVP_PKEY_assign_RSA(pkey, rsa), 0))
goto out;
rsa = NULL; /* now owned by the pkey */
} else {
#ifndef OPENSSL_NO_DSA
if (!TEST_ptr(pkey = load_example_dsa_key()))
goto out;
if (!TEST_ptr(dsa_meth = DSA_meth_dup(DSA_get_default_method())))
goto out;
if (!TEST_ptr(dsa = EVP_PKEY_get1_DSA(pkey))
|| !TEST_int_gt(DSA_set_method(dsa, dsa_meth), 0)
|| !TEST_int_gt(EVP_PKEY_assign_DSA(pkey, dsa), 0))
goto out;
dsa = NULL; /* now owned by the pkey */
#else
ret = 1;
goto out;
#endif
}
ctx = EVP_PKEY_CTX_new_from_pkey(testctx, pkey, NULL);
if (!TEST_ptr(ctx)
|| !TEST_int_gt(EVP_PKEY_sign_init(ctx), 0)
|| !TEST_int_gt(EVP_PKEY_sign(ctx, NULL, &sig_len, tbs,
sizeof(tbs)), 0))
goto out;
sig = OPENSSL_malloc(sig_len);
if (!TEST_ptr(sig)
/* Test sending a signature buffer that is too short is rejected */
|| !TEST_int_le(EVP_PKEY_sign(ctx, sig, &shortsig_len, tbs,
sizeof(tbs)), 0)
|| !TEST_int_gt(EVP_PKEY_sign(ctx, sig, &sig_len, tbs, sizeof(tbs)),
0)
/* Test the signature round-trips */
|| !TEST_int_gt(EVP_PKEY_verify_init(ctx), 0)
|| !TEST_int_gt(EVP_PKEY_verify(ctx, sig, sig_len, tbs, sizeof(tbs)),
0))
goto out;
ret = 1;
out:
EVP_PKEY_CTX_free(ctx);
OPENSSL_free(sig);
EVP_PKEY_free(pkey);
RSA_free(rsa);
RSA_meth_free(rsa_meth);
#ifndef OPENSSL_NO_DSA
DSA_free(dsa);
DSA_meth_free(dsa_meth);
#endif
return ret;
}
#endif /* !OPENSSL_NO_DEPRECATED_3_0 */
/*
* n = 0 => test using legacy cipher
* n = 1 => test using fetched cipher
@ -2830,6 +2912,36 @@ static int test_RSA_OAEP_set_get_params(void)
return ret;
}
/* https://github.com/openssl/openssl/issues/21288 */
static int test_RSA_OAEP_set_null_label(void)
{
int ret = 0;
EVP_PKEY *key = NULL;
EVP_PKEY_CTX *key_ctx = NULL;
if (!TEST_ptr(key = load_example_rsa_key())
|| !TEST_ptr(key_ctx = EVP_PKEY_CTX_new_from_pkey(testctx, key, NULL))
|| !TEST_true(EVP_PKEY_encrypt_init(key_ctx)))
goto err;
if (!TEST_true(EVP_PKEY_CTX_set_rsa_padding(key_ctx, RSA_PKCS1_OAEP_PADDING)))
goto err;
if (!TEST_true(EVP_PKEY_CTX_set0_rsa_oaep_label(key_ctx, OPENSSL_strdup("foo"), 0)))
goto err;
if (!TEST_true(EVP_PKEY_CTX_set0_rsa_oaep_label(key_ctx, NULL, 0)))
goto err;
ret = 1;
err:
EVP_PKEY_free(key);
EVP_PKEY_CTX_free(key_ctx);
return ret;
}
#if !defined(OPENSSL_NO_CHACHA) && !defined(OPENSSL_NO_POLY1305)
static int test_decrypt_null_chunks(void)
{
@ -4739,6 +4851,253 @@ static int test_ecx_not_private_key(int tst)
}
#endif /* OPENSSL_NO_EC */
static int aes_gcm_encrypt(const unsigned char *gcm_key, size_t gcm_key_s,
const unsigned char *gcm_iv, size_t gcm_ivlen,
const unsigned char *gcm_pt, size_t gcm_pt_s,
const unsigned char *gcm_aad, size_t gcm_aad_s,
const unsigned char *gcm_ct, size_t gcm_ct_s,
const unsigned char *gcm_tag, size_t gcm_tag_s)
{
int ret = 0;
EVP_CIPHER_CTX *ctx;
EVP_CIPHER *cipher = NULL;
int outlen, tmplen;
unsigned char outbuf[1024];
unsigned char outtag[16];
OSSL_PARAM params[2] = {
OSSL_PARAM_END, OSSL_PARAM_END
};
if (!TEST_ptr(ctx = EVP_CIPHER_CTX_new())
|| !TEST_ptr(cipher = EVP_CIPHER_fetch(testctx, "AES-256-GCM", "")))
goto err;
params[0] = OSSL_PARAM_construct_size_t(OSSL_CIPHER_PARAM_AEAD_IVLEN,
&gcm_ivlen);
if (!TEST_true(EVP_EncryptInit_ex2(ctx, cipher, gcm_key, gcm_iv, params))
|| (gcm_aad != NULL
&& !TEST_true(EVP_EncryptUpdate(ctx, NULL, &outlen,
gcm_aad, gcm_aad_s)))
|| !TEST_true(EVP_EncryptUpdate(ctx, outbuf, &outlen,
gcm_pt, gcm_pt_s))
|| !TEST_true(EVP_EncryptFinal_ex(ctx, outbuf, &tmplen)))
goto err;
params[0] = OSSL_PARAM_construct_octet_string(OSSL_CIPHER_PARAM_AEAD_TAG,
outtag, sizeof(outtag));
if (!TEST_true(EVP_CIPHER_CTX_get_params(ctx, params))
|| !TEST_mem_eq(outbuf, outlen, gcm_ct, gcm_ct_s)
|| !TEST_mem_eq(outtag, gcm_tag_s, gcm_tag, gcm_tag_s))
goto err;
ret = 1;
err:
EVP_CIPHER_free(cipher);
EVP_CIPHER_CTX_free(ctx);
return ret;
}
static int aes_gcm_decrypt(const unsigned char *gcm_key, size_t gcm_key_s,
const unsigned char *gcm_iv, size_t gcm_ivlen,
const unsigned char *gcm_pt, size_t gcm_pt_s,
const unsigned char *gcm_aad, size_t gcm_aad_s,
const unsigned char *gcm_ct, size_t gcm_ct_s,
const unsigned char *gcm_tag, size_t gcm_tag_s)
{
int ret = 0;
EVP_CIPHER_CTX *ctx;
EVP_CIPHER *cipher = NULL;
int outlen;
unsigned char outbuf[1024];
OSSL_PARAM params[2] = {
OSSL_PARAM_END, OSSL_PARAM_END
};
if ((ctx = EVP_CIPHER_CTX_new()) == NULL)
goto err;
if ((cipher = EVP_CIPHER_fetch(testctx, "AES-256-GCM", "")) == NULL)
goto err;
params[0] = OSSL_PARAM_construct_size_t(OSSL_CIPHER_PARAM_AEAD_IVLEN,
&gcm_ivlen);
if (!TEST_true(EVP_DecryptInit_ex2(ctx, cipher, gcm_key, gcm_iv, params))
|| (gcm_aad != NULL
&& !TEST_true(EVP_DecryptUpdate(ctx, NULL, &outlen,
gcm_aad, gcm_aad_s)))
|| !TEST_true(EVP_DecryptUpdate(ctx, outbuf, &outlen,
gcm_ct, gcm_ct_s))
|| !TEST_mem_eq(outbuf, outlen, gcm_pt, gcm_pt_s))
goto err;
params[0] = OSSL_PARAM_construct_octet_string(OSSL_CIPHER_PARAM_AEAD_TAG,
(void*)gcm_tag, gcm_tag_s);
if (!TEST_true(EVP_CIPHER_CTX_set_params(ctx, params))
||!TEST_true(EVP_DecryptFinal_ex(ctx, outbuf, &outlen)))
goto err;
ret = 1;
err:
EVP_CIPHER_free(cipher);
EVP_CIPHER_CTX_free(ctx);
return ret;
}
static int test_aes_gcm_ivlen_change_cve_2023_5363(void)
{
/* AES-GCM test data obtained from NIST public test vectors */
static const unsigned char gcm_key[] = {
0xd0, 0xc2, 0x67, 0xc1, 0x9f, 0x30, 0xd8, 0x0b, 0x89, 0x14, 0xbb, 0xbf,
0xb7, 0x2f, 0x73, 0xb8, 0xd3, 0xcd, 0x5f, 0x6a, 0x78, 0x70, 0x15, 0x84,
0x8a, 0x7b, 0x30, 0xe3, 0x8f, 0x16, 0xf1, 0x8b,
};
static const unsigned char gcm_iv[] = {
0xb6, 0xdc, 0xda, 0x95, 0xac, 0x99, 0x77, 0x76, 0x25, 0xae, 0x87, 0xf8,
0xa3, 0xa9, 0xdd, 0x64, 0xd7, 0x9b, 0xbd, 0x5f, 0x4a, 0x0e, 0x54, 0xca,
0x1a, 0x9f, 0xa2, 0xe3, 0xf4, 0x5f, 0x5f, 0xc2, 0xce, 0xa7, 0xb6, 0x14,
0x12, 0x6f, 0xf0, 0xaf, 0xfd, 0x3e, 0x17, 0x35, 0x6e, 0xa0, 0x16, 0x09,
0xdd, 0xa1, 0x3f, 0xd8, 0xdd, 0xf3, 0xdf, 0x4f, 0xcb, 0x18, 0x49, 0xb8,
0xb3, 0x69, 0x2c, 0x5d, 0x4f, 0xad, 0x30, 0x91, 0x08, 0xbc, 0xbe, 0x24,
0x01, 0x0f, 0xbe, 0x9c, 0xfb, 0x4f, 0x5d, 0x19, 0x7f, 0x4c, 0x53, 0xb0,
0x95, 0x90, 0xac, 0x7b, 0x1f, 0x7b, 0xa0, 0x99, 0xe1, 0xf3, 0x48, 0x54,
0xd0, 0xfc, 0xa9, 0xcc, 0x91, 0xf8, 0x1f, 0x9b, 0x6c, 0x9a, 0xe0, 0xdc,
0x63, 0xea, 0x7d, 0x2a, 0x4a, 0x7d, 0xa5, 0xed, 0x68, 0x57, 0x27, 0x6b,
0x68, 0xe0, 0xf2, 0xb8, 0x51, 0x50, 0x8d, 0x3d,
};
static const unsigned char gcm_pt[] = {
0xb8, 0xb6, 0x88, 0x36, 0x44, 0xe2, 0x34, 0xdf, 0x24, 0x32, 0x91, 0x07,
0x4f, 0xe3, 0x6f, 0x81,
};
static const unsigned char gcm_ct[] = {
0xff, 0x4f, 0xb3, 0xf3, 0xf9, 0xa2, 0x51, 0xd4, 0x82, 0xc2, 0xbe, 0xf3,
0xe2, 0xd0, 0xec, 0xed,
};
static const unsigned char gcm_tag[] = {
0xbd, 0x06, 0x38, 0x09, 0xf7, 0xe1, 0xc4, 0x72, 0x0e, 0xf2, 0xea, 0x63,
0xdb, 0x99, 0x6c, 0x21,
};
return aes_gcm_encrypt(gcm_key, sizeof(gcm_key), gcm_iv, sizeof(gcm_iv),
gcm_pt, sizeof(gcm_pt), NULL, 0,
gcm_ct, sizeof(gcm_ct), gcm_tag, sizeof(gcm_tag))
&& aes_gcm_decrypt(gcm_key, sizeof(gcm_key), gcm_iv, sizeof(gcm_iv),
gcm_pt, sizeof(gcm_pt), NULL, 0,
gcm_ct, sizeof(gcm_ct), gcm_tag, sizeof(gcm_tag));
}
#ifndef OPENSSL_NO_RC4
static int rc4_encrypt(const unsigned char *rc4_key, size_t rc4_key_s,
const unsigned char *rc4_pt, size_t rc4_pt_s,
const unsigned char *rc4_ct, size_t rc4_ct_s)
{
int ret = 0;
EVP_CIPHER_CTX *ctx;
EVP_CIPHER *cipher = NULL;
int outlen, tmplen;
unsigned char outbuf[1024];
OSSL_PARAM params[2] = {
OSSL_PARAM_END, OSSL_PARAM_END
};
if (!TEST_ptr(ctx = EVP_CIPHER_CTX_new())
|| !TEST_ptr(cipher = EVP_CIPHER_fetch(testctx, "RC4", "")))
goto err;
params[0] = OSSL_PARAM_construct_size_t(OSSL_CIPHER_PARAM_KEYLEN,
&rc4_key_s);
if (!TEST_true(EVP_EncryptInit_ex2(ctx, cipher, rc4_key, NULL, params))
|| !TEST_true(EVP_EncryptUpdate(ctx, outbuf, &outlen,
rc4_pt, rc4_pt_s))
|| !TEST_true(EVP_EncryptFinal_ex(ctx, outbuf, &tmplen)))
goto err;
if (!TEST_mem_eq(outbuf, outlen, rc4_ct, rc4_ct_s))
goto err;
ret = 1;
err:
EVP_CIPHER_free(cipher);
EVP_CIPHER_CTX_free(ctx);
return ret;
}
static int rc4_decrypt(const unsigned char *rc4_key, size_t rc4_key_s,
const unsigned char *rc4_pt, size_t rc4_pt_s,
const unsigned char *rc4_ct, size_t rc4_ct_s)
{
int ret = 0;
EVP_CIPHER_CTX *ctx;
EVP_CIPHER *cipher = NULL;
int outlen;
unsigned char outbuf[1024];
OSSL_PARAM params[2] = {
OSSL_PARAM_END, OSSL_PARAM_END
};
if ((ctx = EVP_CIPHER_CTX_new()) == NULL)
goto err;
if ((cipher = EVP_CIPHER_fetch(testctx, "RC4", "")) == NULL)
goto err;
params[0] = OSSL_PARAM_construct_size_t(OSSL_CIPHER_PARAM_KEYLEN,
&rc4_key_s);
if (!TEST_true(EVP_DecryptInit_ex2(ctx, cipher, rc4_key, NULL, params))
|| !TEST_true(EVP_DecryptUpdate(ctx, outbuf, &outlen,
rc4_ct, rc4_ct_s))
|| !TEST_mem_eq(outbuf, outlen, rc4_pt, rc4_pt_s))
goto err;
ret = 1;
err:
EVP_CIPHER_free(cipher);
EVP_CIPHER_CTX_free(ctx);
return ret;
}
static int test_aes_rc4_keylen_change_cve_2023_5363(void)
{
/* RC4 test data obtained from RFC 6229 */
static const struct {
unsigned char key[5];
unsigned char padding[11];
} rc4_key = {
{ /* Five bytes of key material */
0x83, 0x32, 0x22, 0x77, 0x2a,
},
{ /* Random padding to 16 bytes */
0x80, 0xad, 0x97, 0xbd, 0xc9, 0x73, 0xdf, 0x8a, 0xaa, 0x32, 0x91
}
};
static const unsigned char rc4_pt[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
static const unsigned char rc4_ct[] = {
0x80, 0xad, 0x97, 0xbd, 0xc9, 0x73, 0xdf, 0x8a,
0x2e, 0x87, 0x9e, 0x92, 0xa4, 0x97, 0xef, 0xda
};
if (lgcyprov == NULL)
return TEST_skip("Test requires legacy provider to be loaded");
return rc4_encrypt(rc4_key.key, sizeof(rc4_key.key),
rc4_pt, sizeof(rc4_pt), rc4_ct, sizeof(rc4_ct))
&& rc4_decrypt(rc4_key.key, sizeof(rc4_key.key),
rc4_pt, sizeof(rc4_pt), rc4_ct, sizeof(rc4_ct));
}
#endif
int setup_tests(void)
{
OPTION_CHOICE o;
@ -4771,6 +5130,9 @@ int setup_tests(void)
ADD_TEST(test_EVP_Digest);
ADD_TEST(test_EVP_md_null);
ADD_ALL_TESTS(test_EVP_PKEY_sign, 3);
#ifndef OPENSSL_NO_DEPRECATED_3_0
ADD_ALL_TESTS(test_EVP_PKEY_sign_with_app_method, 2);
#endif
ADD_ALL_TESTS(test_EVP_Enveloped, 2);
ADD_ALL_TESTS(test_d2i_AutoPrivateKey, OSSL_NELEM(keydata));
ADD_TEST(test_privatekey_to_pkcs8);
@ -4814,6 +5176,7 @@ int setup_tests(void)
#endif
ADD_TEST(test_RSA_get_set_params);
ADD_TEST(test_RSA_OAEP_set_get_params);
ADD_TEST(test_RSA_OAEP_set_null_label);
#if !defined(OPENSSL_NO_CHACHA) && !defined(OPENSSL_NO_POLY1305)
ADD_TEST(test_decrypt_null_chunks);
#endif
@ -4878,6 +5241,12 @@ int setup_tests(void)
ADD_ALL_TESTS(test_ecx_not_private_key, OSSL_NELEM(keys));
#endif
/* Test cases for CVE-2023-5363 */
ADD_TEST(test_aes_gcm_ivlen_change_cve_2023_5363);
#ifndef OPENSSL_NO_RC4
ADD_TEST(test_aes_rc4_keylen_change_cve_2023_5363);
#endif
return 1;
}

View File

@ -1,5 +1,5 @@
/*
* Copyright 2015-2022 The OpenSSL Project Authors. All Rights Reserved.
* Copyright 2015-2023 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@ -3683,11 +3683,11 @@ static int prov_available(char *providers)
int more = 1;
while (more) {
for (; isspace((unsigned char)*providers); providers++)
for (; isspace((unsigned char)(*providers)); providers++)
continue;
if (*providers == '\0')
break; /* End of the road */
for (p = providers; *p != '\0' && !isspace((unsigned char)*p); p++)
for (p = providers; *p != '\0' && !isspace((unsigned char)(*p)); p++)
continue;
if (*p == '\0')
more = 0;

View File

@ -1,5 +1,5 @@
/*
* Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved.
* Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@ -391,10 +391,126 @@ err:
return r;
}
static int test_EVP_rsa_legacy_key(void)
{
int ret;
size_t buflen = 384;
size_t msglen = 64;
unsigned char sigbuf[384];
unsigned char msgbuf[64];
BIGNUM *p;
BIGNUM *q;
BIGNUM *n;
BIGNUM *d;
BIGNUM *e;
RSA *rsa;
const EVP_MD *md;
EVP_MD_CTX *ctx = NULL;
EVP_PKEY *pkey = NULL;
unsigned char n_data[] = {
0x00, 0xc7, 0x28, 0x7a, 0x28, 0x91, 0x51, 0xa5, 0xe8, 0x3c, 0x45, 0xcf,
0x1d, 0xa9, 0x69, 0x7a, 0x0d, 0xdb, 0xdd, 0x8f, 0xe2, 0xde, 0x85, 0xdd,
0x85, 0x6d, 0x8f, 0x78, 0x20, 0xd6, 0xe, 0xe5, 0x06, 0xcb, 0x9c, 0xd6,
0xd3, 0xca, 0xef, 0x1d, 0x80, 0xd3, 0x18, 0x23, 0x91, 0x5c, 0xe5, 0xc8,
0x44, 0x37, 0x56, 0x1b, 0x68, 0x7f, 0x08, 0xa3, 0x1c, 0xf6, 0xe8, 0x11,
0x38, 0x0f, 0x2e, 0xad, 0xb1, 0x89, 0x8b, 0x08, 0xe8, 0x35, 0xaf, 0x3b,
0xfe, 0x37, 0x8d, 0x21, 0xd5, 0x3f, 0x1f, 0x4b, 0x01, 0x30, 0xd8, 0xd0,
0x24, 0xf7, 0xab, 0x57, 0xad, 0xac, 0xbc, 0x53, 0x6d, 0x84, 0x8e, 0xa1,
0xb2, 0x5b, 0x8e, 0xe7, 0xb3, 0xac, 0xfc, 0x60, 0x22, 0x10, 0x1e, 0x99,
0xfa, 0xa0, 0x60, 0x00, 0x69, 0x5f, 0x8e, 0xca, 0x6d, 0x9c, 0xee, 0x5e,
0x84, 0x4e, 0x53, 0x83, 0x42, 0x76, 0x4d, 0xb8, 0xc1, 0xeb, 0x4e, 0x3d,
0xc3, 0xce, 0xac, 0x79, 0xbb, 0x29, 0x5d, 0x92, 0x33, 0x6e, 0xcf, 0x8f,
0x5a, 0xf0, 0xb3, 0xb5, 0xdc, 0xd5, 0xa3, 0xaf, 0x40, 0x4b, 0x0f, 0x05,
0xac, 0x46, 0x53, 0x2d, 0x5f, 0x20, 0x96, 0x42, 0xa8, 0x47, 0x61, 0x54,
0x05, 0x2c, 0x8a, 0x26, 0x5d, 0x92, 0x1d, 0x01, 0x2a, 0x27, 0x8a, 0xfc,
0x64, 0x24, 0x5c, 0x34, 0xde, 0x92, 0xc6, 0x82, 0xea, 0x4d, 0xe2, 0x52,
0xe5, 0xad, 0x62, 0x00, 0xc6, 0xc8, 0xe9, 0x0c, 0x22, 0xf0, 0x9e, 0xbe,
0xdc, 0x51, 0x58, 0xad, 0x3b, 0xba, 0x2e, 0x45, 0x65, 0xcc, 0x5b, 0x55,
0x46, 0x67, 0x18, 0x4a, 0x80, 0x67, 0x5b, 0x84, 0x7f, 0x13, 0x37, 0x45,
0xd8, 0x03, 0xc6, 0x22, 0xc3, 0x4a, 0x46, 0x6b, 0xde, 0x50, 0xbf, 0x16,
0x0a, 0x23, 0x0b, 0xaa, 0x50, 0x54, 0xf6, 0x20, 0x83, 0x74, 0x33, 0x97,
0x2e, 0xf2, 0x8e, 0x7e, 0x13 };
unsigned char e_data[] = { 0x01, 0x00, 0x01 };
unsigned char d_data[] = {
0x09, 0x2d, 0xcb, 0xe7, 0x87, 0xbf, 0x10, 0x1a, 0xf2, 0x80, 0x33, 0x2a,
0x06, 0x4f, 0x56, 0xb1, 0x41, 0xd3, 0x65, 0xd8, 0xca, 0x71, 0xb8, 0x02,
0x78, 0xc8, 0xb6, 0x7c, 0x28, 0xf4, 0x6c, 0xe8, 0xd1, 0xc4, 0x92, 0x40,
0x23, 0xa7, 0xbe, 0x9f, 0xdb, 0xda, 0xce, 0x74, 0xda, 0x27, 0xbb, 0x01,
0xad, 0xdd, 0x39, 0x99, 0x28, 0xd5, 0xb0, 0x92, 0xda, 0xac, 0x5a, 0x72,
0xcf, 0x7c, 0x52, 0xc4, 0x0e, 0x77, 0x4a, 0x7b, 0x4d, 0x52, 0x1c, 0xbd,
0x3c, 0x39, 0x34, 0x78, 0x7c, 0x16, 0xc8, 0xa1, 0xae, 0xeb, 0x27, 0x38,
0xb4, 0xf3, 0x80, 0x30, 0x80, 0x78, 0x13, 0x8e, 0x46, 0x20, 0x3e, 0xc2,
0x96, 0x26, 0xb1, 0x76, 0x1e, 0x00, 0x69, 0xbb, 0xd8, 0x2b, 0x58, 0xe4,
0x6c, 0xb4, 0xd0, 0x00, 0x0b, 0x47, 0xec, 0xfb, 0x7d, 0x52, 0x9d, 0x27,
0x92, 0xe6, 0x95, 0x73, 0xa0, 0x39, 0x37, 0xcd, 0x1f, 0x60, 0x13, 0x1c,
0x87, 0x9d, 0xa7, 0x91, 0x90, 0xf9, 0x36, 0xc5, 0xfa, 0x3f, 0xf9, 0x7f,
0x50, 0xf8, 0xb3, 0x54, 0x65, 0xff, 0x6f, 0xa6, 0x22, 0xcc, 0x4a, 0x1e,
0x49, 0x3f, 0x07, 0xc6, 0xf2, 0x65, 0x73, 0x13, 0x1b, 0x2d, 0xb6, 0x15,
0xff, 0xcd, 0x9a, 0x1c, 0xea, 0xef, 0x58, 0x56, 0x91, 0x2d, 0x47, 0x81,
0x56, 0x0d, 0xc3, 0xb0, 0x47, 0x58, 0x8d, 0x05, 0x7d, 0x5b, 0xc0, 0x22,
0xa4, 0xf0, 0x2e, 0x70, 0x36, 0x01, 0x89, 0xa1, 0x71, 0xed, 0x76, 0xe9,
0x8d, 0xf5, 0x49, 0xaf, 0x11, 0xbe, 0xe4, 0xd4, 0x48, 0x92, 0xb6, 0x5b,
0xc2, 0x04, 0xd4, 0x0c, 0x5c, 0x8b, 0xe3, 0xfa, 0x29, 0x63, 0x86, 0xb4,
0x10, 0xad, 0x32, 0x07, 0x85, 0xe2, 0x43, 0x76, 0x16, 0x90, 0xab, 0xdf,
0xb3, 0x36, 0x0a, 0xc4, 0x49, 0x7b, 0x95, 0x48, 0x50, 0x72, 0x8f, 0x7d,
0xf4, 0xfa, 0x60, 0xc1 };
unsigned char p_data[] = {
0x00, 0xed, 0xf7, 0xa7, 0x00, 0x5a, 0xbb, 0xd1, 0x52, 0x65, 0x9b, 0xec,
0xfe, 0x27, 0x8b, 0xe2, 0xbe, 0x40, 0x8c, 0x2f, 0x6f, 0xb4, 0x26, 0xb2,
0xbe, 0x45, 0x4b, 0x3b, 0x5a, 0xaa, 0xc6, 0xaa, 0xfa, 0xc1, 0x3a, 0xa9,
0xa1, 0xba, 0xb7, 0x86, 0x1a, 0x98, 0x15, 0x5f, 0x5c, 0x1c, 0x57, 0x78,
0x78, 0x6a, 0x13, 0xc2, 0x40, 0x7d, 0x07, 0x87, 0x47, 0xc6, 0x96, 0xd5,
0x92, 0xc9, 0x65, 0x2c, 0xfe, 0xbb, 0xe0, 0xd6, 0x76, 0x25, 0x5a, 0xa3,
0xdf, 0x97, 0x4b, 0x64, 0xfd, 0x3b, 0x2b, 0xbc, 0xfb, 0x80, 0xad, 0x3b,
0x7d, 0x1f, 0x48, 0x56, 0x27, 0xf7, 0x2f, 0x8e, 0x92, 0x07, 0xa8, 0x9f,
0xbc, 0x5a, 0xce, 0xfa, 0xd5, 0x67, 0xad, 0xf4, 0xbf, 0xe0, 0xc9, 0x3e,
0x8e, 0xb5, 0x90, 0x58, 0x54, 0x92, 0x9f, 0xda, 0x36, 0xc0, 0x0d, 0x57,
0xfe, 0x6c, 0x23, 0x63, 0x8b, 0xd1, 0x1e, 0x4f, 0xd3 };
unsigned char q_data[] = {
0x00, 0xd6, 0x3f, 0xf5, 0xee, 0xff, 0x4d, 0x7d, 0x8c, 0x1a, 0x85, 0x5d,
0x3c, 0x4f, 0x9d, 0xdf, 0xc7, 0x68, 0x27, 0x7f, 0xe4, 0x4f, 0x4f, 0xd7,
0xa2, 0x3b, 0xcd, 0x4a, 0x34, 0xd8, 0x55, 0x4a, 0x3e, 0x8e, 0xb3, 0xa8,
0xe9, 0x8a, 0xc5, 0x94, 0xd1, 0x09, 0x32, 0x4b, 0x79, 0x8d, 0x7b, 0x03,
0x0b, 0x5d, 0xca, 0x91, 0x41, 0xbc, 0x82, 0xc3, 0x89, 0x67, 0x4d, 0x03,
0x68, 0x03, 0x2d, 0x0e, 0x4e, 0x97, 0x6c, 0xf6, 0x3e, 0x1f, 0xf4, 0x50,
0x06, 0x5d, 0x05, 0x22, 0xf2, 0xf8, 0xf2, 0xde, 0xad, 0x2e, 0x9d, 0xc3,
0x97, 0x1b, 0xc3, 0x75, 0xe7, 0x86, 0xde, 0xc5, 0x11, 0x89, 0xed, 0x6a,
0x13, 0x14, 0x23, 0x4b, 0x98, 0x81, 0xf7, 0xd4, 0x1c, 0xee, 0x30, 0x92,
0x85, 0x20, 0x4f, 0x35, 0x02, 0xfa, 0xda, 0x14, 0x77, 0xfa, 0x08, 0x34,
0x60, 0xc7, 0x93, 0x72, 0xdc, 0xc4, 0x18, 0x70, 0xc1 };
memset(msgbuf, 0xef, 64);
ret = (TEST_ptr((p = BN_bin2bn(p_data, sizeof(p_data), NULL)))
&& TEST_ptr((q = BN_bin2bn(q_data, sizeof(q_data), NULL)))
&& TEST_ptr((n = BN_bin2bn(n_data, sizeof(n_data), NULL)))
&& TEST_ptr((d = BN_bin2bn(d_data, sizeof(d_data), NULL)))
&& TEST_ptr((e = BN_bin2bn(e_data, sizeof(e_data), NULL)))
&& TEST_ptr((rsa = RSA_new()))
&& TEST_ptr((md = EVP_sha256()))
&& TEST_ptr((ctx = EVP_MD_CTX_new()))
&& TEST_ptr((pkey = EVP_PKEY_new()))
&& TEST_true(RSA_set0_factors(rsa, p, q))
&& TEST_true(RSA_set0_key(rsa, n, e, d))
&& TEST_true(EVP_PKEY_assign_RSA(pkey, rsa))
&& TEST_true(EVP_DigestSignInit(ctx, NULL, md, NULL, pkey))
&& TEST_true(EVP_DigestSign(ctx, sigbuf, &buflen, msgbuf, msglen)));
EVP_MD_CTX_free(ctx);
EVP_PKEY_free(pkey);
return ret;
}
int setup_tests(void)
{
ADD_ALL_TESTS(test_rsa_pkcs1, 3);
ADD_ALL_TESTS(test_rsa_oaep, 3);
ADD_ALL_TESTS(test_rsa_security_bit, OSSL_NELEM(rsa_security_bits_cases));
ADD_TEST(test_EVP_rsa_legacy_key);
return 1;
}

View File

@ -1,5 +1,5 @@
/*
* Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
* Copyright 2016-2023 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@ -15,6 +15,7 @@
int main(int argc, char *argv[])
{
int ret = EXIT_FAILURE;
int setup_res;
test_open_streams();
@ -26,11 +27,11 @@ int main(int argc, char *argv[])
if (!setup_test_framework(argc, argv))
goto end;
if (setup_tests()) {
if ((setup_res = setup_tests()) > 0) {
ret = run_tests(argv[0]);
cleanup_tests();
opt_check_usage();
} else {
} else if (setup_res == 0) {
opt_help(test_get_options());
}
end:

View File

@ -177,11 +177,11 @@ int fips_provider_version_match(OSSL_LIB_CTX *libctx, const char *versions)
} mode;
while (*versions != '\0') {
for (; isspace((unsigned char)*versions); versions++)
for (; isspace((unsigned char)(*versions)); versions++)
continue;
if (*versions == '\0')
break;
for (p = versions; *versions != '\0' && !isspace((unsigned char)*versions); versions++)
for (p = versions; *versions != '\0' && !isspace((unsigned char)(*versions)); versions++)
continue;
if (*p == '!') {
mode = MODE_NE;

View File

@ -29,7 +29,7 @@ extern "C" {
*/
# define OPENSSL_VERSION_MAJOR 3
# define OPENSSL_VERSION_MINOR 0
# define OPENSSL_VERSION_PATCH 9
# define OPENSSL_VERSION_PATCH 12
/*
* Additional version information
@ -74,21 +74,21 @@ extern "C" {
* longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and
* OPENSSL_VERSION_BUILD_METADATA_STR appended.
*/
# define OPENSSL_VERSION_STR "3.0.9"
# define OPENSSL_FULL_VERSION_STR "3.0.9"
# define OPENSSL_VERSION_STR "3.0.12"
# define OPENSSL_FULL_VERSION_STR "3.0.12"
/*
* SECTION 3: ADDITIONAL METADATA
*
* These strings are defined separately to allow them to be parsable.
*/
# define OPENSSL_RELEASE_DATE "30 May 2023"
# define OPENSSL_RELEASE_DATE "24 Oct 2023"
/*
* SECTION 4: BACKWARD COMPATIBILITY
*/
# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.9 30 May 2023"
# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12 24 Oct 2023"
/* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */
# ifdef OPENSSL_VERSION_PRE_RELEASE

View File

@ -1,4 +1,4 @@
# $NetBSD: Makefile,v 1.3 2023/05/11 01:31:54 christos Exp $
# $NetBSD: Makefile,v 1.4 2023/10/25 17:17:51 christos Exp $
.include "bsd.own.mk"
@ -8,7 +8,7 @@ CRYPTODIST=${NETBSDSRCDIR}/crypto
regen:
for i in $$(find ${OPENSSLSRC} -name \*arm\*.pl); do \
case $$i in \
(*/charmap.pl|*/arm-xlate.pl|*/*v4*);; \
(*/charmap.pl|*/arm-xlate.pl|*/*v4*|*/bsaes-armv7.pl);; \
(*) perl -I${OPENSSLSRC}/crypto/perlasm \
-I${OPENSSLSRC}/crypto/bn/asm $$i linux64 /dev/stdout \
> $$(basename $$i .pl).S;; \

View File

@ -103,7 +103,7 @@ aes_v8_set_encrypt_key:
.Loop192:
tbl v6.16b,{v4.16b},v2.16b
ext v5.16b,v0.16b,v3.16b,#12
#ifdef __ARMEB__
#ifdef __AARCH64EB__
st1 {v4.4s},[x2],#16
sub x2,x2,#8
#else
@ -1510,7 +1510,7 @@ aes_v8_ctr32_encrypt_blocks:
ldr w5,[x3,#240]
ldr w8, [x4, #12]
#ifdef __ARMEB__
#ifdef __AARCH64EB__
ld1 {v0.16b},[x4]
#else
ld1 {v0.4s},[x4]
@ -1527,7 +1527,7 @@ aes_v8_ctr32_encrypt_blocks:
add x7,x3,#32
mov w6,w5
csel x12,xzr,x12,lo
#ifndef __ARMEB__
#ifndef __AARCH64EB__
rev w8, w8
#endif
orr v1.16b,v0.16b,v0.16b

View File

@ -101,7 +101,7 @@ gcm_gmult_v8:
movi v19.16b,#0xe1
ld1 {v20.2d,v21.2d},[x1] //load twisted H, ...
shl v19.2d,v19.2d,#57
#ifndef __ARMEB__
#ifndef __AARCH64EB__
rev64 v17.16b,v17.16b
#endif
ext v3.16b,v17.16b,v17.16b,#8
@ -126,7 +126,7 @@ gcm_gmult_v8:
eor v18.16b,v18.16b,v2.16b
eor v0.16b,v0.16b,v18.16b
#ifndef __ARMEB__
#ifndef __AARCH64EB__
rev64 v0.16b,v0.16b
#endif
ext v0.16b,v0.16b,v0.16b,#8
@ -163,14 +163,14 @@ gcm_ghash_v8:
ext v0.16b,v0.16b,v0.16b,#8 //rotate Xi
ld1 {v16.2d},[x2],#16 //load [rotated] I[0]
shl v19.2d,v19.2d,#57 //compose 0xc2.0 constant
#ifndef __ARMEB__
#ifndef __AARCH64EB__
rev64 v16.16b,v16.16b
rev64 v0.16b,v0.16b
#endif
ext v3.16b,v16.16b,v16.16b,#8 //rotate I[0]
b.lo .Lodd_tail_v8 //x3 was less than 32
ld1 {v17.2d},[x2],x12 //load [rotated] I[1]
#ifndef __ARMEB__
#ifndef __AARCH64EB__
rev64 v17.16b,v17.16b
#endif
ext v7.16b,v17.16b,v17.16b,#8
@ -202,13 +202,13 @@ gcm_ghash_v8:
eor v18.16b,v0.16b,v2.16b
eor v1.16b,v1.16b,v17.16b
ld1 {v17.2d},[x2],x12 //load [rotated] I[i+3]
#ifndef __ARMEB__
#ifndef __AARCH64EB__
rev64 v16.16b,v16.16b
#endif
eor v1.16b,v1.16b,v18.16b
pmull v18.1q,v0.1d,v19.1d //1st phase of reduction
#ifndef __ARMEB__
#ifndef __AARCH64EB__
rev64 v17.16b,v17.16b
#endif
ins v2.d[0],v1.d[1]
@ -258,7 +258,7 @@ gcm_ghash_v8:
eor v0.16b,v0.16b,v18.16b
.Ldone_v8:
#ifndef __ARMEB__
#ifndef __AARCH64EB__
rev64 v0.16b,v0.16b
#endif
ext v0.16b,v0.16b,v0.16b,#8
@ -277,7 +277,7 @@ gcm_ghash_v8_4x:
shl v19.2d,v19.2d,#57 //compose 0xc2.0 constant
ld1 {v4.2d,v5.2d,v6.2d,v7.2d},[x2],#64
#ifndef __ARMEB__
#ifndef __AARCH64EB__
rev64 v0.16b,v0.16b
rev64 v5.16b,v5.16b
rev64 v6.16b,v6.16b
@ -321,7 +321,7 @@ gcm_ghash_v8_4x:
eor v16.16b,v4.16b,v0.16b
ld1 {v4.2d,v5.2d,v6.2d,v7.2d},[x2],#64
ext v3.16b,v16.16b,v16.16b,#8
#ifndef __ARMEB__
#ifndef __AARCH64EB__
rev64 v5.16b,v5.16b
rev64 v6.16b,v6.16b
rev64 v7.16b,v7.16b
@ -404,7 +404,7 @@ gcm_ghash_v8_4x:
eor v1.16b,v1.16b,v17.16b
ld1 {v4.2d,v5.2d,v6.2d},[x2]
eor v1.16b,v1.16b,v18.16b
#ifndef __ARMEB__
#ifndef __AARCH64EB__
rev64 v5.16b,v5.16b
rev64 v6.16b,v6.16b
rev64 v4.16b,v4.16b
@ -456,7 +456,7 @@ gcm_ghash_v8_4x:
eor v1.16b,v1.16b,v17.16b
ld1 {v4.2d,v5.2d},[x2]
eor v1.16b,v1.16b,v18.16b
#ifndef __ARMEB__
#ifndef __AARCH64EB__
rev64 v5.16b,v5.16b
rev64 v4.16b,v4.16b
#endif
@ -499,7 +499,7 @@ gcm_ghash_v8_4x:
eor v1.16b,v1.16b,v17.16b
ld1 {v4.2d},[x2]
eor v1.16b,v1.16b,v18.16b
#ifndef __ARMEB__
#ifndef __AARCH64EB__
rev64 v4.16b,v4.16b
#endif
@ -539,7 +539,7 @@ gcm_ghash_v8_4x:
eor v0.16b,v0.16b,v18.16b
ext v0.16b,v0.16b,v0.16b,#8
#ifndef __ARMEB__
#ifndef __AARCH64EB__
rev64 v0.16b,v0.16b
#endif
st1 {v0.2d},[x0] //write out Xi

View File

@ -28,7 +28,7 @@ poly1305_init:
ldp x7,x8,[x1] // load key
mov x9,#0xfffffffc0fffffff
movk x9,#0x0fff,lsl#48
#ifdef __ARMEB__
#ifdef __AARCH64EB__
rev x7,x7 // flip bytes
rev x8,x8
#endif
@ -75,7 +75,7 @@ poly1305_blocks:
.Loop:
ldp x10,x11,[x1],#16 // load input
sub x2,x2,#16
#ifdef __ARMEB__
#ifdef __AARCH64EB__
rev x10,x10
rev x11,x11
#endif
@ -140,13 +140,13 @@ poly1305_emit:
csel x4,x4,x12,eq
csel x5,x5,x13,eq
#ifdef __ARMEB__
#ifdef __AARCH64EB__
ror x10,x10,#32 // flip nonce words
ror x11,x11,#32
#endif
adds x4,x4,x10 // accumulate nonce
adc x5,x5,x11
#ifdef __ARMEB__
#ifdef __AARCH64EB__
rev x4,x4 // flip output bytes
rev x5,x5
#endif
@ -266,7 +266,7 @@ poly1305_blocks_neon:
adcs x5,x5,xzr
adc x6,x6,xzr
#ifdef __ARMEB__
#ifdef __AARCH64EB__
rev x12,x12
rev x13,x13
#endif
@ -312,7 +312,7 @@ poly1305_blocks_neon:
ldp x12,x13,[x1],#16 // load input
sub x2,x2,#16
add x9,x8,x8,lsr#2 // s1 = r1 + (r1 >> 2)
#ifdef __ARMEB__
#ifdef __AARCH64EB__
rev x12,x12
rev x13,x13
#endif
@ -397,7 +397,7 @@ poly1305_blocks_neon:
lsl x3,x3,#24
add x15,x0,#48
#ifdef __ARMEB__
#ifdef __AARCH64EB__
rev x8,x8
rev x12,x12
rev x9,x9
@ -433,7 +433,7 @@ poly1305_blocks_neon:
ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x15],#64
ld1 {v8.4s},[x15]
#ifdef __ARMEB__
#ifdef __AARCH64EB__
rev x8,x8
rev x12,x12
rev x9,x9
@ -494,7 +494,7 @@ poly1305_blocks_neon:
umull v20.2d,v14.2s,v1.s[2]
ldp x9,x13,[x16],#48
umull v19.2d,v14.2s,v0.s[2]
#ifdef __ARMEB__
#ifdef __AARCH64EB__
rev x8,x8
rev x12,x12
rev x9,x9
@ -559,7 +559,7 @@ poly1305_blocks_neon:
umlal v23.2d,v11.2s,v3.s[0]
umlal v20.2d,v11.2s,v8.s[0]
umlal v21.2d,v11.2s,v0.s[0]
#ifdef __ARMEB__
#ifdef __AARCH64EB__
rev x8,x8
rev x12,x12
rev x9,x9
@ -840,13 +840,13 @@ poly1305_emit_neon:
csel x4,x4,x12,eq
csel x5,x5,x13,eq
#ifdef __ARMEB__
#ifdef __AARCH64EB__
ror x10,x10,#32 // flip nonce words
ror x11,x11,#32
#endif
adds x4,x4,x10 // accumulate nonce
adc x5,x5,x11
#ifdef __ARMEB__
#ifdef __AARCH64EB__
rev x4,x4 // flip output bytes
rev x5,x5
#endif

View File

@ -1132,7 +1132,7 @@ ossl_bsaes_cbc_encrypt:
vstmia r4, {q7}
.align 2
0:
#endif
vld1.8 {q15}, [r8] @ load IV
@ -1392,7 +1392,7 @@ ossl_bsaes_ctr32_encrypt_blocks:
vstmia r12, {q7} @ save last round key
.align 2
add r12, r3, #248
0: add r12, r3, #248
vld1.8 {q0}, [r8] @ load counter
add r8, r6, #.LREVM0SR-.LM0 @ borrow r8
vldmia r12, {q4} @ load round0 key
@ -1627,7 +1627,7 @@ ossl_bsaes_xts_encrypt:
vstmia r12, {q7}
.align 2
sub sp, #0x90 @ place for tweak[9]
0: sub sp, #0x90 @ place for tweak[9]
#endif
vld1.8 {q8}, [r0] @ initial tweak
@ -2113,7 +2113,7 @@ ossl_bsaes_xts_decrypt:
vstmia r4, {q7}
.align 2
sub sp, #0x90 @ place for tweak[9]
0: sub sp, #0x90 @ place for tweak[9]
#endif
vld1.8 {q8}, [r0] @ initial tweak
adr r2, .Lxts_magic

View File

@ -29,7 +29,7 @@ poly1305_init:
ldp x7,x8,[x1] // load key
mov x9,#0xfffffffc0fffffff
movk x9,#0x0fff,lsl#48
#ifdef __ARMEB__
#ifdef __AARCH64EB__
rev x7,x7 // flip bytes
rev x8,x8
#endif
@ -76,7 +76,7 @@ poly1305_blocks:
.Loop:
ldp x10,x11,[x1],#16 // load input
sub x2,x2,#16
#ifdef __ARMEB__
#ifdef __AARCH64EB__
rev x10,x10
rev x11,x11
#endif
@ -141,13 +141,13 @@ poly1305_emit:
csel x4,x4,x12,eq
csel x5,x5,x13,eq
#ifdef __ARMEB__
#ifdef __AARCH64EB__
ror x10,x10,#32 // flip nonce words
ror x11,x11,#32
#endif
adds x4,x4,x10 // accumulate nonce
adc x5,x5,x11
#ifdef __ARMEB__
#ifdef __AARCH64EB__
rev x4,x4 // flip output bytes
rev x5,x5
#endif
@ -267,7 +267,7 @@ poly1305_blocks_neon:
adcs x5,x5,xzr
adc x6,x6,xzr
#ifdef __ARMEB__
#ifdef __AARCH64EB__
rev x12,x12
rev x13,x13
#endif
@ -313,7 +313,7 @@ poly1305_blocks_neon:
ldp x12,x13,[x1],#16 // load input
sub x2,x2,#16
add x9,x8,x8,lsr#2 // s1 = r1 + (r1 >> 2)
#ifdef __ARMEB__
#ifdef __AARCH64EB__
rev x12,x12
rev x13,x13
#endif
@ -398,7 +398,7 @@ poly1305_blocks_neon:
lsl x3,x3,#24
add x15,x0,#48
#ifdef __ARMEB__
#ifdef __AARCH64EB__
rev x8,x8
rev x12,x12
rev x9,x9
@ -434,7 +434,7 @@ poly1305_blocks_neon:
ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x15],#64
ld1 {v8.4s},[x15]
#ifdef __ARMEB__
#ifdef __AARCH64EB__
rev x8,x8
rev x12,x12
rev x9,x9
@ -495,7 +495,7 @@ poly1305_blocks_neon:
umull v20.2d,v14.2s,v1.s[2]
ldp x9,x13,[x16],#48
umull v19.2d,v14.2s,v0.s[2]
#ifdef __ARMEB__
#ifdef __AARCH64EB__
rev x8,x8
rev x12,x12
rev x9,x9
@ -560,7 +560,7 @@ poly1305_blocks_neon:
umlal v23.2d,v11.2s,v3.s[0]
umlal v20.2d,v11.2s,v8.s[0]
umlal v21.2d,v11.2s,v0.s[0]
#ifdef __ARMEB__
#ifdef __AARCH64EB__
rev x8,x8
rev x12,x12
rev x9,x9
@ -841,13 +841,13 @@ poly1305_emit_neon:
csel x4,x4,x12,eq
csel x5,x5,x13,eq
#ifdef __ARMEB__
#ifdef __AARCH64EB__
ror x10,x10,#32 // flip nonce words
ror x11,x11,#32
#endif
adds x4,x4,x10 // accumulate nonce
adc x5,x5,x11
#ifdef __ARMEB__
#ifdef __AARCH64EB__
rev x4,x4 // flip output bytes
rev x5,x5
#endif

View File

@ -1,4 +1,4 @@
# $NetBSD: Makefile,v 1.7 2023/06/27 07:25:55 martin Exp $
# $NetBSD: Makefile,v 1.8 2023/10/25 17:17:51 christos Exp $
.include "bsd.own.mk"
@ -10,9 +10,10 @@ regen:
${OPENSSLSRC}/crypto/bn/asm/sparct4-mont.pl \
${OPENSSLSRC}/crypto/bn/asm/vis3-mont.pl; do \
j=$$(basename $$i .pl).S; \
k=$$(echo $$j | sed -e s/512/256/); \
case $$j in \
sparc*_modes.pl|sha1-*) perl $$i $$j;; \
sha512-*) perl $$i $$j; perl $$i $${j:S/512/256/};; \
sha512-*) perl $$i $$j; perl $$i $$k;; \
*) perl $$i > $$j;; \
esac; \
done

View File

@ -1,4 +1,4 @@
.\" $NetBSD: ADMISSIONS.3,v 1.5 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: ADMISSIONS.3,v 1.6 2023/10/25 17:17:51 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "ADMISSIONS 3"
.TH ADMISSIONS 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH ADMISSIONS 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: ASN1_EXTERN_FUNCS.3,v 1.2 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: ASN1_EXTERN_FUNCS.3,v 1.3 2023/10/25 17:17:51 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "ASN1_EXTERN_FUNCS 3"
.TH ASN1_EXTERN_FUNCS 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH ASN1_EXTERN_FUNCS 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: ASN1_INTEGER_get_int64.3,v 1.6 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: ASN1_INTEGER_get_int64.3,v 1.7 2023/10/25 17:17:51 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "ASN1_INTEGER_get_int64 3"
.TH ASN1_INTEGER_get_int64 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH ASN1_INTEGER_get_int64 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: ASN1_INTEGER_new.3,v 1.2 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: ASN1_INTEGER_new.3,v 1.3 2023/10/25 17:17:51 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "ASN1_INTEGER_new 3"
.TH ASN1_INTEGER_new 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH ASN1_INTEGER_new 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: ASN1_ITEM_lookup.3,v 1.5 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: ASN1_ITEM_lookup.3,v 1.6 2023/10/25 17:17:51 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "ASN1_ITEM_lookup 3"
.TH ASN1_ITEM_lookup 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH ASN1_ITEM_lookup 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: ASN1_OBJECT_new.3,v 1.22 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: ASN1_OBJECT_new.3,v 1.23 2023/10/25 17:17:51 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "ASN1_OBJECT_new 3"
.TH ASN1_OBJECT_new 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH ASN1_OBJECT_new 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: ASN1_STRING_TABLE_add.3,v 1.5 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: ASN1_STRING_TABLE_add.3,v 1.6 2023/10/25 17:17:51 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "ASN1_STRING_TABLE_add 3"
.TH ASN1_STRING_TABLE_add 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH ASN1_STRING_TABLE_add 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: ASN1_STRING_length.3,v 1.22 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: ASN1_STRING_length.3,v 1.23 2023/10/25 17:17:51 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "ASN1_STRING_length 3"
.TH ASN1_STRING_length 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH ASN1_STRING_length 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: ASN1_STRING_new.3,v 1.22 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: ASN1_STRING_new.3,v 1.23 2023/10/25 17:17:51 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "ASN1_STRING_new 3"
.TH ASN1_STRING_new 3 "2023-05-31" "3.0.9" "OpenSSL"
.TH ASN1_STRING_new 3 "2023-05-31" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: ASN1_STRING_print_ex.3,v 1.22 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: ASN1_STRING_print_ex.3,v 1.23 2023/10/25 17:17:51 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "ASN1_STRING_print_ex 3"
.TH ASN1_STRING_print_ex 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH ASN1_STRING_print_ex 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: ASN1_TIME_set.3,v 1.7 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: ASN1_TIME_set.3,v 1.8 2023/10/25 17:17:51 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "ASN1_TIME_set 3"
.TH ASN1_TIME_set 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH ASN1_TIME_set 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: ASN1_TYPE_get.3,v 1.6 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: ASN1_TYPE_get.3,v 1.7 2023/10/25 17:17:51 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "ASN1_TYPE_get 3"
.TH ASN1_TYPE_get 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH ASN1_TYPE_get 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: ASN1_aux_cb.3,v 1.2 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: ASN1_aux_cb.3,v 1.3 2023/10/25 17:17:51 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,14 +135,14 @@
.\" ========================================================================
.\"
.IX Title "ASN1_aux_cb 3"
.TH ASN1_aux_cb 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH ASN1_aux_cb 3 "2023-10-25" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
ASN1_AUX, ASN1_PRINT_ARG, ASN1_STREAM_ARG, ASN1_aux_cb, ASN1_aux_const_cb
\&\- ASN.1 auxilliary data
\&\- ASN.1 auxiliary data
.SH "LIBRARY"
libcrypto, -lcrypto
.SH "SYNOPSIS"
@ -186,7 +186,7 @@ libcrypto, -lcrypto
additional information about the \s-1ASN.1\s0 structure. An \fB\s-1ASN1_AUX\s0\fR structure is
associated with the structure during the definition of the \s-1ASN.1\s0 template. For
example an \fB\s-1ASN1_AUX\s0\fR structure will be associated by using one of the various
\&\s-1ASN.1\s0 template definition macros that supply auxilliary information such as
\&\s-1ASN.1\s0 template definition macros that supply auxiliary information such as
\&\fBASN1_SEQUENCE_enc()\fR, \fBASN1_SEQUENCE_ref()\fR, \fBASN1_SEQUENCE_cb_const_cb()\fR,
\&\fBASN1_SEQUENCE_const_cb()\fR, \fBASN1_SEQUENCE_cb()\fR or \fBASN1_NDEF_SEQUENCE_cb()\fR.
.PP
@ -364,7 +364,7 @@ The \fBASN1_aux_const_cb()\fR callback and the \fB\s-1ASN1_OP_GET0_LIBCTX\s0\fR
\&\fB\s-1ASN1_OP_GET0_PROPQ\s0\fR operation types were added in OpenSSL 3.0.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright 2021 The OpenSSL Project Authors. All Rights Reserved.
Copyright 2021\-2023 The OpenSSL Project Authors. All Rights Reserved.
.PP
Licensed under the Apache License 2.0 (the \*(L"License\*(R"). You may not use
this file except in compliance with the License. You can obtain a copy

View File

@ -1,4 +1,4 @@
.\" $NetBSD: ASN1_generate_nconf.3,v 1.22 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: ASN1_generate_nconf.3,v 1.23 2023/10/25 17:17:51 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "ASN1_generate_nconf 3"
.TH ASN1_generate_nconf 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH ASN1_generate_nconf 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: ASN1_item_d2i_bio.3,v 1.2 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: ASN1_item_d2i_bio.3,v 1.3 2023/10/25 17:17:51 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "ASN1_item_d2i_bio 3"
.TH ASN1_item_d2i_bio 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH ASN1_item_d2i_bio 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: ASN1_item_new.3,v 1.2 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: ASN1_item_new.3,v 1.3 2023/10/25 17:17:51 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "ASN1_item_new 3"
.TH ASN1_item_new 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH ASN1_item_new 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: ASN1_item_sign.3,v 1.2 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: ASN1_item_sign.3,v 1.3 2023/10/25 17:17:51 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "ASN1_item_sign 3"
.TH ASN1_item_sign 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH ASN1_item_sign 3 "2023-10-25" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
@ -203,7 +203,7 @@ See \fBEVP_PKEY_CTX_set1_id()\fR for further info. The output parameters <algor1
\&\fBASN1_item_sign()\fR is similar to \fBASN1_item_sign_ex()\fR but uses default values of
\&\s-1NULL\s0 for the \fIid\fR, \fIlibctx\fR and \fIpropq\fR.
.PP
\&\fBASN1_item_sign_ctx()\fR is similiar to \fBASN1_item_sign()\fR but uses the parameters
\&\fBASN1_item_sign_ctx()\fR is similar to \fBASN1_item_sign()\fR but uses the parameters
contained in digest context \fIctx\fR.
.PP
\&\fBASN1_item_verify_ex()\fR is used to verify the signature \fIsignature\fR of internal
@ -218,7 +218,7 @@ See \fBEVP_PKEY_CTX_set1_id()\fR for further info.
\&\fBASN1_item_verify()\fR is similar to \fBASN1_item_verify_ex()\fR but uses default values of
\&\s-1NULL\s0 for the \fIid\fR, \fIlibctx\fR and \fIpropq\fR.
.PP
\&\fBASN1_item_verify_ctx()\fR is similiar to \fBASN1_item_verify()\fR but uses the parameters
\&\fBASN1_item_verify_ctx()\fR is similar to \fBASN1_item_verify()\fR but uses the parameters
contained in digest context \fIctx\fR.
.SH "RETURN VALUES"
.IX Header "RETURN VALUES"
@ -353,7 +353,7 @@ then output in \s-1DER\s0 format and then loaded back in and verified.
\&\fBASN1_item_sign_ex()\fR and \fBASN1_item_verify_ex()\fR were added in OpenSSL 3.0.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright 2020\-2021 The OpenSSL Project Authors. All Rights Reserved.
Copyright 2020\-2023 The OpenSSL Project Authors. All Rights Reserved.
.PP
Licensed under the Apache License 2.0 (the \*(L"License\*(R"). You may not use
this file except in compliance with the License. You can obtain a copy

View File

@ -1,4 +1,4 @@
.\" $NetBSD: ASYNC_WAIT_CTX_new.3,v 1.6 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: ASYNC_WAIT_CTX_new.3,v 1.7 2023/10/25 17:17:51 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "ASYNC_WAIT_CTX_new 3"
.TH ASYNC_WAIT_CTX_new 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH ASYNC_WAIT_CTX_new 3 "2023-10-25" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
@ -223,7 +223,7 @@ will be populated with the list of added and deleted fds respectively. Similarly
to \fBASYNC_WAIT_CTX_get_all_fds()\fR either of these can be \s-1NULL,\s0 but if they are not
\&\s-1NULL\s0 then the caller is responsible for ensuring sufficient memory is allocated.
.PP
Implementors of async aware code (e.g. engines) are encouraged to return a
Implementers of async aware code (e.g. engines) are encouraged to return a
stable fd for the lifetime of the \fB\s-1ASYNC_WAIT_CTX\s0\fR in order to reduce the
\&\*(L"churn\*(R" of regularly changing fds \- although no guarantees of this are provided
to applications.
@ -342,7 +342,7 @@ were added in OpenSSL 1.1.0.
were added in OpenSSL 3.0.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright 2016\-2021 The OpenSSL Project Authors. All Rights Reserved.
Copyright 2016\-2023 The OpenSSL Project Authors. All Rights Reserved.
.PP
Licensed under the Apache License 2.0 (the \*(L"License\*(R"). You may not use
this file except in compliance with the License. You can obtain a copy

View File

@ -1,4 +1,4 @@
.\" $NetBSD: ASYNC_start_job.3,v 1.6 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: ASYNC_start_job.3,v 1.7 2023/10/25 17:17:51 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "ASYNC_start_job 3"
.TH ASYNC_start_job 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH ASYNC_start_job 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BF_encrypt.3,v 1.6 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BF_encrypt.3,v 1.7 2023/10/25 17:17:51 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BF_encrypt 3"
.TH BF_encrypt 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BF_encrypt 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BIO_ADDR.3,v 1.6 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BIO_ADDR.3,v 1.7 2023/10/25 17:17:51 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BIO_ADDR 3"
.TH BIO_ADDR 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BIO_ADDR 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BIO_ADDRINFO.3,v 1.6 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BIO_ADDRINFO.3,v 1.7 2023/10/25 17:17:51 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BIO_ADDRINFO 3"
.TH BIO_ADDRINFO 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BIO_ADDRINFO 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BIO_connect.3,v 1.6 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BIO_connect.3,v 1.7 2023/10/25 17:17:51 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BIO_connect 3"
.TH BIO_connect 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BIO_connect 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BIO_ctrl.3,v 1.22 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BIO_ctrl.3,v 1.23 2023/10/25 17:17:51 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BIO_ctrl 3"
.TH BIO_ctrl 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BIO_ctrl 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BIO_f_base64.3,v 1.22 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BIO_f_base64.3,v 1.23 2023/10/25 17:17:51 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BIO_f_base64 3"
.TH BIO_f_base64 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BIO_f_base64 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BIO_f_buffer.3,v 1.22 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BIO_f_buffer.3,v 1.23 2023/10/25 17:17:51 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BIO_f_buffer 3"
.TH BIO_f_buffer 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BIO_f_buffer 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BIO_f_cipher.3,v 1.22 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BIO_f_cipher.3,v 1.23 2023/10/25 17:17:51 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BIO_f_cipher 3"
.TH BIO_f_cipher 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BIO_f_cipher 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BIO_f_md.3,v 1.22 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BIO_f_md.3,v 1.23 2023/10/25 17:17:51 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BIO_f_md 3"
.TH BIO_f_md 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BIO_f_md 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BIO_f_null.3,v 1.22 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BIO_f_null.3,v 1.23 2023/10/25 17:17:52 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BIO_f_null 3"
.TH BIO_f_null 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BIO_f_null 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BIO_f_prefix.3,v 1.2 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BIO_f_prefix.3,v 1.3 2023/10/25 17:17:52 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BIO_f_prefix 3"
.TH BIO_f_prefix 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BIO_f_prefix 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BIO_f_readbuffer.3,v 1.2 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BIO_f_readbuffer.3,v 1.3 2023/10/25 17:17:52 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BIO_f_readbuffer 3"
.TH BIO_f_readbuffer 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BIO_f_readbuffer 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BIO_f_ssl.3,v 1.22 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BIO_f_ssl.3,v 1.23 2023/10/25 17:17:52 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BIO_f_ssl 3"
.TH BIO_f_ssl 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BIO_f_ssl 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BIO_find_type.3,v 1.22 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BIO_find_type.3,v 1.23 2023/10/25 17:17:52 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BIO_find_type 3"
.TH BIO_find_type 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BIO_find_type 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BIO_get_data.3,v 1.6 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BIO_get_data.3,v 1.7 2023/10/25 17:17:52 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BIO_get_data 3"
.TH BIO_get_data 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BIO_get_data 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BIO_get_ex_new_index.3,v 1.6 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BIO_get_ex_new_index.3,v 1.7 2023/10/25 17:17:52 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BIO_get_ex_new_index 3"
.TH BIO_get_ex_new_index 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BIO_get_ex_new_index 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BIO_meth_new.3,v 1.6 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BIO_meth_new.3,v 1.7 2023/10/25 17:17:52 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BIO_meth_new 3"
.TH BIO_meth_new 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BIO_meth_new 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BIO_new.3,v 1.22 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BIO_new.3,v 1.23 2023/10/25 17:17:52 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BIO_new 3"
.TH BIO_new 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BIO_new 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BIO_new_CMS.3,v 1.22 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BIO_new_CMS.3,v 1.23 2023/10/25 17:17:52 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BIO_new_CMS 3"
.TH BIO_new_CMS 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BIO_new_CMS 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BIO_parse_hostserv.3,v 1.6 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BIO_parse_hostserv.3,v 1.7 2023/10/25 17:17:52 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BIO_parse_hostserv 3"
.TH BIO_parse_hostserv 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BIO_parse_hostserv 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BIO_printf.3,v 1.6 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BIO_printf.3,v 1.7 2023/10/25 17:17:52 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BIO_printf 3"
.TH BIO_printf 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BIO_printf 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BIO_push.3,v 1.22 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BIO_push.3,v 1.23 2023/10/25 17:17:52 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BIO_push 3"
.TH BIO_push 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BIO_push 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BIO_read.3,v 1.22 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BIO_read.3,v 1.23 2023/10/25 17:17:52 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BIO_read 3"
.TH BIO_read 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BIO_read 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BIO_s_accept.3,v 1.22 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BIO_s_accept.3,v 1.23 2023/10/25 17:17:52 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BIO_s_accept 3"
.TH BIO_s_accept 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BIO_s_accept 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BIO_s_bio.3,v 1.22 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BIO_s_bio.3,v 1.23 2023/10/25 17:17:52 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BIO_s_bio 3"
.TH BIO_s_bio 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BIO_s_bio 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BIO_s_connect.3,v 1.22 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BIO_s_connect.3,v 1.23 2023/10/25 17:17:52 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BIO_s_connect 3"
.TH BIO_s_connect 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BIO_s_connect 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BIO_s_core.3,v 1.2 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BIO_s_core.3,v 1.3 2023/10/25 17:17:52 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BIO_s_core 3"
.TH BIO_s_core 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BIO_s_core 3 "2023-10-25" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
@ -163,7 +163,7 @@ libcrypto into a provider supply an \s-1OSSL_CORE_BIO\s0 parameter. This represe
a \s-1BIO\s0 within libcrypto, but cannot be used directly by a provider. Instead it
should be wrapped using a \fBBIO_s_core()\fR.
.PP
Once a \s-1BIO\s0 is contructed based on \fBBIO_s_core()\fR, the associated \s-1OSSL_CORE_BIO\s0
Once a \s-1BIO\s0 is constructed based on \fBBIO_s_core()\fR, the associated \s-1OSSL_CORE_BIO\s0
object should be set on it using \fBBIO_set_data\fR\|(3). Note that the \s-1BIO\s0 will only
operate correctly if it is associated with a library context constructed using
\&\fBOSSL_LIB_CTX_new_from_dispatch\fR\|(3). To associate the \s-1BIO\s0 with a library context
@ -201,7 +201,7 @@ Create a core \s-1BIO\s0 and write some data to it:
.Ve
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright 2021 The OpenSSL Project Authors. All Rights Reserved.
Copyright 2021\-2023 The OpenSSL Project Authors. All Rights Reserved.
.PP
Licensed under the Apache License 2.0 (the \*(L"License\*(R"). You may not use
this file except in compliance with the License. You can obtain a copy

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BIO_s_datagram.3,v 1.2 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BIO_s_datagram.3,v 1.3 2023/10/25 17:17:52 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BIO_s_datagram 3"
.TH BIO_s_datagram 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BIO_s_datagram 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BIO_s_fd.3,v 1.22 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BIO_s_fd.3,v 1.23 2023/10/25 17:17:52 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BIO_s_fd 3"
.TH BIO_s_fd 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BIO_s_fd 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BIO_s_file.3,v 1.22 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BIO_s_file.3,v 1.23 2023/10/25 17:17:52 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BIO_s_file 3"
.TH BIO_s_file 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BIO_s_file 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BIO_s_mem.3,v 1.22 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BIO_s_mem.3,v 1.23 2023/10/25 17:17:52 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BIO_s_mem 3"
.TH BIO_s_mem 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BIO_s_mem 3 "2023-10-25" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
@ -200,6 +200,8 @@ positive return value \fBv\fR should be set to a negative value, typically \-1.
.PP
\&\fBBIO_get_mem_data()\fR sets *\fBpp\fR to a pointer to the start of the memory BIOs data
and returns the total amount of data available. It is implemented as a macro.
Note the pointer returned by this call is informative, no transfer of ownership
of this memory is implied. See notes on \fBBIO_set_close()\fR.
.PP
\&\fBBIO_set_mem_buf()\fR sets the internal \s-1BUF_MEM\s0 structure to \fBbm\fR and sets the
close flag to \fBc\fR, that is \fBc\fR should be either \s-1BIO_CLOSE\s0 or \s-1BIO_NOCLOSE.\s0
@ -253,6 +255,10 @@ preceding that write operation cannot be undone.
.PP
Calling \fBBIO_get_mem_ptr()\fR prior to a \fBBIO_reset()\fR call with
\&\s-1BIO_FLAGS_NONCLEAR_RST\s0 set has the same effect as a write operation.
.PP
Calling \fBBIO_set_close()\fR with \s-1BIO_NOCLOSE\s0 orphans the \s-1BUF_MEM\s0 internal to the
\&\s-1BIO,\s0 _not_ its actual data buffer. See the examples section for the proper
method for claiming ownership of the data pointer for a deferred free operation.
.SH "BUGS"
.IX Header "BUGS"
There should be an option to set the maximum size of a memory \s-1BIO.\s0
@ -293,9 +299,26 @@ Extract the \s-1BUF_MEM\s0 structure from a memory \s-1BIO\s0 and then free up t
\& BIO_set_close(mem, BIO_NOCLOSE); /* So BIO_free() leaves BUF_MEM alone */
\& BIO_free(mem);
.Ve
.PP
Extract the \s-1BUF_MEM\s0 ptr, claim ownership of the internal data and free the \s-1BIO\s0
and \s-1BUF_MEM\s0 structure:
.PP
.Vb 2
\& BUF_MEM *bptr;
\& char *data;
\&
\& BIO_get_mem_data(bio, &data);
\& BIO_get_mem_ptr(bio, &bptr);
\& BIO_set_close(mem, BIO_NOCLOSE); /* So BIO_free orphans BUF_MEM */
\& BIO_free(bio);
\& bptr\->data = NULL; /* Tell BUF_MEM to orphan data */
\& BUF_MEM_free(bptr);
\& ...
\& free(data);
.Ve
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright 2000\-2020 The OpenSSL Project Authors. All Rights Reserved.
Copyright 2000\-2023 The OpenSSL Project Authors. All Rights Reserved.
.PP
Licensed under the Apache License 2.0 (the \*(L"License\*(R"). You may not use
this file except in compliance with the License. You can obtain a copy

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BIO_s_null.3,v 1.22 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BIO_s_null.3,v 1.23 2023/10/25 17:17:52 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BIO_s_null 3"
.TH BIO_s_null 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BIO_s_null 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BIO_s_socket.3,v 1.22 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BIO_s_socket.3,v 1.23 2023/10/25 17:17:52 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BIO_s_socket 3"
.TH BIO_s_socket 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BIO_s_socket 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BIO_set_callback.3,v 1.22 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BIO_set_callback.3,v 1.23 2023/10/25 17:17:52 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BIO_set_callback 3"
.TH BIO_set_callback 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BIO_set_callback 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BIO_should_retry.3,v 1.22 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BIO_should_retry.3,v 1.23 2023/10/25 17:17:52 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BIO_should_retry 3"
.TH BIO_should_retry 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BIO_should_retry 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BIO_socket_wait.3,v 1.2 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BIO_socket_wait.3,v 1.3 2023/10/25 17:17:52 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BIO_socket_wait 3"
.TH BIO_socket_wait 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BIO_socket_wait 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BN_BLINDING_new.3,v 1.22 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BN_BLINDING_new.3,v 1.23 2023/10/25 17:17:52 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BN_BLINDING_new 3"
.TH BN_BLINDING_new 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BN_BLINDING_new 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BN_CTX_new.3,v 1.22 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BN_CTX_new.3,v 1.23 2023/10/25 17:17:52 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BN_CTX_new 3"
.TH BN_CTX_new 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BN_CTX_new 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BN_CTX_start.3,v 1.22 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BN_CTX_start.3,v 1.23 2023/10/25 17:17:52 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BN_CTX_start 3"
.TH BN_CTX_start 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BN_CTX_start 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BN_add.3,v 1.22 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BN_add.3,v 1.23 2023/10/25 17:17:52 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BN_add 3"
.TH BN_add 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BN_add 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BN_add_word.3,v 1.22 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BN_add_word.3,v 1.23 2023/10/25 17:17:52 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BN_add_word 3"
.TH BN_add_word 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BN_add_word 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BN_bn2bin.3,v 1.22 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BN_bn2bin.3,v 1.23 2023/10/25 17:17:52 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BN_bn2bin 3"
.TH BN_bn2bin 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BN_bn2bin 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BN_cmp.3,v 1.22 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BN_cmp.3,v 1.23 2023/10/25 17:17:52 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BN_cmp 3"
.TH BN_cmp 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BN_cmp 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BN_copy.3,v 1.22 2023/05/31 19:42:41 christos Exp $
.\" $NetBSD: BN_copy.3,v 1.23 2023/10/25 17:17:52 christos Exp $
.\"
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
@ -135,7 +135,7 @@
.\" ========================================================================
.\"
.IX Title "BN_copy 3"
.TH BN_copy 3 "2023-05-07" "3.0.9" "OpenSSL"
.TH BN_copy 3 "2023-05-07" "3.0.12" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

Some files were not shown because too many files have changed in this diff Show More