Add keypair encoding, fix seckey size checks #57

Merged
uwiger merged 2 commits from uw-account_seckey into master 2026-03-30 05:26:10 +09:00
2 changed files with 4 additions and 6 deletions
Showing only changes of commit 4cc6adee2e - Show all commits

View File

@ -16,9 +16,7 @@
-export([encode_keypair/1,
safe_decode_keypair/1]).
-ifdef(TEST).
-export([encode_/2]). %% Encode without size checks
-endif.
-export([unsafe_encode/2]). %% Encode without size checks
-export_type([encoded/0,
known_type/0]).
@ -114,12 +112,12 @@ encode(id_hash, Payload) ->
encode(Type, Payload) ->
case type_size_check(Type, Payload) of
ok ->
encode_(Type, Payload);
unsafe_encode(Type, Payload);
{error, Reason} ->
erlang:error(Reason)
end.
encode_(Type, Payload) ->
unsafe_encode(Type, Payload) ->
Pfx = type2pfx(Type),
Enc = case type2enc(Type) of
?BASE58 -> base58_check(Payload);

View File

@ -91,7 +91,7 @@ encode_decode_test_(Types) ->
fun(S) ->
Key = <<42:S/unit:8>>,
?assertError(incorrect_size, ?TEST_MODULE:encode(Type, Key)),
EncodedKey = ?TEST_MODULE:encode_(Type, Key), %% no size check
EncodedKey = ?TEST_MODULE:unsafe_encode(Type, Key), %% no size check
{error, invalid_encoding} = ?TEST_MODULE:safe_decode(Type, EncodedKey)
end,
CheckIllegalSize(0),