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

View File

@ -91,7 +91,7 @@ encode_decode_test_(Types) ->
fun(S) -> fun(S) ->
Key = <<42:S/unit:8>>, Key = <<42:S/unit:8>>,
?assertError(incorrect_size, ?TEST_MODULE:encode(Type, Key)), ?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) {error, invalid_encoding} = ?TEST_MODULE:safe_decode(Type, EncodedKey)
end, end,
CheckIllegalSize(0), CheckIllegalSize(0),