https://github.com/akanass/nestjsx-crypto
NestJS module to provide some functions for security features like AES key, Key pair, RSA key, PKCS12, Certificate, PEM and more
https://github.com/akanass/nestjsx-crypto
aes crypto jwt nestjs nestjsx-crypto observable openssl pem rsa rxjs7
Last synced: 7 months ago
JSON representation
NestJS module to provide some functions for security features like AES key, Key pair, RSA key, PKCS12, Certificate, PEM and more
- Host: GitHub
- URL: https://github.com/akanass/nestjsx-crypto
- Owner: akanass
- License: mit
- Created: 2019-08-28T12:33:37.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2023-03-08T03:06:00.000Z (over 2 years ago)
- Last Synced: 2025-02-20T04:47:47.954Z (8 months ago)
- Topics: aes, crypto, jwt, nestjs, nestjsx-crypto, observable, openssl, pem, rsa, rxjs7
- Language: TypeScript
- Homepage:
- Size: 389 KB
- Stars: 11
- Watchers: 1
- Forks: 3
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# NestJSX-Crypto
`Crypto` module for [NestJS](https://nestjs.com/) framework provides some functions for security features like `AES key`, `Key pair`, `PKCS12`, `RSA key`, `Certificate`, `JWT` and more.
This module is a wrapper to use [@akanass-rx-crypto](https://github.com/akanass/rx-crypto) library inside [NestJS](https://nestjs.com/) `application` in an easy way.
**All most important crypto features in only one module.**
## Table of contents
* [Using crypto module inside NestJS application](#using-crypto-module-inside-nestjs-application)
* [Yarn or NPM it in your package.json](#yarn-or-npm-it-in-your-packagejson)
* [Import CryptoModule](#import-cryptomodule)
* [Use it anywhere](#use-it-anywhere)
* [API in Detail](#api-in-detail)
* [Contributing](#contributing)
* [Change History](#change-history)
* [Maintainers](#maintainers)
* [License](#license)## Using crypto module inside NestJS application
### `yarn` or `npm` it in your `package.json`
```bash
$ npm install --save @akanass/nestjsx-crypto @nestjs/common rxjs reflect-metadataor
$ yarn add @akanass/nestjsx-crypto @nestjs/common rxjs reflect-metadata
``````javascript
"dependencies": {
"@akanass/nestjsx-crypto": "^3.0.0",
"@nestjs/common": "^8.0.11",
"reflect-metadata": "^0.1.13",
"rxjs": "^7.4.0"
//...
}
//...
```### import `CryptoModule`
```typescript
import { CryptoModule } from '@akanass/nestjsx-crypto';
import { Module } from '@nestjs/common';
import { NestJSServiceWithCrypto } from './crypto.service.ts';@Module({
imports: [
CryptoModule
],
providers: [
NestJSServiceWithCrypto
]
})
export class NestJSModuleNeedsCryptoModule {}
```### use it anywhere
You can use `AesService`, `HashService`, `PemService`, `RandomStringService`, `JwtService` and `RsaService` anywhere in your module with **dependency injection**.
```typescript
import { RsaService, NodeRSA } from '@akanass/nestjsx-crypto';
import { Injectable } from '@nestjs/common';@Injectable()
export class NestJSServiceWithCrypto {
constructor(private readonly _rsaService: RsaService) {}
createRsaKey(): void {
this._rsaService.createKey().subscribe(
(k: NodeRSA) => console.log(k), // Show NodeRSA instance in console
e => console.error(e) // Show error in console
);
}
}
```[Back to top](#table-of-contents)
## API in Detail
We implemented some services and to see their details go to documentation folder:
* [./documentation/AesService.md](https://github.com/akanass/nestjsx-crypto/blob/master/documentation/AesService.md)
* [./documentation/HashService.md](https://github.com/akanass/nestjsx-crypto/blob/master/documentation/HashService.md)
* [./documentation/JwtService.md](https://github.com/akanass/nestjsx-crypto/blob/master/documentation/JwtService.md)
* [./documentation/PemService.md](https://github.com/akanass/nestjsx-crypto/blob/master/documentation/PemService.md)
* [./documentation/RandomStringService.md](https://github.com/akanass/nestjsx-crypto/blob/master/documentation/RandomStringService.md)
* [./documentation/RsaService.md](https://github.com/akanass/nestjsx-crypto/blob/master/documentation/RsaService.md)[Back to top](#table-of-contents)
## Contributing
To set up your development environment:
1. clone the repo to your workspace,
2. in the shell `cd` to the main folder,
3. hit `npm or yarn install`,
4. run `npm or yarn run test`.
* It will lint the code and execute all tests.
* The test coverage report can be viewed from `./coverage/lcov-report/index.html`.[Back to top](#table-of-contents)
## Change History
* v4.0.0 (2022-07-11)
* Update packages' versions
* Latest `nestjs` version `9.0.2`
* v3.0.0 (2021-10-08)
* Update packages' versions
* Latest `@akanass/rx-crypto` version `2.2.0`
* Latest `rxjs` version `7.4.0`
* Latest `nestjs` version `8.0.11`
* Update tests
* v2.0.0 (2021-06-07)
* Update packages' versions
* Latest `@akanass/rx-crypto` version `2.0.0`
* Latest `rxjs` version `7.1.0`
* v1.1.0 (2021-01-31)
* Update packages' versions
* Fix tests
* Fix `tslint`
* v1.0.0 (2019-09-12)
* Implementation of `CryptoModule` with `AesService`, `HashService`, `JwtService`, `PemService`, `RandomStringService` and `RsaService`
* Implementation of `Observable's` operators for `AesService` and `RsaService` features.
* Related tests.
* Documentation.## License
Copyright (c) 2021 **Nicolas Jessel** Licensed under the [MIT license](https://github.com/akanass/nestjsx-crypto/blob/master/LICENSE.md).
[Back to top](#table-of-contents)