openssl.git
3 years agofix provider exchange operations
Shane Lontis [Sat, 29 Aug 2020 08:04:13 +0000 (18:04 +1000)]
fix provider exchange operations

Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/12745)

3 years agofix provider signatures
Shane Lontis [Sat, 29 Aug 2020 08:03:17 +0000 (18:03 +1000)]
fix provider signatures

Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/12745)

3 years agoSeparate fips and non fips code for key operations
Shane Lontis [Sat, 29 Aug 2020 07:59:07 +0000 (17:59 +1000)]
Separate fips and non fips code for key operations

Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/12745)

3 years agoAdd missing 'ossl_unused' tags to some gettable and settable methods.
Shane Lontis [Sat, 29 Aug 2020 02:33:34 +0000 (12:33 +1000)]
Add missing 'ossl_unused' tags to some gettable and settable methods.

Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/12745)

3 years agoAdd error message to genpkey app for the '-genparam' option
Shane Lontis [Sat, 29 Aug 2020 02:06:05 +0000 (12:06 +1000)]
Add error message to genpkey app for the '-genparam' option

The ordering of this option is important so inform the user if they do it incorrectly.

Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/12745)

3 years agoAdd fips checks for ecdh key agreement
Shane Lontis [Sat, 29 Aug 2020 02:59:04 +0000 (12:59 +1000)]
Add fips checks for ecdh key agreement

For key agreement only NIST curves that have a security strength of 112 bits or more are allowed.
Fixed tests so they obey these restrictions when testing in fips mode.

Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/12745)

3 years agoAdd fips checks for rsa encryption
Shane Lontis [Sat, 29 Aug 2020 02:55:43 +0000 (12:55 +1000)]
Add fips checks for rsa encryption

Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/12745)

3 years agoAdd fips checks for dh key agreement
Shane Lontis [Sat, 29 Aug 2020 02:54:00 +0000 (12:54 +1000)]
Add fips checks for dh key agreement

Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/12745)

3 years agoAdd fips checks for ecdsa signatures
Shane Lontis [Sat, 29 Aug 2020 02:51:14 +0000 (12:51 +1000)]
Add fips checks for ecdsa signatures

Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/12745)

3 years agoAdd fips checks for dsa signatures
Shane Lontis [Sat, 29 Aug 2020 02:37:46 +0000 (12:37 +1000)]
Add fips checks for dsa signatures

Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/12745)

3 years agoAdd fips checks for rsa signatures.
Shane Lontis [Sat, 29 Aug 2020 02:25:54 +0000 (12:25 +1000)]
Add fips checks for rsa signatures.

In fips mode SHA1 should not be allowed for signing, but may be present for verifying.
Add keysize check.
Add missing 'ossl_unused' to gettable and settable methods.
Update fips related tests that have these restrictions.

Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/12745)

3 years agoFix some doc-nits and make update errors
Matt Caswell [Tue, 15 Sep 2020 13:00:37 +0000 (14:00 +0100)]
Fix some doc-nits and make update errors

The new lhash changes have confused some of the perl scripts so we add
some fixes.

Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/12860)

3 years agoRemove some unneeded code from lhash.h
Matt Caswell [Fri, 11 Sep 2020 13:04:51 +0000 (14:04 +0100)]
Remove some unneeded code from lhash.h

lhash.h had some workaround code for the issue where static inline
functions contained references to libcrypto symbols in public header
files. Since this issue no longer exists this workaround code can be
removed.

Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/12860)

3 years agoUpdate err.h to use the new lhash generation code
Matt Caswell [Fri, 11 Sep 2020 12:51:58 +0000 (13:51 +0100)]
Update err.h to use the new lhash generation code

Generate the lhash macros for the ERR_STRING_DATA type

Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/12860)

3 years agoUpdate conf.h.in to use the new lhash generation code
Matt Caswell [Fri, 11 Sep 2020 12:48:31 +0000 (13:48 +0100)]
Update conf.h.in to use the new lhash generation code

Generate the lhash macros for the CONF_VALUE type

Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/12860)

3 years agoProvide basis for fixing lhash code
Matt Caswell [Fri, 11 Sep 2020 12:22:40 +0000 (13:22 +0100)]
Provide basis for fixing lhash code

