SecurePass (argon2-pass) is a module for the creation of hashes from passwords, allowing you to store passwords securely. The module also provides a facility for the generation and verification of one time authentication tokens for use in your own password reset flows. This module is a wrapper for libsodium's implementation of the Argon2ID password hashing algorithm and Poly1305.
Install argon2-pass using yarn
:
yarn add argon2-pass
Or via npm
:
npm install argon2-pass
Basic Usage Information:
import { SecurePass, VerificationResult } from 'argon2-pass';
async function main() {
// Create a new instance of SecurePass. Optional difficulty configurations can be passed in here.
const sp = new SecurePass();
// Passwords and Hashes are stored as buffers internally.
const password = Buffer.from('SamplePassword');
const hash = await sp.hashPassword(password);
// Hash Verification returns an enumerator for easy validation of passwords against hashes.
const result = await sp.verifyHash(password, hash);
if (result == VerificationResult.InvalidOrUnrecognised) {
console.log('Hash not created by SecurePass or invalid');
} else if (result == VerificationResult.Invalid) {
console.log('Password not valid when compared with supplied hash');
} else if (result == VerificationResult.Valid) {
console.log('Password and Hash are a match');
} else if (result == VerificationResult.ValidNeedsRehash) {
console.log('Password and Hash are a match, but the security of the hash could be improved by rehashing.');
}
}
// Call the async function defined above to run the example.
main();
For full documentation, please refer to the full documentation site. The documentation was generated automaticaly with TypeDoc.
This package is configured with jest tests, these tests ensure that the module is working correctly and as specified as well as generating code coverage reports to ensure every line of code is covered by a unit test.
To run the jest tests manualy run the test script defined in package.json:
yarn test
This module also has the following automated testing:
Licensed under MIT.
Copyright (C) 2018 DrBarnabus
Generated using TypeDoc