OpenSSL comes with the functions "EVP_MD_size(), EVP_CIPHER_key_length(), EVP_CIPHER_iv_length(), EVP_CIPHER_block_size()" to provide information about a hash or cipher. Erlang/OTP should have an interface for accessing the same information.
Currently in RabbitMQ we have to do this to handle various hash and ciphers: https://github.com/rabbitmq/rabbitmq-common/blob/master/src/rabbit_pbe.erl#L111
Support for such functions vary depending on language: https://github.com/nodejs/node/issues/22304#issuecomment-441754133
Maybe Erlang/OTP can have crypto:hash_info/1 and crypto:cipher_info/1 that returns a map with various details about the hash/cipher? I can probably provide a PR if you think it's a good idea.