Following on from the earlier safestack work we provide the basis for
fixing the lhash code such that unused static inline functions do not
cause linker errors for applications including those headers.

This brings the lhash code into line with the safestack code.

Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/12860)

3 years agos_client.pod: Fix grammar in NOTES section.
Alexander Borkowski [Sat, 20 Jul 2019 05:47:11 +0000 (07:47 +0200)]
s_client.pod: Fix grammar in NOTES section.

CLA: trivial

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Kurt Roeckx <kurt@roeckx.be>
Reviewed-by: Ben Kaduk <kaduk@mit.edu>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/9421)

3 years agoAdd selftest callback to CRNG output test
Shane Lontis [Tue, 1 Sep 2020 23:08:09 +0000 (09:08 +1000)]
Add selftest callback to CRNG output test

Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/12795)

3 years agoFix AES_XTS on x86-64 platforms with BSAES and VPAES support.
Shane Lontis [Wed, 16 Sep 2020 01:07:02 +0000 (11:07 +1000)]
Fix AES_XTS on x86-64 platforms with BSAES and VPAES support.

Fixes #11622
Fixes #12378

Due to a missing else it was setting up the stream for BSAES and then using this incorrect stream with VPAES.
The correct behaviour is not to use VPAES at all in this case.
Also note that the original code in e_aes could set up VPAES and then would overwrite it with the generic implementation.
On a machine that supported both BSAES and VPAES the code was changed locally to force it to run both cases to verify
both paths produce the correct known answers.

Debugged using mageia 7.1, but is also highly likely to fix FreeBSD also.

Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/12887)

3 years agoHMAC should work with non-provided digests
Dmitry Belyavskiy [Mon, 14 Sep 2020 15:33:29 +0000 (18:33 +0300)]
HMAC should work with non-provided digests

Fixes #12839

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/12874)

3 years agoRename check_chain_extensions to check_chain
Tomas Mraz [Fri, 11 Sep 2020 13:27:23 +0000 (15:27 +0200)]
Rename check_chain_extensions to check_chain

The function does much more than just checking extensions.

Reviewed-by: David von Oheimb <david.von.oheimb@siemens.com>
Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/12683)

3 years agoDisallow certs with explicit curve in verification chain
Tomas Mraz [Fri, 11 Sep 2020 07:09:29 +0000 (09:09 +0200)]
Disallow certs with explicit curve in verification chain

The check is applied only with X509_V_FLAG_X509_STRICT.

Fixes #12139

Reviewed-by: David von Oheimb <david.von.oheimb@siemens.com>
Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/12683)

3 years agoEC_KEY: add EC_KEY_decoded_from_explicit_params()
Tomas Mraz [Fri, 21 Aug 2020 12:50:52 +0000 (14:50 +0200)]
EC_KEY: add EC_KEY_decoded_from_explicit_params()

The function returns 1 when the encoding of a decoded EC key used
explicit encoding of the curve parameters.

Reviewed-by: David von Oheimb <david.von.oheimb@siemens.com>
Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/12683)

3 years agoFix Coverity CID 1466708 - correct pointer calculation in one case
Dr. David von Oheimb [Wed, 16 Sep 2020 11:29:05 +0000 (13:29 +0200)]
Fix Coverity CID 1466708 - correct pointer calculation in one case

Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12894)

3 years agoFIX strncpy warning in apps/cmp.c.
Xiaofei Bai [Tue, 15 Sep 2020 01:59:02 +0000 (01:59 +0000)]
FIX strncpy warning in apps/cmp.c.

bugfix: #12872

strncpy here has compiling warning of -Wstringop-truncation, change
into BIO_snprintf as before.

Change-Id: I362872c4ad328cadd4c7a5a5da3165655fa26c0d

Reviewed-by: Paul Dale <paul.dale@oracle.com>
Reviewed-by: David von Oheimb <david.von.oheimb@siemens.com>
(Merged from https://github.com/openssl/openssl/pull/12889)

3 years agoMake KDFs fail if requesting a zero-length key.
Jon Spillett [Mon, 14 Sep 2020 07:03:01 +0000 (17:03 +1000)]
Make KDFs fail if requesting a zero-length key.

Also add more test cases

Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Ben Kaduk <kaduk@mit.edu>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12826)

