2.1.2 • Published 1 year ago

@sapphirecode/crypto-helper v2.1.2

Weekly downloads
7
License
MIT
Repository
-
Last release
1 year ago

@sapphirecode/crypto-helper

version: 2.1.x

simple functions for cryptography

Installation

npm:

npm i --save @sapphirecode/crypto-helper

yarn:

yarn add @sapphirecode/crypto-helper

Usage

Examples

const crypto = require('@sapphirecode/crypto-helper');

const rand_hex = crypto.random_hex(16); // outputs 16 byte random hex
const rand_salt = crypto.create_salt(); // same as random_hex, but with fixed length of 32 bytes
const random_string = crypto.random_string(16); // output 16 character long random string
const hash = crypto.hash_sha512(random_string, random_hex); // returns sha 512 hex
const check = crypto.checksum('foo'); // returns a sha 256 hex
const scrypt_hash = await crypto.pbkdf_scrypt('foo', 'bar'); // returns a scrypt hash

// jwt like object signing
const signed = crypto.sign_object({foo: 'bar'}, 'secret');
const info = await crypto.get_signature_info(signed); // returns an object with iat (issued at), key_info and data
const dec = await crypto.decode_signed(signed); // decode a signed object without verifying the signature
const ver = await crypto.verify_signature(signed, 'secret', 10000); // verifies the signature and returns the contents. the timeout is in milliseconds and optional, timing will be ignored if omitted.
const ver_info = await crypto.verify_signature_get_info(signed, 'secret', 10000); // verify a signature and get signature information like iat and key_info
const ver_func = await crypto.verify_signature(
  signed,
  (signature_info) => 'secret',
  10000
); // verify a signature, retrieve the key using the signature info

// encryption
const enc = crypto.encrypt_aes('foo', 'bar');
const dec = crypto.decrypt_aes(enc, 'bar');

// asymmetric encryption and signatures
const keys = await crypto.generate_keypair(2048); // generate private and public key (length is optional and 2048 by default)

const aenc = crypto.asym_encrypt('foo', keys.public_key); // encrypt
const adec = crypto.asym_decrypt(aenc, key.private_key); // decrypt

const asig = crypto.asym_sign('foo', keys.private_key); // create signature
const aver = crypto.asym_verify('foo', keys.public_key, asig); // verify signature, returns boolean

Asymmetric signatures on object signing

the functions sign_object, verify_signature, ... will automatically detect rsa keys and use them to sign objects asymmetrically. Note that keys have to be provided in the correct order (private key for signing, public key for verifying). Else the keys will just be interpreted as symmetric and verification will fail.

License

MIT © Timo Hocker timo@scode.ovh

2.1.2

1 year ago

2.1.1

1 year ago

2.1.0

1 year ago

2.0.0

2 years ago

1.3.0

3 years ago

1.2.2

3 years ago

1.2.0

3 years ago

1.2.1

3 years ago

1.1.62

3 years ago

1.1.61

4 years ago

1.1.60

4 years ago

1.1.59

4 years ago

1.1.58

4 years ago

1.1.56

4 years ago

1.1.57

4 years ago

1.1.55

4 years ago

1.1.54

4 years ago

1.1.53

4 years ago

1.1.52

4 years ago

1.1.51

4 years ago

1.1.50

4 years ago

1.1.49

4 years ago

1.1.48

4 years ago

1.1.47

4 years ago

1.1.45

4 years ago

1.1.46

4 years ago

1.1.44

4 years ago

1.1.43

4 years ago

1.1.42

4 years ago

1.1.41

4 years ago

1.1.40

4 years ago

1.1.39

4 years ago