@credify/crypto
TypeScript icon, indicating that this package has built-in type declarations

1.4.10 • Public • Published

npm

@credify/crypto (JavaScript)

Crypto related functions and helpers for JavaScript implemented in TypeScript.

How to install

NPM

// yarn
$ yarn add @credify/crypto

// npm
$ npm install @credify/crypto

How to use

Encryption (RSA)

import { Encryption } from "@credify/crypto";

const privateKeyPem =
`-----BEGIN PRIVATE KEY-----
MIIJQwIBADANBgkqhkiG9w0BAQEFAASCCS0wggkpAgEAAoICAQDrEavVupOf+G7U
83oh0TKLK0U+9BdY4cgPCe66gyLodY9NF7+r9NgZHlsSOaXXTCEJOo8/rb+JFW34
....
agUydf7cXbP1YoOBizTgt/WBiQk47Ym4JvEWDTHmEsT4snYjujiMvAlAS37JyvWD
osQZlO5eDVv0XR3aNy5pOR/ouC0o8a8=
-----END PRIVATE KEY-----`;

const cipherText = "XGI1icHgMVuTvYLMEwXp...YCfEqkHxv5FdyWaw="; // base64 encoded string

const encryptionSample = async () => {
  const encryption = new Encryption();
  await encryption.importPrivateKey(privateKeyPem);
  const plainText = await encryption.decryptBase64StringToString(cipherText);
  console.log(plainText);
}

Signing (EdDSA)

import { Signing } from "@credify/crypto";

const privateKeyPem = `-----BEGIN PRIVATE KEY-----
MC4CAQAwBQYDK2VwBCIEIPqO4b4UtXSaWGp5u38rCXYu4/LdbaSk7lD46LtRUu44
-----END PRIVATE KEY-----`;

const message = "test message";

const signing = new Signing();
signing.importPrivateKey(privateKeyPem);
const sign = signing.sign(message, { input: "utf8" });
const verified = signing.verify(message, sign);
console.log(verified) // true

Signing (ECDSA)

import { EcdsaKey } from "@credify/crypto";

const privateKeyPem = `-----BEGIN PRIVATE KEY-----
MC4CAQAwBQYDK2VwBCIEIPqO4b4UtXSaWGp5u38rCXYu4/LdbaSk7lD46LtRUu44
-----END PRIVATE KEY-----`;

const message = "test message";

const signing = new EcdsaKey();
await signing.importPrivateKey(privateKeyPem);
const sign = await signing.sign(message, { input: "utf8" });
const verified = await signing.verify(message, sign);
console.log(verified) // true

Asymmetric Encryption

@credify/crypto supports RSA encryption with 3072 bit length keys by default. Its padding scheme uses OAEP.

Signing

@credify/crypto supports

PKCS #8

In order to simply deal with private keys, this uses PKCS #8.

More information

https://developers.credify.one/

Requirements

  • Node.js 10+
Currently, it does not work with Webpack 5 due to Node.js core dependencies.

License

@credify/crypto is released under the MIT license. See LICENSE for details.

Dependencies (9)

Dev Dependencies (24)

Package Sidebar

Install

npm i @credify/crypto

Weekly Downloads

8

Version

1.4.10

License

MIT

Unpacked Size

342 kB

Total Files

6

Last publish

Collaborators

  • ngo275
  • credify-pte-ltd