3 years agoAllow zero-length secret for EVP_KDF API
Jon Spillett [Tue, 8 Sep 2020 06:46:13 +0000 (16:46 +1000)]
Allow zero-length secret for EVP_KDF API

Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Ben Kaduk <kaduk@mit.edu>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12826)

3 years agoFix typo in bind_loader_attic comment
Daniel Bevenius [Wed, 16 Sep 2020 06:55:52 +0000 (08:55 +0200)]
Fix typo in bind_loader_attic comment

Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/12890)

3 years agoDocument 2 newly added functions
Matt Caswell [Mon, 14 Sep 2020 15:30:50 +0000 (16:30 +0100)]
Document 2 newly added functions

Adds documentation for EVP_PKEY_get0_first_alg_name() and
EVP_KEYMGMT_get0_first_name().

Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/12850)

3 years agoTest HMAC output from the dgst CLI
Matt Caswell [Mon, 14 Sep 2020 15:13:54 +0000 (16:13 +0100)]
Test HMAC output from the dgst CLI

We run two HMAC operations on the same file and confirm that both provide
us with the expected values.

Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/12850)

3 years agoCorrectly display the signing/hmac algorithm in the dgst app
Matt Caswell [Sun, 13 Sep 2020 10:09:20 +0000 (11:09 +0100)]
Correctly display the signing/hmac algorithm in the dgst app

In OpenSSL 1.1.1 doing an HMAC operation with (say) SHA1 would produce
output like this:

HMAC-SHA1(README.md)= 553154e4c0109ddc320bb495735906ad7135c2f1

Prior to this change master would instead display this like so:

SHA1(README.md)= 553154e4c0109ddc320bb495735906ad7135c2f1

The problem is that dgst was using EVP_PKEY_asn1_get0_info() to get
the algorithm name from the EVP_PKEY. This doesn't work with provider
based keys. Instead we introduce a new EVP_PKEY_get0_first_alg_name()
function, and an equivalent EVP_KEYMGMT_get0_first_name() function.

Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/12850)

3 years agoRedirect EVP_DigestInit to EVP_DigestSignInit_ex if appropriate
Matt Caswell [Fri, 11 Sep 2020 15:47:53 +0000 (16:47 +0100)]
Redirect EVP_DigestInit to EVP_DigestSignInit_ex if appropriate

Prior to OpenSSL 3.0 calling EVP_DigestInit_ex() on an mdctx previously
initialised with EVP_DigestSignInit() would retain information about the
key, and re-initialise for another sign operation. To emulate that we
redirect calls to EVP_DigestInit() to EVP_DigestSignInit_ex() if
appropriate.

Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/12850)

3 years agoDon't send -1 as the length of the hmac key
Matt Caswell [Thu, 10 Sep 2020 13:46:41 +0000 (14:46 +0100)]
Don't send -1 as the length of the hmac key

The dgst app was using an undocumented behaviour in the
EVP_PKEY_new_raw_private_key() function when setting a key length for
a MAC. The old EVP_PKEY to MAC bridge, probably by accident, converts a
-1 length to a strlen() call, by virtue of the fact that it eventually
calls ASN1_STRING_set() which has this feature.

As noted above this is undocumented, and unexpected since the len
parameter to EVP_PKEY_new_raw_private_key() is an unsigned value (size_t).
In the old bridge it was later (silently) cast to an int, and therefore
the original -1 value was restored. This only works because sizeof(int) <=
sizeof(size_t). If we ever run on a platform where sizeof(int) >
sizeof(size_t) then it would have failed. The behaviour also doesn't hold
for EVP_PKEY_new_raw_private_key() in general - only when the old MAC
bridge was in use.

Rather than restore the original behaviour I think it is best to simply
fix the dgst app to not assume it exists. We should not bake in this
backwards and inconsistent behaviour.

Fixes #12837

Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/12850)

3 years agoAnnotate potential -Wunused-function violations in err.h
jwalch [Thu, 10 Sep 2020 16:14:40 +0000 (12:14 -0400)]
Annotate potential -Wunused-function violations in err.h

Fixes #12792

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12851)

