1.0.14 • Published 3 years ago

my-encrypter-middleware v1.0.14

Weekly downloads
-
License
ISC
Repository
github
Last release
3 years ago

My Encryption Middleware

The goal of this library is to provide a mechanism to transfer encrypted data through the net, to do that it provides tools to encrypt the body and also a middleware to decrypt in an express application.

This library uses AES (Advanced Encryption Standard) for encryption.

Instalation

You can install this library with npm executing

npm install --save my-encrypter-middleware

Middleware

How to use it.

The middleware is going to decrypt the data if we send it in a body within a data field. Example:

{
    'data': 'encrypted body hash'
}

The following example is to configure it in an express application:

import { middleware } from 'my-encrypter-middleware';

const app = express();
const port = 3000;

app.use(express.json());

app.use(middleware('my key'));

app.listen(port);

Notice that you can provide your key, for this example is 'my key'

Encrypter

How to use it

To use the encrypter (client-side) you need to import it and instantiate it as following:

import { cipherInstance } from 'my-encrypter-middleware';

const cipher = cipherInstance('my key');

Keep in mind that you need to add the encryption in a body that has the data field with the encryption in it.

Example:

const bodyToEncrypt = {
    ...
}

{
    'data': cipher.encrypt(bodyToEncrypt);
}

The following example is for an axios call:

import { encryptBody } from 'my-encrypter-middleware';

const objectToEncrypt = {
    'data': 'some data',
    'list': ['one', 'two', 'three']
}

const encrypted = encryptBody(objectToEncrypt, 'my key')

console.log(encrypted);

const response = axios.post('http://localhost:3000', {'data': encrypted})
.then(response => {
    console.log(response.data);
});

Contribute

How can you contribute to this package? To do it you can create a pull request to this repository

Testing

Currently, this repo has unit and integration tests. The unit test covers the cipher encryption and decryption and the integration test is using the middleware in an express application and the cipher to encrypt the body, testing a post the check the integrity of the library.

Before push changes you can create and run test with the following command:

npm test

Also, you can run the test with a docker image, to do that you can execute the following command.

docker build -t my-encryption-middleware . && docker run -it my-encryption-middleware

Feel free to change the image tag whatever you want.

1.0.11

3 years ago

1.0.10

3 years ago

1.0.14

3 years ago

1.0.13

3 years ago

1.0.12

3 years ago

1.0.9

3 years ago

1.0.8

3 years ago

1.0.7

3 years ago

1.0.6-beta

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago