Home GnuPG

Support Authenticated-Enveloped-Data Content Type.

Description

Support Authenticated-Enveloped-Data Content Type.

* src/cms.h (struct ksba_cms_s): Remove struct data which was not
used.  Add struct authdata.
* src/cms.asn (AuthEnvelopedData): New.
(id-authEnvelopedData): New.
* src/ksba.h.in (ksba_content_type_t): Add KSBA_CT_AUTHENVELOPED_DATA.
* src/cms.c (content_handlers): Ditto.
(ksba_cms_release): Free the new fields.
(ksba_cms_get_message_digest): Hack to return authtag.
(ct_parse_signed_data): Remove useless condition which was always true.
* src/cms-parser.c (parse_encrypted_content_info): Add arg
r_algo_parmtype.
(_ksba_cms_parse_enveloped_data_part_1): Detect GCM with AES and parse
the parameters.
(_ksba_cms_parse_enveloped_data_part_2): Parse the MAC part and store
it for retrieval by ksba_cms_get_message_digest.
* tests/t-cms-parser.c (one_file): Handle authdata.

This is limited to GCM-AES* and does not support AAD - see code
comments. I would love to support OCB here but there seems to be no
sample data or even a spec.

  • Signed-off-by: Werner Koch <wk@gnupg.org>

Details

Provenance
wernerAuthored on Jun 2 2021, 10:53 AM
Parents
rKa375a3d20e83: build: _DARWIN_C_SOURCE should be 1.
Branches
Unknown
Tags
Unknown