This commit is contained in:
swrup 2025-11-28 19:17:25 +01:00
parent ab82a357a9
commit 99cd01f3da
2 changed files with 28 additions and 7 deletions

1
future_keys.json Normal file
View file

@ -0,0 +1 @@
{"future_denoms":[{"section_name":"kudo_1","value":"EUR:0.01","stamp_start":{"t_s":1764351819.8918703},"stamp_expire_withdraw":{"t_s":1795887819.8918703},"stamp_expire_deposit":{"t_s":1795887819.8918703},"stamp_expire_legal":{"t_s":1795887819.8918703},"denom_pub":{"cipher":"RSA","age_mask":0,"rsa_pub":"04000278E0AA19SGCMZ8SGX1K7Y7PZD5YPNQNASYCX31AQ68716M9J7PH176V0RKFR5BZABMQBHS87Y689SH3MSS85H3W5FPCG20RCC9CJX5A25DG4R0VFPV8BTVWSJNHKTCV8H6EGV4XCYK5SMSPF0CD6MQDA4B8TWKAZRX64CG5D9VX31QTG7T1PWE83SGMB0SWSGFASGRPDQD7B7P84J3AZEE07DTRHR8H0JYAK2QFZ8SFRPJ6ENHD8EJVC7P9PQD48WDSG74D88N8QG7EHSVVEZ0HCQH5RM4PH93XJ4NEMA497CC16JEM27DPR84KYZFTCF45RCQ707N3XXS59YXG8GASA7X6EYS0DBAQ8ZA325H8HY9WYNG4EW9Z85M6EGHTEQ2MSAZ2T480QHKXH049ZES4MEZ0000000004002==="},"fee_withdraw":"EUR:0.00","fee_deposit":"EUR:0.00","fee_refresh":"EUR:0.00","fee_refund":"EUR:0.00","denom_secmod_sig":"6DHYV6KVKJYF9WYWH2K2EY9YMQJV72NXPQQG8AW8AEGAS9BCXAVFA4Q2S3PH64MBF5ENBXRCNB6VE10XKSGRHTNJA31Q71EEZQYSY3R="},{"section_name":"kudo_2","value":"EUR:0.02","stamp_start":{"t_s":1764351819.9271259},"stamp_expire_withdraw":{"t_s":1795887819.9271259},"stamp_expire_deposit":{"t_s":1795887819.9271259},"stamp_expire_legal":{"t_s":1795887819.9271259},"denom_pub":{"cipher":"RSA","age_mask":0,"rsa_pub":"0400026K88KGNST1T1TK6C4NQNM01AHX738WTHKNX3863DTTM4BJAH8C3DKH1QRN4Z8BC5XE03E21WG3ZD627WAW71KEPMCQTW04XKX5X8EK87S0SANDF1RS1VMYF0Q2D47S3ACRNVEG4DBB3RD2Q420AQDD13EME1Q51SJ3YV4CAAHFHP7GXY7ZGHTFD8ANXMMCX8P5KVV8F2SGB6DKFYRGF4K2DD5Z1SSHZKHACSKR35YY29NVBY06BPQJGQ4ZA4DYJV3ZZXBJEBYFESWHHW207AGKKEVXZRW7HGK25DK0Z2EVHNNXQHK6BES0WPMYAM5WWH5PWE0VD7THK6M3GDS78DV0ADQ8DJDJQRQJY8N93ABRTXBFC11EHQ34E1AKXK13RZ4CH5J11YC83SJ3CEGH5Z3W8T9K0000000004002==="},"fee_withdraw":"EUR:0.00","fee_deposit":"EUR:0.00","fee_refresh":"EUR:0.00","fee_refund":"EUR:0.00","denom_secmod_sig":"6J81436PDKAR8G9Z3QF6YF6QB12K66MK79N4RVT6VGWSVYJENDGSDESG33940DA6W45PHZ15NVHESMADSYXPYFCB6660TNCKBKVD83R="}],"future_signkeys":[{"key":"YBYC5P5WY59VKN217Y4X515HHRZ2PJSS5H83ECFV1VNM6DSKDD50====","stamp_start":{"t_s":1764351819.891798},"stamp_expire":{"t_s":1795887819.891798},"stamp_end":{"t_s":1795887819.891798},"signkey_secmod_sig":"WJBDVXW24CEQPEXY5Y0KKTA28ETQ9DFQHSZE69TYB3RSGMT1CZ2QS60B6FE45SES8DKDHYAZMPDFK8MX74A9FBMJ8TFH5X7RRKWVG00="}],"master_pub":"SJ0NYND22VQP3MP7FM754RDX8HCKVWAXTHY9SQNBTPRJZ2SPM2S0====","denom_secmod_public_key":"N9K968KEAYWSYGVPZG1D5X4Q3EC394TKJXN34WP6QXFMBYENY3N0====","signkey_secmod_public_key":"MPB9VR2AD7K8ZR8K2B2YWAQSXNKZSGC2888TY18KWERPMV4V6DCG===="}

View file

@ -113,17 +113,27 @@ module RsaPublicKey = struct
String.sub src pos len |> rev_string len |> Z.of_bits
let to_octets ({ n; e } : Mirage_crypto_pk.Rsa.pub) =
let n_len = Z.size n in
let e_len = Z.size e in
let n = Z.to_bits n in
let e = Z.to_bits e in
let n_len = String.length n in
let e_len = String.length e in
let len = 4 + n_len + e_len in
Fmt.epr "to_octets n_len: %d@." n_len;
Fmt.epr "to_octets e_len: %d@." e_len;
Fmt.epr "to_octets len: %d@." len;
let b = Bytes.make len '\x00' in
Bytes.set_uint16_be b 0 n_len;
Bytes.set_uint16_be b 2 e_len;
let n = Z.to_bits n |> rev_string n_len in
let e = Z.to_bits e |> rev_string e_len in
let n = rev_string n_len n in
let e = rev_string e_len e in
Bytes.blit_string n 0 b 4 n_len;
let s = Bytes.to_string b in
Fmt.epr "s = `%S`@." s;
Bytes.blit_string e 0 b (4 + n_len) e_len;
Bytes.unsafe_to_string b
let s = Bytes.to_string b in
Fmt.epr "s = `%S`@." s;
let s = Bytes.to_string b in
Fmt.epr "s = `%S`@." s; s
let of_octets =
let check = function
@ -131,17 +141,27 @@ module RsaPublicKey = struct
| true -> Ok ()
in
fun s ->
Result.get_ok
@@
let open Syntax in
(*Fmt.epr "RsaPublicKey.of_octets s = `%s`@." s;*)
let len = String.length s in
let* () = check (len >= 4) in
let n_len = String.get_uint16_be s 0 in
let e_len = String.get_uint16_be s 2 in
Fmt.epr "n_len: %d@." n_len;
Fmt.epr "e_len: %d@." e_len;
let* () = check (len = n_len + e_len + 4) in
let n = z_of_bits_be s 4 n_len in
let e = z_of_bits_be s (4 + n_len) e_len in
Fmt.epr "n: %s@." (Z.to_string n);
Fmt.epr "e: %s@." (Z.to_string e);
Mirage_crypto_pk.Rsa.pub ~n ~e |> unwrap_err_msg
let of_octets s =
match of_octets s with
| Error e ->
Fmt.epr "RsaPublicKey.of_octets failure: %s@." e;
exit 1
| Ok v -> v
end
include Binary