sodium: add sodium-bin>base64
parent
cefb0c6e9e
commit
39ab923224
|
@ -17,3 +17,40 @@ IN: sodium.tests
|
||||||
[ nip crypto-sign ]
|
[ nip crypto-sign ]
|
||||||
[ drop crypto-sign-verify ] 3bi
|
[ drop crypto-sign-verify ] 3bi
|
||||||
] unit-test
|
] unit-test
|
||||||
|
|
||||||
|
! https://github.com/sqrldev/sqrl-test-vectors/blob/master/vectors/enhash-vectors.txt
|
||||||
|
CONSTANT: base64-tests {
|
||||||
|
""
|
||||||
|
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
|
||||||
|
"_FHmfDKg6e6rE-hV-1dGCrtbmVUnQtByMvqkCXxdfuU"
|
||||||
|
"AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE"
|
||||||
|
"vhFHvj4Qdlv8VAsnTdRJ_YsdctXQpJ5Elh9aM-hI2yQ"
|
||||||
|
"__________________________________________8"
|
||||||
|
"yyHN-LfEkKdKNRkuUHWvpzYYJy3FhVJQusPGpvlGWsE"
|
||||||
|
"VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVU"
|
||||||
|
"bk7GPoNy_qWdAjZ-gF5GHmioZ0ZM04a8wQBvwxSQWnE"
|
||||||
|
"qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqo"
|
||||||
|
"TCDPMl3crNzjLnd94BiaVg0wV63oJ9TyKIu3gS33MA0"
|
||||||
|
"hA3Dw5BPbcuJQYQYRAukKBYa1u9m4pV5jtEpQ1DDtHk"
|
||||||
|
"EGisR5HKQFtLvqTcbZu7Xvl9_uySHlFaiaLxM5V5Ta0"
|
||||||
|
"3FI8xwyoFAU1eWsnAdAUh3D-SS-XiiWdiIGw7mGY2qk"
|
||||||
|
"chvqBddUlaePrIhevV1ap48P4cKR6B60i4oTnQ1BRuU"
|
||||||
|
"0jtFpgpHqvzcfSdKXJ5f8hXRAi0Ytf3K7zlXWN6dies"
|
||||||
|
"xH3LNXP0-SJnP-jtQaGXeIH3ZTK_6B-Vu_IT6wz4TjM"
|
||||||
|
"Wf5wO411DCEe53k7lPp_dh5pp06AEUCNpEXCi5KG0ro"
|
||||||
|
"iHNsJLKJ3InnB4a3D7nwzLGx-z4HXxXnnX6Ppp4fgRE"
|
||||||
|
"0g9euYTG7974KIhW6en7BP6-2S7u_9qabd1V-7SDIOU"
|
||||||
|
"-TAyGNEEkNuFceonDUF_Nz20RnlyTVpeDp92KGkCRxs"
|
||||||
|
"d1podenEZmoVmyP7gZ8XxAKW82jSt4QiX3mC4JnM_K8"
|
||||||
|
"rNZG4IAkyQAmKcoCQKOEyC34KAaU-wPA_2NY_5y7-Q4"
|
||||||
|
"8QROWCEzP0Ni2MwmlVKffsUm5MlX-pzxX03Q9D0zsYw"
|
||||||
|
"BK2JN4_78CwB3MSJjFEAwHQX-1efCOYNAvKn8-z4ALw"
|
||||||
|
"be30E76EBlTd_DW66KBUYZqYYhSr1eHhv-UMKrVHJOA"
|
||||||
|
"nrZb5PYuff38xgEP4dg6xpBzIk6XHauBFYqPD1KOu6g"
|
||||||
|
"Z_H_qwKAcqOilZTHIZKHhXLlRdWfty24UWWq-28a1wc"
|
||||||
|
"5CezCWqQX09B_MllxHQNmBE2080BADIBoMtqc5LZNfc"
|
||||||
|
}
|
||||||
|
|
||||||
|
{ t } [
|
||||||
|
base64-tests [ dup sodium-base64>bin sodium-bin>base64 = ] all?
|
||||||
|
] unit-test
|
||||||
|
|
|
@ -115,4 +115,14 @@ ERROR: sodium-malloc-error ;
|
||||||
sodium_base64_VARIANT_URLSAFE_NO_PADDING sodium_base642bin check0
|
sodium_base64_VARIANT_URLSAFE_NO_PADDING sodium_base642bin check0
|
||||||
bin bin-length size_t deref head ;
|
bin bin-length size_t deref head ;
|
||||||
|
|
||||||
|
: (base64-buffer) ( bin -- len byte-array )
|
||||||
|
length sodium_base64_VARIANT_URLSAFE_NO_PADDING sodium_base64_encoded_len
|
||||||
|
dup <byte-array> ;
|
||||||
|
|
||||||
|
:: sodium-bin>base64 ( byte-array -- string )
|
||||||
|
byte-array (base64-buffer) dup :> b64 swap
|
||||||
|
byte-array dup length sodium_base64_VARIANT_URLSAFE_NO_PADDING
|
||||||
|
sodium_bin2base64 0 = [ call-fail ] when b64 ascii decode unclip-last
|
||||||
|
CHAR: \0 = [ call-fail ] unless ;
|
||||||
|
|
||||||
[ sodium-init ] "sodium" add-startup-hook
|
[ sodium-init ] "sodium" add-startup-hook
|
||||||
|
|
Loading…
Reference in New Issue