aaaaaaaaaaaaaaaaaaaaaarrgh
This commit is contained in:
parent
867ef1f47b
commit
da29f5bae3
3 changed files with 45 additions and 9 deletions
|
|
@ -283,12 +283,13 @@ end = struct
|
||||||
let age_mask = 0_l in
|
let age_mask = 0_l in
|
||||||
let cipher = cipher_to_int32 RSA in
|
let cipher = cipher_to_int32 RSA in
|
||||||
let pub = RsaPublicKey.to_octets pub in
|
let pub = RsaPublicKey.to_octets pub in
|
||||||
let pub_len = String.length pub in
|
let len = String.length pub in
|
||||||
let b = Bytes.create (4 + 4 + pub_len) in
|
let b = Bytes.create (4 + 4 + len) in
|
||||||
Bytes.set_int32_be b 0 age_mask;
|
Bytes.set_int32_be b 0 age_mask;
|
||||||
Bytes.set_int32_be b 4 cipher;
|
Bytes.set_int32_be b 4 cipher;
|
||||||
Bytes.blit_string pub 0 b (4 + 4) pub_len;
|
Bytes.blit_string pub 0 b 8 len;
|
||||||
SHA512.(digest_bytes b)
|
let s = Bytes.to_string b in
|
||||||
|
SHA512.digest_string s
|
||||||
|
|
||||||
let of_octets s =
|
let of_octets s =
|
||||||
match SHA512.of_raw_string_opt s with
|
match SHA512.of_raw_string_opt s with
|
||||||
|
|
|
||||||
|
|
@ -99,9 +99,8 @@ let () =
|
||||||
"3KHKZJZ30ABB4E56MA2V0EQWGCWH0QQG9P2ZHYHR186C5HZXJMM4N9WXAQTKS94QSV9Y17GGNXN5MB1PZZFG7Q0FY88QPKKRG4MYCPSMTZK5W59R0MJVNJ4P4AQM96TDG5W7RV8GSNR1QQZ1GNHW3CX6D6ZRTMXB2NKB5SSYTDJS79F5ZFBRZ4HVED9JBBPWSR79KVV5QQ4APBGHBCKGMF9NJJS53A1BVYHDEVYAGFYF2SNEP827ZP50FKJ5GKGV8NQ15ESEZ69AT7GJG0T3TZVENY2YN9CVR98W3BKEZ53J7VTANARG8SJS8AMJQ7S23P5HRJ7XE9KTNRNXKH49MXV9JHHYE5535N7AGWEKR47SBCGNF44Z7XJ9RV5BQV12ZRJKN4HBZQHDNCMH3QKX9Z6G64"
|
"3KHKZJZ30ABB4E56MA2V0EQWGCWH0QQG9P2ZHYHR186C5HZXJMM4N9WXAQTKS94QSV9Y17GGNXN5MB1PZZFG7Q0FY88QPKKRG4MYCPSMTZK5W59R0MJVNJ4P4AQM96TDG5W7RV8GSNR1QQZ1GNHW3CX6D6ZRTMXB2NKB5SSYTDJS79F5ZFBRZ4HVED9JBBPWSR79KVV5QQ4APBGHBCKGMF9NJJS53A1BVYHDEVYAGFYF2SNEP827ZP50FKJ5GKGV8NQ15ESEZ69AT7GJG0T3TZVENY2YN9CVR98W3BKEZ53J7VTANARG8SJS8AMJQ7S23P5HRJ7XE9KTNRNXKH49MXV9JHHYE5535N7AGWEKR47SBCGNF44Z7XJ9RV5BQV12ZRJKN4HBZQHDNCMH3QKX9Z6G64"
|
||||||
in
|
in
|
||||||
let open Crypto in
|
let open Crypto in
|
||||||
let pub =
|
let pub = rsa_public_key |> RsaPublicKey.of_b32 |> Result.get_ok in
|
||||||
rsa_public_key |> decode |> RsaPublicKey.of_octets |> Result.get_ok
|
assert (RsaPublicKey.to_b32 pub = rsa_public_key);
|
||||||
in
|
|
||||||
let bks = blinding_key_secret |> decode in
|
let bks = blinding_key_secret |> decode in
|
||||||
let msg = decode message_hash in
|
let msg = decode message_hash in
|
||||||
let bmsg = Fdh_rsa.blind_msg pub ~bks msg in
|
let bmsg = Fdh_rsa.blind_msg pub ~bks msg in
|
||||||
|
|
@ -123,3 +122,34 @@ let () =
|
||||||
assert (Result.is_ok res);
|
assert (Result.is_ok res);
|
||||||
|
|
||||||
()
|
()
|
||||||
|
|
||||||
|
(* denomination-hash test value from taler-wallet-core/src/withdraw.test.ts *)
|
||||||
|
let test1 =
|
||||||
|
( "040000XT67C8KBD6B75TTQ3SK8FWXMNQW4372T3BDDGPAMB9RFCA03638W8T3F71WFEFK9NP32VKYVNFXPYRWQ1N1HDKV5J0DFEKHBPJCYSWCBJDRNWD7G8BN8PT97FA9AMV75MYEK4X54D1HGJ207JSVJBGFCATSPNTEYNHEQF1F220W00TBZR1HNPDQFD56FG0DJQ9KGHM8EC33H6AY9YN9CNX5R3Z4TZ4Q23W47SBHB13H6W74FQJG1F50X38VRSC4SR8RWBAFB7S4K8D2H4NMRFSQT892A3T0BTBW7HM5C0H2CK6FRKG31F7W9WP1S29013K5CXYE55CT8TH6N8J9B780R42Y5S3ZB6J6E9H76XBPSGH4TGYSR2VZRB98J417KCQMZKX1BB67E7W5KVE37TC9SJ904002",
|
||||||
|
"Q21FQSSG4FXNT96Z14CHXM8N1RZAG9GPHAV8PRWS0PZAAVWH7PBW6R97M2CH19KKP65NNSWXY7B6S53PT3CBM342E357ZXDDJ8RDVW8"
|
||||||
|
)
|
||||||
|
|
||||||
|
let test2 =
|
||||||
|
( "040000Y63CF78QFPKRY77BRK9P557Q1GQWX3NCZ3HSYSK0Z7TT0KGRA7N4SKBKEHSTVHX1Z9DNXMJR4EXSY1TXCKV0GJ3T3YYC6Z0JNMJFVYQAV4FX5J90NZH1N33MZTV8HS9SMNAA9S6K73G4P99GYBB01B0P6M1KXZ5JRDR7VWBR3MEJHHGJ6QBMCJR3NWJRE3WJW9PRY8QPQ2S7KFWTWRESH2DBXCXWBD2SRN6P9YX8GRAEMFEGXC9V5GVJTEMH6ZDGNXFPWZE3JVJ2Q4N9GDYKBCHZCJ7M7M2RJ9ZV4Y64NAN9BT6XDC68215GKKRHTW1BBF1MYY6AR3JCTT9HYAM923RMVQR3TAEB7SDX8J76XRZWYH3AGJCZAQGMN5C8SSH9AHQ9RNQJQ15CN45R37X4YNFJV904002",
|
||||||
|
"447WA23SCBATMABHA0793F92MYTBYVPYMMQHCPKMKVY5P7RZRFMQ6VRW0Y8HRA7177GTBT0TBT08R21DZD129AJ995H9G09XBFE55G8"
|
||||||
|
)
|
||||||
|
|
||||||
|
let () =
|
||||||
|
let f (rsa_pub, h_pub) =
|
||||||
|
let open Crypto in
|
||||||
|
assert (
|
||||||
|
rsa_pub
|
||||||
|
|> RsaPublicKey.of_b32
|
||||||
|
|> Result.get_ok
|
||||||
|
|> RsaPublicKey.to_octets
|
||||||
|
= (rsa_pub |> B32.decode |> Result.get_ok));
|
||||||
|
|
||||||
|
let h_pub' =
|
||||||
|
DenominationHash.to_b32
|
||||||
|
(DenominationHash.hash_of_rsa
|
||||||
|
(Result.get_ok @@ RsaPublicKey.of_b32 rsa_pub))
|
||||||
|
in
|
||||||
|
Fmt.pr "--@."; Fmt.pr "@.%s@." h_pub; Fmt.pr "@.%s@." h_pub'
|
||||||
|
in
|
||||||
|
|
||||||
|
f test1; f test2
|
||||||
|
|
|
||||||
|
|
@ -74,8 +74,13 @@ let keys content =
|
||||||
let denom_l = v.denominations |> Denomination.denoms_of_denomgroups in
|
let denom_l = v.denominations |> Denomination.denoms_of_denomgroups in
|
||||||
let* () =
|
let* () =
|
||||||
denom_l
|
denom_l
|
||||||
|> list_iter
|
|> list_iter (fun dn ->
|
||||||
(Denomination.verify_denomination_key_validity ~key:v.master_public_key)
|
let* () =
|
||||||
|
Denomination.verify_denomination_key_validity ~key:v.master_public_key
|
||||||
|
dn
|
||||||
|
in
|
||||||
|
Fmt.pr "validated a denom@.";
|
||||||
|
Ok ())
|
||||||
in
|
in
|
||||||
let* () =
|
let* () =
|
||||||
let last_issue_date =
|
let last_issue_date =
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue