rncryptor 0.0.2 copy "rncryptor: ^0.0.2" to clipboard
rncryptor: ^0.0.2 copied to clipboard

A high-level AES encryption/decryption library compatible with Rob Napier's RNCryptor for iOS.

Flutter RNCryptor package #

A high-level AES encryption/decryption library compatible with Rob Napier's RNCryptor for iOS. This implementation is based on JSCryptor and uses pointycastle under the hood.

RNCryptor specification can be found here.

Usage #

First import it in your Dart code:

import 'package:rncryptor/rncryptor.dart';

Using RNCryptor is simple, just call the encrypt method to encrypt your text by using the specified password:

var encrypted = RNCryptor.encrypt('my password', 'some plain text');

Call decrypt method to decrypt the encrypted text:

var encrypted = RNCryptor.decrypt('my password', 'an encrypted message');

Converting a password into a key is intentionally slow. In case your app encrypts/decrypts many short messages, using password would have a significant performance impact. In that case using keys would be preferred.

Use the generateKey method to generate a new key from a password and a salt:

var salt = RNCryptor.generateSalt();
var encryptKey = RNCryptor.generateKey('my password', salt);

RNCryptor uses two 256-bit (32 byte) length keys for encryption and authentication. The encryptWithKey method encrypts the message with the specified keys:

RNCryptor.encryptWithKey(encryptKey, hmacKey, 'some plain text');

Call the decryptWithKey method to decrypt a message encrypted with a known key:

RNCryptor.decryptWithKey(encryptKey, hmacKey, 'an encrypted message');
2
likes
140
pub points
62%
popularity

Publisher

unverified uploader

A high-level AES encryption/decryption library compatible with Rob Napier's RNCryptor for iOS.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (LICENSE)

Dependencies

collection, flutter, pointycastle

More

Packages that depend on rncryptor