openssl/include/internal
Richard Levitte 0d003c52d3 SERIALIZER: New API for serialization of objects through providers
Serialization is needed to be able to take a provider object (such as
the provider side key data) and output it in PEM form, DER form, text
form (for display), and possibly other future forms (XML? JSON? JWK?)

The idea is that a serializer should be able to handle objects it has
intimate knowledge of, as well as object data in OSSL_PARAM form.  The
latter will allow libcrypto to serialize some object with a different
provider than the one holding the data, if exporting of that data is
allowed and there is a serializer that can handle it.

We will provide serializers for the types of objects we know about,
which should be useful together with any other provider that provides
implementations of the same type of object.

Serializers are selected by method name and a couple of additional
properties:

- format        used to tell what format the output should be in.
                Possibilities could include "format=text",
                "format=pem", "format=der", "format=pem-pkcs1"
                (traditional), "format=der-pkcs1" (traditional)
- type          used to tell exactly what type of data should be
                output, for example "type=public" (the public part of
                a key), "type=private" (the private part of a key),
                "type=domainparams" (domain parameters).

This also adds a passphrase callback function type,
OSSL_PASSPHRASE_CALLBACK, which is a bit like OSSL_CALLBACK, but it
takes a few extra arguments to place the result in.

Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/10394)
2019-11-29 20:54:48 +01:00
..
__DECC_INCLUDE_EPILOGUE.H Following the license change, modify the boilerplates in include/ and crypto/include/ 2018-12-06 15:57:31 +01:00
__DECC_INCLUDE_PROLOGUE.H Following the license change, modify the boilerplates in include/ and crypto/include/ 2018-12-06 15:57:31 +01:00
bio.h Fix header file include guard names 2019-09-28 20:26:36 +02:00
comp.h Following the license change, modify the boilerplates in include/ and crypto/include/ 2018-12-06 15:57:31 +01:00
conf.h Fix header file include guard names 2019-09-28 20:26:36 +02:00
constant_time.h s390x assembly pack: process x25519 and x448 non-canonical values 2019-11-05 13:53:04 +01:00
core.h CORE: pass the full algorithm definition to the method constructor 2019-11-29 20:42:12 +01:00
cryptlib.h SERIALIZER: New API for serialization of objects through providers 2019-11-29 20:54:48 +01:00
dane.h Fix header file include guard names 2019-09-28 20:26:36 +02:00
dso.h Fix header file include guard names 2019-09-28 20:26:36 +02:00
dsoerr.h Update source files for deprecation at 3.0 2019-11-07 11:37:25 +01:00
err.h Fix header file include guard names 2019-09-28 20:26:36 +02:00
ktls.h Add support for in-kernel TLS (KTLS) on FreeBSD. 2019-10-31 10:24:32 +00:00
namemap.h CORE: ossl_namemap_add_names(): new function to add multiple names 2019-11-29 20:42:12 +01:00
nelem.h Fix header file include guard names 2019-09-28 20:26:36 +02:00
numbers.h Fix header file include guard names 2019-09-28 20:26:36 +02:00
o_dir.h Fix header file include guard names 2019-09-28 20:26:36 +02:00
packet.h Fix header file include guard names 2019-09-28 20:26:36 +02:00
param_build.h Increase OSSL_PARAM_BLD_MAX for multi-prime RSA 2019-11-14 09:29:46 +00:00
property.h Properties: make query cache reference count aware. 2019-11-18 18:51:26 +10:00
propertyerr.h Update source files for deprecation at 3.0 2019-11-07 11:37:25 +01:00
provider.h Prepare EVP_MAC infrastructure for moving all MACs to providers 2019-08-15 22:12:25 +02:00
refcount.h Fix header file include guard names 2019-09-28 20:26:36 +02:00
sha3.h Fix header file include guard names 2019-09-28 20:26:36 +02:00
sm3.h Fix header file include guard names 2019-09-28 20:26:36 +02:00
sockets.h Fix header file include guard names 2019-09-28 20:26:36 +02:00
sslconf.h Fix header file include guard names 2019-09-28 20:26:36 +02:00
symhacks.h Rename provider and core get_param_types functions 2019-08-15 11:58:25 +02:00
thread_once.h Make sure we only run the self tests once 2019-11-29 16:14:44 +00:00
tsan_assist.h Fix Typos 2019-07-02 14:22:29 +02:00