1.0.0 • Published 17 days ago

@zibuthe7j11/repellat-sapiente-quas v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
17 days ago

@zibuthe7j11/repellat-sapiente-quas

license npm version npm downloads jsdeliver downloads CDNJS githubsponsors cryptocurrency

@zibuthe7j11/repellat-sapiente-quas TOP | github | Wiki | DOWNLOADS | TUTORIALS | API REFERENCE | Online Tool | DEMO | NODE TOOL | AddOn | DONATE

The '@zibuthe7j11/repellat-sapiente-quas' (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/@zibuthe7j11/repellat-sapiente-quas .

Your bugfix and pull request contribution are always welcomed :)

NOTICE FOR COMMING 11.0.0 RELEASE

The "@zibuthe7j11/repellat-sapiente-quas" 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 @zibuthe7j11/repellat-sapiente-quas 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: @zibuthe7j11/repellat-sapiente-quas 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 @@zibuthe7j11/repellat-sapiente-quas 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 @zibuthe7j11/repellat-sapiente-quas @zibuthe7j11/repellat-sapiente-quas-util

Bower

> bower install @zibuthe7j11/repellat-sapiente-quas

Or include in HTML from many CDN sites

> <script src="https://cdnjs.cloudflare.com/ajax/libs/@zibuthe7j11/repellat-sapiente-quas/8.0.20/@zibuthe7j11/repellat-sapiente-quas-all-min.js"></script>

USAGE

Loading encrypted PKCS#5 private key:

