openssl/crypto
Richard Levitte 7524b7b748 DESERIALIZER: Implement decryption of password protected objects
This implements these functions:

OSSL_DESERIALIZER_CTX_set_cipher()
OSSL_DESERIALIZER_CTX_set_passphrase()
OSSL_DESERIALIZER_CTX_set_passphrase_ui()
OSSL_DESERIALIZER_CTX_set_passphrase_cb()

To be able to deal with multiple deserializers trying to work on the
same byte array and wanting to decrypt it while doing so, the
deserializer caches the passphrase.  This cache is cleared at the end
of OSSL_DESERIALIZER_from_bio().

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12410)
2020-07-24 16:43:20 +02:00
..
aes Avoid undefined behavior with unaligned accesses 2020-05-27 20:11:20 +02:00
aria
asn1 Add X509 related libctx changes. 2020-07-24 22:53:27 +10:00
async Update copyright year 2020-07-16 14:47:04 +02:00
bf Update copyright year 2020-04-23 13:55:52 +01:00
bio Improve BIO_socket_wait(), BIO_wait(), BIO_connect_retry(), and their docs 2020-06-16 18:51:39 +02:00
bn Disable optimiization of BN_num_bits_word() for VS2005 ARM compiler due to 2020-07-15 23:03:22 +02:00
buffer
camellia Update copyright year 2020-04-23 13:55:52 +01:00
cast Fix logic error for building x86 CAST assembly 2020-06-14 12:35:34 -07:00
chacha Update copyright year 2020-07-16 14:47:04 +02:00
cmac Revert "The EVP_MAC functions have been renamed for consistency. The EVP_MAC_CTX_*" 2020-07-16 14:21:07 +02:00
cmp Constify X509_check_akid and prefer using X509_get0_serialNumber over X509_get_serialNumber 2020-07-16 15:48:53 +02:00
cms EVP: deprecate the EVP_X_meth_ functions. 2020-07-22 20:19:01 +10:00
comp
conf Update copyright year 2020-07-16 14:47:04 +02:00
crmf Revert "The EVP_MAC functions have been renamed for consistency. The EVP_MAC_CTX_*" 2020-07-16 14:21:07 +02:00
ct Update copyright year 2020-05-15 14:09:49 +01:00
des Build: Remove faulty DES assembler spec 2020-06-20 11:02:18 +02:00
dh Revert "kdf: make function naming consistent." 2020-07-16 14:21:07 +02:00
dsa Add multiple fixes for ffc key generation using invalid p,q,g parameters. 2020-07-09 13:43:10 +10:00
dso Changed uintptr_t to size_t. WinCE6 doesn't seem it have the definition. 2020-07-15 23:03:21 +02:00
ec Revert "kdf: make function naming consistent." 2020-07-16 14:21:07 +02:00
engine EVP: deprecate the EVP_X_meth_ functions. 2020-07-22 20:19:01 +10:00
err DESERIALIZER: Add foundation for deserializers 2020-07-24 16:32:00 +02:00
ess Add X509 related libctx changes. 2020-07-24 22:53:27 +10:00
evp KEYMGMT: Add key loading function OSSL_FUNC_keymgmt_load() 2020-07-24 16:32:00 +02:00
ffc Add multiple fixes for ffc key generation using invalid p,q,g parameters. 2020-07-09 13:43:10 +10:00
hmac coverity 1462580 Improper use of negative value 2020-04-30 20:21:33 +10:00
http Ensure a string is properly terminated in http_client.c 2020-07-03 17:18:41 +01:00
idea Update copyright year 2020-04-23 13:55:52 +01:00
include/internal Update copyright year 2020-05-15 14:09:49 +01:00
kdf
lhash
md2 Update copyright year 2020-04-23 13:55:52 +01:00
md4 Update copyright year 2020-04-23 13:55:52 +01:00
md5 Update copyright year 2020-04-23 13:55:52 +01:00
mdc2 Update copyright year 2020-04-23 13:55:52 +01:00
modes Fix provider cipher reinit issue 2020-07-22 10:40:55 +10:00
objects Fix many MarkDown issues in {NOTES*,README*,HACKING,LICENSE}.md files 2020-07-05 11:29:43 +02:00
ocsp Update copyright year 2020-05-15 14:09:49 +01:00
pem SERIALIZER: No enc argument for OSSL_SERIALIZER_CTX_set_passphrase_cb() 2020-07-24 16:43:20 +02:00
perlasm Fix many MarkDown issues in {NOTES*,README*,HACKING,LICENSE}.md files 2020-07-05 11:29:43 +02:00
pkcs7 Constify X509_check_akid and prefer using X509_get0_serialNumber over X509_get_serialNumber 2020-07-16 15:48:53 +02:00
pkcs12 Update copyright year 2020-05-15 14:09:49 +01:00
poly1305 Update copyright year 2020-04-23 13:55:52 +01:00
property DESERIALIZER: Add foundation for deserializers 2020-07-24 16:32:00 +02:00
rand Fix: uninstantiation breaks the RAND_DRBG callback mechanism 2020-07-23 01:12:48 +02:00
rc2 Update copyright year 2020-04-23 13:55:52 +01:00
rc4 Update copyright year 2020-04-23 13:55:52 +01:00
rc5 Update copyright year 2020-04-23 13:55:52 +01:00
ripemd Update copyright year 2020-04-23 13:55:52 +01:00
rsa Fix potential double free in rsa_keygen pairwise test. 2020-06-23 12:28:48 +02:00
seed Update copyright year 2020-04-23 13:55:52 +01:00
serializer DESERIALIZER: Implement decryption of password protected objects 2020-07-24 16:43:20 +02:00
sha Update copyright year 2020-07-16 14:47:04 +02:00
siphash
sm2 Update copyright year 2020-04-23 13:55:52 +01:00
sm3
sm4
srp In OpenSSL builds, declare STACK for datatypes ... 2020-04-24 16:42:46 +02:00
stack
store Add X509 related libctx changes. 2020-07-24 22:53:27 +10:00
ts deprecate engines in libcrypto 2020-07-16 09:12:27 +02:00
txt_db
ui Update copyright year 2020-06-04 14:33:57 +01:00
whrlpool Avoid undefined behavior with unaligned accesses 2020-05-27 20:11:20 +02:00
x509 Add X509 related libctx changes. 2020-07-24 22:53:27 +10:00
alphacpuid.pl Update copyright year 2020-04-23 13:55:52 +01:00
arm64cpuid.pl Update copyright year 2020-04-23 13:55:52 +01:00
arm_arch.h
armcap.c
armv4cpuid.pl Update copyright year 2020-04-23 13:55:52 +01:00
asn1_dsa.c
bsearch.c
build.info Remove explicit dependency on configdata.pm when processing .in files 2020-05-13 10:14:53 +02:00
c64xpluscpuid.pl Update copyright year 2020-04-23 13:55:52 +01:00
context.c CORE: Add an internal function to distinguish the global default context 2020-06-28 10:55:52 +02:00
core_algorithm.c CORE: perform post-condition in algorithm_do_this() under all circumstances 2020-07-05 14:07:14 +02:00
core_fetch.c Update copyright year 2020-06-04 14:33:57 +01:00
core_namemap.c namemap: change ossl_namemap_empty() to do what the documentation says. 2020-06-21 16:49:51 +10:00
cpt_err.c
cryptlib.c
ctype.c
cversion.c
der_writer.c DER writer: Add the possibility to abandon empty SEQUENCEs 2020-05-14 12:16:35 +02:00
dllmain.c
ebcdic.c
ex_data.c Fix the parameter types of the CRYPTO_EX_dup function type. 2020-05-23 15:31:14 +02:00
getenv.c
ia64cpuid.S
info.c Print CPUINFO also for s390 processors 2020-06-22 02:35:01 +02:00
init.c Update copyright year 2020-07-16 14:47:04 +02:00
initthread.c Make the naming scheme for dispatched functions more consistent 2020-06-24 22:01:22 +02:00
LPdir_nyi.c
LPdir_unix.c
LPdir_vms.c
LPdir_win32.c
LPdir_win.c
LPdir_wince.c
mem_clr.c
mem_sec.c Fix wrong return value check of mmap function 2020-06-23 10:08:28 +10:00
mem.c Rename FIPS_MODE to FIPS_MODULE 2020-04-28 15:37:37 +02:00
mips_arch.h
o_dir.c
o_fopen.c
o_init.c
o_str.c Enable WinCE build without deceiving _MSC_VER. 2020-07-15 23:03:22 +02:00
o_time.c Update copyright year 2020-07-16 14:47:04 +02:00
packet.c WPACKET: don't write DER length when we don't want to 2020-05-04 05:50:06 +02:00
param_build_set.c
param_build.c params: add OSSL_PARAM helpers for time_t. 2020-06-24 20:05:41 +10:00
params_from_text.c params: handle the modified sentinel. 2020-04-25 18:46:01 +10:00
params.c params: add OSSL_PARAM helpers for time_t. 2020-06-24 20:05:41 +10:00
pariscid.pl Update copyright year 2020-04-23 13:55:52 +01:00
ppc_arch.h
ppccap.c Update copyright year 2020-05-15 14:09:49 +01:00
ppccpuid.pl Update copyright year 2020-04-23 13:55:52 +01:00
provider_conf.c In OpenSSL builds, declare STACK for datatypes ... 2020-04-24 16:42:46 +02:00
provider_core.c CORE: Add upcalls for BIO_gets() and BIO_puts() 2020-07-24 16:32:01 +02:00
provider_local.h
provider_predefined.c Rename FIPS_MODE to FIPS_MODULE 2020-04-28 15:37:37 +02:00
provider.c Add the OSSL_PROVIDER_get_capabilities() API function 2020-06-19 10:19:31 +01:00
README-sparse_array.md Fix many MarkDown issues in {NOTES*,README*,HACKING,LICENSE}.md files 2020-07-05 11:29:43 +02:00
s390x_arch.h Update copyright year 2020-04-23 13:55:52 +01:00
s390xcap.c
s390xcpuid.pl Update copyright year 2020-04-23 13:55:52 +01:00
self_test_core.c Rename FIPS_MODE to FIPS_MODULE 2020-04-28 15:37:37 +02:00
sparc_arch.h
sparccpuid.S
sparcv9cap.c Update copyright year 2020-04-23 13:55:52 +01:00
sparse_array.c
threads_none.c
threads_pthread.c Update copyright year 2020-05-15 14:09:49 +01:00
threads_win.c Update copyright year 2020-04-23 13:55:52 +01:00
trace.c Update copyright year 2020-07-16 14:47:04 +02:00
uid.c
vms_rms.h
x86_64cpuid.pl Update copyright year 2020-04-23 13:55:52 +01:00
x86cpuid.pl Update copyright year 2020-04-23 13:55:52 +01:00