79f4417e | 20-Jun-2020 |
Benjamin Kaduk |
Deprecate and replace EVP_CIPHER_CTX_iv()/etc. The EVP_CIPHER_CTX_iv() family of functions are incompatible with the libcrypto/provider separation, since the implied API contract (th
Deprecate and replace EVP_CIPHER_CTX_iv()/etc. The EVP_CIPHER_CTX_iv() family of functions are incompatible with the libcrypto/provider separation, since the implied API contract (they are undocumented) involves a pointer into the active cipher context structure. However, the active IV data in a provider-side context need not even be in the same address space as libcrypto, so a replacement API is needed. The existing functions for accessing the (even the "original") IV had remained undocumented for quite some time, presumably due to unease about exposing the internals of the cipher state in such a manner. Provide more maintainable new APIs for accessing the initial ("oiv") and current-state ("iv") IV data, that copy the value into a caller-provided array, eliminating the need to provide a pointer into the internal cipher context, which accordingly no longer provides the ability to write to the internal cipher state. Unfortunately, in order to maintain API compatibility with OpenSSL 1.1.1, the old functionality is still available, but is marked as deprecated for future removal. This would entail removing the "octet pointer" parameter access, leaving only the "octet string" parameter type. Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/12233)
show more ...
|
84890268 | 19-Jun-2020 |
Benjamin Kaduk |
Support cipher provider "iv state" Some modes (e.g., CBC and OFB) update the effective IV with each block-cipher invocation, making the "IV" stored in the (historically) EVP_CIPHER_C
Support cipher provider "iv state" Some modes (e.g., CBC and OFB) update the effective IV with each block-cipher invocation, making the "IV" stored in the (historically) EVP_CIPHER_CTX or (current) PROV_CIPHER_CTX distinct from the initial IV passed in at cipher initialization time. The latter is stored in the "oiv" (original IV) field, and has historically been accessible via the EVP_CIPHER_CTX_original_iv() API. The "effective IV" has also historically been accessible, via both EVP_CIPHER_CTX_iv() and EVP_CIPHER_CTX_iv_noconst(), the latter of which allows for *write* access to the internal cipher state. This is particularly problematic given that provider-internal cipher state need not, in general, even be accessible from the same address space as libcrypto, so these APIs are not sustainable in the long term. However, it still remains necessary to provide access to the contents of the "IV state" (e.g., when serializing cipher state for in-kernel TLS); a subsequent reinitialization of a cipher context using the "IV state" as the input IV will be able to resume processing of data in a compatible manner. This problem was introduced in commit 089cb623be76b88a1eea6fcd135101037661bbc3, which effectively caused all IV queries to return the "original IV", removing access to the current IV state of the cipher. These functions for accessing the (even the "original") IV had remained undocumented for quite some time, presumably due to unease about exposing the internals of the cipher state in such a manner. Note that this also as a side effect "fixes" some "bugs" where things had been referring to the 'iv' field that should have been using the 'oiv' field. It also fixes the EVP_CTRL_GET_IV cipher control, which was clearly intended to expose the non-original IV, for use exporting the cipher state into the kernel for kTLS. Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/12233)
show more ...
|
31d2daec | 04-Aug-2020 |
Shane Lontis |
Add DHX serialization Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/12575) |
116d2510 | 04-Aug-2020 |
Shane Lontis |
Add dh_kdf support to provider Similiar to ecdh this supports the legacy kdf inside the provider dh key exchange. The supporting EVP_PKEY_CTX macros have been changed into mehtods and mo
Add dh_kdf support to provider Similiar to ecdh this supports the legacy kdf inside the provider dh key exchange. The supporting EVP_PKEY_CTX macros have been changed into mehtods and moved into dh_ctrl.c New kdfs such as SSKDF should be done as a seperate pass after doing the derive. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/12575)
show more ...
|
627c2203 | 04-Aug-2020 |
Shane Lontis |
Add DHX support to keymanager Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/12575) |
36b778fb | 02-Jul-2020 |
Dr. Matthias St. Pierre |
README.md: remove incorrect link to openssl.github.io The link to the OpenSSL Project Pages <openssl.github.io> actually points to an unfinished draft <mspncp.github.io>. The or
README.md: remove incorrect link to openssl.github.io The link to the OpenSSL Project Pages <openssl.github.io> actually points to an unfinished draft <mspncp.github.io>. The original intention of this pet project of mine was to have a website dedicated to describing the OpenSSL workflow on GitHub and to answer frequently asked questions related to pull requests and the review process. The progress on that project has stalled and I'm not so sure anymore whether it is good idea to have yet another project website. In particular since the OpenSSL Wiki has seen some revival and increased activity caused by the upcoming OpenSSL 3.0 release. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/12361)
show more ...
|
0799b79a | 02-Jul-2020 |
Dr. Matthias St. Pierre |
README.md: replace incorrect access token for the AppVeyor badge The AppVeyor badge was still showing the build state for the mspncp/openssl fork. This commit fixes a forgotten
README.md: replace incorrect access token for the AppVeyor badge The AppVeyor badge was still showing the build state for the mspncp/openssl fork. This commit fixes a forgotten todo from #10545. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/12361)
show more ...
|
33b4f731 | 07-Aug-2020 |
Pauli |
conf: add an error if the openssl_conf section isn't found. Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com> (Merged from https://github.com/openssl/openssl/pull/12602) |
711ae5d3 | 07-Aug-2020 |
Matt Caswell |
Remove a TODO from evp_test Now that the EVP_PKEY KDF bridge is based on provider code a TODO item can be removed from evp_test. Reviewed-by: Paul Dale <paul.dale@oracle.com>
Remove a TODO from evp_test Now that the EVP_PKEY KDF bridge is based on provider code a TODO item can be removed from evp_test. Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/12573)
show more ...
|
cd0a4998 | 07-Aug-2020 |
Matt Caswell |
Extend the EVP_PKEY KDF to KDF provider bridge to the FIPS provider Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/12573) |
9d1ae03c | 04-Aug-2020 |
Matt Caswell |
Minimise the size of the macros in kdf_exch.c Use proper functions with just a macro wrapper around them to minimise the amount of code inside the macros. We also update the "settable"
Minimise the size of the macros in kdf_exch.c Use proper functions with just a macro wrapper around them to minimise the amount of code inside the macros. We also update the "settable" functions now that they take a "provctx" parameter. Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/12573)
show more ...
|
74fc579a | 04-Aug-2020 |
Matt Caswell |
Update KDF documentation Following the previous commits where we moved the KDF bridge into provider side code, we need to update the documentation accordingly. Reviewed-by: Paul
Update KDF documentation Following the previous commits where we moved the KDF bridge into provider side code, we need to update the documentation accordingly. Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/12573)
show more ...
|
1704752b | 31-Jul-2020 |
Matt Caswell |
Delete old KDF bridge EVP_PKEY_METHODS The KDF bridge is now done provider side so the old EVP_PKEY_METHODS for this are no longer required. Reviewed-by: Paul Dale <paul.dale@or
Delete old KDF bridge EVP_PKEY_METHODS The KDF bridge is now done provider side so the old EVP_PKEY_METHODS for this are no longer required. Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/12573)
show more ...
|
194de849 | 31-Jul-2020 |
Matt Caswell |
Extend the EVP_PKEY KDF to KDF provider bridge to also support Scrypt Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/12573) |
05d2f72e | 20-Jul-2020 |
Matt Caswell |
Extend the EVP_PKEY KDF to KDF provider bridge to also support HKDF Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/12573) |
ac2d58c7 | 03-Jul-2020 |
Matt Caswell |
Implement a EVP_PKEY KDF to KDF provider bridge Some KDF implementations were available before the current EVP_KDF API. They were used via EVP_PKEY_derive. There exists a bridge between
Implement a EVP_PKEY KDF to KDF provider bridge Some KDF implementations were available before the current EVP_KDF API. They were used via EVP_PKEY_derive. There exists a bridge between the old API and the EVP_KDF API however this bridge itself uses a legacy EVP_PKEY_METHOD. This commit implements a provider side bridge without having to use any legacy code. Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/12573)
show more ...
|
23f04372 | 05-Aug-2020 |
C.W. Betts |
Initial Apple Silicon support. Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/12591) |
c23add36 | 09-Aug-2020 |
Shane Lontis |
Fix memory leak in drbgtest Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/12613) |
04cb5ec0 | 09-Aug-2020 |
Shane Lontis |
Add 'on demand self test' and status test to providers The default and legacy providers currently return 1 for status and self test checks. Added test to show the 3 different stages the
Add 'on demand self test' and status test to providers The default and legacy providers currently return 1 for status and self test checks. Added test to show the 3 different stages the self test can be run (for installation, loading and on demand). For the fips provider: - If the on demand self test fails, then any subsequent fetches should also fail. To implement this the cached algorithms are flushed on failure. - getting the self test callback in the fips provider is a bit complicated since the callback hangs off the core libctx (as it is set by the application) not the actual fips library context. Also the callback can be set at any time not just during the OSSL_provider_init() so it is calculated each time before doing any self test. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11752)
show more ...
|
dda4e259 | 06-Aug-2020 |
Shane Lontis |
Add some of the missing CMS API documentation Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11884) |
28ba6427 | 26-Jul-2020 |
Shane Lontis |
Change CMS tests to use a library context. A DHX related test has been commented out and TODO(3) added, until DHX is added correctly to a provider. Added generated files. Review
Change CMS tests to use a library context. A DHX related test has been commented out and TODO(3) added, until DHX is added correctly to a provider. Added generated files. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11884)
show more ...
|
0ab18e79 | 26-Jul-2020 |
Shane Lontis |
Add EVP signature with libctx methods. -Added EVP_SignFinal_with_libctx() and EVP_VerifyFinal_with_libctx() -Renamed EVP_DigestSignInit_ex() and EVP_DigestVerifyInit_with_libctx() to
Add EVP signature with libctx methods. -Added EVP_SignFinal_with_libctx() and EVP_VerifyFinal_with_libctx() -Renamed EVP_DigestSignInit_ex() and EVP_DigestVerifyInit_with_libctx() to EVP_DigestSignInit_with_libctx() and EVP_DigestVerifyInit_with_libctx() Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11884)
show more ...
|
11eef7e7 | 26-Jul-2020 |
Shane Lontis |
Use libctx for EVP_CIPHER_CTX_rand_key() method. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11884) |
83156454 | 26-Jul-2020 |
Shane Lontis |
Add libctx to ecdh_KDF_X9_63. Code is now correctly included in the fips provider. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/p
Add libctx to ecdh_KDF_X9_63. Code is now correctly included in the fips provider. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11884)
show more ...
|
57e84206 | 25-Jul-2020 |
Shane Lontis |
Fix EVP_PKEY_CTX_get_rsa_oaep_md() & EVP_PKEY_CTX_get_rsa_mgf1_md() so they use a libctx to retrieve the digest Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.c
Fix EVP_PKEY_CTX_get_rsa_oaep_md() & EVP_PKEY_CTX_get_rsa_mgf1_md() so they use a libctx to retrieve the digest Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11884)
show more ...
|