All Projects → jerson → flutter-openpgp

jerson / flutter-openpgp

Licence: MIT license
OpenPGP for flutter made with golang for fast performance with support for android, ios, macos, linux, windows, web and hover

Programming Languages

dart
5743 projects
C++
36643 projects - #6 most used programming language
javascript
184084 projects - #8 most used programming language
CMake
9771 projects
c
50402 projects - #5 most used programming language
ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to flutter-openpgp

Objectivepgp
OpenPGP library for iOS and macOS
Stars: ✭ 557 (+1491.43%)
Mutual labels:  pgp, openpgp
Rnp
RNP: high performance C++ OpenPGP library, fully compliant to RFC 4880
Stars: ✭ 122 (+248.57%)
Mutual labels:  pgp, openpgp
Gpgsync
🔒 GPG Sync is designed to let users always have up-to-date public keys for other members of their organization
Stars: ✭ 301 (+760%)
Mutual labels:  pgp, openpgp
OpenPGP
A C++ Implementation of RFC 4880
Stars: ✭ 87 (+148.57%)
Mutual labels:  pgp, openpgp
wp-pgp-encrypted-emails
🔐 📧 Encrypts WordPress emails using OpenPGP or S/MIME with a familiar API.
Stars: ✭ 35 (+0%)
Mutual labels:  pgp, openpgp
lokey
A tool that makes it easy to work with and convert between cryptographic key formats
Stars: ✭ 87 (+148.57%)
Mutual labels:  pgp, openpgp
Encrypt.to
Send encrypted PGP messages with one click
Stars: ✭ 116 (+231.43%)
Mutual labels:  pgp, openpgp
Bouncy Gpg
Make using Bouncy Castle with OpenPGP fun again!
Stars: ✭ 164 (+368.57%)
Mutual labels:  pgp, openpgp
openpgpkey-control
OpenPGP keys published on your website (WKD)
Stars: ✭ 36 (+2.86%)
Mutual labels:  pgp, openpgp
pgpverify-maven-plugin
Verify Open PGP / GPG signatures plugin
Stars: ✭ 42 (+20%)
Mutual labels:  verify, pgp
pgpainless
Simple to use OpenPGP API based on Bouncy Castle
Stars: ✭ 73 (+108.57%)
Mutual labels:  pgp, openpgp
react-native-fast-openpgp
OpenPGP for react native made with golang for fast performance
Stars: ✭ 29 (-17.14%)
Mutual labels:  pgp, openpgp
openpgp-php
OpenPGP.php is a pure-PHP implementation of the OpenPGP Message Format (RFC 4880).
Stars: ✭ 161 (+360%)
Mutual labels:  pgp, openpgp
react-use-hoverintent
React hook for hoverIntent
Stars: ✭ 16 (-54.29%)
Mutual labels:  hover
Taro-sign
Taro 开发的 思政教育签到小程序
Stars: ✭ 27 (-22.86%)
Mutual labels:  sign
tangem-sdk-ios
The native Swift library for iOS platforms
Stars: ✭ 35 (+0%)
Mutual labels:  sign
ScratchVerifier
Verify Scratch accounts as genuine, for use in authorization or identification.
Stars: ✭ 17 (-51.43%)
Mutual labels:  verify
QuestPDF
QuestPDF is an open-source, modern and battle-tested library that can help you with generating PDF documents by offering friendly, discoverable and predictable C# fluent API.
Stars: ✭ 2,872 (+8105.71%)
Mutual labels:  generate
c2ats
generate ATS interface from C code
Stars: ✭ 19 (-45.71%)
Mutual labels:  generate
Android-PGP
Simple PGP encryption/decryption on android.
Stars: ✭ 46 (+31.43%)
Mutual labels:  pgp

OpenPGP

Library for use openPGP with support for android, ios, macos, windows, linux, web and hover

Integration Tests Android

Integration Tests Linux

Integration Tests Windows

Integration Tests iOS

Integration Tests macOS

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 = '[email protected]'
              ..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
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].