From 10d1f115ffc8ea9cb03c4685a0a1b18850ae4feb Mon Sep 17 00:00:00 2001 From: Miloslav Trmač Date: Sat, 24 Jul 2010 01:44:19 +0200 Subject: Use algo_properties_st in ncr_pk_ctx.sign_hash --- ncr-pk.c | 14 +++++++++++--- ncr-pk.h | 2 +- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/ncr-pk.c b/ncr-pk.c index 0f9ca53..78a9030 100644 --- a/ncr-pk.c +++ b/ncr-pk.c @@ -349,7 +349,7 @@ int ret; err(); return ret; } - ctx->sign_hash = ret; + ctx->sign_hash = _ncr_algo_to_properties(ret); switch(algo->algo) { case NCR_ALG_RSA: @@ -448,8 +448,12 @@ unsigned long osize = *output_size; switch(ctx->algorithm->algo) { case NCR_ALG_RSA: + if (ctx->sign_hash == NULL) { + err(); + return -EINVAL; + } cret = rsa_sign_hash_ex( input, input_size, output, &osize, - ctx->type, ctx->sign_hash, ctx->salt_len, &ctx->key->key.pk.rsa); + ctx->type, ctx->sign_hash->algo, ctx->salt_len, &ctx->key->key.pk.rsa); if (cret != CRYPT_OK) { err(); @@ -484,8 +488,12 @@ int stat; switch(ctx->algorithm->algo) { case NCR_ALG_RSA: + if (ctx->sign_hash == NULL) { + err(); + return -EINVAL; + } cret = rsa_verify_hash_ex( signature, signature_size, - hash, hash_size, ctx->type, ctx->sign_hash, + hash, hash_size, ctx->type, ctx->sign_hash->algo, ctx->salt_len, &stat, &ctx->key->key.pk.rsa); if (cret != CRYPT_OK) { diff --git a/ncr-pk.h b/ncr-pk.h index 0bf2745..72a2786 100644 --- a/ncr-pk.h +++ b/ncr-pk.h @@ -6,7 +6,7 @@ struct ncr_pk_ctx { const struct algo_properties_st *algorithm; /* algorithm */ - ncr_algorithm_t sign_hash; /* for verification */ + const struct algo_properties_st *sign_hash; /* for verification */ ncr_algorithm_t oaep_hash; int salt_len; /* for RSA-PSS signatures */ -- cgit