This commit is contained in:
parent
0fd45ae1e7
commit
2d49209142
4 changed files with 16 additions and 8 deletions
|
|
@ -14,7 +14,7 @@ db = postgres
|
||||||
attribute_encryption_key = "deadbeef"
|
attribute_encryption_key = "deadbeef"
|
||||||
port = 3434
|
port = 3434
|
||||||
bind_to = localhost
|
bind_to = localhost
|
||||||
master_public_key = "SJ0NYND22VQP3MP7FM754RDX8HCKVWAXTHY9SQNBTPRJZ2SPM2S0===="
|
master_public_key = "SJ0NYND22VQP3MP7FM754RDX8HCKVWAXTHY9SQNBTPRJZ2SPM2S0"
|
||||||
stefan_abs = EUR:0.00
|
stefan_abs = EUR:0.00
|
||||||
stefan_log = EUR:0.00
|
stefan_log = EUR:0.00
|
||||||
stefan_lin = 0.00
|
stefan_lin = 0.00
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
A17JXR3E6J4CXDPYT7S1H25PGJ3ABS26TQ38654QCX0TB59RPMF0====
|
A17JXR3E6J4CXDPYT7S1H25PGJ3ABS26TQ38654QCX0TB59RPMF0
|
||||||
|
|
|
||||||
16
src/b32.ml
16
src/b32.ml
|
|
@ -1,4 +1,3 @@
|
||||||
(* TODO test *)
|
|
||||||
(* Crockford's variant of Base32
|
(* Crockford's variant of Base32
|
||||||
http://www.crockford.com/wrmg/base32.html
|
http://www.crockford.com/wrmg/base32.html
|
||||||
except that:
|
except that:
|
||||||
|
|
@ -6,11 +5,18 @@
|
||||||
- '-' is not allowed
|
- '-' is not allowed
|
||||||
- checksum is not allowed *)
|
- checksum is not allowed *)
|
||||||
|
|
||||||
(* 'I' 'L' 'O' 'U' excluded *)
|
(* 'I' 'L' 'O' 'U' excluded
|
||||||
|
no '=' padding in encoded string *)
|
||||||
type t = string
|
type t = string
|
||||||
|
|
||||||
let alphabet = Base32.make_alphabet "0123456789ABCDEFGHJKMNPQRSTVWXYZ"
|
let alphabet = Base32.make_alphabet "0123456789ABCDEFGHJKMNPQRSTVWXYZ"
|
||||||
let encode s = Base32.encode_string ~alphabet s
|
|
||||||
|
let encode s =
|
||||||
|
let s = Base32.encode_string ~alphabet s in
|
||||||
|
(* remove '=' padding *)
|
||||||
|
match String.index_opt s '=' with
|
||||||
|
| None -> s
|
||||||
|
| Some i -> String.sub s 0 i
|
||||||
|
|
||||||
let decode s =
|
let decode s =
|
||||||
let s =
|
let s =
|
||||||
|
|
@ -23,6 +29,10 @@ let decode s =
|
||||||
| c -> c)
|
| c -> c)
|
||||||
s
|
s
|
||||||
in
|
in
|
||||||
|
(* restore padding for base32 lib *)
|
||||||
|
let n = 8 - (String.length s mod 8) in
|
||||||
|
let pad = String.make n '=' in
|
||||||
|
let s = s ^ pad in
|
||||||
match Base32.decode ~alphabet ~off:0 ~len:(String.length s) s with
|
match Base32.decode ~alphabet ~off:0 ~len:(String.length s) s with
|
||||||
| Error (`Msg e) -> Error e
|
| Error (`Msg e) -> Error e
|
||||||
| Ok v -> Ok v
|
| Ok v -> Ok v
|
||||||
|
|
|
||||||
|
|
@ -110,19 +110,17 @@ let () =
|
||||||
|
|
||||||
let () =
|
let () =
|
||||||
let v =
|
let v =
|
||||||
"04000274VF2F65WWABKGZYHREQWAFTVPMWEK9EQYMCPP1E6CMC224XDDDBVM7NRMNDX3TETHTK5G7GPPPYGN08FEMSY6B7NGBE8AYMG5HWT2BXRSAHAWDWW5Y16YVGXJG0BCKW3X17EWEF8MNGFGJBKVWQV5WPT0R2QK82QXFHFVGP3HR1D8HF69JXBC22B62M4SFETRJNXRG2GXX03BETSNQW0X7BYTMFJX5JQH4B2KJMABB02RFSNNMND7CT7MSAX5SCZY5ZB9XS4ZDKA9AVTS11V790KXXBSFZSD3NNEHKB6RS99RJD3MDJE04G1Q83HR50N5NVBDW3HPJZKQS5SSG7R2R2F7K8P06HJ4YSQFF52GF3RZW22N4FRQ28KQ2JZMZ1GJS1KBNHNNMS1RW9DZQ3882Z5V0000000004002==="
|
"04000274VF2F65WWABKGZYHREQWAFTVPMWEK9EQYMCPP1E6CMC224XDDDBVM7NRMNDX3TETHTK5G7GPPPYGN08FEMSY6B7NGBE8AYMG5HWT2BXRSAHAWDWW5Y16YVGXJG0BCKW3X17EWEF8MNGFGJBKVWQV5WPT0R2QK82QXFHFVGP3HR1D8HF69JXBC22B62M4SFETRJNXRG2GXX03BETSNQW0X7BYTMFJX5JQH4B2KJMABB02RFSNNMND7CT7MSAX5SCZY5ZB9XS4ZDKA9AVTS11V790KXXBSFZSD3NNEHKB6RS99RJD3MDJE04G1Q83HR50N5NVBDW3HPJZKQS5SSG7R2R2F7K8P06HJ4YSQFF52GF3RZW22N4FRQ28KQ2JZMZ1GJS1KBNHNNMS1RW9DZQ3882Z5V0000000004002"
|
||||||
in
|
in
|
||||||
let decode s = B32.decode s |> get_ok in
|
let decode s = B32.decode s |> get_ok in
|
||||||
let v' = B32.encode (decode v) in
|
let v' = B32.encode (decode v) in
|
||||||
let v'' = B32.encode (decode v') in
|
let v'' = B32.encode (decode v') in
|
||||||
(*
|
|
||||||
Fmt.pr "v : %s@." v;
|
Fmt.pr "v : %s@." v;
|
||||||
Fmt.pr "v' : %s@." v';
|
Fmt.pr "v' : %s@." v';
|
||||||
Fmt.pr "v'': %s@." v'';
|
Fmt.pr "v'': %s@." v'';
|
||||||
Fmt.pr "len v : %d@." (String.length v);
|
Fmt.pr "len v : %d@." (String.length v);
|
||||||
Fmt.pr "len v' : %d@." (String.length v');
|
Fmt.pr "len v' : %d@." (String.length v');
|
||||||
Fmt.pr "len v'': %d@." (String.length v'');
|
Fmt.pr "len v'': %d@." (String.length v'');
|
||||||
*)
|
|
||||||
assert (v = v');
|
assert (v = v');
|
||||||
assert (v' = v'');
|
assert (v' = v'');
|
||||||
()
|
()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue