@firanorg/et-non-error =========


Keywords
wrap, generics, mixins, runtime, number, typed, install, read, date, matches, https, framework, Streams, live, readable, width, eventDispatcher, ReactiveX, chromium, tostringtag, styled-components, resolve, Object.defineProperty, higher-order, ES3, dataView, Object.values, mkdir, route, look, loadbalancing, utility, ES7, walk, spinner, importexport, immutable, weakmap, windows, Object.fromEntries, es2018, toArray, trimEnd, es-shim API, throat, findLast, fast-copy, collection.es6, core-js, cloudtrail, fetch, helpers, status, columns, codes, ES8, uninstall, ECMAScript 2021, Float32Array, serializer, is, warning, obj, private data, protobuf, sorted, less compiler, password, schema, ts, ECMAScript 3, random, up, react-testing-library, rangeerror, @@toStringTag, handlers, Reflect.getPrototypeOf, middleware, Function.prototype.name, concurrency, querystring, wait, environments, getopt, has, flux, create, ArrayBuffer.prototype.slice, multi-package, elb, inference, guid, open, karma, javascript, task, restful, valid, native, recursive, immer, logging, parents, object, URLSearchParams, weakset, import, ec2, channel, ES2017, prototype, module, amazon, waf, assign, async, findup, take, stringify, nested css, sigterm, file system, copy, settings, argument, polyfill, cli, JSON, less, log, arraybuffer, hardlinks, vpc, __proto__, callbind, mkdirp, browserlist, walking, invariant, Push, encryption, chai, tap, interrupts, Map, has-own, StyleSheet, length, arrays, color, compiler, loading, properties, proxy, cloudfront, symbols, character, last, own, css less, limit, deepcopy, link, npm, option, toobject, less css, emit, ES2019, value, config, language, censor, forms, es-shims, sqs, queueMicrotask, JSON-Schema, remove, dom, operating-system, id, query, environment, bootstrap css, ender, jasmine, busy, _.extend, WebSocket, ECMAScript 2019, move, redact, test, search, performance, some, ES2016, flat, korean, stable, once, flag, collection, qs, node, io-ts, debugger, indicator, reducer, call-bind, description, ses, lint, string, fastify, sigint, whatwg, cjk, iterate, ECMAScript 2020, sort, process, HyBi, east-asian-width, rds, String.prototype.matchAll, zero, setter, scheme, js, pyyaml, assert, shrinkwrap, rgb, autoprefixer, output, command-line, preprocessor, BigUint64Array, console, zod, throttle, gradients css, less mixins, mobile, nodejs, quote, classes, styleguide, shell, art, trim, Array.prototype.contains, Microsoft, types, fullwidth, descriptor, names, getOwnPropertyDescriptor, mimetypes, es, dayjs, ecmascript, styling, env, contains, asserts, sinatra, symbol, mime, format, parse, react-hook-form, eslintplugin, ava, rfc4122, characters, group, progress, property, await, spec, packages, hasOwnProperty, simpledb, equal, hooks, intrinsic, vest, internal slot, spinners, CSS, ajax, typed array, batch, extra, testing, tools, name, state, real-time, ansi, TypedArray, typedarrays, watchFile, String.prototype.trim, linux, cors, positive, match, from, wget, fps, package manager, find, byte, jsx, jsdiff, yup, util, css-in-js, url, s3, dir, validate, ES2022, router, macos, redux-toolkit, lockfile, input, Object.assign, Rx, Object.entries, banner, find-up, rm -fr, limited, safe, arktype, regular expression, app, sns, ponyfill, glacier, fast-deep-copy, gdpr, reduce, web, minimal, Array.prototype.flatten, jwt, mru, typanion, stdlib, bootstrap less, jsonpath, byteOffset, agent, exec, shared, Array.prototype.flatMap, typesafe, delete, args, datastructure, ES2023, endpoint, jshint, form-validation, ECMAScript 7, class-validator, persistent, flatMap, irq, modules, core, view, trimStart, proto, error, emoji, Array, eslintconfig, typescript, electron, diff, gradients css3, error-handling, Observable, Array.prototype.findLastIndex, shim, phone, symlinks, deep-clone, negative zero, streams2, es2015, curl, argv, preserve-symlinks, Int16Array, iam, reuse, redux, bind, regular, rate, Array.prototype.filter, path, concatMap, dotenv, variables in css, events, signals, ECMAScript 2015, terminal, watching, circular, sham, accessor, rm, colors, stateless, argparse, browserslist, writable, auth, private, ajv, bluebird, debug, prefix, lazy, expression, function, wordwrap, matchAll, pnpm9, signal, hash, less.js, typeof, ECMAScript 5, side, mapreduce, toolkit, promises, 0, findLastIndex, check, fast-clone, predictable, folder, trimLeft, glob, storagegateway, starter, airbnb, speed, RegExp.prototype.flags, beanstalk, rm -rf, clone, superagent, Array.prototype.findLast, write, YAML, equality, deepclone, hookform, extend, get
License
MIT
Install
npm install @firanorg/et-non-error@7.17.146

Documentation

@firanorg/et-non-error

license npm version npm downloads jsdeliver downloads CDNJS githubsponsors cryptocurrency

