All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Complete rewrite replacing node-forge with modern @peculiar/x509 and pkijs libraries.
keyPair option to use existing keysselfsigned/pkcs7 module for tree-shakeable PKCS#7 supportAsync-only API: The generate() function now returns a Promise. Synchronous generation has been removed.
// Old (v4.x)
const pems = selfsigned.generate(attrs, options);
// New (v5.x)
const pems = await selfsigned.generate(attrs, options);
No callback support: Callbacks have been completely removed in favor of Promises.
// Old (v4.x)
selfsigned.generate(attrs, options, function(err, pems) { ... });
// New (v5.x)
const pems = await selfsigned.generate(attrs, options);
Minimum Node.js version: Now requires Node.js >= 15.6.0 (was >= 10)
Dependencies changed:
node-forge (1.64 MB)@peculiar/x509 (551 KB) - 66% smaller!pkijs (1.94 MB, only for PKCS#7 support)PKCS#7 API changed:
const pems = await generate(attrs, { pkcs7: true }); pems.pkcs7const { createPkcs7 } = require('selfsigned/pkcs7'); const pkcs7 = createPkcs7(pems.cert);\n line endings (was \r\n)BEGIN PRIVATE KEY instead of BEGIN RSA PRIVATE KEY)selfsigned/pkcs7 module so bundlers can exclude it when not usedRemoved:
node-forge@^1.3.1@types/node-forge@^1.3.0Added:
@peculiar/x509@^1.14.2 (required)pkijs@^3.3.3 (required, but tree-shakeable via separate selfsigned/pkcs7 module)See git history for changes in 4.x and earlier versions.