1. 01 10月, 2020 1 次提交
  2. 04 8月, 2020 1 次提交
  3. 07 4月, 2020 1 次提交
    • R
      PROV: Add the beginning of a DER writing library · 1d39620b
      Richard Levitte 提交于
      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: NMatt Caswell <matt@openssl.org>
      (Merged from https://github.com/openssl/openssl/pull/11450)
      1d39620b