openpgp 3.1.0 openpgp: ^3.1.0 copied to clipboard
library for use OpenPGP with support for android and ios, macOS, linux, windows, web and hover
OpenPGP #
Library for use openPGP with support for android, ios, macos, windows, linux, web and hover
Contents #
Usage #
Generate methods #
import 'package:openpgp/openpgp.dart';
void main() async {
var keyOptions = KeyOptions()..rsaBits = 1024;
var keyPair = await OpenPGP.generate(
options: Options()
..name = 'test'
..email = 'test@test.com'
..passphrase = passphrase
..keyOptions = keyOptions);
}
Encrypt methods #
import 'package:fast_rsa/rsa.dart';
void main() async {
var bytesSample = Uint8List.fromList('data'.codeUnits);
var result = await OpenPGP.encrypt("text","[publicKey here]");
var result = await OpenPGP.encryptSymmetric("text","[passphrase here]");
var result = await OpenPGP.encryptBytes(bytesSample,"[publicKey here]");
var result = await OpenPGP.encryptSymmetricBytes(bytesSample,"[passphrase here]");
}
Decrypt methods #
import 'package:fast_rsa/rsa.dart';
void main() async {
var bytesSample = Uint8List.fromList('data'.codeUnits);
var result = await OpenPGP.decrypt("text encrypted","[privateKey here]","[passphrase here]");
var result = await OpenPGP.decryptSymmetric("text encrypted","[passphrase here]");
var result = await OpenPGP.decryptBytes(bytesSample,"[privateKey here]","[passphrase here]");
var result = await OpenPGP.decryptSymmetricBytes(bytesSample,"[passphrase here]");
}
Sign methods #
import 'package:fast_rsa/rsa.dart';
void main() async {
var bytesSample = Uint8List.fromList('data'.codeUnits);
var result = await OpenPGP.sign("text","[publicKey here]","[privateKey here]","[passphrase here]");
var result = await OpenPGP.signBytesToString(bytesSample,"[publicKey here]","[privateKey here]","[passphrase here]");
}
Verify methods #
import 'package:fast_rsa/rsa.dart';
void main() async {
var bytesSample = Uint8List.fromList('data'.codeUnits);
var result = await OpenPGP.verify("text signed","text","[publicKey here]");
var result = await OpenPGP.verifyBytes("text signed", bytesSample,"[publicKey here]");
}
Setup #
Android #
No additional setup required.
iOS #
No additional setup required.
Web #
Add to you pubspec.yaml
.
assets:
- packages/openpgp/web/assets/worker.js
- packages/openpgp/web/assets/wasm_exec.js
- packages/openpgp/web/assets/openpgp.wasm
ref: https://github.com/jerson/flutter-openpgp/blob/master/example/pubspec.yaml
MacOS #
No additional setup required.
Hover #
Update your plugins.
hover plugins get
In you main_desktop.dart
by now you need to add OpenPGP.bindingEnabled = false
in order to use channels instead of shared objects
import 'main.dart' as original_main;
import 'package:openpgp/openpgp.dart';
void main() {
OpenPGP.bindingEnabled = false;
original_main.main();
}
Linux #
No additional setup required.
Windows #
No additional setup required.
Example #
Inside example folder.
cd example && flutter run
check our web demo: [https://flutter-openpgp.jerson.dev/]
Native Code #
Native library is made in Go
for faster performance.
[https://github.com/jerson/openpgp-mobile]
Upgrade Library #
You need to run
make upgrade
Tests #
You need to run
make test