Search code examples
cryptographyerlang

Erlang: ripemd160 not supported


my erlang version is 24 and it does not support ripemd160 hash algorithm and i don't know why. the erlang crytpo document says it is a supported algorithm.

crypto:start(),
B = crypto:hash(ripemd160, H).

it gives me this error:

** exception error: notsup
     in function  crypto:notsup_to_error/1 (crypto.erl, line 2147)

i searched online for this and could not found the solution and tried couple of method but could not solve it. thanks in advance.


Solution

  • Your Erlang installation seems to match release 24.2.1, and thus is affected by this part of the crypto release notes:

    The hash algorithms md4 and ripemd160 are disabled temporarily when compiled with OpenSSL 3.0.

    Support for these algorithms was reinstated in release 24.3.


    Note that support for OpenSSL 3 (as opposed to 1.1.1 and earlier versions) was considered experimental for all Erlang 24 releases. Release 25.1 was the first one that said:

    Crypto is now considered to be usable with the OpenSSL 3.0 cryptolib for production code.

    ENGINE and FIPS are not yet fully functional.