UNPKG

@4us-dev/crypto

Version:

Utility classes to assist developers during software development

160 lines (118 loc) 4.18 kB
# 4us-dev crypto [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=4us-dev_crypto&metric=alert_status)](https://sonarcloud.io/dashboard?id=4us-dev_crypto) [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=4us-dev_crypto&metric=coverage)](https://sonarcloud.io/dashboard?id=4us-dev_crypto) [![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=4us-dev_crypto&metric=code_smells)](https://sonarcloud.io/dashboard?id=4us-dev_crypto) [![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=4us-dev_crypto&metric=vulnerabilities)](https://sonarcloud.io/dashboard?id=4us-dev_crypto) [![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=4us-dev_crypto&metric=sqale_rating)](https://sonarcloud.io/dashboard?id=4us-dev_crypto) [![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=4us-dev_crypto&metric=security_rating)](https://sonarcloud.io/dashboard?id=4us-dev_crypto) ![Build and Tests](https://github.com/4us-dev/crypto/workflows/Build%20and%20Tests/badge.svg) [![npm-package](https://badge.fury.io/js/%404us-dev%2Fcrypto.svg)](https://www.npmjs.com/package/@4us-dev/crypto) [![issues](https://img.shields.io/github/issues/4us-dev/crypto)](/issues) [![dependencies](https://img.shields.io/david/4us-dev/crypto)](https://david-dm.org/4us-dev/crypto) [![dev-dependencies](https://img.shields.io/david/dev/4us-dev/crypto)](https://david-dm.org/4us-dev/crypto?type=dev) [![downloads](https://img.shields.io/npm/dw/@4us-dev/crypto)](https://www.npmjs.com/package/@4us-dev/crypto) ![size](https://img.shields.io/bundlephobia/min/@4us-dev/crypto) [![license](https://img.shields.io/npm/l/@angular/cli.svg)](/LICENSE) Install with [npm](https://www.npmjs.com/) ```sh npm i @4us-dev/crypto ``` ### Introduction `@4us-dev/crypto` is a lib to help developers with encryption and encoding. ## Usage - [Base64](#base64) - [encode](#encode) - [decode](#decode) - [Base64Url](#base64url) - [encode](#encode) - [decode](#decode) - [sha256](#sha256) - [Defining output encode](#defining-output-encode) - [sha256Async](#sha256Async) - [PKCE](#pkce) - [codeVerifierGenerator](#codeverifiergenerator) - [codeChallengeGenerator](#codechallengegenerator) ### Base64 ```js import { base64 } from '@4us-dev/crypto'; ``` #### encode ```js base64.encode('teste+encode+'); // output // dGVzdGUrZW5jb2RlKw== ``` #### decode ```js base64.decode('dGVzdGUrZW5jb2RlKw=='); // output // teste+encode+ ``` ### Base64Url ```js import { base64Url } from '@4us-dev/crypto'; ``` #### encode ```js base64Url.encode('teste+encode+'); // output // dGVzdGUrZW5jb2RlKw ``` #### decode ```js base64Url.decode('dGVzdGUrZW5jb2RlKw'); // output // teste+encode+ ``` ### sha256 ```js import { sha256 } from '@4us-dev/crypto'; ``` default encoding is `hex` ```js sha256('4us dev'); // output // 9c8813f0ca966480ebd17668f7850c85930e9a5e2425a71d9b1125c9026edf3d ``` #### defining output encode ```js sha256('4us dev', 'base64'); // output // nIgT8MqWZIDr0XZo94UMhZMOml4kJacdmxElyQJu3z0= ``` ### sha256Async ```js import { sha256Async } from '@4us-dev/crypto'; ``` ```js const output = await sha256Async('4us dev'); // or sha256Async('4us dev').then((output) => console.log(output)); // output // 9c8813f0ca966480ebd17668f7850c85930e9a5e2425a71d9b1125c9026edf3d ``` ### PKCE Generate `code verifier` and `code challenge` for OAuth with PKCE. ```js import { pkce } from '@4us-dev/crypto'; ``` #### codeVerifierGenerator ```js const codeVerifier = pkce.codeVerifierGenerator(); // output example // FVMq~J2BfdXm2cEOEtlKQTGNRjYQ8VYA6OETFrW3A915~8dbktXkSwtVbZnUUStkApwZjcIWCYV.OiITpYNXpuWGBEM1.oFxT7ZizzoQ0OE81ZAOIU1JCwXMxmCQtyL2 ``` #### codeChallengeGenerator ```js // this works only with nodejs const output = pkce.codeChallengeGenerator(codeVerifier); // output example // Ae8fgMraIhwQDPladfacB-s6Oh4Hzs34SXLQmiyci98 ``` #### codeChallengeGeneratorAsync ```js // this works with browser and node const output = await pkce.codeChallengeGeneratorAsync(codeVerifier); // output example // Ae8fgMraIhwQDPladfacB-s6Oh4Hzs34SXLQmiyci98 ```