3 years agoAdd a NULL check to EVP_PKEY_assign
jwalch [Thu, 10 Sep 2020 02:36:00 +0000 (22:36 -0400)]
Add a NULL check to EVP_PKEY_assign

Fixes  #12619

Update p_lib.c

Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/12863)

3 years agoUpdate AES GCM IV max length to be 1024 bits (was 512)
Shane Lontis [Tue, 15 Sep 2020 01:08:27 +0000 (11:08 +1000)]
Update AES GCM IV max length to be 1024 bits (was 512)

Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/12875)

3 years agoundeprecate EVP_PKEY_cmp and EVP_PKEY_cmp_parameters
Tim Hudson [Tue, 2 Jun 2020 01:16:14 +0000 (11:16 +1000)]
undeprecate EVP_PKEY_cmp and EVP_PKEY_cmp_parameters

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12013)

3 years agoConfigurations/unix-Makefile.tmpl: Don't specify headers twice
Richard Levitte [Tue, 15 Sep 2020 15:40:38 +0000 (17:40 +0200)]
Configurations/unix-Makefile.tmpl: Don't specify headers twice

When building in the source tree, a rebuilt Makefile detected both
include/openssl/foo.h.in and include/openssl/foo.h, so promptly added
include/openssl/foo.h twice to the list of headers to parse in 'make
update'

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/12882)

3 years agoOpenSSL::ParseC: recognise inline function bodies
Richard Levitte [Tue, 15 Sep 2020 15:10:44 +0000 (17:10 +0200)]
OpenSSL::ParseC: recognise inline function bodies

Function bodies in headers weren't a thing when OpenSSL::ParseC was
created, at least not as clearly as they are nowadays.  This module
must evolve to recognise them (and promptly ignore them).

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/12882)

3 years agoAdd self tests for rsa encryption
Shane Lontis [Wed, 16 Sep 2020 04:10:23 +0000 (14:10 +1000)]
Add self tests for rsa encryption

SP800-56br2 requires seperate KAT's (fips self tests) to be tested for both encryption and decryption
using the RSA primitive (i.e. no padding). This is specified in FIPS140-2 IG D.9

A copy of the methods EVP_PKEY_encrypt_init(), EVP_PKEY_encrypt(), EVP_PKEY_decrypt_init(), EVP_PKEY_decrypt()
are now in the fips module.

Removed the #ifdef FIPS_MODULE in evp_pkey_ctx_free_old_ops().

Added corruption test

Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/12835)

