[PATCH 0/8] X.509: Software public key subtype changes

From: David Howells
Date: Fri Feb 19 2016 - 12:18:23 EST



Here's a set of patches that cleans up the public key handling in the
asymmetric key functions:

(1) - (3) These are Tadeusz's RSA akcipher conversion.

(4) This removes all knowledge of RSA from the software public key
asymmetric key subtype. Instead, the public key type and the hash
type are indicated to the crypto layer and the RSA module there does
all the appropriate encoding.

(5) This changes the various algorithm IDs to text labels instead of enums
as the strings are what we actually deal with (printing, passing to
the crypto layer).

(6) This separates the private parts of the software public key subtype
into a private header in the implementation directory.

(7) This renames public_key.c to software_pkey.c and changes the Kconfig
symbol to match.

(8) This renames symbols beginning "public_key" to "software_pkey" except
struct for public_key_signature which is a wider API component.

The patches can be found here also:

http://git.kernel.org/cgit/linux/kernel/git/dhowells/linux-fs.git/log/?h=keys-rsa

David
---
David Howells (5):
akcipher: Move the RSA DER encoding to the crypto layer
X.509: Make algo identifiers text instead of enum
X.509: Make the public_key asymmetric key type internal data private
X.509: Rename public_key.c to software_pkey.c
X.509: Rename public_key* to software_pkey*

Tadeusz Struk (3):
crypto: KEYS: convert public key and digsig asym to the akcipher api
integrity: convert digsig to akcipher api
crypto: public_key: remove MPIs from public_key_signature struct


arch/s390/configs/default_defconfig | 2
arch/s390/configs/gcov_defconfig | 2
arch/s390/configs/performance_defconfig | 2
crypto/asymmetric_keys/Kconfig | 17 +-
crypto/asymmetric_keys/Makefile | 10 -
crypto/asymmetric_keys/mscode_parser.c | 14 +
crypto/asymmetric_keys/pkcs7_parser.c | 30 +--
crypto/asymmetric_keys/pkcs7_trust.c | 2
crypto/asymmetric_keys/pkcs7_verify.c | 12 +
crypto/asymmetric_keys/public_key.c | 130 --------------
crypto/asymmetric_keys/public_key.h | 36 ----
crypto/asymmetric_keys/rsa.c | 278 -----------------------------
crypto/asymmetric_keys/software_pkey.c | 142 +++++++++++++++
crypto/asymmetric_keys/software_pkey.h | 33 +++
crypto/asymmetric_keys/verify_pefile.c | 4
crypto/asymmetric_keys/verify_pefile.h | 2
crypto/asymmetric_keys/x509_cert_parser.c | 67 ++-----
crypto/asymmetric_keys/x509_parser.h | 4
crypto/asymmetric_keys/x509_public_key.c | 43 ++--
crypto/asymmetric_keys/x509_rsakey.asn1 | 4
crypto/rsa.c | 210 +++++++++++++++++++---
crypto/testmgr.c | 5 -
include/crypto/akcipher.h | 7 +
include/crypto/public_key.h | 79 +-------
init/Kconfig | 4
kernel/module_signing.c | 6 +
security/integrity/Kconfig | 3
security/integrity/digsig_asymmetric.c | 16 +-
28 files changed, 467 insertions(+), 697 deletions(-)
delete mode 100644 crypto/asymmetric_keys/public_key.c
delete mode 100644 crypto/asymmetric_keys/public_key.h
delete mode 100644 crypto/asymmetric_keys/rsa.c
create mode 100644 crypto/asymmetric_keys/software_pkey.c
create mode 100644 crypto/asymmetric_keys/software_pkey.h
delete mode 100644 crypto/asymmetric_keys/x509_rsakey.asn1