openpgp-card/README.md
Heiko Schaefer d766a1c474 markdown fix
2021-08-27 22:33:19 +02:00

2.6 KiB

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: