No description
Find a file
Heiko Schaefer 75c0bae206 clarify
2021-08-27 22:32:20 +02:00
.reuse Fix reuse license information 2021-07-17 02:27:51 +02:00
card-functionality Add a CI job to run 'cargo test' with rustc/cargo from debian stable. 2021-08-27 15:15:31 +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 Use check_card_algo_ecc() when uploading keys: if algo_list is available and oid is not listed, error out of upload_key(). 2021-08-27 21:42:18 +02:00
openpgp-card-sequoia Add a CI job to run 'cargo test' with rustc/cargo from debian stable. 2021-08-27 15:15:31 +02:00
pcsc Release pcsc, scdc. 2021-08-26 15:05:40 +02:00
scdc Release pcsc, scdc. 2021-08-26 15:05:40 +02:00
.gitignore Move the configuration of cards for card-functionality test suite into the file config/test-cards.toml. 2021-08-04 19:15:45 +02:00
.gitlab-ci.yml Add a CI job to run 'cargo test' with rustc/cargo from debian stable. 2021-08-27 15:15:31 +02:00
.rustfmt.toml rustfmt 2021-07-01 23:46:12 +02:00
Cargo.toml Refactor: 2021-08-18 14:03:54 +02:00
README.md clarify 2021-08-27 22:32:20 +02:00

OpenPGP card client library

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

The project consists of a number of crates:

Architecture

graph BT
    OP["openpgp-card-pcsc <br/> (pcsclite backend)"] --> OC
    OS["openpgp-card-scdc <br/> (scdaemon backend)"] --> OC["openpgp-card </br> (low level API)"]
    OC --> OCS["openpgp-card-sequoia <br/> (high level, sequoia based API)"]
    OC -.-> U1[non-sequoia/low level user application]
    OCS -.-> U2[sequoia-based user application]

classDef userApp stroke-dasharray: 5 5;
class U1,U2 userApp;

The backends implement very simple transport functionality. They can send APDU commands and receive responses. All OpenPGP card-specific logic, as well as command chaining are handled in openpgp-card.

Acknowledgements

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

Other helpful resources included: