Add gcm ciphers (aes and aria) to providers.
authorShane Lontis <shane.lontis@oracle.com>
Wed, 31 Jul 2019 11:55:16 +0000 (21:55 +1000)
committerShane Lontis <shane.lontis@oracle.com>
Wed, 31 Jul 2019 11:55:16 +0000 (21:55 +1000)
commita672a02a6443a29aa368c0d8abeebc809c1a9f28
tree4148c9b4b3b8442961818740660607db38efc126
parentf5b7f99e690b1875e6d047acc435f0029642bfeb
Add gcm ciphers (aes and aria) to providers.

The code has been modularized so that it can be shared by algorithms.

A fixed size IV is now used instead of being allocated.
The IV is not set into the low level struct now until the update (it uses an
iv_state for this purpose).

Hardware specific methods have been added to a PROV_GCM_HW object.

The S390 code has been changed to just contain methods that can be accessed in
a modular way. There are equivalent generic methods also for the other
platforms.

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Patrick Steuer <patrick.steuer@de.ibm.com>
(Merged from https://github.com/openssl/openssl/pull/9231)
18 files changed:
crypto/err/openssl.txt
crypto/evp/evp_enc.c
crypto/evp/evp_lib.c
crypto/modes/build.info
doc/man3/EVP_EncryptInit.pod
providers/common/ciphers/aes.c
providers/common/ciphers/aes_basic.c
providers/common/ciphers/build.info
providers/common/ciphers/ciphers_gcm.h [new file with mode: 0644]
providers/common/ciphers/ciphers_locl.h
providers/common/ciphers/gcm.c [new file with mode: 0644]
providers/common/ciphers/gcm_hw.c [new file with mode: 0644]
providers/common/ciphers/gcm_s390x.c [new file with mode: 0644]
providers/common/include/internal/provider_algs.h
providers/common/include/internal/providercommonerr.h
providers/common/provider_err.c
providers/default/defltprov.c
providers/fips/fipsprov.c