crypto-d-handler
v1.0.0
Published
A Node.js package for handling common cryptographic operations
Maintainers
Readme
crypto-d-handler
A Node.js package for handling common cryptographic operations.
Installation
npm install crypto-d-handlerUsage
const CryptoHandler = require('crypto-d-handler');
// Symmetric Encryption (AES-256-CBC)
const handler = new CryptoHandler();
const originalText = 'Hello, World!';
const encrypted = handler.encrypt(originalText);
console.log('Encrypted:', encrypted);
const decrypted = handler.decrypt(encrypted);
console.log('Decrypted:', decrypted);
// Hashing (SHA256)
const textToHash = 'My secret data';
const hashedText = handler.hash(textToHash);
console.log('Hashed:', hashedText);
// Asymmetric Encryption (RSA Key Pair Generation, Sign, Verify)
async function runAsymmetricExample() {
const { publicKey, privateKey } = await handler.generateKeyPair();
console.log('Public Key:', publicKey);
console.log('Private Key:', privateKey);
const dataToSign = 'This is important data.';
const signature = handler.sign(dataToSign, privateKey);
console.log('Signature:', signature);
const isValid = handler.verify(dataToSign, publicKey, signature);
console.log('Signature Valid:', isValid);
}
runAsymmetricExample();API
new CryptoHandler([algorithm], [key], [iv])
Creates a new instance of CryptoHandler.
algorithm(String, optional): The encryption algorithm to use. Defaults to'aes-256-cbc'.key(Buffer, optional): The encryption key. If not provided, a random 32-byte key will be generated.iv(Buffer, optional): The initialization vector. If not provided, a random 16-byte IV will be generated.
encrypt(text)
Encrypts the given text using the configured algorithm, key, and IV.
text(String): The text to encrypt.- Returns: An object
{ iv: String, encryptedData: String }containing the IV and encrypted data in hex format.
decrypt(encryptedObject)
Decrypts the given encrypted object.
encryptedObject(Object): An object withivandencryptedDataproperties (both hex strings).- Returns: The decrypted text (String).
hash(text, [algorithm])
Generates a hash of the given text.
text(String): The text to hash.algorithm(String, optional): The hashing algorithm to use. Defaults to'sha256'.- Returns: The hash in hex format (String).
generateKeyPair([type], [options])
Generates an asymmetric key pair.
type(String, optional): The type of key pair to generate. Defaults to'rsa'.options(Object, optional): Options for key generation. Defaults to RSA 2048-bit key with SPKI public key and PKCS8 private key PEM encoding.- Returns: A Promise that resolves to an object
{ publicKey: String, privateKey: String }.
sign(data, privateKey, [algorithm])
Signs the given data with a private key.
data(String): The data to sign.privateKey(String): The private key in PEM format.algorithm(String, optional): The signing algorithm. Defaults to'sha256'.- Returns: The signature in hex format (String).
verify(data, publicKey, signature, [algorithm])
Verifies a signature against data and a public key.
data(String): The original data.publicKey(String): The public key in PEM format.signature(String): The signature in hex format.algorithm(String, optional): The signing algorithm. Defaults to'sha256'.- Returns:
trueif the signature is valid,falseotherwise (Boolean).
