No description
Find a file
Heiko Schaefer 56f4459932 When the card doesn't support command chaining, throw CommandTooLong error if the command is too long.
(This currently happens with the scdc backend when uploading rsa4096 keys, because scdc additionally limits command size)
2021-07-29 18:35:25 +02:00
.reuse Fix reuse license information 2021-07-17 02:27:51 +02:00
card-functionality Clean up output format 2021-07-21 01:48:53 +02:00
example Initial commit 2021-06-30 22:29:23 +02:00
LICENSES Initial commit 2021-06-30 22:29:23 +02:00
openpgp-card When the card doesn't support command chaining, throw CommandTooLong error if the command is too long. 2021-07-29 18:35:25 +02:00
openpgp-card-sequoia Add comment pointing to Gnuk source for decryption return format. 2021-07-29 17:33:30 +02:00
scdc Signing 2021-07-18 12:00:00 +02:00
.gitignore Initial commit 2021-06-30 22:29:23 +02:00
.gitlab-ci.yml Cleanup/fix CI config. 2021-07-02 00:24:29 +02:00
.rustfmt.toml rustfmt 2021-07-01 23:46:12 +02:00
Cargo.toml Add the crate card-functionality, which implements a test suite to test the openpgp-card crate against a set of OpenPGP cards 2021-07-16 17:26:10 +02:00
README.md Initial commit 2021-06-30 22:29:23 +02:00

OpenPGP card client library

This project implements a client library for the OpenPGP card specification, in Rust.

The project consists of two crates:

  • openpgp-card, which offers an implementation-agnostic OpenPGP card client API. It can be used with any PGP implementation.
  • openpgp-card-sequoia, adds functionality to conveniently use the openpgp-card library with Sequoia PGP.

Acknowledgements

This library is based on the OpenPGP Card spec, version 3.4.1.

Other helpful resources included:

The free Gnuk OpenPGP card implementation by gniibe.

The Rust/Sequoia-based OpenPGP card client code in kushaldas' project johnnycanencrypt.

The scdaemon client implementation by the GnuPG project.

The open-keychain project, which implements an OpenPGP card client for Java/Android.

The Rust/Sequoia-based OpenPGP card client code by Robin Krahl.