Small fixes
This commit is contained in:
parent
55cb5526eb
commit
4f8b06713f
@ -1,3 +1,6 @@
|
|||||||
|
// Very specific NIF just for key recovery.
|
||||||
|
// Partly from https://github.com/mbrix/libsecp256k1
|
||||||
|
|
||||||
#include "erl_nif.h"
|
#include "erl_nif.h"
|
||||||
#include "secp256k1_recovery.h"
|
#include "secp256k1_recovery.h"
|
||||||
|
|
||||||
@ -36,11 +39,11 @@ recover(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!enif_get_int(env, argv[2], &recid)) {
|
if (!enif_get_int(env, argv[2], &recid)) {
|
||||||
return error_result(env, "Recovery id invalid 0-3");
|
return error_result(env, "Recovery id invalid not integer 0-3");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (recid < 0 || recid > 3) {
|
if (recid < 0 || recid > 3) {
|
||||||
error_result(env, "Recovery id invalid 0-3x");
|
error_result(env, "Recovery id invalid 0-3");
|
||||||
}
|
}
|
||||||
|
|
||||||
result = secp256k1_ecdsa_recoverable_signature_parse_compact(ctx, &signature, csignature.data, recid);
|
result = secp256k1_ecdsa_recoverable_signature_parse_compact(ctx, &signature, csignature.data, recid);
|
||||||
|
@ -11,10 +11,6 @@ in {
|
|||||||
stable.stdenv
|
stable.stdenv
|
||||||
## erlang
|
## erlang
|
||||||
stable.erlangR21 # OTP 21.3.5.2
|
stable.erlangR21 # OTP 21.3.5.2
|
||||||
## rust, required for building the NIF
|
|
||||||
stable.rustc
|
|
||||||
stable.cargo
|
|
||||||
stable.cmake
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,8 @@
|
|||||||
{registered, []},
|
{registered, []},
|
||||||
{applications,
|
{applications,
|
||||||
[kernel,
|
[kernel,
|
||||||
stdlib
|
stdlib,
|
||||||
|
sha3
|
||||||
]},
|
]},
|
||||||
{env,[]},
|
{env,[]},
|
||||||
{modules, []},
|
{modules, []},
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
-module(ecrecover).
|
-module(ecrecover).
|
||||||
|
|
||||||
%% https://github.com/mbrix/libsecp256k1
|
|
||||||
|
|
||||||
%% API
|
%% API
|
||||||
-export([recover/2, recover/3]).
|
-export([recover/2, recover/3]).
|
||||||
|
|
||||||
@ -11,10 +9,6 @@
|
|||||||
|
|
||||||
%%=============================================================================
|
%%=============================================================================
|
||||||
%% NIF API
|
%% NIF API
|
||||||
%% GoodMsg1 = <<71,23,50,133,168,215,52,30,94,151,47,198,119,40,99,132,248,2,248,239,66,165,236,95,3,187,250,37,76,176,31,173>>.
|
|
||||||
%% GoodSig1_v = <<27,101,10,207,157,63,95,10,44,121,151,118,161,37,67,85,213,244,6,23,98,162,55,57,106,153,160,224,227,252,43,205,103,41,81,74,13,172,178,230,35,172,74,189,21,124,177,129,99,255,148,34,128,219,77,92,170,214,109,223,148,27,161,46,3>>.
|
|
||||||
%% ecrecover:recover(<<71,23,50,133,168,215,52,30,94,151,47,198,119,40,99,132,248,2,248,239,66,165,236,95,3,187,250,37,76,176,31,173>>, <<27,101,10,207,157,63,95,10,44,121,151,118,161,37,67,85,213,244,6,23,98,162,55,57,106,153,160,224,227,252,43,205,103,41,81,74,13,172,178,230,35,172,74,189,21,124,177,129,99,255,148,34,128,219,77,92,170,214,109,223,148,27,161,46,3>>).
|
|
||||||
%%
|
|
||||||
|
|
||||||
load() ->
|
load() ->
|
||||||
EbinDir = filename:dirname(code:which(?MODULE)),
|
EbinDir = filename:dirname(code:which(?MODULE)),
|
||||||
@ -29,6 +23,7 @@ not_loaded(Line) ->
|
|||||||
%%=============================================================================
|
%%=============================================================================
|
||||||
%% External API
|
%% External API
|
||||||
|
|
||||||
|
-spec recover(<<_:(32*8)>>, <<_:(65*8)>>) -> <<_:(32*8)>>.
|
||||||
recover(Hash, <<V, Sig:64/binary>>) when V == 27; V == 28 ->
|
recover(Hash, <<V, Sig:64/binary>>) when V == 27; V == 28 ->
|
||||||
RecId = V - 27,
|
RecId = V - 27,
|
||||||
case recover(Hash, Sig, RecId) of
|
case recover(Hash, Sig, RecId) of
|
||||||
@ -41,7 +36,7 @@ recover(Hash, <<V, Sig:64/binary>>) when V == 27; V == 28 ->
|
|||||||
recover(_Hash, _VSig) ->
|
recover(_Hash, _VSig) ->
|
||||||
<<0:256>>.
|
<<0:256>>.
|
||||||
|
|
||||||
-spec recover(<<_:(32*8)>>, <<_:(65*8)>>, integer()) -> <<_:(32*8)>>.
|
-spec recover(<<_:(32*8)>>, <<_:(64*8)>>, integer()) -> <<_:(32*8)>>.
|
||||||
recover(_Hash, _Sig, _RecId) ->
|
recover(_Hash, _Sig, _RecId) ->
|
||||||
not_loaded(?LINE).
|
not_loaded(?LINE).
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user