encryptions 0.0.5 copy "encryptions: ^0.0.5" to clipboard
encryptions: ^0.0.5 copied to clipboard

outdated

A plugin for using native Argon2/AES in Android and IOS

encryptions #

pub

A plugin for using native AES /Argon2 algorithms in Android/IOS. Since it's not possible to run automatic test for flutter plugins currently as far as I know, a few test cases are provided along with the example:

Test report

Tested platforms:

  • IOS simulator(IPhone 5SE)
  • Android (NX563J, Android 10)

Getting Started #

Supported algorithms:

  • AES(128bit or 256bit) in ECB or CBC mode, with NoPadding or PKCS5Padding. Please be aware that if you choose NoPadding then you need to make sure the size of the block you're going to encrypt must be multiple of 16(which is the AES block size).
  • argon2i, argon2d, argon2id

Also since 0.0.5 new *Isolated APIs are available to run in separated isolate to unblock the UI.

AES example usage #

Uint8List key256 = hex
    .decode("163928fb9615edf6005afc98d9fdbb3d830b3a286ebef64dd70be848f17bf9cc");
Uint8List iv = hex.decode("c1f6fd873e14050697c168b3e9da5db2");
Uint8List plain = hex.decode("01040000000300000002400000008b2e");

AES aes = AES.ofCBC(key256, iv, PaddingScheme.PKCS5Padding);
Uint8List encrypted = await aes.encrypt(plain);
Uint8List decrypted = await aes.decrypt(encrypted);

/// if you want to use the isolated api:
/// Uint8List encrypted = await aes.encryptIsolated(plain);
/// Uint8List decrypted = await aes.decryptIsolated(encrypted);

Argon2 example usage #

Uint8List password = utf8.encode("password");
Uint8List salt = utf8.encode("helloworld");

Argon2 argon2 = Argon2(iterations: 16, hashLength: 64, memory: 256, parallelism: 2);
Uint8List hash = await argon2.argon2i(password, salt);

/// if you want to use the isolated api:
/// Uint8List hash = await argon2.argon2iIsolated(password, salt);

for more details, try to have a look at example/lib/test_case.dart

13
likes
0
pub points
85%
popularity

Publisher

unverified uploader

A plugin for using native Argon2/AES in Android and IOS

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

convert, flutter, flutter_isolate

More

Packages that depend on encryptions