a5ce329e | 10-Mar-2020 |
Richard Levitte |
EVP: Don't call digest_custom() quite so early A huge problem with calling digest_custom() already in the initialization of DigestSign, DigestVerify etc, is that it force all callers
EVP: Don't call digest_custom() quite so early A huge problem with calling digest_custom() already in the initialization of DigestSign, DigestVerify etc, is that it force all callers to know that certain controls must be performed before Init and the rest after. This has lead to quite interesting hacks in our own openssl app, where the SM2 ID had to get special treatment instead of just being another sign option or verification option among others. This change moves the call of digest_custom() to the Update and Final functions, to be done exactly once, subject to a flag that's set in the Init function. Seeing to the process of data, through these operations, this makes no difference at all. Seeing to making it possible to perform all controls after the Init call, this makes a huge difference. Fixes #11293 Reviewed-by: Paul Yang <kaishen.yy@antfin.com> (Merged from https://github.com/openssl/openssl/pull/11302)
show more ...
|
edd3b7a3 | 15-Mar-2020 |
Shane Lontis |
Add ECDSA to providers Added ECDSA support for OSSL_SIGNATURE_PARAM_ALGORITHM_ID Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/opens
Add ECDSA to providers Added ECDSA support for OSSL_SIGNATURE_PARAM_ALGORITHM_ID Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10968)
show more ...
|
2decdad3 | 14-Mar-2020 |
Richard Levitte |
Fix legacy_ctrl_to_param() to pay better attention to keytype The keytype number will only be -1 when control commands are used for more than one key type. Sometimes, they share the sam
Fix legacy_ctrl_to_param() to pay better attention to keytype The keytype number will only be -1 when control commands are used for more than one key type. Sometimes, they share the same underlying structure, and sometimes not. Some of the RSA control commands that are using only with the keytype EVP_PKEY_RSA we misplaced to be handled with the keytype -1. Reviewed-by: Shane Lontis <shane.lontis@oracle.com> (Merged from https://github.com/openssl/openssl/pull/11329)
show more ...
|
d16d0b71 | 15-Mar-2020 |
Shane Lontis |
Add RSA sign to the fips provider Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11199) |
629b507e | 08-Mar-2020 |
Richard Levitte |
DOCS: Fix the description of OSSL_PARAM_allocate_from_text() Fixes #11276 Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/
DOCS: Fix the description of OSSL_PARAM_allocate_from_text() Fixes #11276 Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/11279)
show more ...
|
c339d3e3 | 12-Mar-2020 |
Pauli |
DH: remove DH parameter files that aren't used or installed. Old files from the SSLeay 0.8.1b import that aren't used and don't seem to be installed. Reviewed-by: Richard Levitt
DH: remove DH parameter files that aren't used or installed. Old files from the SSLeay 0.8.1b import that aren't used and don't seem to be installed. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11314)
show more ...
|
a8c1e37d | 12-Mar-2020 |
Pauli |
Remove reference to old DH files. The files are incorrect for TLS. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11314) |
ddff37db | 12-Mar-2020 |
Pauli |
Remove old incorrect DH parameter files Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11314) |
bee68c47 | 12-Mar-2020 |
Pauli |
dh: document what the PEM files in apps actually contain. They were claimed to be the SKIP primes but they are really two of the MODP Diffie-Hellman groups for IKE. Reviewed-by:
dh: document what the PEM files in apps actually contain. They were claimed to be the SKIP primes but they are really two of the MODP Diffie-Hellman groups for IKE. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11314)
show more ...
|
ca7f7b95 | 12-Mar-2020 |
Richard Levitte |
Fix RSA structure The first field was called 'pad', but not for the reason one might think. It was really a padding int that was always zero, and was placed first on purpose. This
Fix RSA structure The first field was called 'pad', but not for the reason one might think. It was really a padding int that was always zero, and was placed first on purpose. This is to pick up programming errors where an RSA pointer was passed when an EVP_PKEY pointer should have been, an makes it look like an EVP_PKEY structure with type EVP_PKEY_NONE, which effectively avoids any further processing (and unintended corruption of the RSA structure). This is only relevant for legacy structure and EVP_PKEY_METHODs. With providers, EVP_PKEYs aren't passed to the backend anyway. Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Shane Lontis <shane.lontis@oracle.com> (Merged from https://github.com/openssl/openssl/pull/11315)
show more ...
|
ca50d69c | 03-Mar-2020 |
Richard Levitte |
Configurations: Fix "android" configuration target This target gave '-pie' as a C flag when it should be a linker flag. Additionally, we add '-fPIE' as C flag for binaries. Fixe
Configurations: Fix "android" configuration target This target gave '-pie' as a C flag when it should be a linker flag. Additionally, we add '-fPIE' as C flag for binaries. Fixes #11237 Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11238)
show more ...
|
99ffd5ad | 29-Feb-2020 |
Richard Levitte |
Andoid cross compile: change ANDROID_NDK_HOME to ANDROID_NDK_ROOT According to forum discussions with NDK developers, ANDROID_NDK_HOME is used for something else. Fixes #11205
Andoid cross compile: change ANDROID_NDK_HOME to ANDROID_NDK_ROOT According to forum discussions with NDK developers, ANDROID_NDK_HOME is used for something else. Fixes #11205 Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11206)
show more ...
|
3cd14e5e | 06-Mar-2020 |
Benjamin Kaduk |
Add test that changes ciphers on CCS The TLS (pre-1.3) ChangeCipherState message is usually used to indicate the switch from the unencrypted to encrypted part of the handshake. Howev
Add test that changes ciphers on CCS The TLS (pre-1.3) ChangeCipherState message is usually used to indicate the switch from the unencrypted to encrypted part of the handshake. However, it can also be used in cases where there is an existing session (such as during resumption handshakes) or when changing from one cipher to a different one (such as during renegotiation when the cipher list offered by the client has changed). This test serves to exercise such situations, allowing us to detect whether session objects are being modified in cases when they must remain immutable for thread-safety purposes. Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10943)
show more ...
|
2e3ec2e1 | 24-Jan-2020 |
Benjamin Kaduk |
Code to thread-safety in ChangeCipherState The server-side ChangeCipherState processing stores the new cipher in the SSL_SESSION object, so that the new state can be used if this ses
Code to thread-safety in ChangeCipherState The server-side ChangeCipherState processing stores the new cipher in the SSL_SESSION object, so that the new state can be used if this session gets resumed. However, writing to the session is only thread-safe for initial handshakes, as at other times the session object may be in a shared cache and in use by another thread at the same time. Reflect this invariant in the code by only writing to s->session->cipher when it is currently NULL (we do not cache sessions with no cipher). The code prior to this change would never actually change the (non-NULL) cipher value in a session object, since our server enforces that (pre-TLS-1.3) resumptions use the exact same cipher as the initial connection, and non-abbreviated renegotiations have produced a new session object before we get to this point. Regardless, include logic to detect such a condition and abort the handshake if it occurs, to avoid any risk of inadvertently using the wrong cipher on a connection. Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10943)
show more ...
|
d74014c4 | 24-Jan-2020 |
Benjamin Kaduk |
Don't write to the session when computing TLS 1.3 keys TLS 1.3 maintains a separate keys chedule in the SSL object, but was writing to the 'master_key_length' field in the SSL_SESSION
Don't write to the session when computing TLS 1.3 keys TLS 1.3 maintains a separate keys chedule in the SSL object, but was writing to the 'master_key_length' field in the SSL_SESSION when generating the per-SSL master_secret. (The generate_master_secret SSL3_ENC_METHOD function needs an output variable for the master secret length, but the TLS 1.3 implementation just uses the output size of the handshake hash function to get the lengths, so the only natural-looking thing to use as the output length was the field in the session. This would potentially involve writing to a SSL_SESSION object that was in the cache (i.e., resumed) and shared with other threads, though. The thread-safety impact should be minimal, since TLS 1.3 requires the hash from the original handshake to be associated with the resumption PSK and used for the subsequent connection. This means that (in the resumption case) the value being written would be the same value that was previously there, so the only risk would be on architectures that can produce torn writes/reads for aligned size_t values. Since the value is essentially ignored anyway, just provide the address of a local dummy variable to generate_master_secret() instead. Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10943)
show more ...
|
1866a0d3 | 24-Jan-2020 |
Benjamin Kaduk |
Fix whitespace nit in ssl_generate_master_secret() Use a space after a comma. Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/p
Fix whitespace nit in ssl_generate_master_secret() Use a space after a comma. Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10943)
show more ...
|
fe41c06e | 17-Jan-2020 |
Benjamin Kaduk |
doc: fix spelling of TYPE_get_ex_new_index The generated macros are TYPE_get_ex_new_index() (to match CRYPTO_get_ex_new_index()), not TYPE_get_new_ex_index(), even though the latter
doc: fix spelling of TYPE_get_ex_new_index The generated macros are TYPE_get_ex_new_index() (to match CRYPTO_get_ex_new_index()), not TYPE_get_new_ex_index(), even though the latter spelling seems more natural. Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10943)
show more ...
|
06f87683 | 16-Jan-2020 |
Benjamin Kaduk |
Additional updates to SSL_CTX_sess_set_get_cb.pod Generally modernize the language. Refer to TLS instead of SSL/TLS, and try to have more consistent usage of commas and that/whi
Additional updates to SSL_CTX_sess_set_get_cb.pod Generally modernize the language. Refer to TLS instead of SSL/TLS, and try to have more consistent usage of commas and that/which. Reword some descriptions to avoid implying that a list of potential reasons for behavior is an exhaustive list. Clarify how get_session_cb() is only called on servers (i.e., in general, and that it's given the session ID proposed by the client). Clarify the semantics of the get_cb()'s "copy" argument. The behavior seems to have changed in commit 8876bc054802b043a3ec95554b6c5873291770be, though the behavior prior to that commit was not to leave the reference-count unchanged if *copy was not written to -- instead, libssl seemed to assume that the callback already had incremented the reference count. Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10943)
show more ...
|
c08dea30 | 10-Mar-2020 |
Jakub Jelen |
doc: Update the reference from draft to RFC CLA: trivial Signed-off-by: Jakub Jelen <jjelen@redhat.com> Reviewed-by: Kurt Roeckx <kurt@roeckx.be> Reviewed-by: Richard L
doc: Update the reference from draft to RFC CLA: trivial Signed-off-by: Jakub Jelen <jjelen@redhat.com> Reviewed-by: Kurt Roeckx <kurt@roeckx.be> Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/11299)
show more ...
|
98bdae6a | 11-Mar-2020 |
ning |
pkcs12 demo: output correct file names on error. CLA: Trivial Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from h
pkcs12 demo: output correct file names on error. CLA: Trivial Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/11304)
show more ...
|
f11a74ef | 18-Feb-2020 |
Richard Levitte |
test/recipes/30-test_evp_data/evppkey.txt: Change an expected KeyGen result Reviewed-by: Shane Lontis <shane.lontis@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10289) |
88af1ebb | 18-Feb-2020 |
Richard Levitte |
test/evp_test.c: fix keygen_test_run() There was a misunderstanding what it should return. It should return 0 on internal error, but 1 even if the thing it tests fails (the error is
test/evp_test.c: fix keygen_test_run() There was a misunderstanding what it should return. It should return 0 on internal error, but 1 even if the thing it tests fails (the error is determined by |t->err|). Reviewed-by: Shane Lontis <shane.lontis@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10289)
show more ...
|
2972af10 | 27-Oct-2019 |
Richard Levitte |
PROV: Add RSA functionality for key generation This includes added support in legacy controls Reviewed-by: Shane Lontis <shane.lontis@oracle.com> (Merged from https://github.com
PROV: Add RSA functionality for key generation This includes added support in legacy controls Reviewed-by: Shane Lontis <shane.lontis@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10289)
show more ...
|
62924755 | 27-Oct-2019 |
Richard Levitte |
EVP: Add new domparams and key generation functionality The following functions are added: EVP_PKEY_gen_set_params(), replacing the older EVP_PKEY_CTX_ctrl() EVP_PKEY_gen(), rep
EVP: Add new domparams and key generation functionality The following functions are added: EVP_PKEY_gen_set_params(), replacing the older EVP_PKEY_CTX_ctrl() EVP_PKEY_gen(), replacing both EVP_PKEY_keygen() and EVP_PKEY_paramgen() These functions are made to work together with already existing domparams and key generation functionality: EVP_PKEY_CTX_new_provided(), EVP_PKEY_paramgen_init(), EVP_PKEY_keygen_init(), etc. Reviewed-by: Shane Lontis <shane.lontis@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10289)
show more ...
|
1a5632e0 | 26-Oct-2019 |
Richard Levitte |
CORE: Add the key object generator libcrypto<->provider interface We introduce these dispatched functions: - OP_keymgmt_gen_init() to initialize the key object generation. -
CORE: Add the key object generator libcrypto<->provider interface We introduce these dispatched functions: - OP_keymgmt_gen_init() to initialize the key object generation. - OP_keymgmt_gen_set_template() to set a template for key object generation. The template is another key object, for example one with domain parameters. - OP_keymgmt_gen_set_params() to set other key object generation parameters. - OP_keymgmt_gen_settable_params() to find out what settable parameters there are. - OP_keymgmt_gen() to perform the key object generation. - OP_keymgmt_gen_cleanup() to clean up the key object generation. Internal function for easy and consistent use of these ddispatched functions are added. Reviewed-by: Shane Lontis <shane.lontis@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10289)
show more ...
|