3 years agofree memory use on error in cert verify
Pauli [Sun, 13 Sep 2020 21:50:40 +0000 (07:50 +1000)]
free memory use on error in cert verify

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Kurt Roeckx <kurt@roeckx.be>
(Merged from https://github.com/openssl/openssl/pull/12870)

3 years agogenerate_cookie_callback: free temporary memory on an error path
Pauli [Sun, 13 Sep 2020 21:47:26 +0000 (07:47 +1000)]
generate_cookie_callback: free temporary memory on an error path

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Kurt Roeckx <kurt@roeckx.be>
(Merged from https://github.com/openssl/openssl/pull/12870)

3 years agoPKCS5 PBE: free allocations on unlikely / impossible failure path
Pauli [Sun, 13 Sep 2020 21:44:45 +0000 (07:44 +1000)]
PKCS5 PBE: free allocations on unlikely / impossible failure path

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Kurt Roeckx <kurt@roeckx.be>
(Merged from https://github.com/openssl/openssl/pull/12870)

3 years agoPKCS#8: free data on error path in newpass_bag
Pauli [Sun, 13 Sep 2020 21:40:58 +0000 (07:40 +1000)]
PKCS#8: free data on error path in newpass_bag

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Kurt Roeckx <kurt@roeckx.be>
(Merged from https://github.com/openssl/openssl/pull/12870)

3 years agoDTLS: free allocated memory on error paths
Pauli [Sun, 13 Sep 2020 21:36:02 +0000 (07:36 +1000)]
DTLS: free allocated memory on error paths

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Kurt Roeckx <kurt@roeckx.be>
(Merged from https://github.com/openssl/openssl/pull/12870)

3 years agoprov/drbg: cleanup some RAND_DRBG leftovers
Dr. Matthias St. Pierre [Sat, 12 Sep 2020 22:47:28 +0000 (00:47 +0200)]
prov/drbg: cleanup some RAND_DRBG leftovers

These are leftovers from the RAND_DRBG removal (#12509).

Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12866)

3 years agoprov/drbg: fix misspelling of '#ifdef FIPS_MODULE'
Dr. Matthias St. Pierre [Sat, 12 Sep 2020 22:17:35 +0000 (00:17 +0200)]
prov/drbg: fix misspelling of '#ifdef FIPS_MODULE'

Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12866)

3 years agoEVP: Centralise fetching error reporting
Richard Levitte [Sat, 29 Aug 2020 07:46:24 +0000 (09:46 +0200)]
EVP: Centralise fetching error reporting

Instead of sometimes, and sometimes not reporting an error in the
caller of EVP_XXX_fetch(), where the error may or may not be very
accurate, it's now centralised to the inner EVP fetch functionality.
It's made in such a way that it can determine if an error occured
because the algorithm in question is not there, or if something else
went wrong, and will report EVP_R_UNSUPPORTED_ALGORITHM for the
former, and EVP_R_FETCH_FAILED for the latter.

This helps our own test/evp_test.c when it tries to figure out why an
EVP_PKEY it tried to load failed to do so.

Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12857)

3 years agoIgnore unused return values from some sk_*() macros
Matt Caswell [Thu, 10 Sep 2020 15:34:17 +0000 (16:34 +0100)]
Ignore unused return values from some sk_*() macros

Some compilers are very picky about unused return values.

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12781)

3 years agoDon't complain about stack related macros
Matt Caswell [Fri, 4 Sep 2020 16:00:58 +0000 (17:00 +0100)]
Don't complain about stack related macros

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12781)

3 years agoMake 'make errors' work again
Richard Levitte [Fri, 4 Sep 2020 06:53:11 +0000 (08:53 +0200)]
Make 'make errors' work again

util/mkerr.pl detects if a header is now a '.in' template, and adjusts
the header file it reads accordingly.

Reviewed-by: Paul Dale <paul.dale@oracle.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/12781)

3 years agoMake 'make ordinals' work again
Richard Levitte [Fri, 4 Sep 2020 06:51:37 +0000 (08:51 +0200)]
Make 'make ordinals' work again

'make ordinals' assumed that all headers reside in the source tree,
which is no longer true, now that we generate a number of them.  This
needed some refactoring.

Reviewed-by: Paul Dale <paul.dale@oracle.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/12781)

3 years agoutil/mknum.pl: Fix file opening
Richard Levitte [Fri, 4 Sep 2020 06:48:13 +0000 (08:48 +0200)]
util/mknum.pl: Fix file opening

'or' has lower priority than '||' in perl, which affects evaluation order.

Reviewed-by: Paul Dale <paul.dale@oracle.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/12781)

3 years agoStreamline the safestack generated code
Matt Caswell [Thu, 3 Sep 2020 16:35:41 +0000 (17:35 +0100)]
Streamline the safestack generated code

The safestack code generation was generating a little too much. Some of
it could be done with a normal macro.

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12781)

3 years agoAdd a CHANGES entry for the safestack updates
Matt Caswell [Thu, 3 Sep 2020 16:22:30 +0000 (17:22 +0100)]
Add a CHANGES entry for the safestack updates

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12781)

3 years agoRemove some safestack things that are no longer needed
Matt Caswell [Thu, 3 Sep 2020 16:09:18 +0000 (17:09 +0100)]
Remove some safestack things that are no longer needed

... and add SKM_DEFINE_STACK_OF_INTERNAL

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12781)

3 years agoFix safestack issues in ui.h
Matt Caswell [Thu, 3 Sep 2020 15:39:36 +0000 (16:39 +0100)]
Fix safestack issues in ui.h

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12781)

3 years agoFix safestack issues in pkcs12.h
Matt Caswell [Thu, 3 Sep 2020 15:35:20 +0000 (16:35 +0100)]
Fix safestack issues in pkcs12.h

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12781)

3 years agoFix safestack issues in crypto.h
Matt Caswell [Thu, 3 Sep 2020 15:24:47 +0000 (16:24 +0100)]
Fix safestack issues in crypto.h

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12781)

