cryptdart 0.1.2 copy "cryptdart: ^0.1.2" to clipboard
cryptdart: ^0.1.2 copied to clipboard

CryptDart is a unified cryptography library for Dart, providing easy-to-use interfaces for symmetric and asymmetric encryption, digital signatures (including ECDSA), and key management. Built on Point [...]

example/main.dart

import 'package:cryptdart/cryptdart.dart';
import 'dart:typed_data';




Future<void> main() async {
  // AES Example
  final aesKey = AESCipher.generateKey();
  final aesCipher = AESCipher((
    parent: (
      key: aesKey,
      parent: (
        parent: (
          algorithm: CryptoAlgorithm.aes,
          expirationDate: null,
          expirationTimes: null,
        ),
      ),
    ),
  ));
  final aesEncrypted = aesCipher.encrypt([1, 2, 3, 4]);
  final aesDecrypted = aesCipher.decrypt(aesEncrypted);
  print('AES decrypted: $aesDecrypted');

  // DES Example
  final desKey = DESCipher.generateKey();
  final desCipher = DESCipher((
    parent: (
      key: desKey,
      parent: (
        parent: (
          algorithm: CryptoAlgorithm.des,
          expirationDate: null,
          expirationTimes: null,
        ),
      ),
    ),
  ));
  final desEncrypted = desCipher.encrypt([1, 2, 3, 4]);
  final desDecrypted = desCipher.decrypt(desEncrypted);
  print('DES decrypted: $desDecrypted');

  // ChaCha20 Example
  final chachaKey = ChaCha20Cipher.generateKey();
  final nonce = Uint8List(8); // Usa un nonce random sicuro in produzione
  final chachaCipher = ChaCha20Cipher((
    parent: (
      key: chachaKey,
      parent: (
        parent: (
          algorithm: CryptoAlgorithm.chacha20,
          expirationDate: null,
          expirationTimes: null,
        ),
      ),
    ),
    nonce: nonce,
  ));
  final chachaEncrypted = chachaCipher.encrypt([1, 2, 3, 4]);
  final chachaDecrypted = chachaCipher.decrypt(chachaEncrypted);
  print('ChaCha20 decrypted: $chachaDecrypted');

  // RSA Example
  final rsaKeys = await RSACipher.generateKeyPair();
  final rsaCipher = RSACipher((
    parent: (
      publicKey: rsaKeys['publicKey']!,
      privateKey: rsaKeys['privateKey']!,
      parent: (
        parent: (
          algorithm: CryptoAlgorithm.rsa,
          expirationDate: null,
          expirationTimes: null,
        ),
      ),
    ),
  ));
  final rsaEncrypted = rsaCipher.encrypt([1, 2, 3, 4]);
  final rsaDecrypted = rsaCipher.decrypt(rsaEncrypted);
  print('RSA decrypted: $rsaDecrypted');

  // HMAC Example
  final hmacKey = HMACSign.generateKey();
  final hmacSign = HMACSign((
    parent: (
      key: hmacKey,
      parent: (
        parent: (
          algorithm: CryptoAlgorithm.hmac,
          expirationDate: null,
          expirationTimes: null,
        ),
      ),
    ),
  ));
  final hmacSignature = hmacSign.sign([1, 2, 3, 4]);
  final hmacVerified = hmacSign.verify([1, 2, 3, 4], hmacSignature);
  print('HMAC verified: $hmacVerified');

  // RSA Signature Example
  final rsaSigKeys = await RSASignatureCipher.generateKeyPair();
  final rsaSign = RSASignatureCipher((
    parent: (
      publicKey: rsaSigKeys['publicKey']!,
      privateKey: rsaSigKeys['privateKey']!,
      parent: (
        parent: (
          algorithm: CryptoAlgorithm.rsaSignature,
          expirationDate: null,
          expirationTimes: null,
        ),
      ),
    ),
  ));
  final rsaSignature = rsaSign.sign([1, 2, 3, 4]);
  final rsaSigVerified = rsaSign.verify([1, 2, 3, 4], rsaSignature);
  print('RSA signature verified: $rsaSigVerified');

  // ECDSA Example
  final ecdsaKeys = await ECDSASign.generateKeyPair();
  final ecdsaSign = ECDSASign((
    parent: (
      parent: (
        parent: (
          algorithm: CryptoAlgorithm.ecdsa,
          expirationDate: null,
          expirationTimes: null,
        ),
      ),
      publicKey: ecdsaKeys['publicKey']!,
      privateKey: ecdsaKeys['privateKey']!,
    ),
  ));
  final ecdsaSignature = ecdsaSign.sign([1, 2, 3, 4]);
  final ecdsaVerified = ecdsaSign.verify([1, 2, 3, 4], ecdsaSignature);
  print('ECDSA signature verified: $ecdsaVerified');
}
0
likes
0
points
37
downloads

Publisher

unverified uploader

Weekly Downloads

CryptDart is a unified cryptography library for Dart, providing easy-to-use interfaces for symmetric and asymmetric encryption, digital signatures (including ECDSA), and key management. Built on PointyCastle and BasicUtils, LGPL-3.0.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

basic_utils, meta, pointycastle

More

Packages that depend on cryptdart