[][src]Crate yubikey_piv

YubiKey PIV: Personal Identity Verification support for Yubico devices using the Chip Card Interface Device (CCID) protocol.

PIV is a NIST standard for both signing and encryption using SmartCards and SmartCard-based hardware tokens like YubiKeys.

This library natively implements the CCID protocol used to manage and utilize PIV encryption and signing keys which can be generated, imported, and stored on YubiKey devices.

Supported algorithms:

  • Authentication: 3DES
  • Encryption: RSA1024, RSA2048, ECCP256, ECCP384
  • Signatures:
    • RSASSA-PKCS#1v1.5: RSA1024, RSA2048
    • ECDSA: ECCP256, ECCP384

Status

This library is a work-in-progress translation and is not yet usable. Check back later for updates.

History

This library is a Rust translation of the yubico-piv-tool utility by Yubico, which was originally written in C. It was mechanically translated from C into Rust using Corrode, and then subsequently heavily refactored into safer, more idiomatic Rust.

For more information on yubico-piv-tool and background information on how the YubiKey implementation of PIV works in general, see the Yubico PIV Tool Command Line Guide.

Re-exports

pub use self::yubikey::YubiKey;

Modules

consts

Constant values

error

Error types

util

Utility functions

yubikey

YubiKey-related types and communication support