openssl/providers
Richard Levitte 1d39620b34 PROV: Add the beginning of a DER writing library
This library is meant to be small and quick.  It's based on WPACKET,
which was extended to support DER writing.  The way it's used is a
bit unusual, as it's used to write the structures backward into a
given buffer.  A typical quick call looks like this:

    /*
     * Fill in this structure:
     *
     * something ::= SEQUENCE {
     *     id OBJECT IDENTIFIER,
     *     x [0] INTEGER OPTIONAL,
     *     y [1] BOOLEAN OPTIONAL,
     *     n INTEGER
     * }
     */
    unsigned char buf[nnnn], *p = NULL;
    size_t encoded_len = 0;
    WPACKET pkt;
    int ok;

    ok =   WPACKET_init_der(&pkt, buf, sizeof(buf)
        && DER_w_start_sequence(&pkt, -1)
        && DER_w_bn(&pkt, -1, bn)
        && DER_w_boolean(&pkt, 1, bool)
        && DER_w_precompiled(&pkt, -1, OID, sizeof(OID))
        && DER_w_end_sequence(&pkt, -1)
        && WPACKET_finish(&pkt)
        && WPACKET_get_total_written(&pkt, &encoded_len)
        && (p = WPACKET_get_curr(&pkt)) != NULL;

Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/11450)
2020-04-07 11:16:56 +02:00
..
common PROV: Add the beginning of a DER writing library 2020-04-07 11:16:56 +02:00
fips Add data driven SELF TEST code for signatures and key agreement 2020-04-03 16:50:36 +10:00
implementations Fix a gcc warning about possible null pointer 2020-04-03 12:57:37 +02:00
build.info PROV: Build the main FIPS module code with FIPS_MODE defined 2020-02-14 21:36:02 +01:00
defltprov.c Implement serializers for ED25519 and ED448 2020-03-18 08:40:33 +10:00
legacyprov.c Introduce the provider property 2020-02-21 20:17:02 +00:00