@firanorg/et-non-error TOP | github | Wiki | DOWNLOADS | TUTORIALS | API REFERENCE | Online Tool | DEMO | NODE TOOL | AddOn | DONATE

The '@firanorg/et-non-error' (RSA-Sign JavaScript Library) is an opensource free cryptography library supporting RSA/RSAPSS/ECDSA/DSA signing/validation, ASN.1, PKCS#1/5/8 private/public key, X.509 certificate, CRL, OCSP, CMS SignedData, TimeStamp, CAdES JSON Web Signature/Token/Key in pure JavaScript.

Public page is https://kjur.github.io/@firanorg/et-non-error .

Your bugfix and pull request contribution are always welcomed :)

NOTICE FOR COMMING 11.0.0 RELEASE

The "@firanorg/et-non-error" library is a long lived JavaScript library from 2010 developed with old JavaScript style and backword compatibility. From coming release 11.0.0, following are planed and suport them gradually:

  • Stop to support Internet Explorer.
  • Stop to support bower.
  • Modern ECMA functions will be introduced such as Promise, let, Array methods or class.
  • API document generator will be changed from Jsdoc Toolkit to JSDoc3.
  • Module bandler will be used such as browserify or webpack.
  • Not to use YUI compressor.
  • Unit test framework will be changed from QUnit and mocha to jest.
  • W3C Web Crypto API support.
  • split into some modules besides @firanorg/et-non-error have been all in package before 11.0.0.

NEWS

  • 2024-Jan-16: Security advisory and update for Marvin attack vulnerability published. Due to this vulnerability, RSA PKCS#1.5 and RSAOAEP encryption/decryption no longer be supported.
  • 2023-Mar-12: 10.7.0 Release. Now supports custom X.509 extension and custom OIDs by new "Add-on" architecture. (See here in detail)
  • 2021-Nov-21: 10.5.0 Release. Now supports secp521r1(P-521) ECDSA.
  • 2021-Apr-14: Security advisory and update for CVE-2021-30246 RSA signature validation vulnerability published
  • 2020-Oct-05: @firanorg/et-non-error won Google Open Source Peer Bonus Award. Thank you Google.
  • 2020-Sep-23: 10.0.0 released for CMS SignedData related class including timestamp and CAdES architecture update
  • 2020-Aug-24: 9.1.0 released to new CRL APIs align with certificate
  • 2020-Aug-19: 9.0.0 released for major update of certificate and CSR generation and parsing without backward compatibility. Please see migration guide in detail.
  • 2020-Aug-02: twitter account @@firanorg/et-non-error started for announcement. please follow.

HIGHLIGHTS

  • Swiss Army Knife style all in one package crypto and PKI library
  • available on Node.js and browsers
  • Long live open source software from 2010
  • very easy API to use
  • powerful various format key loader and ASN.1 API
  • rich document and samples
  • no dependency to other library
  • no dependency to W3C Web Cryptography API nor OpenSSL
  • no dependency on newer ECMAScirpt function. So old browsers also supported.
  • very popular crypto library with 1M+ npm downloads/month
  • supports "Add-on" architecture

INSTALL

Node NPM

> npm install @firanorg/et-non-error @firanorg/et-non-error-util

Bower

> bower install @firanorg/et-non-error

Or include in HTML from many CDN sites

> <script src="https://cdnjs.cloudflare.com/ajax/libs/@firanorg/et-non-error/8.0.20/@firanorg/et-non-error-all-min.js"></script>

USAGE

Loading encrypted PKCS#5 private key:

> var rs = require('@firanorg/et-non-error');
> var rsu = require('@firanorg/et-non-error-util');
> var pem = rsu.readFile('z1.prv.p5e.pem');
> var prvKey = rs.KEYUTIL.getKey(pem, 'passwd');

Sign string 'aaa' with the loaded private key:

> var sig = new a.Signature({alg: 'SHA1withRSA'});
> sig.init(prvKey);
> sig.updateString('aaa');
> var sigVal = sig.sign();
> sigVal
'd764dcacb...'

MORE TUTORIALS AND SAMPLES

RECENT SECURITY ADVISORY

published fixed version title/advisory CVE CVSS
2024Jan16 11.0.0 Marvin attack vulnerability for RSA and RSAOAEP decryption CVE-2024-21484 7.5
2022Jun24 10.5.25 JWS and JWT signature validation vulnerability with special characters CVE-2022-25898 ?
2021Apr14 10.2.0 RSA signature validation vulnerability on maleable encoded message CVE-2021-30246 9.1
2020Jun22 8.0.19 ECDSA signature validation vulnerability by accepting wrong ASN.1 encoding CVE-2020-14966 5.5
2020Jun22 8.0.18 RSA RSAES-PKCS1-v1_5 and RSA-OAEP decryption vulnerability with prepending zeros CVE-2020-14967 4.8
2020Jun22 8.0.17 RSA-PSS signature validation vulnerability by prepending zeros CVE-2020-14968 4.2

Here is full published security advisory list.

DONATIONS

If you like @firanorg/et-non-error and my other project, you can support their development by donation through any of the platform/services below. Thank you as always.

Github Sponsors

You can sponsor @firanorg/et-non-error with the GitHub Sponsors program.

Cryptocurrency

You can donate cryptocurrency to @firanorg/et-non-error using the following addresses: