ferd / erlpass Goto Github PK
View Code? Open in Web Editor NEWA library to handle password hashing and changing in a safe manner, independent from any kind of storage whatsoever.
License: MIT License
A library to handle password hashing and changing in a safe manner, independent from any kind of storage whatsoever.
License: MIT License
Hey Fred,
Can you publish this to Hex?
Thanks!
drasko@Mando:~/erlang/abstract$ make
make[1]: Entering directory '/home/drasko/erlang/abstract/deps/erlpass'
make[2]: Entering directory '/home/drasko/erlang/abstract/deps/bcrypt'
cc -c -o c_src/bcrypt_port.o c_src/bcrypt_port.c -finline-functions -Wall -fPIC -I "/usr/lib/erlang/erts-11.1.3/include" -I "/usr/lib/erlang/lib/erl_interface-4.0.1/include" -Ic_src -Wall -fPIC -finline-functions -Wall -fPIC -I "/usr/lib/erlang/erts-11.1.3/include" -I "/usr/lib/erlang/lib/erl_interface-4.0.1/include"
c_src/bcrypt_port.c:20:10: fatal error: erl_interface.h: No such file or directory
20 | #include <erl_interface.h>
| ^~~~~~~~~~~~~~~~~
compilation terminated.
make[3]: *** [c_src/Makefile.erlang.mk:11: c_src/bcrypt_port.o] Error 1
make[2]: *** [Makefile:22: pre-app] Error 2
make[2]: Leaving directory '/home/drasko/erlang/abstract/deps/bcrypt'
make[1]: *** [/home/drasko/erlang/abstract/erlang.mk:4441: deps] Error 2
make[1]: Leaving directory '/home/drasko/erlang/abstract/deps/erlpass'
make: *** [erlang.mk:4441: deps] Error 2
Would be nice to use time constant comparison in erlpass:match().
Sample implementation of time constant comparison merged in erlang-oauth
janl/erlang-oauth@8abf2d6
Problem description:
http://codahale.com/a-lesson-in-timing-attacks/
Would it be possible to switch the bcrypt dep from chef to smarkets? It’s more up-to-date and it compiles on Alpine, which is not the case for the chef version.
erlpass currently relies on a version of bcrypt that uses rand_bytes. Since rand_bytes is nowadays removed from OTP (in 20+) you are bound to OTP 19 if you want to use erlpass.
There are however bcrypt versions made (mentioned in the issue on the bcrypt repo that erlpass is using) that has been updated to use strong_rand_bytes instead when compiled with OTP 20+. Is there any chance that erlpass could update its dependency to some updated bcrypt so that one could migrate an app using erlpass to something above OTP 19?
debian buster
erlang 24.0.5-1 multiple pkgs from erlang-solution
rebar3 up to date from your repo
Hi Ferd,
Not sure I did not goofed, hence the question mark.
I git clonehttps://github.com/ferd/erlpass
,
rebar3 get-deps
and rebar3 compile
with seven warnings :
rebar3 compile
===> Verifying dependencies...
make: Entering directory '/tmp/erlpass/_build/default/lib/bcrypt/c_src'
cc -O3 -std=c99 -finline-functions -Wall -Wmissing-prototypes -D_BSD_SOURCE -fPIC -I /usr/lib/erlang/erts-12.0.3/include/ -I /usr/lib/erlang/lib/erl_interface-5.0.1/include -c -o /tmp/erlpass/_build/default/lib/bcrypt/c_src/blowfish.o /tmp/erlpass/_build/default/lib/bcrypt/c_src/blowfish.c
In file included from /usr/include/x86_64-linux-gnu/sys/types.h:25,
from /tmp/erlpass/_build/default/lib/bcrypt/c_src/blowfish.c:47:
/usr/include/features.h:184:3: warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Wcpp]
# warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
^~~~~~~
cc -O3 -std=c99 -finline-functions -Wall -Wmissing-prototypes -D_BSD_SOURCE -fPIC -I /usr/lib/erlang/erts-12.0.3/include/ -I /usr/lib/erlang/lib/erl_interface-5.0.1/include -c -o /tmp/erlpass/_build/default/lib/bcrypt/c_src/bcrypt_port.o /tmp/erlpass/_build/default/lib/bcrypt/c_src/bcrypt_port.c
In file included from /usr/include/x86_64-linux-gnu/bits/libc-header-start.h:33,
from /usr/include/stdio.h:27,
from /tmp/erlpass/_build/default/lib/bcrypt/c_src/bcrypt_port.c:17:
/usr/include/features.h:184:3: warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Wcpp]
# warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
^~~~~~~
cc -O3 -std=c99 -finline-functions -Wall -Wmissing-prototypes -D_BSD_SOURCE -fPIC -I /usr/lib/erlang/erts-12.0.3/include/ -I /usr/lib/erlang/lib/erl_interface-5.0.1/include -c -o /tmp/erlpass/_build/default/lib/bcrypt/c_src/async_queue.o /tmp/erlpass/_build/default/lib/bcrypt/c_src/async_queue.c
In file included from /usr/include/x86_64-linux-gnu/sys/types.h:25,
from /tmp/erlpass/_build/default/lib/bcrypt/c_src/async_queue.h:36,
from /tmp/erlpass/_build/default/lib/bcrypt/c_src/async_queue.c:32:
/usr/include/features.h:184:3: warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Wcpp]
# warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
^~~~~~~
cc -O3 -std=c99 -finline-functions -Wall -Wmissing-prototypes -D_BSD_SOURCE -fPIC -I /usr/lib/erlang/erts-12.0.3/include/ -I /usr/lib/erlang/lib/erl_interface-5.0.1/include -c -o /tmp/erlpass/_build/default/lib/bcrypt/c_src/bcrypt.o /tmp/erlpass/_build/default/lib/bcrypt/c_src/bcrypt.c
In file included from /usr/include/x86_64-linux-gnu/bits/libc-header-start.h:33,
from /usr/include/stdio.h:27,
from /tmp/erlpass/_build/default/lib/bcrypt/c_src/bcrypt.c:48:
/usr/include/features.h:184:3: warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Wcpp]
# warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
^~~~~~~
/tmp/erlpass/_build/default/lib/bcrypt/c_src/bcrypt.c: In function ‘encode_salt’:
/tmp/erlpass/_build/default/lib/bcrypt/c_src/bcrypt.c:137:31: warning: ‘snprintf’ output may be truncated before the last format character [-Wformat-truncation=]
snprintf(salt + 4, 4, "%2.2u$", logr);
^
/tmp/erlpass/_build/default/lib/bcrypt/c_src/bcrypt.c:137:2: note: ‘snprintf’ output between 4 and 5 bytes into a destination of size 4
snprintf(salt + 4, 4, "%2.2u$", logr);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/erlpass/_build/default/lib/bcrypt/c_src/bcrypt.c: In function ‘ts_bcrypt’:
/tmp/erlpass/_build/default/lib/bcrypt/c_src/bcrypt.c:241:36: warning: ‘snprintf’ output may be truncated before the last format character [-Wformat-truncation=]
snprintf(encrypted + i, 4, "%2.2u$", logr);
^
/tmp/erlpass/_build/default/lib/bcrypt/c_src/bcrypt.c:241:2: note: ‘snprintf’ output between 4 and 5 bytes into a destination of size 4
snprintf(encrypted + i, 4, "%2.2u$", logr);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc -O3 -std=c99 -finline-functions -Wall -Wmissing-prototypes -D_BSD_SOURCE -fPIC -I /usr/lib/erlang/erts-12.0.3/include/ -I /usr/lib/erlang/lib/erl_interface-5.0.1/include -c -o /tmp/erlpass/_build/default/lib/bcrypt/c_src/bcrypt_nif.o /tmp/erlpass/_build/default/lib/bcrypt/c_src/bcrypt_nif.c
In file included from /usr/include/assert.h:35,
from /tmp/erlpass/_build/default/lib/bcrypt/c_src/bcrypt_nif.c:17:
/usr/include/features.h:184:3: warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Wcpp]
# warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
^~~~~~~
cc /tmp/erlpass/_build/default/lib/bcrypt/c_src/blowfish.o /tmp/erlpass/_build/default/lib/bcrypt/c_src/bcrypt_port.o /tmp/erlpass/_build/default/lib/bcrypt/c_src/async_queue.o /tmp/erlpass/_build/default/lib/bcrypt/c_src/bcrypt.o /tmp/erlpass/_build/default/lib/bcrypt/c_src/bcrypt_nif.o -shared -L /usr/lib/erlang/lib/erl_interface-5.0.1/lib -lei -lpthread -o /tmp/erlpass/_build/default/lib/bcrypt/c_src/../priv/bcrypt_nif.so
cc -O3 -std=c99 -finline-functions -Wall -Wmissing-prototypes -D_BSD_SOURCE -fPIC -I /usr/lib/erlang/erts-12.0.3/include/ -I /usr/lib/erlang/lib/erl_interface-5.0.1/include bcrypt_port.o bcrypt.o blowfish.o -L /usr/lib/erlang/lib/erl_interface-5.0.1/lib -lei -lpthread -o ../priv/bcrypt
make: Leaving directory '/tmp/erlpass/_build/default/lib/bcrypt/c_src'
===> Analyzing applications...
===> Compiling poolboy
===> Compiling bcrypt
===> Analyzing applications...
===> Compiling erlpass
then I erl -pa _build/default/lib/*/ebin
(this is the part I'm not absolutely sure about)
then, in the console : application:ensure_all_started(erlpass).
and it failed badly with this :
1> application:ensure_all_started(erlpass).
=WARNING REPORT==== 29-Aug-2021::16:07:46.342446 ===
The on_load function for module bcrypt_nif returned:
{error,{load_failed,"Failed to load NIF library: '_build/default/lib/bcrypt/priv/bcrypt_nif.so: failed to map segment from shared object'"}}
=SUPERVISOR REPORT==== 29-Aug-2021::16:07:46.342567 ===
supervisor: {local,bcrypt_nif_pool_sup}
errorContext: start_error
reason: {{badmatch,
{error,
{undef,
[{bcrypt_nif,create_ctx,[],[]},
{bcrypt_nif_worker,init,1,
[{file,
"/tmp/erlpass/_build/default/lib/bcrypt/src/bcrypt_nif_worker.erl"},
{line,42}]},
{gen_server,init_it,2,
[{file,"gen_server.erl"},{line,423}]},
{gen_server,init_it,6,
[{file,"gen_server.erl"},{line,390}]},
{proc_lib,init_p_do_apply,3,
[{file,"proc_lib.erl"},{line,226}]}]}}},
[{poolboy,new_worker,1,
[{file,
"/tmp/erlpass/_build/default/lib/poolboy/src/poolboy.erl"},
{line,283}]},
{poolboy,prepopulate,3,
[{file,
"/tmp/erlpass/_build/default/lib/poolboy/src/poolboy.erl"},
{line,304}]},
{poolboy,init,3,
[{file,
"/tmp/erlpass/_build/default/lib/poolboy/src/poolboy.erl"},
{line,153}]},
{gen_server,init_it,2,[{file,"gen_server.erl"},{line,423}]},
{gen_server,init_it,6,[{file,"gen_server.erl"},{line,390}]},
{proc_lib,init_p_do_apply,3,
[{file,"proc_lib.erl"},{line,226}]}]}
offender: [{pid,undefined},
{id,bcrypt_nif_pool},
{mfargs,{poolboy,start_link,
[[{name,{local,bcrypt_nif_pool}},
{nif_pool_size,4},
{nif_pool_max_overflow,10},
{worker_module,bcrypt_nif_worker}],
[]]}},
{restart_type,permanent},
{significant,false},
{shutdown,5000},
{child_type,worker}]
=SUPERVISOR REPORT==== 29-Aug-2021::16:07:46.351917 ===
supervisor: {local,bcrypt_sup}
errorContext: start_error
reason: {shutdown,
{failed_to_start_child,bcrypt_nif_pool,
{{badmatch,
{error,
{undef,
[{bcrypt_nif,create_ctx,[],[]},
{bcrypt_nif_worker,init,1,
[{file,
"/tmp/erlpass/_build/default/lib/bcrypt/src/bcrypt_nif_worker.erl"},
{line,42}]},
{gen_server,init_it,2,[{file,"gen_server.erl"},{line,423}]},
{gen_server,init_it,6,[{file,"gen_server.erl"},{line,390}]},
{proc_lib,init_p_do_apply,3,
[{file,"proc_lib.erl"},{line,226}]}]}}},
[{poolboy,new_worker,1,
[{file,
"/tmp/erlpass/_build/default/lib/poolboy/src/poolboy.erl"},
{line,283}]},
{poolboy,prepopulate,3,
[{file,
"/tmp/erlpass/_build/default/lib/poolboy/src/poolboy.erl"},
{line,304}]},
{poolboy,init,3,
[{file,
"/tmp/erlpass/_build/default/lib/poolboy/src/poolboy.erl"},
{line,153}]},
{gen_server,init_it,2,[{file,"gen_server.erl"},{line,423}]},
{gen_server,init_it,6,[{file,"gen_server.erl"},{line,390}]},
{proc_lib,init_p_do_apply,3,
[{file,"proc_lib.erl"},{line,226}]}]}}}
offender: [{pid,undefined},
{id,bcrypt_nif_pool_sup},
{mfargs,{bcrypt_nif_pool_sup,start_link,[]}},
{restart_type,permanent},
{significant,false},
{shutdown,4294967295},
{child_type,supervisor}]
=CRASH REPORT==== 29-Aug-2021::16:07:46.342948 ===
crasher:
initial call: bcrypt_nif_worker:init/1
pid: <0.91.0>
registered_name: []
exception error: undefined function bcrypt_nif:create_ctx/0
in function bcrypt_nif_worker:init/1 (/tmp/erlpass/_build/default/lib/bcrypt/src/bcrypt_nif_worker.erl, line 42)
in call from gen_server:init_it/2 (gen_server.erl, line 423)
in call from gen_server:init_it/6 (gen_server.erl, line 390)
ancestors: [<0.90.0>,bcrypt_nif_pool,bcrypt_nif_pool_sup,bcrypt_sup,
<0.86.0>]
message_queue_len: 0
messages: []
links: [<0.90.0>]
dictionary: []
trap_exit: true
status: running
heap_size: 610
stack_size: 29
reductions: 208
neighbours:
=CRASH REPORT==== 29-Aug-2021::16:07:46.343070 ===
crasher:
initial call: poolboy:init/1
pid: <0.89.0>
registered_name: []
exception error: no match of right hand side value
{error,
{undef,
[{bcrypt_nif,create_ctx,[],[]},
{bcrypt_nif_worker,init,1,
[{file,
"/tmp/erlpass/_build/default/lib/bcrypt/src/bcrypt_nif_worker.erl"},
{line,42}]},
{gen_server,init_it,2,
[{file,"gen_server.erl"},{line,423}]},
{gen_server,init_it,6,
[{file,"gen_server.erl"},{line,390}]},
{proc_lib,init_p_do_apply,3,
[{file,"proc_lib.erl"},{line,226}]}]}}
in function poolboy:new_worker/1 (/tmp/erlpass/_build/default/lib/poolboy/src/poolboy.erl, line 283)
in call from poolboy:prepopulate/3 (/tmp/erlpass/_build/default/lib/poolboy/src/poolboy.erl, line 304)
in call from poolboy:init/3 (/tmp/erlpass/_build/default/lib/poolboy/src/poolboy.erl, line 153)
in call from gen_server:init_it/2 (gen_server.erl, line 423)
in call from gen_server:init_it/6 (gen_server.erl, line 390)
ancestors: [bcrypt_nif_pool_sup,bcrypt_sup,<0.86.0>]
message_queue_len: 0
messages: []
links: [<0.88.0>,<0.90.0>]
dictionary: []
trap_exit: true
status: running
heap_size: 987
stack_size: 29
reductions: 337
neighbours:
=CRASH REPORT==== 29-Aug-2021::16:07:46.352547 ===
crasher:
initial call: application_master:init/4
pid: <0.85.0>
registered_name: []
exception exit: {{shutdown,
{failed_to_start_child,bcrypt_nif_pool_sup,
{shutdown,
{failed_to_start_child,bcrypt_nif_pool,
{{badmatch,
{error,
{undef,
[{bcrypt_nif,create_ctx,[],[]},
{bcrypt_nif_worker,init,1,
[{file,
"/tmp/erlpass/_build/default/lib/bcrypt/src/bcrypt_nif_worker.erl"},
{line,42}]},
{gen_server,init_it,2,
[{file,"gen_server.erl"},{line,423}]},
{gen_server,init_it,6,
[{file,"gen_server.erl"},{line,390}]},
{proc_lib,init_p_do_apply,3,
[{file,"proc_lib.erl"},{line,226}]}]}}},
[{poolboy,new_worker,1,
[{file,
"/tmp/erlpass/_build/default/lib/poolboy/src/poolboy.erl"},
{line,283}]},
{poolboy,prepopulate,3,
[{file,
"/tmp/erlpass/_build/default/lib/poolboy/src/poolboy.erl"},
{line,304}]},
{poolboy,init,3,
[{file,
"/tmp/erlpass/_build/default/lib/poolboy/src/poolboy.erl"},
{line,153}]},
{gen_server,init_it,2,
[{file,"gen_server.erl"},{line,423}]},
{gen_server,init_it,6,
[{file,"gen_server.erl"},{line,390}]},
{proc_lib,init_p_do_apply,3,
[{file,"proc_lib.erl"},{line,226}]}]}}}}},
{bcrypt_app,start,[normal,[]]}}
in function application_master:init/4 (application_master.erl, line 142)
ancestors: [<0.84.0>]
message_queue_len: 1
messages: [{'EXIT',<0.86.0>,normal}]
links: [<0.84.0>,<0.44.0>]
dictionary: []
trap_exit: true
status: running
heap_size: 1598
stack_size: 29
reductions: 256
neighbours:
=INFO REPORT==== 29-Aug-2021::16:07:46.355702 ===
application: bcrypt
exited: {{shutdown,
{failed_to_start_child,bcrypt_nif_pool_sup,
{shutdown,
{failed_to_start_child,bcrypt_nif_pool,
{{badmatch,
{error,
{undef,
[{bcrypt_nif,create_ctx,[],[]},
{bcrypt_nif_worker,init,1,
[{file,
"/tmp/erlpass/_build/default/lib/bcrypt/src/bcrypt_nif_worker.erl"},
{line,42}]},
{gen_server,init_it,2,
[{file,"gen_server.erl"},{line,423}]},
{gen_server,init_it,6,
[{file,"gen_server.erl"},{line,390}]},
{proc_lib,init_p_do_apply,3,
[{file,"proc_lib.erl"},{line,226}]}]}}},
[{poolboy,new_worker,1,
[{file,
"/tmp/erlpass/_build/default/lib/poolboy/src/poolboy.erl"},
{line,283}]},
{poolboy,prepopulate,3,
[{file,
"/tmp/erlpass/_build/default/lib/poolboy/src/poolboy.erl"},
{line,304}]},
{poolboy,init,3,
[{file,
"/tmp/erlpass/_build/default/lib/poolboy/src/poolboy.erl"},
{line,153}]},
{gen_server,init_it,2,[{file,"gen_server.erl"},{line,423}]},
{gen_server,init_it,6,[{file,"gen_server.erl"},{line,390}]},
{proc_lib,init_p_do_apply,3,
[{file,"proc_lib.erl"},{line,226}]}]}}}}},
{bcrypt_app,start,[normal,[]]}}
type: temporary
=INFO REPORT==== 29-Aug-2021::16:07:46.356312 ===
application: poolboy
exited: stopped
type: temporary
=INFO REPORT==== 29-Aug-2021::16:07:46.356496 ===
application: crypto
exited: stopped
type: temporary
{error,
{bcrypt,
{{shutdown,
{failed_to_start_child,bcrypt_nif_pool_sup,
{shutdown,
{failed_to_start_child,bcrypt_nif_pool,
{{badmatch,
{error,
{undef,
[{bcrypt_nif,create_ctx,[],[]},
{bcrypt_nif_worker,init,1,[{...}|...]},
{gen_server,init_it,2,[...]},
{gen_server,init_it,6,...},
{proc_lib,init_p_do_apply,...}]}}},
[{poolboy,new_worker,1,
[{file,
"/tmp/erlpass/_build/default/lib/poolboy/src/poolboy.erl"},
{line,283}]},
{poolboy,prepopulate,3,
[{file,
"/tmp/erlpass/_build/default/lib/poolboy/src/poolboy.erl"},
{line,304}]},
{poolboy,init,3,
[{file,
"/tmp/erlpass/_build/default/lib/poolboy/src/poolboy.erl"},
{line,153}]},
{gen_server,init_it,2,[{file,"gen_server.erl"},{line,423}]},
{gen_server,init_it,6,[{file,[...]},{line,...}]},
{proc_lib,init_p_do_apply,3,[{file,...},{...}]}]}}}}},
{bcrypt_app,start,[normal,[]]}}}}
2> =ERROR REPORT==== 29-Aug-2021::16:07:46.359097 ===
** Generic server <0.90.0> terminating
** Last message in was {'EXIT',<0.89.0>,
{{badmatch,
{error,
{undef,
[{bcrypt_nif,create_ctx,[],[]},
{bcrypt_nif_worker,init,1,
[{file,
"/tmp/erlpass/_build/default/lib/bcrypt/src/bcrypt_nif_worker.erl"},
{line,42}]},
{gen_server,init_it,2,
[{file,"gen_server.erl"},{line,423}]},
{gen_server,init_it,6,
[{file,"gen_server.erl"},{line,390}]},
{proc_lib,init_p_do_apply,3,
[{file,"proc_lib.erl"},{line,226}]}]}}},
[{poolboy,new_worker,1,
[{file,
"/tmp/erlpass/_build/default/lib/poolboy/src/poolboy.erl"},
{line,283}]},
{poolboy,prepopulate,3,
[{file,
"/tmp/erlpass/_build/default/lib/poolboy/src/poolboy.erl"},
{line,304}]},
{poolboy,init,3,
[{file,
"/tmp/erlpass/_build/default/lib/poolboy/src/poolboy.erl"},
{line,153}]},
{gen_server,init_it,2,
[{file,"gen_server.erl"},{line,423}]},
{gen_server,init_it,6,
[{file,"gen_server.erl"},{line,390}]},
{proc_lib,init_p_do_apply,3,
[{file,"proc_lib.erl"},{line,226}]}]}}
** When Server state == {state,
{<0.90.0>,poolboy_sup},
simple_one_for_one,
{[bcrypt_nif_worker],
#{bcrypt_nif_worker =>
{child,undefined,bcrypt_nif_worker,
{bcrypt_nif_worker,start_link,[[]]},
temporary,false,5000,worker,
[bcrypt_nif_worker]}}},
{mapsets,#{}},
0,1,[],0,never,poolboy_sup,
{bcrypt_nif_worker,[]}}
** Reason for termination ==
** {{badmatch,
{error,
{undef,
[{bcrypt_nif,create_ctx,[],[]},
{bcrypt_nif_worker,init,1,
[{file,
"/tmp/erlpass/_build/default/lib/bcrypt/src/bcrypt_nif_worker.erl"},
{line,42}]},
{gen_server,init_it,2,[{file,"gen_server.erl"},{line,423}]},
{gen_server,init_it,6,[{file,"gen_server.erl"},{line,390}]},
{proc_lib,init_p_do_apply,3,
[{file,"proc_lib.erl"},{line,226}]}]}}},
[{poolboy,new_worker,1,
[{file,"/tmp/erlpass/_build/default/lib/poolboy/src/poolboy.erl"},
{line,283}]},
{poolboy,prepopulate,3,
[{file,"/tmp/erlpass/_build/default/lib/poolboy/src/poolboy.erl"},
{line,304}]},
{poolboy,init,3,
[{file,"/tmp/erlpass/_build/default/lib/poolboy/src/poolboy.erl"},
{line,153}]},
{gen_server,init_it,2,[{file,"gen_server.erl"},{line,423}]},
{gen_server,init_it,6,[{file,"gen_server.erl"},{line,390}]},
{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,226}]}]}
=CRASH REPORT==== 29-Aug-2021::16:07:46.359973 ===
crasher:
initial call: supervisor:poolboy_sup/1
pid: <0.90.0>
registered_name: []
exception exit: {{badmatch,
{error,
{undef,
[{bcrypt_nif,create_ctx,[],[]},
{bcrypt_nif_worker,init,1,
[{file,
"/tmp/erlpass/_build/default/lib/bcrypt/src/bcrypt_nif_worker.erl"},
{line,42}]},
{gen_server,init_it,2,
[{file,"gen_server.erl"},{line,423}]},
{gen_server,init_it,6,
[{file,"gen_server.erl"},{line,390}]},
{proc_lib,init_p_do_apply,3,
[{file,"proc_lib.erl"},{line,226}]}]}}},
[{poolboy,new_worker,1,
[{file,
"/tmp/erlpass/_build/default/lib/poolboy/src/poolboy.erl"},
{line,283}]},
{poolboy,prepopulate,3,
[{file,
"/tmp/erlpass/_build/default/lib/poolboy/src/poolboy.erl"},
{line,304}]},
{poolboy,init,3,
[{file,
"/tmp/erlpass/_build/default/lib/poolboy/src/poolboy.erl"},
{line,153}]},
{gen_server,init_it,2,
[{file,"gen_server.erl"},{line,423}]},
{gen_server,init_it,6,
[{file,"gen_server.erl"},{line,390}]},
{proc_lib,init_p_do_apply,3,
[{file,"proc_lib.erl"},{line,226}]}]}
in function gen_server:decode_msg/9 (gen_server.erl, line 481)
ancestors: [bcrypt_nif_pool,bcrypt_nif_pool_sup,bcrypt_sup,<0.86.0>]
message_queue_len: 0
messages: []
links: []
dictionary: []
trap_exit: true
status: running
heap_size: 17731
stack_size: 29
reductions: 22667
neighbours:
2>
This may be tied to erlang version 24, as all other projects promoting bcrypt are failing to compile because of the lacking of the erl_interface.h
file, but rebar3 did not really complained while compiling.
IIUC, bcrypt workers are failing to start, but that is all - so, I'm a bit lost as I'd like to use erlpass
for a blog project.
Hello,
Please upgrade to {bcrypt, "1.2.1"}, as the version you are using is no longer compiling on otp 26
Silviu
Hi there,
How about adding PBKDF2 support ?
Erlpass could be some kind of an abstraction layer for different crypto algorithm ?
The API could be like (This will break with the current API):
Hash = erlpass:hash(pbkd2, "my voice is my password").
erlpass:match("hello, sir", Hash).
What do you think ?
Hello Ferd,
erlang-bcrypt
has been recently updated to support rebar3.
Would it be possible to point to the updated repository so erlpass
can be compiled with rebar3 as well?
Thanks!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.