Add keypair encoding, fix seckey size checks #57
@ -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);
|
||||||
|
|||||||
@ -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),
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user