3 years agoFix safestack issues in conf.h
Matt Caswell [Thu, 3 Sep 2020 15:14:28 +0000 (16:14 +0100)]
Fix safestack issues in conf.h

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12781)

3 years agoFix safestack issues in bio.h
Matt Caswell [Thu, 3 Sep 2020 15:06:16 +0000 (16:06 +0100)]
Fix safestack issues in bio.h

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12781)

3 years agoFix safestack issues in ess.h
Matt Caswell [Thu, 3 Sep 2020 15:01:51 +0000 (16:01 +0100)]
Fix safestack issues in ess.h

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12781)

3 years agoFix safestack issues in asn1t.h
Matt Caswell [Thu, 3 Sep 2020 14:56:05 +0000 (15:56 +0100)]
Fix safestack issues in asn1t.h

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12781)

3 years agoFix safestack issues in ct.h
Matt Caswell [Thu, 3 Sep 2020 14:50:09 +0000 (15:50 +0100)]
Fix safestack issues in ct.h

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12781)

3 years agoFix safestack issues in crmf.h
Matt Caswell [Thu, 3 Sep 2020 14:45:01 +0000 (15:45 +0100)]
Fix safestack issues in crmf.h

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12781)

3 years agoFix safestack issues in x509_vfy.h
Matt Caswell [Thu, 3 Sep 2020 14:37:45 +0000 (15:37 +0100)]
Fix safestack issues in x509_vfy.h

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12781)

3 years agoFix safestack issues in srp.h
Matt Caswell [Thu, 3 Sep 2020 14:31:44 +0000 (15:31 +0100)]
Fix safestack issues in srp.h

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12781)

3 years agoFix safestack issues in pkcs7.h
Matt Caswell [Thu, 3 Sep 2020 14:20:03 +0000 (15:20 +0100)]
Fix safestack issues in pkcs7.h

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12781)

3 years agoFix safestack issues in ocsp.h
Matt Caswell [Thu, 3 Sep 2020 14:05:30 +0000 (15:05 +0100)]
Fix safestack issues in ocsp.h

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12781)

3 years agoFix safestack issues in cms.h
Matt Caswell [Thu, 3 Sep 2020 13:55:08 +0000 (14:55 +0100)]
Fix safestack issues in cms.h

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12781)

3 years agoFix safestack issues in cmp.h
Matt Caswell [Thu, 3 Sep 2020 13:45:54 +0000 (14:45 +0100)]
Fix safestack issues in cmp.h

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12781)

3 years agoFix safestack issues in asn1.h
Matt Caswell [Thu, 3 Sep 2020 13:35:41 +0000 (14:35 +0100)]
Fix safestack issues in asn1.h

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12781)

3 years agoFix stacks of OPENSSL_STRING, OPENSSL_CSTRING and OPENSSL_BLOCK
Matt Caswell [Thu, 3 Sep 2020 13:10:41 +0000 (14:10 +0100)]
Fix stacks of OPENSSL_STRING, OPENSSL_CSTRING and OPENSSL_BLOCK

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12781)

3 years agoFix safestack issues in x509v3.h
Matt Caswell [Thu, 3 Sep 2020 11:46:08 +0000 (12:46 +0100)]
Fix safestack issues in x509v3.h

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12781)

3 years agoFix safestack issues in x509.h
Matt Caswell [Thu, 3 Sep 2020 09:23:44 +0000 (10:23 +0100)]
Fix safestack issues in x509.h

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12781)

3 years agoFix safestack issues in ssl.h
Matt Caswell [Wed, 2 Sep 2020 15:15:06 +0000 (16:15 +0100)]
Fix safestack issues in ssl.h

We fix 3 problems with safestack:
- Including an openssl header file without linking against libcrypto
  can cause compilation failures (even if the app does not otherwise need
  to link against libcrypto). See issue #8102
- Recent changes means that applications in no-deprecated builds will need
  to include additional macro calls in the source code for all stacks that
  they need to use - which is an API break. This changes avoids that
  necessity.
- It is not possible to write code using stacks that works in both a
  no-deprecated and a normal build of OpenSSL. See issue #12707.

