lkml.org 
[lkml]   [2019]   [Mar]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v7 11/11] integrity: support EC-RDSA signatures for asymmetric_verify
    Date
    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 <zohar@linux.ibm.com>
    Cc: Dmitry Kasatkin <dmitry.kasatkin@gmail.com>
    Cc: linux-integrity@vger.kernel.org
    Signed-off-by: Vitaly Chikunov <vt@altlinux.org>
    ---
    security/integrity/digsig_asymmetric.c | 11 +++++++++--
    1 file changed, 9 insertions(+), 2 deletions(-)

    diff --git a/security/integrity/digsig_asymmetric.c b/security/integrity/digsig_asymmetric.c
    index d775e03fbbcc..99080871eb9f 100644
    --- a/security/integrity/digsig_asymmetric.c
    +++ b/security/integrity/digsig_asymmetric.c
    @@ -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;
    --
    2.11.0
    \
     
     \ /
      Last update: 2019-03-01 19:00    [W:4.158 / U:0.816 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site