jwe_encryption_package 0.1.1 copy "jwe_encryption_package: ^0.1.1" to clipboard
jwe_encryption_package: ^0.1.1 copied to clipboard

PlatformAndroid

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'),
            ],
          ),
        ),
      ),
    );
  }
}
1
likes
135
points
18
downloads

Publisher

unverified uploader

Weekly Downloads

A project that provide the functionality with JWE encryption nd decryption

Repository (GitHub)

Documentation

API reference

License

MIT (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on jwe_encryption_package

Packages that implement jwe_encryption_package