X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilccore%2Fsilcmessage.c;h=b1e3894d9179ac104e253f0c1851803eb8dd78e4;hb=1ea936cbf1bb3b19bd55839b904ef59ada84b8b5;hp=a308456be89c85db6a92d5fc3b562549546979a5;hpb=24f22cb5804552dbbc9dfd3593a7c5e454468727;p=silc.git diff --git a/lib/silccore/silcmessage.c b/lib/silccore/silcmessage.c index a308456b..b1e3894d 100644 --- a/lib/silccore/silcmessage.c +++ b/lib/silccore/silcmessage.c @@ -44,6 +44,7 @@ typedef struct { SilcMessageFlags flags; SilcPublicKey public_key; SilcPrivateKey private_key; + SilcRng rng; SilcHash hash; SilcCipher cipher; SilcHmac hmac; @@ -292,6 +293,7 @@ silc_message_signed_payload_encode(SilcBuffer payload, SilcUInt32 pk_len = 0; SilcUInt16 pk_type; SilcStack stack = e->stack; + SilcRng rng = e->rng; SilcHash hash = e->hash; SilcPublicKey public_key = e->public_key; SilcPrivateKey private_key = e->private_key; @@ -333,8 +335,9 @@ silc_message_signed_payload_encode(SilcBuffer payload, } /* Compute signature */ - op = silc_pkcs_sign(private_key, sign->data, silc_buffer_len(sign), - TRUE, hash, silc_message_signed_payload_encode_cb, e); + op = silc_pkcs_sign_async(private_key, sign->data, silc_buffer_len(sign), + TRUE, hash, rng, + silc_message_signed_payload_encode_cb, e); return op; } @@ -762,6 +765,7 @@ silc_message_payload_encode(SilcMessageFlags flags, e->flags = flags; e->public_key = public_key; e->private_key = private_key; + e->rng = rng; e->hash = hash; e->cipher = cipher; e->hmac = hmac; @@ -872,9 +876,10 @@ silc_message_signed_verify(SilcMessagePayload message, } /* Verify the authentication data */ - op = silc_pkcs_verify(remote_public_key, sig->sign_data, sig->sign_len, - silc_buffer_data(sign), silc_buffer_len(sign), hash, - result, context); + op = silc_pkcs_verify_async(remote_public_key, sig->sign_data, + sig->sign_len, + silc_buffer_data(sign), silc_buffer_len(sign), + TRUE, hash, result, context); silc_buffer_clear(sign); silc_buffer_sfree(stack, sign);