Fixes #12707
Contains a partial fix for #8102. A similar PR will be needed for hash to
fully fix.

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12781)

3 years agoNonStop port updates for 3.0.0.
Randall S. Becker [Sun, 6 Sep 2020 21:37:47 +0000 (16:37 -0500)]
NonStop port updates for 3.0.0.

HPE NonStop Port Changes for 3.0.0  Includes unthreaded, PUT, and SPT for OSS.

The port changes include wrapping where necessary for FLOSS and
appropriate configuration changes to support that. Two tests
are excluded as being inappropriate for the platform.

The changes are:
* Added /usr/local/include to nonstop-nsx_spt_floss to load floss.h
* Added SPT Floss variant for NonStop
* Wrapped FLOSS definitions in OPENSSL_TANDEM_FLOSS to allow selective enablement.
* SPT build configuration for NonStop
* Skip tests not relevant for NonStop
* PUT configuration changes required for NonStop platforms
* Configurations/50-nonstop.conf: updates for TNS/X platform.
* FLOSS instrumentation for HPE NonStop TNS/X and TNS/E platforms.
* Configurations/50-nonstop.conf: modifications for non-PUT TNS/E platform b
* Fix use of DELAY in ssltestlib.c for HPNS.
* Fixed commit merge issues and added floss to http_server.c

CLA: Permission is granted by the author to the OpenSSL team to use these modifications.
Fixes #5087.

Signed-off-by: Randall S. Becker <rsbecker@nexbridge.com>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/12800)

3 years agoTEST: Add a test of EC key generation with encoding spec
Richard Levitte [Fri, 11 Sep 2020 06:36:54 +0000 (08:36 +0200)]
TEST: Add a test of EC key generation with encoding spec

The primary function of this test is to exercise
EVP_PKEY_CTX_set_ec_param_enc().

Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12853)

3 years agoEVP: Add the internal convenience function evp_keymgmt_util_export()
Richard Levitte [Fri, 11 Sep 2020 06:35:26 +0000 (08:35 +0200)]
EVP: Add the internal convenience function evp_keymgmt_util_export()

This is purely to allow exporting without having to repeatedly specify
the keymgmt and keydata from the EVP_PKEY.

Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12853)

3 years agoFix EVP_PKEY_CTX_ctrl() documentation
Shane Lontis [Fri, 11 Sep 2020 04:38:22 +0000 (14:38 +1000)]
Fix EVP_PKEY_CTX_ctrl() documentation

Remove references to 'macro' from EVP_PKEY_CTX_ctrl() as they are all
functions now, and update the HISTORY section.

Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com>
Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/12853)

3 years agoUpdate doc for EVP_PKEY_CTX_set_ec_param_enc()
Shane Lontis [Fri, 11 Sep 2020 00:53:30 +0000 (10:53 +1000)]
Update doc for EVP_PKEY_CTX_set_ec_param_enc()

Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com>
Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/12853)

3 years agoEC: Reimplement EVP_PKEY_CTX_set_ec_param_enc() to support providers
Richard Levitte [Thu, 10 Sep 2020 20:06:46 +0000 (22:06 +0200)]
EC: Reimplement EVP_PKEY_CTX_set_ec_param_enc() to support providers

Fixes #12852

Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12853)

3 years agodev/release.sh: Rework to be smoother
Richard Levitte [Sun, 9 Aug 2020 12:22:09 +0000 (14:22 +0200)]
dev/release.sh: Rework to be smoother

It now creates all the necessary feature branches for github in your
repository, making the cloned sub-directory unnecessary for post-release
purposes.

Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/12614)

3 years agokeygen: add FIPS error state management to conditional self tests
Shane Lontis [Thu, 10 Sep 2020 04:01:30 +0000 (14:01 +1000)]
keygen: add FIPS error state management to conditional self tests

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12801)

3 years agoCRNGT: enter FIPS error state if the test fails
Pauli [Wed, 9 Sep 2020 21:09:16 +0000 (07:09 +1000)]
CRNGT: enter FIPS error state if the test fails

Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/12801)