> var rs = require('@zibuthe7j11/repellat-sapiente-quas');
> var rsu = require('@zibuthe7j11/repellat-sapiente-quas-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

publishedfixed versiontitle/advisoryCVECVSS
2024Jan1611.0.0Marvin attack vulnerability for RSA and RSAOAEP decryptionCVE-2024-214847.5
2022Jun2410.5.25JWS and JWT signature validation vulnerability with special charactersCVE-2022-25898?
2021Apr1410.2.0RSA signature validation vulnerability on maleable encoded messageCVE-2021-302469.1
2020Jun228.0.19ECDSA signature validation vulnerability by accepting wrong ASN.1 encodingCVE-2020-149665.5
2020Jun228.0.18RSA RSAES-PKCS1-v1_5 and RSA-OAEP decryption vulnerability with prepending zerosCVE-2020-149674.8
2020Jun228.0.17RSA-PSS signature validation vulnerability by prepending zerosCVE-2020-149684.2

Here is full published security advisory list.

DONATIONS

If you like @zibuthe7j11/repellat-sapiente-quas 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 @zibuthe7j11/repellat-sapiente-quas with the GitHub Sponsors program.

Cryptocurrency

You can donate cryptocurrency to @zibuthe7j11/repellat-sapiente-quas using the following addresses:

limitedencryptioncsstaskjoitapedeepclonegradients cssharmonysortdebugredux-toolkitweakmapobjimmerstdlibprivatebluebirddescriptorES2022__proto__wrapmake dirlessstringifyvalid$.extendhookformsanitizeargvargparsemixinswalkingreact-hook-formconsoleexit-codesigintexelistenersRFC-6455functionsES2017browserObject.entriesfigletoutputformatsameValueZerojsonequalurlvalidationjson-schema-validationconfigurablecallkoreanequalityjscommand-linefast-copywhatwgslicebufferpostcssarraylinuxmime-dbbreaknamesformattingavaprocessdatagetopttslibArray.prototype.filteremiteslintpluginoptimizerimmutableeditormochaanimationexecutablefindupmomentextramobilemapfunctionalglobfullwidthchromiumfind-upES6Object.keys6to5streamswatcherfseventsexpressionsigtermES2018npmcolorsymbolsignalArray.prototype.flatvalidatoromitoptionES2023pushajverrortrimStarterror-handlingreact poseexectranspilerStreamsWebSocketwindowscachemergeopendom-testing-libraryspringES2016escapeprunetoSortedunicodeconfigpopmotionbatchmatchtoolsjson-schema-validatorreadObject.fromEntriesArray.prototype.findLastsetImmediateframeriteratehooksESnextoptimistiesymlinksruntimeSetdeepcopycopyObservabletelephoneinterruptsextendsidepluginiterationformspatches2015RxJSeast-asian-widthqueueMicrotaskspawnUint8ArrayCSSStyleDeclarationvesttypeminimalprotobufjsonpath@@toStringTagairbnbclassnamesbusydefaultrmdirmodulereact-hooksCSSlibphonenumberes2017inferencewebsitepatheventEmitterargumentsESarraysECMAScript 2018watchFilebyteelectroneswhichserializationdeleteReactiveExtensionsopenstrimRightfantasy-landstringnumberECMAScript 2016jQuerytraversebuffersprototypelruaccessibilitywordwrapdebuggerwatchtypedcreateconstclonees-shimsremoveduplexhttpreadablequeueWeakSetless compilernativeUint32ArraysanitizationdomArray.prototype.flatMapflatMapwritablewritedatastructurebootstrap cssnopedroplazymiddlewareflag0fromutilitiesdiffcompile lessjestECMAScript 3columnhardlinkspicomatchdescriptionmatchAllArray.prototype.findLastIndexfast-clonebundlingworkspace:*code pointsdefinePropertyshamtypeofistypanionzodprogressstarterdeepstylechineseRegExp#flagsinvariantStreamwidthutilclassesmacosparentvariables in cssshellregularwatching3drequesttc39toobjectmodulessignalsdatecommandinputsymbolstypesyamlgetPrototypeOfvalueseslintconfigweaksetreadablestreamtakeviewTypeBoxreuseString.prototype.trimInt32Arrayintrinsicsetwalkinternal slotserializefetchArrayBufferbindhashconcurrencyinstallprotocol-buffersratebannershimquoteoffsetECMAScript 5javascriptmkdirpObject.assignES8startes8functioncheckes2016lengthmkdirtermslotspinnersArraybrowserlistidlemimeRegExp.prototype.flagsMapregexpcall-boundJSON-SchemaArray.prototype.containssomeprotogetOwnPropertyDescriptorvisualentriesloggingPushwaapistatusspinnertddtestingpnpm9propstablebabeltypedarraygetlintpackageStyleSheetYAMLtoStringTagpromiselanguage-0linkES2015deep-cloneschemaboundrmtacitirquninstallstylesheetqueryhttpsio-tsreducerRxloadinghasOwnmonorepocollection.es6timeclies-abstractquerystringpasswordfilterFloat32ArrayinspectphoneJSONprefixECMAScript 2020Promiseregular expressionsequencerangeerrortrimEndassertsfs[[Prototype]]stylingtranspileES5syntaxerrorponyfillworkercss nestingyupdefineURLSearchParamsObject.definePropertypyyamlcallbindjson-schemagraphqlinternalshebangObject.getPrototypeOfsuperstructcollectionarktypexhrfullcallboundexpresstostringtagcore-jssyntaxcurljsdomlockfilei18nutil.inspectstreams2.envvalueeveryeslint-pluginpackage.jsonmrudependency managerposedeep-copybabel-corefast-deep-clonegetterserializerSymbol.toStringTagparselook-upecmascripttoolkitinstallerobjectcodestypescripttypesafeFloat64ArrayECMAScript 2022ReactiveXdirectoryreduxArrayBuffer.prototype.slicecss variableimportmkdirsES7propertiesfindLastfindLastIndexpostcss-pluginreactuser-streamsreal-timeregexpoint-freeHyBiSymbolgenericsstreamajax_.extendloggerjwtrecursivecontainsprivate datauuiddataviewargumentwarningapolloTypedArrayECMAScript 6react animationutilityasynclogzeroclientes5BigInt64ArraydescriptorsjsdiffsetPrototypeOfbrowserslistprettydeterministicObject.isframeworkconcatMapflatindicatorjasmineramdaoperating-systemsettingscmdgesturesObjectartforEachcensorUnderscorelasttyped arraydotenvkeystextArrayBuffer#sliceArray.prototype.flattenendereventDispatcherchannelhandlersReflect.getPrototypeOfsetterfixed-widthArray.prototype.includesless cssenumerableES3apiES2019Observablessuperagentwgetmetadatarm -frredactes6tapstructuredClonerequirecolourless mixinsInt16Arraystatelessfile systemstyled-componentsBigUint64Arraycomputed-typesspecrgbqsdragvares2018circularawaitcoreassertionstyleguideformlimitbyteOffsetauthenticationgroupString.prototype.matchAllfast-deep-copyfpreact-testing-librarydependenciesmatchescolumnsmulti-packageeslintnegativeWeakMapfastifyrfc4122arraybufferfastclonefindpackage managerpipeansitrimLeftsortedfastsaferandomdayjspersistentInt8ArraythreeES2020callbackIteratornodejsincludesES2021bootstrap lessmimetypesopenerterminalcss-in-jspromisesclass-validatorgetintrinsiccjkasciifull-widthcryptassertECMAScript 2015flattenbyteLengthpreserve-symlinksemojixdg-openenvironmentcoerciblecall-bindspeedchildshrinkwrapjsxupECMAScript 2023stylesless.jsfoldertypedarraysURLpolyfillWebSocketsutilsefficientFunction.prototype.namechaidirhigher-orderperformancemakereducelookgroupByaccessorawesomesaucefastcopyxtermcorsonceflagsconnecthasconsumepackagesgradients css3toArraybcryptttytypeerrorkarmacomparetesterpositivesearchTypeScriptcurriedxsslaunchform-validationthrottlebundler
1.0.0

17 days ago