Crypto Module
Crypto
module for the Hapiness framework provides some functions for security features like AES key
, Key pair
, PKCS12
, RSA key
, Certificate
, JWT
and more.
We use existing node modules to provide these functions: NodeRSA, PEM, JWT and RandomString but we add Observable
feature for asynchronous and stream processes.
All most important crypto features in only one module.
Table of contents
- Using http module inside Hapiness application
- API in Detail
- Contributing
- Change History
- Maintainers
- License
Using http module inside Hapiness application
yarn
or npm
it in your package.json
$ npm install --save @hapiness/core @hapiness/crypto rxjs
or
$ yarn add @hapiness/core @hapiness/crypto rxjs
"dependencies": {
"@hapiness/core": "^1.3.0",
"@hapiness/crypto": "^1.0.0",
"rxjs": "^5.5.5",
//...
}
//...
CryptoModule
import import { HapinessModule } from '@hapiness/core';
import { CryptoModule } from '@hapiness/crypto';
@HapinessModule({
version: '1.0.0',
declarations: [
LibWithCrypto
],
imports: [
CryptoModule
]
})
class HapinessModuleNeedsCryptoModule {}
use it anywhere
You can use AESService
, HashService
, PEMService
, RandomstringService
, JWTService
and RSAService
anywhere in your module with dependency injection.
import { Lib } from '@hapiness/core';
import { RSAService, NodeRSA } from '@hapiness/crypto';
@Lib()
class LibWithCrypto {
constructor(private _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
);
}
}
API in Detail
We implemented some services and to see their details go to documentation folder:
- ./documentation/AESService.md
- ./documentation/HashService.md
- ./documentation/JWTService.md
- ./documentation/PEMService.md
- ./documentation/RandomstringService.md
- ./documentation/RSAService.md
Contributing
To set up your development environment:
- clone the repo to your workspace,
- in the shell
cd
to the main folder, - hit
npm or yarn install
, - 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
.
Change History
- v1.0.1 (2018-11-15)
- Fix of
cipher.final()
inAESService.encryptWithAesKey()
andAESService.decryptWithAesKey()
operators
- Fix of
- v1.0.0 (2017-12-19)
- Implementation of
CryptoModule
withAESService
,HashService
,PEMService
,RandomstringService
andRSAService
- Implementation of
Observable's
operators forAESService
andRSAService
features. - Implementation of
Lettable operators
forAESService
andRSAService
features. - Related tests.
- Documentation.
- Implementation of
Maintainers
Julien Fauville | Antoine Gomez | Sébastien Ritz | Nicolas Jessel |
License
Copyright (c) 2017 Hapiness Licensed under the MIT license.