パッケージ、リポジトリ、アプリカテゴリを検索

GitHub リポジトリjerson/flutter-openpgp

flutter-openpgp

高速パフォーマンスを実現するgolangで作られたFlutter用OpenPGP。Android、iOS、macOS、Linux、Windows、Webをサポート

flutter-openpgp のプロジェクト画像
スター
75
フォーク
29
最終プッシュ(UTC)
2025/10/25
プロジェクト状態
公開中

元の README

以下は英語原文のスナップショットです。最新版は GitHub をご覧ください。

OpenPGP

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

Integration Tests Android

Integration Tests Linux

Integration Tests Windows

Integration Tests iOS

Integration Tests macOS

Contents

Usage

Async methods
Generate methods

void main() async {
    var keyOptions = KeyOptions()..rsaBits = 2048;
    var keyPair = await OpenPGP.generate(
            options: Options()
              ..name = 'test'
              ..email = 'test@test.com'
              ..passphrase = passphrase
              ..keyOptions = keyOptions);
}
Encrypt methods

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

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

void main() async {
    var bytesSample = Uint8List.fromList('data'.codeUnits);
    
    var result = await OpenPGP.sign("text","[privateKey here]","[passphrase here]");
    var result = await OpenPGP.signBytesToString(bytesSample,"[privateKey here]","[passphrase here]");
    
    // sign including data
    var result = await OpenPGP.signData("text","[privateKey here]","[passphrase here]");
    var result = await OpenPGP.signDataBytesToString(bytesSample,"[privateKey here]","[passphrase here]");

}

Verify methods

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]");
    
    // verify signed with data
    var result = await OpenPGP.verifyData("text signed","[publicKey here]");
    var result = await OpenPGP.verifyDataBytes(bytesSample,"[publicKey here]");

}

Encode methods

void main() async {
    var bytesSample = Uint8List.fromList('data'.codeUnits);
    
    var result = await OpenPGP.armorEncode("PGP MESSAGE", bytesSample);
}

Decode methods

void main() async {    
    var result = await OpenPGP.armorDecode("message here");
}

Metadata methods

void main() async {
    var result = await OpenPGP.getPrivateKeyMetadata("[privateKey here]");
    var result = await OpenPGP.getPublicKeyMetadata("[publicKey here]");
}

Convert methods

void main() async {
    var result = await OpenPGP.convertPrivateKeyToPublicKey("[privateKey here]");
}

Sync methods
Generate methods

void main() {
    var keyOptions = KeyOptions()..rsaBits = 2048;
    var keyPair = OpenPGPSync.generate(
            options: Options()
              ..name = 'test'
              ..email = 'test@test.com'
              ..passphrase = passphrase
              ..keyOptions = keyOptions);
}
Encrypt methods

void main() async {
    var bytesSample = Uint8List.fromList('data'.codeUnits);
    
    var result = OpenPGPSync.encrypt("text","[publicKey here]");
    var result = OpenPGPSync.encryptSymmetric("text","[passphrase here]");
    var result = OpenPGPSync.encryptBytes(bytesSample,"[publicKey here]");
    var result = OpenPGPSync.encryptSymmetricBytes(bytesSample,"[passphrase here]");

}

Decrypt methods

void main() async {
    var bytesSample = Uint8List.fromList('data'.codeUnits);
    
    var result = OpenPGPSync.decrypt("text encrypted","[privateKey here]","[passphrase here]");
    var result = OpenPGPSync.decryptSymmetric("text encrypted","[passphrase here]");
    var result = OpenPGPSync.decryptBytes(bytesSample,"[privateKey here]","[passphrase here]");
    var result = OpenPGPSync.decryptSymmetricBytes(bytesSample,"[passphrase here]");

}
Sign methods

void main() async {
    var bytesSample = Uint8List.fromList('data'.codeUnits);
    
    var result = OpenPGPSync.sign("text","[privateKey here]","[passphrase here]");
    var result = OpenPGPSync.signBytesToString(bytesSample,"[privateKey here]","[passphrase here]");
    
    // sign including data
    var result = OpenPGPSync.signData("text","[privateKey here]","[passphrase here]");
    var result = OpenPGPSync.signDataBytesToString(bytesSample,"[privateKey here]","[passphrase here]");

}

Verify methods

void main() async {
    var bytesSample = Uint8List.fromList('data'.codeUnits);
    
    var result = OpenPGPSync.verify("text signed","text","[publicKey here]");
    var result = OpenPGPSync.verifyBytes("text signed", bytesSample,"[publicKey here]");
    
    // verify signed with data
    var result = OpenPGPSync.verifyData("text signed","[publicKey here]");
    var result = OpenPGPSync.verifyDataBytes(bytesSample,"[publicKey here]");

}

Encode methods

void main() async {
    var bytesSample = Uint8List.fromList('data'.codeUnits);
    
    var result = OpenPGPSync.armorEncode("PGP MESSAGE", bytesSample);
}

Decode methods

void main() async {    
    var result = OpenPGPSync.armorDecode("message here");
}

Metadata methods

void main() async {
    var result = OpenPGPSync.getPrivateKeyMetadata("[privateKey here]");
    var result = OpenPGPSync.getPublicKeyMetadata("[publicKey here]");
}

Convert methods

void main() async {
    var result = OpenPGPSync.convertPrivateKeyToPublicKey("[privateKey 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.

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
Gerson Alexander Pardo Gamez GitHub avatar
GitHub 作者

Gerson Alexander Pardo Gamez ↗

Software Engineer: Go (Golang), Flutter and React Native

言語DartC++CCMakeJavaScriptRubySwiftShellKotlinHTMLMakefileDockerfileObjective-C

カテゴリー

このリポジトリが公開するパッケージ

使用している依存関係

依存関係一覧 9 件

  • flutter{"sdk":"flutter"}
  • flutter_web_plugins{"sdk":"flutter"}
  • ffi^2.1.3
  • flat_buffers^23.5.26
  • path^1.9.0
  • web>=0.5.0 <2.0.0
  • plugin_platform_interface^2.0.2
  • flutter_lints開発用^5.0.0
  • flutter_test開発用{"sdk":"flutter"}

プロジェクトに合うリポジトリを選ぶには?

用途で絞り込み、開発状況を比較し、採用前に元のリポジトリで要件を確認しましょう。

  1. 名前・作者・説明で検索し、技術トピックで絞り込みます。
  2. スター、フォーク、最近のプッシュを比較します。スターは関心の目安であり、品質の保証ではありません。
  3. 利用前に GitHub で README、ライセンス、Issues を確認します。

情報源と管理

“A repository is the most basic element of GitHub.”

GitHub Docs — About repositories ↗