Crypto algorithm list

0 votes

I'm trying to find a list of strings that can be used a crypto algorithm to fit into this function, replacing SHA256.

crypto.createHmac("SHA256", secret).update(string).digest('base64'),

I've come to the understanding that crypto uses OpenSSL, and that the algorithms are specific to each system running node.js.

With the following commands, you can see a list of all algorithms available for your system.

openssl list-cipher-algorithms openssl list-cypher-commands

I've outputted the content of those two commands to this gist.

What bothers me is that SHA256 is not in either of those lists.

I would really like the definitive algorithm list.

Apr 5, 2022 in Blockchain by Rahul
• 9,680 points
1,364 views

1 answer to this question.

0 votes

The learning here is that cyphers and hashes are different and use different algorithms. With node's crypto use .getCiphers() and .getHashes() methods to return an array with the names of the supported cyphers and hashes respectively.

var crypto = require('crypto') 
console.log(crypto.getCiphers()) 
console.log(crypto.getHashes())



Which logs the following ciphers:

[ 

'CAST-cbc', 'aes-128-cbc', 'aes-128-cbc-hmac-sha1', 'aes-128-cfb', 'aes-128-cfb1', 'aes-128-cfb8', 'aes-128-ctr', 'aes-128-ecb', 'aes-128-gcm', 'aes-128-ofb', 'aes-128-xts', 'aes-192-cbc', 'aes-192-cfb', 'aes-192-cfb1', 'aes-192-cfb8', 'aes-192-ctr', 'aes-192-ecb', 'aes-192-gcm', 'aes-192-ofb', 'aes-256-cbc', 'aes-256-cbc-hmac-sha1', 'aes-256-cfb', 'aes-256-cfb1', 'aes-256-cfb8', 'aes-256-ctr', 'aes-256-ecb', 'aes-256-gcm', 'aes-256-ofb', 'aes-256-xts', 'aes128', 'aes192', 'aes256', 'bf', 'bf-cbc', 'bf-cfb', 'bf-ecb', 'bf-ofb', 'blowfish', 'camellia-128-cbc', 'camellia-128-cfb', 'camellia-128-cfb1', 'camellia-128-cfb8', 'camellia-128-ecb', 'camellia-128-ofb', 'camellia-192-cbc', 'camellia-192-cfb', 'camellia-192-cfb1', 'camellia-192-cfb8', 'camellia-192-ecb', 'camellia-192-ofb', 'camellia-256-cbc', 'camellia-256-cfb', 'camellia-256-cfb1', 'camellia-256-cfb8', 'camellia-256-ecb', 'camellia-256-ofb', 'camellia128', 'camellia192', 'camellia256', 'cast', 'cast-cbc', 'cast5-cbc', 'cast5-cfb', 'cast5-ecb', 'cast5-ofb', 'des', 'des-cbc', 'des-cfb', 'des-cfb1', 'des-cfb8', 'des-ecb', 'des-ede', 'des-ede-cbc', 'des-ede-cfb', 'des-ede-ofb', 'des-ede3', 'des-ede3-cbc', 'des-ede3-cfb', 'des-ede3-cfb1', 'des-ede3-cfb8', 'des-ede3-ofb', 'des-ofb', 'des3', 'desx', 'desx-cbc', 'id-aes128-GCM', 'id-aes192-GCM', 'id-aes256-GCM', 'idea', 'idea-cbc', 'idea-cfb', 'idea-ecb', 'idea-ofb', 'rc2', 'rc2-40-cbc', 'rc2-64-cbc', 'rc2-cbc', 'rc2-cfb', 'rc2-ecb', 'rc2-ofb', 'rc4', 'rc4-40', 'rc4-hmac-md5', 'seed', 'seed-cbc', 'seed-cfb', 'seed-ecb', 'seed-ofb' 

]



And the following hashes:

[ 

'DSA', 
'DSA-SHA', 
'DSA-SHA1', 
'DSA-SHA1-old', 
'RSA-MD4', 
'RSA-MD5', 
'RSA-MDC2', 
'RSA-RIPEMD160', 
'RSA-SHA', 
'RSA-SHA1', 
'RSA-SHA1-2', 
'RSA-SHA224', 
'RSA-SHA256', 
'RSA-SHA384', 
'RSA-SHA512', 
'dsaEncryption', 
'dsaWithSHA', 
'dsaWithSHA1', 
'dss1', 
'ecdsa-with-SHA1', 
'md4', 
'md4WithRSAEncryption', 
'md5', 
'md5WithRSAEncryption', 
'mdc2', 
'mdc2WithRSA', 
'ripemd', 
'ripemd160', 
'ripemd160WithRSA', 
'rmd160', 
'sha', 
'sha1', 
'sha1WithRSAEncryption', 
'sha224', 
'sha224WithRSAEncryption', 
'sha256', 'sha256WithRSAEncryption', 
'sha384', 
'sha384WithRSAEncryption', 
'sha512', 'sha512WithRSAEncryption', 
'shaWithRSAEncryption', 
'ssl2-md5', 
'ssl3-md5', 
'ssl3-sha1', 
'Whirlpool'

]



Here are my settings:

  • OpenSSL version is OpenSSL 0.9.8zg 14 July 2015

  • Node --version is v0.12.4

answered Apr 7, 2022 by Aditya
• 7,680 points

Related Questions In Blockchain

0 votes
1 answer

yfinance Crypto symbol list

After what I know about, YahooFinance uses ...READ MORE

answered Mar 24, 2022 in Blockchain by Rahul
• 9,680 points
2,053 views
+1 vote
8 answers

How is Blockchain a linked list?

Blockchain is similar to Single Linked List ...READ MORE

answered Aug 3, 2018 in Blockchain by Omkar
• 69,220 points
13,584 views
+1 vote
4 answers

How PBFT algorithm works?

PBFT is a way for a distributed ...READ MORE

answered Apr 25, 2019 in Blockchain by Kiran
8,200 views
0 votes
1 answer
0 votes
1 answer
0 votes
1 answer

Truffle tests not running after truffle init

This was a bug. They've fixed it. ...READ MORE

answered Sep 11, 2018 in Blockchain by Christine
• 15,790 points
1,922 views
0 votes
1 answer

Hyperledger Sawtooth vs Quorum in concurrency and speed Ask

Summary: Both should provide similar reliability of ...READ MORE

answered Sep 26, 2018 in IoT (Internet of Things) by Upasana
• 8,620 points
1,451 views
0 votes
1 answer

Start script missing error when running npm start

It seems that there is an undefined ...READ MORE

answered Feb 10, 2022 in Java by Soham
• 9,710 points
4,438 views
webinar REGISTER FOR FREE WEBINAR X
REGISTER NOW
webinar_success Thank you for registering Join Edureka Meetup community for 100+ Free Webinars each month JOIN MEETUP GROUP