npm.io
1.4.2 • Published 3 years ago

rsasign

Licence
MIT
Version
1.4.2
Deps
2
Size
963 kB
Vulns
0
Weekly
0
Stars
40

rsasign

Overview

RSASSA-PKCS1-v1_5 with key length 2048 and hash function SHA-256 wrapped for usage in JavaScript.

The platform native RSA implementation (via SubtleCrypto or the Node.js Crypto API) is preferred where available. Otherwise, the OpenSSL implementation compiled to pure JavaScript with Emscripten is used as a fallback.

Example Usage

import {rsaSign} from 'rsasign';

const keyPair /*: {privateKey: Uint8Array; publicKey: Uint8Array} */ =
	await rsaSign.keyPair()
;

const message /*: Uint8Array */ =
	new Uint8Array([104, 101, 108, 108, 111, 0]) // "hello"
;

/* Combined signatures */

const signed /*: Uint8Array */ =
	await rsaSign.sign(message, keyPair.privateKey)
;

const verified /*: Uint8Array */ =
	await rsaSign.open(signed, keyPair.publicKey) // same as message
;

/* Detached signatures */

const signature /*: Uint8Array */ =
	await rsaSign.signDetached(message, keyPair.privateKey)
;

const isValid /*: boolean */ =
	await rsaSign.verifyDetached(signature, message, keyPair.publicKey) // true
;

console.log(keyPair);
console.log(message);
console.log(signed);
console.log(verified);
console.log(signature);
console.log(isValid);

Keywords