jwe_encryption_package 0.1.1
jwe_encryption_package: ^0.1.1 copied to clipboard
A project that provide the functionality with JWE encryption nd decryption
example/lib/main.dart
import 'dart:convert';
import 'dart:math';
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:flutter/services.dart';
import 'package:jwe_encryption_package/jwe_encryption_package.dart';
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
String _publicKey = '';
String _privateKey = '';
String _encryptedPayload = 'eyJhbGciOiJSUzI1NiIsImtpZCI6IlJ5MDd6ZjdiWlRmVEVsVmc3ZGxfZUVfLU9JcUYxTzF5MVZOY2l2MFlFUXMifQ.ZXlKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V5TlRaSFEwMGlMQ0pyYVdRaU9pSlNlVEEzZW1ZM1lscFVabFJGYkZabk4yUnNYMlZGWHkxUFNYRkdNVTh4ZVRGV1RtTnBkakJaUlZGekluMC5CSlphdGFCMnVkRUpidzN5REpsZE9TQmZrRG80aVFYUkk3OWh1WFh5dGRHT3JHVzRCZG9qa2NPdTgwNEtoamxOV2ZpY2czMkxETEdmQjZoNTZyTk8wRHZzakVTNlBfRFRyaWZ0OWNNMW9ERVVLVG1RWHlSbzA3QVhDWmhvUlEwSzd5VDhBUkpmM3V1TWZQSUZEcWQ3bzdXTVdNbkRXMkpwZXQydzF2cE1SNXFadmxfVDcyRUVDeU0yUVlib0htWUp2ODVIT2d6T1hYREdyRkdLZUhka1Vyc0JVNHVjWGZicDdhb0dmX2Nsb2M0c1lzR0RMWkFEZzhYaDdISzA0ZXM5VnI5N0wzMndEeFVwaC1oV3lTQnA2QnVzd3NQLXNGbS1TekRVay11MU5Db3RrbnlQeERic3EtaUFnZjd2S1JMQ2NKazVnWnZlUkRfV0xfNFBsbk1XM2cuVEt5ZUtSaG8xeGhNSWcxeS4wclhFU1NzbGREd1JTNUNBNy1DbVZQRHhzQlhPOEVaVGJfSHdSdlRwbTRDYXFPWUEyWUphX0Q0N1B2QVdrRHNIaF9KV2NZQmtpTkVMTGJGNFhqOUFWT3JGLVMyNDJkZmlubWdRTTV0NVZnVkJhWGNPY3BaQWV1M3JCeDB4Y21aR3drOUJZYWthZXdNblVNcFM4NDZ6ZkVxUnBza2M0eFRRZl9kcnFGbXhzT0VHY29ubzNDRFN0MVB2bG5Uak5JdnBzVDBWQUtnLW9VSVB1VlBZcVUwZ3VHa0dERXBXaUp1RWZ5M2VjMTBMQ181SXhKUzlkRU1tRFp1ZW5LeTZ5N2JKM1JRMUdJWldFQTVxenZYNDJOWWdhM3RZUGJ1OFh3QmVMQjJRVlN3cVFjZVNROGpxRmFtX1M1TUFjRXlFV05ZV1NGcWYycXh6QmlHRGlVd2xYalhGaTF5UjBLZV9POE9VNDdfTW1FNVJtLWVqTG5QWWE4T2FxMTRZWmV4R0VGTkRjdmxhaVhKb2pPd3BZdVpzbGI2Mlg0ZWJtY2VfV0h3XzV0WnhpZmhTTWplcEllZXNlS1kuLXFORk55TEpqbmxYNGx2TnFEa3pJQQ.Ewjs4_qdnh0_AZpKOviMv2IxMmoU1w7s5fdV6kXiT24mly01m_iEwzqY2PpZEqPl1jMVFaLXD68SVAoFZka3bgM0P877qAnVWuoZXu1-V2Z9lVXGSvCZr4yTzhpTtM8SQYpLOPfwpQSSlzUtSahwuFSNaHKA6D-jD_caXIaUd16ALFajpLBwwz95L4DHd2bcStXbzObr3XNyXjnhKQpQHlXfm4G1Z3XFMN4RrSkiSUIk_jt306692dXs5-lv79AFxcBwKPsKsY5JELHqHZbM4F9xuw6qMijk0CnW-75B5L1qBU3P2uvX_oD9lsuhS9lUSmQdN9Mk_LQ_EmUiYULckQ';
String _decryptedPayload = '';
var json = {"name": "John Doe", "email": "john.doe@example.com"};
@override
void initState() {
super.initState();
_generateKeyPair(); // Start by generating a key pair when the app initializes
}
// Function to generate a key pair
Future<void> _generateKeyPair() async {
try {
// Call the function to generate a key pair from your plugin
String? keys = await JweEncryptionPackage().getkeysData();
List<String> keyParts = keys!.split('\n');
String publickey = """
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA8D7HGLHyHJLBKel1BtWy
WmjGvkM7iYA80ZvzH+80hqrOLUx1LrK8m7ij2rWAzmgtrjG/u3GBWSrIo0lzYTlP
5YJCbMjceUD1X8WQAyJjhOGsF88f0/ypsd9n0Maed3eJbxs4QP2njRnAgL/e14Sm
/1yTW3xScH9dGCMrD6kP9jJw/rqFz3iU33YGhXuVKqRHrZkAG2Hv1W8JsTVeoZ9H
kUmgE/hzioh0GmVGLLo5yRw9TkPZXx5MjLNPd5FuEQ7oSvcgUXvoapA5rZI3XhoT
ldhjQCeDFaROMwdrmR1v5qtXohdvVYGFEa4h3G+OMXfxO0tUx2P7jMNKW3610tb2
pwIDAQAB
""";
String privatekey = """
MIIEpQIBAAKCAQEA8D7HGLHyHJLBKel1BtWyWmjGvkM7iYA80ZvzH+80hqrOLUx1
LrK8m7ij2rWAzmgtrjG/u3GBWSrIo0lzYTlP5YJCbMjceUD1X8WQAyJjhOGsF88f
0/ypsd9n0Maed3eJbxs4QP2njRnAgL/e14Sm/1yTW3xScH9dGCMrD6kP9jJw/rqF
z3iU33YGhXuVKqRHrZkAG2Hv1W8JsTVeoZ9HkUmgE/hzioh0GmVGLLo5yRw9TkPZ
Xx5MjLNPd5FuEQ7oSvcgUXvoapA5rZI3XhoTldhjQCeDFaROMwdrmR1v5qtXohdv
VYGFEa4h3G+OMXfxO0tUx2P7jMNKW3610tb2pwIDAQABAoIBAQDWGNwNIeeFlzMV
SrvDz4UWFPGodPoF24ZXtgbAmsfQiz8aF10GtLpoe+9p5P5Y83ZiGmune8utzvbm
rXppVk3hVmgj0gzI8h65rrJcWLUfoo1e2nKe1DfWECXQZHCsPpb3sOY85NAAasam
9lZ88fZw8+tOSEifgKFR9WVWm29iEm9x6vNocEB3PBScp/ClpqwYwrpfDAdiESRZ
EOrwz1ZbfKZnpvebYf3h+455IlSLOou7FUq9iW9qGGHJsQf2O0X19EM8hZUk1BRJ
uFbAHhzOcOM0KMUAz0qg37efdxm5uI+ECci9c/vgyXZ6hIBJ7lC6tmTq/Z3arYK9
0FZOw+XhAoGBAP92p7ZbP4AkZPXE2QIW6Uf5+dei0dzI7nJmwKgVEjGWTAjW7Ppo
eRfknocYX6P6AAHyCR8PbuN1IH6EBvepBZuOj8BlYd9dsNoBD+YgVEhO4RJjmjPZ
mH1LudIWEOR884CG9hMUTDU3F84mTT+xpQvxxIcYh0Y+vTx5Nn6zWz+zAoGBAPC/
8NfR502KQJSmfaloPiNrQB2BSKJWVOfT9khCM3XorEOjuteJx0s4fNe13V/V4cx9
3u8ttJQex801LBepOkBMtWQ7Ye5au0AxtHE4Nfvk1/6ggF1yajLpm3G3Ka3lmLsw
1J1ksSRZ2o0h3IxB8DMBtw5Wv1qs2Ftdix7y55M9AoGBAMaIfEZoG62Gmz+1P8Ez
9RAO4XAIBXjEXythV5BI797Bo02rWngxAQrkjZ8H/iv9ekwIwbX11IPI3vvzt0Z5
gPYnkOhA4hMpSOvjr2t07ItVYe1cotZw4OVfGIaAx5gK02KrgEnLmH4y1rlLYvWB
JXdm6QjksxyQXZjFyugkk2GpAoGAY0xXszyxcYr/fhB5riD/2C4JYOINKl//XytO
3pjnjs9sFe33R6VdXQose/BYIYofOvADvpUUcS+M63ft+shi7Vh2TKQtjVlA+IZH
zZcItR+7cxuSNnjVkrBF3A5XE5GqgDLwzwZUBhFFkoaP6A3eW7tuXGytOmImTvDz
S82WdGUCgYEA4C11DYtHOAahnF4ernBx1av2CbVKXPd0ucC2fJY5oceN8nsWhp2j
Yrx1VBbK1XjVcNWGIEFV1gxZvYKQU1yyv60muM/+ra3lrheQ8yexQ1zjW/pjNjKV
08yJyHZlRxHCDlkDUqhFft7pO6Rl6R3lKDnvMHWwsPKMZzgcHphAREA=
""";
// String privateKeyString = keyParts[1];
String publicKeyString = publickey;
String privateKeyString = privatekey;
// print('publicKeyString: $publicKeyString');
// print('privateKeyString: $privateKeyString');
setState(() {
_publicKey = publicKeyString; // Store the public key
_privateKey = privateKeyString; // Store the private key
});
} catch (e) {
print('Error generating key pair: $e');
}
}
// Function to encrypt and sign a payload
Future<void> _encryptPayload() async {
try {
// Call the function to encrypt and sign the payload
String? encryptedPayload = await JweEncryptionPackage()
.jweEncryptAndSign(_publicKey, _privateKey, json.toString());
setState(() {
_encryptedPayload = encryptedPayload!; // Store the encrypted payload
});
setState(() {
_encryptedPayload = encryptedPayload!; // Store the encrypted payload
});
} catch (e) {
print('Error encrypting payload: $e');
}
}
// Function to verify and decrypt a payload
Future<void> _decryptPayload() async {
try {
// Call the function to verify and decrypt the payload
String? decryptedPayload = await JweEncryptionPackage()
.jweVerifyAndDecrypt(_publicKey, _privateKey, _encryptedPayload);
setState(() {
_decryptedPayload = decryptedPayload!; // Store the decrypted payload
});
} catch (e) {
print('Error decrypting payload: $e');
}
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Flutter JWE Encryption Plugin'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ElevatedButton(
onPressed: _encryptPayload,
child: Text('Encrypt Payload'),
),
// Text('Encrypted Payload: $_encryptedPayload'),
ElevatedButton(
onPressed: _decryptPayload,
child: Text('Decrypt Payload'),
),
Text('Decrypted Payload: $_decryptedPayload'),
],
),
),
),
);
}
}