X.509: parse public key parameters from x509 for akcipher
authorVitaly Chikunov <vt@altlinux.org>
Thu, 11 Apr 2019 15:51:17 +0000 (18:51 +0300)
committerHerbert Xu <herbert@gondor.apana.org.au>
Thu, 18 Apr 2019 14:15:02 +0000 (22:15 +0800)
commitf1774cb8956a35269f539efcee99fe7eda838b77
tree249ba0956270b8a21c0fc9d52bc51dc7a2b1119d
parent83bc0299960477a4b99d9ad11b766d63c0dfaf60
X.509: parse public key parameters from x509 for akcipher

Some public key algorithms (like EC-DSA) keep in parameters field
important data such as digest and curve OIDs (possibly more for
different EC-DSA variants). Thus, just setting a public key (as
for RSA) is not enough.

Append parameters into the key stream for akcipher_set_{pub,priv}_key.
Appended data is: (u32) algo OID, (u32) parameters length, parameters
data.

This does not affect current akcipher API nor RSA ciphers (they could
ignore it). Idea of appending parameters to the key stream is by Herbert
Xu.

Cc: David Howells <dhowells@redhat.com>
Cc: Denis Kenzior <denkenz@gmail.com>
Cc: keyrings@vger.kernel.org
Signed-off-by: Vitaly Chikunov <vt@altlinux.org>
Reviewed-by: Denis Kenzior <denkenz@gmail.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
crypto/asymmetric_keys/asym_tpm.c
crypto/asymmetric_keys/public_key.c
crypto/asymmetric_keys/x509.asn1
crypto/asymmetric_keys/x509_cert_parser.c
crypto/testmgr.c
crypto/testmgr.h
include/crypto/akcipher.h
include/crypto/public_key.h