prefix_encrypt 1.0.8 copy "prefix_encrypt: ^1.0.8" to clipboard
prefix_encrypt: ^1.0.8 copied to clipboard

This dart package allows easy encryption of text using AEAD XChaCha20 Poly1305 and XChaCha20.

example/lib/example.dart

import 'package:flutter/cupertino.dart';
import 'package:prefix_encrypt/prefix_encrypt.dart';

void main() {
  // all values have to be in hexadecimal

  String aad = "000000000000000000000000"; // must be at least 1 character
  String key =
      "0000000000000000000000000000000000000000000000000000000000000000"; // Key must be 64 character
  String iv = "0000000000000000"; // must be at least 16 character
  String constant = "00000000"; // must be 8 character
  String hNonce =
      "000000000000000000000000000000000000000000000000"; // must be 48 character
  String plaintextPrefix = "Hello World!😄";
  String plaintextWithoutPrefix = "Hello World!";

  Future<void> aeadXchacha20poly1305prefix() async {
    List encrypt = await AEADxChaCha20poly1305withPrefix.encrypt(
        aad: aad,
        iv: iv,
        key: key,
        constant: constant,
        hNonce: hNonce,
        plaintext: plaintextPrefix);
    String decrypt = await AEADxChaCha20poly1305withPrefix.decrypt(
        aad: aad,
        iv: iv,
        key: key,
        constant: constant,
        hNonce: hNonce,
        ciphertext: encrypt[0],
        savedTag: encrypt[1]);

    debugPrint("$encrypt\n$decrypt");
  }

  Future<void> xChaChaPrefix() async {
    String encrypt = await XChaCha20withPrefix.encrypt(
        key: key, nonce: hNonce, plaintext: plaintextPrefix);
    String decrypt = await XChaCha20withPrefix.decrypt(
        key: key, nonce: hNonce, ciphertext: encrypt);

    debugPrint("$encrypt\n$decrypt");
  }

  Future<void> aeadXchacha20poly1305() async {
    List encrypt = await AEADxChaCha20poly1305.encrypt(
        aad: aad,
        iv: iv,
        key: key,
        constant: constant,
        hNonce: hNonce,
        plaintext: plaintextWithoutPrefix);
    String decrypt = await AEADxChaCha20poly1305.decrypt(
        aad: aad,
        iv: iv,
        key: key,
        constant: constant,
        hNonce: hNonce,
        ciphertext: encrypt[0],
        savedTag: encrypt[1]);

    debugPrint("$encrypt\n$decrypt");
  }

  Future<void> xChaCha20() async {
    String encrypt = await XChaCha20.encrypt(
        key: key, nonce: hNonce, plaintext: plaintextWithoutPrefix);
    String decrypt =
        await XChaCha20.decrypt(key: key, nonce: hNonce, ciphertext: encrypt);

    debugPrint("$encrypt\n$decrypt");
  }

  aeadXchacha20poly1305prefix();
  xChaChaPrefix();
  aeadXchacha20poly1305();
  xChaCha20();
}
2
likes
140
points
78
downloads

Publisher

unverified uploader

Weekly Downloads

This dart package allows easy encryption of text using AEAD XChaCha20 Poly1305 and XChaCha20.

Repository (GitHub)

Documentation

API reference

License

MIT (license)

Dependencies

dartdoc, flutter, http

More

Packages that depend on prefix_encrypt