68 lines
2.2 KiB
Dart
68 lines
2.2 KiB
Dart
|
import 'package:platform_encryption/platform_encryption.dart';
|
||
|
import 'package:platform_contracts/contracts.dart';
|
||
|
|
||
|
void main() {
|
||
|
// Generate a key for AES-256-CBC
|
||
|
final key = Encrypter.generateKey('aes-256-cbc');
|
||
|
print('Generated key: $key');
|
||
|
|
||
|
// Create an Encrypter instance
|
||
|
final encrypter = Encrypter(key, cipher: 'aes-256-cbc');
|
||
|
|
||
|
// Example 1: Encrypting and decrypting a string
|
||
|
const originalString = 'Hello, Protevus Platform!';
|
||
|
print('\nExample 1: String encryption');
|
||
|
print('Original: $originalString');
|
||
|
|
||
|
final encryptedString = encrypter.encryptString(originalString);
|
||
|
print('Encrypted: $encryptedString');
|
||
|
|
||
|
final decryptedString = encrypter.decryptString(encryptedString);
|
||
|
print('Decrypted: $decryptedString');
|
||
|
|
||
|
// Example 2: Encrypting and decrypting an object
|
||
|
final originalObject = {
|
||
|
'username': 'john_doe',
|
||
|
'email': 'john@example.com',
|
||
|
'age': 30,
|
||
|
};
|
||
|
print('\nExample 2: Object encryption');
|
||
|
print('Original: $originalObject');
|
||
|
|
||
|
final encryptedObject = encrypter.encrypt(originalObject);
|
||
|
print('Encrypted: $encryptedObject');
|
||
|
|
||
|
final decryptedObject = encrypter.decrypt(encryptedObject);
|
||
|
print('Decrypted: $decryptedObject');
|
||
|
|
||
|
// Example 3: Handling encryption exceptions
|
||
|
print('\nExample 3: Handling exceptions');
|
||
|
try {
|
||
|
encrypter.encrypt(null);
|
||
|
} on EncryptException catch (e) {
|
||
|
print('Caught EncryptException: $e');
|
||
|
}
|
||
|
|
||
|
// Example 4: Handling decryption exceptions
|
||
|
try {
|
||
|
encrypter.decrypt('invalid_payload');
|
||
|
} on DecryptException catch (e) {
|
||
|
print('Caught DecryptException: $e');
|
||
|
}
|
||
|
|
||
|
// Example 5: Using previous keys
|
||
|
print('\nExample 5: Using previous keys');
|
||
|
final oldKey = Encrypter.generateKey('aes-256-cbc');
|
||
|
final newKey = Encrypter.generateKey('aes-256-cbc');
|
||
|
|
||
|
final oldEncrypter = Encrypter(oldKey, cipher: 'aes-256-cbc');
|
||
|
final encryptedWithOldKey = oldEncrypter.encryptString('Secret message');
|
||
|
print('Encrypted with old key: $encryptedWithOldKey');
|
||
|
|
||
|
final newEncrypter =
|
||
|
Encrypter(newKey, cipher: 'aes-256-cbc', previousKeys: [oldKey]);
|
||
|
final decryptedWithNewEncrypter =
|
||
|
newEncrypter.decryptString(encryptedWithOldKey);
|
||
|
print('Decrypted with new encrypter: $decryptedWithNewEncrypter');
|
||
|
}
|