3 years agoFIPS: error mode is set from failed self tests and produced a limited number of error...
Pauli [Wed, 9 Sep 2020 21:08:57 +0000 (07:08 +1000)]
FIPS: error mode is set from failed self tests and produced a limited number of errors when algorithm accesses are attempted

Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/12801)

3 years agociphers: add FIPS error state handling
Pauli [Tue, 8 Sep 2020 02:56:34 +0000 (12:56 +1000)]
ciphers: add FIPS error state handling

The functions that check for the provider being runnable are: new, init, final
and dupctx.

Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/12801)

3 years agokeymgmt: add FIPS error state handling
Pauli [Mon, 7 Sep 2020 22:23:46 +0000 (08:23 +1000)]
keymgmt: add FIPS error state handling

The functions that check for the provider being runnable are: new, gen_init,
gen, gen_set_template, load, has, match, validate, import and export.

Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/12801)

3 years agosignature: add FIPS error state handling
Pauli [Mon, 7 Sep 2020 03:44:17 +0000 (13:44 +1000)]
signature: add FIPS error state handling

The functions that check for the provider being runnable are: newctx, dupctx,
sign init, sign, verify init, verify, verify recover init, verify recover,
digest sign init, digest sign final, digest verify init and digest verify final.

Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/12801)

3 years agoexchange: add FIPS error state handling
Pauli [Mon, 7 Sep 2020 03:26:20 +0000 (13:26 +1000)]
exchange: add FIPS error state handling

The functions that check for the provider being runnable are: newctx, dupctx,
init, derive and set peer.

Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/12801)

3 years agokdf: add FIPS error state handling
Pauli [Mon, 7 Sep 2020 03:13:10 +0000 (13:13 +1000)]
kdf: add FIPS error state handling

Check for provider being disabled on new and derive.

Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/12801)

3 years agomac: add FIPS error state handling
Pauli [Mon, 7 Sep 2020 03:03:07 +0000 (13:03 +1000)]
mac: add FIPS error state handling

Check for provider being runnable in new, dup, init and final calls.

Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/12801)

3 years agorand: add FIPS error state handling
Pauli [Mon, 7 Sep 2020 02:50:57 +0000 (12:50 +1000)]
rand: add FIPS error state handling

Check for provider being runnable in instantiate, reseed, generate and new calls.

Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/12801)

3 years agoasymciphers: add FIPS error state handling
Pauli [Mon, 7 Sep 2020 02:44:59 +0000 (12:44 +1000)]
asymciphers: add FIPS error state handling

Check for provider being runnable in newctx, init, encrypt and decrypt.

Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/12801)

3 years agodigests: add FIPS error state handling
Pauli [Mon, 7 Sep 2020 02:41:00 +0000 (12:41 +1000)]
digests: add FIPS error state handling

Check for providering being runnable in init, final, newctx and dupctx.

Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/12801)

3 years agoFIPS: rename the status call to is_running.
Pauli [Mon, 7 Sep 2020 01:58:48 +0000 (11:58 +1000)]
FIPS: rename the status call to is_running.

Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/12801)

3 years agoprovider: add an 'is_running' call to all providers.
Pauli [Mon, 7 Sep 2020 01:58:03 +0000 (11:58 +1000)]
provider: add an 'is_running' call to all providers.

It can be accessed (read only) via the status parameter.

Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/12801)

3 years agoFix coverity issue: CID 1466479 - Resource leak in apps/pkcs12.c
Shane Lontis [Thu, 10 Sep 2020 08:45:39 +0000 (18:45 +1000)]
Fix coverity issue: CID 1466479 - Resource leak in apps/pkcs12.c

Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/12847)

3 years agoFix coverity issue: CID 1466482 - Resource leak in OSSL_STORE_SEARCH_by_key_fingerprint()
Shane Lontis [Thu, 10 Sep 2020 08:21:46 +0000 (18:21 +1000)]
Fix coverity issue: CID 1466482 - Resource leak in OSSL_STORE_SEARCH_by_key_fingerprint()

Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/12847)

3 years agoFix coverity issue: CID 1466483 - Improper use of Negative value in dh_ctrl.c
Shane Lontis [Thu, 10 Sep 2020 08:19:13 +0000 (18:19 +1000)]
Fix coverity issue: CID 1466483 - Improper use of Negative value in dh_ctrl.c

Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/12847)