use Eqaf
This commit is contained in:
parent
d870eab54e
commit
ae3a0c90c4
1 changed files with 1 additions and 5 deletions
|
|
@ -59,7 +59,6 @@ let rsa_blinding_key_derive (pub : RsaPublicKey.t) bks =
|
||||||
let rsa_blind pub ~bks msg =
|
let rsa_blind pub ~bks msg =
|
||||||
let data = rsa_full_domain_hash pub msg in
|
let data = rsa_full_domain_hash pub msg in
|
||||||
let bkey = rsa_blinding_key_derive pub bks in
|
let bkey = rsa_blinding_key_derive pub bks in
|
||||||
(* can we just use [powm] here instead? *)
|
|
||||||
let r_e = Z.powm_sec bkey pub.e pub.n in
|
let r_e = Z.powm_sec bkey pub.e pub.n in
|
||||||
let data_r_e = Z.rem (Z.mul data r_e) pub.n in
|
let data_r_e = Z.rem (Z.mul data r_e) pub.n in
|
||||||
Z_extra.to_octets_be data_r_e
|
Z_extra.to_octets_be data_r_e
|
||||||
|
|
@ -86,13 +85,10 @@ let sign ~priv ~pub ~bks ~msg =
|
||||||
let sig_ = rsa_unblind pub ~bks bsig in
|
let sig_ = rsa_unblind pub ~bks bsig in
|
||||||
sig_
|
sig_
|
||||||
|
|
||||||
(* TODO fdh-rsa
|
|
||||||
look into mirage-crypto for this
|
|
||||||
at least use Eqaf for constant time string compare *)
|
|
||||||
let verify pub ~msg ~sig_ =
|
let verify pub ~msg ~sig_ =
|
||||||
let msg_fdh = rsa_full_domain_hash pub msg in
|
let msg_fdh = rsa_full_domain_hash pub msg in
|
||||||
let s1 = Z_extra.to_octets_be msg_fdh in
|
let s1 = Z_extra.to_octets_be msg_fdh in
|
||||||
let s2 = Mirage_crypto_pk.Rsa.encrypt ~key:pub sig_ in
|
let s2 = Mirage_crypto_pk.Rsa.encrypt ~key:pub sig_ in
|
||||||
match String.equal s1 s2 with
|
match Eqaf.equal s1 s2 with
|
||||||
| false -> Fmt.error "RSA signature verification failed"
|
| false -> Fmt.error "RSA signature verification failed"
|
||||||
| true -> Ok ()
|
| true -> Ok ()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue