openssl/crypto
Richard Levitte 14c8a3d118 CORE: Define provider-native abstract objects
This is placed as CORE because the core of libcrypto is the authority
for what is possible to do and what's required to make these abstract
objects work.

In essence, an abstract object is an OSSL_PARAM array with well
defined parameter keys and values:

-   an object type, which is a number indicating what kind of
    libcrypto structure the object in question can be used with.  The
    currently possible numbers are defined in <openssl/core_object.h>.
-   an object data type, which is a string that indicates more closely
    what the contents of the object are.
-   the object data, an octet string.  The exact encoding used depends
    on the context in which it's used.  For example, the decoder
    sub-system accepts any encoding, as long as there is a decoder
    implementation that takes that as input.  If central code is to
    handle the data directly, DER encoding is assumed. (*)
-   an object reference, also an octet string.  This octet string is
    not the object contents, just a mere reference to a provider-native
    object. (**)
-   an object description, which is a human readable text string that
    can be displayed if some software desires to do so.

The intent is that certain provider-native operations (called X
here) are able to return any sort of object that belong with other
operations, or an object that has no provider support otherwise.

(*) A future extension might be to be able to specify encoding.

(**) The possible mechanisms for dealing with object references are:

-   An object loading function in the target operation.  The exact
    target operation is determined by the object type (for example,
    OSSL_OBJECT_PKEY implies that the target operation is a KEYMGMT)
    and the implementation to be fetched by its object data type (for
    an OSSL_OBJECT_PKEY, that's the KEYMGMT keytype to be fetched).
    This loading function is only useful for this if the implementations
    that are involved (X and KEYMGMT, for example) are from the same
    provider.

-   An object exporter function in the operation X implementation.
    That exporter function can be used to export the object data in
    OSSL_PARAM form that can be imported by a target operation's
    import function.  This can be used when it's not possible to fetch
    the target operation implementation from the same provider.

Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12512)
2020-08-24 10:02:25 +02:00
..
aes Avoid undefined behavior with unaligned accesses 2020-05-27 20:11:20 +02:00
aria
asn1 Fix coverity CID #1465531 - Negative return passed to a function param using size_t in asn1_item_digest_with_libctx() 2020-08-24 11:19:28 +10:00
async Update copyright year 2020-07-16 14:47:04 +02:00
bf
bio Update copyright year 2020-08-06 13:22:30 +01:00
bn Add fix for RSA keygen in FIPS using keysizes 2048 < bits < 3072 2020-08-12 09:25:49 +10:00
buffer
camellia
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 Use in CMP+CRMF libctx and propq param added to sign/verify/HMAC/decrypt 2020-08-21 09:04:13 +02:00
cms Fix CMS so that it still works with non fetchable algorithms. 2020-08-22 11:07:14 +03:00
comp
conf conf: add an error if the openssl_conf section isn't found. 2020-08-11 08:08:24 +10:00
crmf Use in CMP+CRMF libctx and propq param added to sign/verify/HMAC/decrypt 2020-08-21 09:04:13 +02:00
ct Add EVP signature with libctx methods. 2020-08-09 17:34:52 +10:00
des Build: Remove faulty DES assembler spec 2020-06-20 11:02:18 +02:00
dh Fix no-cms build errors. 2020-08-19 13:27:31 +10: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 Fix coverity CID #1458644 - Negative return passed to function taking size_t in ecdh_cms_set_shared_info() 2020-08-24 11:19:28 +10:00
encode_decode CORE: Define provider-native abstract objects 2020-08-24 10:02:25 +02:00
engine EVP: deprecate the EVP_X_meth_ functions. 2020-07-22 20:19:01 +10:00
err Add Explicit EC parameter support to providers. 2020-08-22 14:55:41 +10:00
ess Add X509 related libctx changes. 2020-07-24 22:53:27 +10:00
evp Fix coverity CID #1452773 - Dereference before NULL check in EVP_DigestFinal_ex() 2020-08-24 11:19:28 +10:00
ffc Fix DSA/DH so that legacy keys can still be generated by the default provider 2020-08-17 23:40:20 +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
kdf
lhash
md2
md4
md5
mdc2
modes Fix coverity CID #1452770 - Dereference before NULL check in CRYPTO_siv128_init() 2020-08-24 11:19:28 +10:00
objects Update copyright year 2020-08-06 13:22:30 +01:00
ocsp OCSP: Add return value checks. 2020-08-19 13:15:27 +10:00
pem Rename OSSL_SERIALIZER / OSSL_DESERIALIZER to OSSL_ENCODE / OSSL_DECODE 2020-08-21 09:23:58 +02:00
perlasm Fix many MarkDown issues in {NOTES*,README*,HACKING,LICENSE}.md files 2020-07-05 11:29:43 +02:00
pkcs7 Introduce X509_add_cert[s] simplifying various additions to cert lists 2020-08-12 13:54:37 +02:00
pkcs12 Fix mem leaks on PKCS#12 read error in PKCS12_key_gen_{asc,utf8} 2020-08-20 14:28:24 +02:00
poly1305
property Rename OSSL_SERIALIZER / OSSL_DESERIALIZER to OSSL_ENCODE / OSSL_DECODE 2020-08-21 09:23:58 +02:00
rand rand_drbg: remove RAND_DRBG. 2020-08-07 14:16:47 +10:00
rc2
rc4
rc5
ripemd
rsa Add libctx and propq param to ASN.1 sign/verify/HMAC/decrypt 2020-08-21 09:04:10 +02:00
seed
sha Update copyright year 2020-07-16 14:47:04 +02:00
siphash
sm2 Add evp_test fixes. 2020-08-07 14:29:00 +10:00
sm3
sm4
srp In OpenSSL builds, declare STACK for datatypes ... 2020-04-24 16:42:46 +02:00
stack
store STORE: Distinguish public keys from private keys 2020-08-20 12:37:35 +02:00
ts Introduce X509_add_cert[s] simplifying various additions to cert lists 2020-08-12 13:54:37 +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 Rename OSSL_SERIALIZER / OSSL_DESERIALIZER to OSSL_ENCODE / OSSL_DECODE 2020-08-21 09:23:58 +02:00
alphacpuid.pl
arm64cpuid.pl
arm_arch.h
armcap.c
armv4cpuid.pl
asn1_dsa.c
bsearch.c
build.info Rename OSSL_SERIALIZER / OSSL_DESERIALIZER to OSSL_ENCODE / OSSL_DECODE 2020-08-21 09:23:58 +02:00
c64xpluscpuid.pl
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: fix threading issue 2020-07-29 17:31:32 +10:00
cpt_err.c
cryptlib.c
ctype.c
cversion.c
der_writer.c Change the provider implementation of X942kdf to use wpacket to do der encoding of sharedInfo 2020-08-04 12:18:51 +10: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 Windows get ENV value as UTF-8 encoded string instead of a raw string 2020-08-22 15:05:56 +10:00
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
ppc_arch.h
ppccap.c Update copyright year 2020-05-15 14:09:49 +01:00
ppccpuid.pl
provider_conf.c In OpenSSL builds, declare STACK for datatypes ... 2020-04-24 16:42:46 +02:00
provider_core.c provider: disable fall-backs if OSSL_PROVIDER_load() fails. 2020-08-14 18:17:47 +10:00
provider_local.h
provider_predefined.c serialisation: Add a built-in base provider. 2020-07-30 20:15:22 +10:00
provider.c provider: disable fall-backs if OSSL_PROVIDER_load() fails. 2020-08-14 18:17:47 +10: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
s390xcap.c
s390xcpuid.pl
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
sparse_array.c Add 'on demand self test' and status test to providers 2020-08-09 18:06:52 +10:00
threads_none.c
threads_pthread.c Update copyright year 2020-05-15 14:09:49 +01:00
threads_win.c
trace.c Update copyright year 2020-07-16 14:47:04 +02:00
uid.c
vms_rms.h
x86_64cpuid.pl
x86cpuid.pl