# cordova-plugin-dataencryption

> Use this plugin to encrypt and decrypt data sensitive data. Its useful when we want to persist some sensitive data e.g. access token, on application

Latest version **0.0.2** (published 2019-09-17) · BSD license · 0 weekly downloads

## Install

```sh
npm install cordova-plugin-dataencryption
pnpm add cordova-plugin-dataencryption
yarn add cordova-plugin-dataencryption
bun add cordova-plugin-dataencryption
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.2 |
| Published | 2019-09-17 |
| First published | 2019-09-14 |
| Weekly downloads | 0 |
| License | BSD |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 1.3 MB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Dilip Sarkar |
| Maintainers | dilipsarkar |
| Keywords | encryption, data encryption, cordova encryption |

## Links

- npm: https://www.npmjs.com/package/cordova-plugin-dataencryption
- Repository: https://github.com/dilipsarkar/DataEncryptionPlugin
- Homepage: https://github.com/dilipsarkar/DataEncryptionPlugin#readme
- Issues: https://github.com/dilipsarkar/DataEncryptionPlugin/issues
- npm.io page: https://npm.io/package/cordova-plugin-dataencryption

## Alternatives

- [@gemini-wallet/core](https://npm.io/package/@gemini-wallet/core.md) — 515.6K weekly downloads
- [utility](https://npm.io/package/utility.md) — 416.6K weekly downloads
- [@primno/dpapi](https://npm.io/package/@primno/dpapi.md) — 7.2K weekly downloads
- [pi-readseek](https://npm.io/package/pi-readseek.md) — 3.7K weekly downloads
- [@emilia-protocol/verify](https://npm.io/package/@emilia-protocol/verify.md) — 1.1K weekly downloads

## Recent versions

- 0.0.2 (latest) — 2019-09-17
- 0.0.1 — 2019-09-14

## README

# cordova-plugin-dataencryption
Its based on below encryption libraries
- Android - [Conceal](http://facebook.github.io/conceal/)
- iOS - [AESCrypt](https://github.com/Gurpartap/AESCrypt-ObjC)

# Data Encryption Cordova Plugin
Use this plugin to encrypt and decrypt data sensitive data. Its useful when we want to persist some sensitive data e.g. access token, on application. 

# Installation
```
cordova plugin add cordova-plugin-dataencryption --save
```
# Supported Platforms
- Android
- iOS

# How does it work?
 - **Set key** - Define encryption key(strong enough) which will be used to encrypt and decrypt your data. setKey API is called to persist a key on native storage in a format of (key, value) pair. It enables us to be able to use different keys for different encryption. During encryption/decryption we need to pass the key name(not the value) to be used for encryption/decryption. Setting keys should be the very first things we need to do. If you want to make it more secure then you can also use a passcode which will be used in combination with the key to encrypt your data.
 - **Get Key** - If your key was persisted using setKey API, getKey API will return your key value.
 - **Encryption** - Call encrypt API, along with raw data, key name and passcode(optional) to encrypt your raw data.
 - **Decryption** - Call decrypt API, along with encrypted data, key name and passcode(optional) to decrypt your encrypted data.

# Usage
On ```deviceReady``` event(or there after) we have to perform all our actions 

**Data Encryption**
```
let data = 'Dilip Sarkar';
let encKey = 'RWZFSjazKOmUgu02';
let passcode = '12345';

DataEncryption.setKey(function (r) {
	if (r.status === 'Success') {
		DataEncryption.encrypt(function (encryptedData) {
			if (encryptedData.status === 'Success') {
				alert('Encrypted data: '+encryptedData.value);
				console.log('Encrypted data: '+encryptedData.value);
				localStorage.setItem('data', encryptedData.value);
			}
		}, 'encKey', data, passcode);
	}
}, 'encKey', encKey);
```

**Data Decryption**
```
let encData = 'your_encrypted_data';
let passcode = 'your_passcode';//same as encryption passcode

DataEncryption.decrypt(function (decryptedData) {
	if (decryptedData.status === 'Success') {
		alert('Decrypted data: '+decryptedData.value);
	}
}, 'encKey', encData, passcode);
```

# License
BSD

---
_Source: https://npm.io/package/cordova-plugin-dataencryption · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
