integrity: support EC-RDSA signatures for asymmetric_verify
Subsystems (6)
RFC PATCH v6 1/1 integrity: support EC-RDSA signatures for asymmetric_verify
Allow to use EC-RDSA signatures for IMA by determining signature type by the hash algorithm name. This works good for EC-RDSA since Streebog and EC-RDSA should always be used together.
Cc Mimi Zohar <[email protected]>
Cc Dmitry Kasatkin <[email protected]>
Signed-off-by Vitaly Chikunov <[email protected]>
---
Changes since v5:
- This should go over "[PATCH v5 00/10] crypto: add EC-RDSA (GOST 34.10) algorithm" instead of "[PATCH v5 10/10] integrity: support EC-RDSA signatures for asymmetric_verify."
- Comparison of hash algo by enum id instead of text name, as suggested by Thiago Jung Bauermann and Mimi Zohar.
security/integrity/digsig_asymmetric.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-)
security/integrity/digsig_asymmetric.c +9 -2
@@ -104,9 +104,16 @@ int asymmetric_verify(struct key *keyring, const char *sig,memset (&pks,0 ,sizeof (pks)); - pks.pkey_algo ="rsa" ; pks.hash_algo = hash_algo_name[hdr->hash_algo]; - pks.encoding ="pkcs1" ; +if (hdr->hash_algo =HASH_ALGO_STREEBOG_256 || + hdr->hash_algo =HASH_ALGO_STREEBOG_512 ) { +/* EC-RDSA and Streebog should go together. */ + pks.pkey_algo ="ecrdsa" ; + pks.encoding ="raw" ; + }else { + pks.pkey_algo ="rsa" ; + pks.encoding ="pkcs1" ; + } pks.digest = (u8 *)data; pks.digest_size = datalen; pks.s = hdr->sig;
Signature · 1 line
2.11.0