Skip to content

cunicu/go-iso7816

Repository files navigation

go-iso7816: Go implementation of the ISO 7816 standard for smart card communication

GitHub Workflow Status goreportcard Codecov branch License GitHub go.mod Go version Go Reference

go-iso7816 implements several helpers and utilities to communicate with ISO7816 compliant smart cards.

This includes:

  • Abstract interface for smart card communication

  • APDU parsing and serialization

    • Extended-length support
    • TLV en- & decoding variants
      • ASN.1 BER-TLV
      • Simple TLVs
      • Compact TLVs
  • Constants of

    • Inter-industry instructions and status codes
    • Application Identifiers (AIDs)
  • Basic card management and query support for:

  • Card enumeration and filters

  • Testing utilities

    • Smartcard Mock Object
    • Tracing Wrapper

In the future we might want to add support for:

  • More device support for existing cards
  • Global Platform's Secure Channel Protocol (SCP03)
  • Cross-platform transport implementations
    • Direct CCID
    • Apples CryptoTokenKit
    • CGo-less pcscd / libpcsc-lite

Authors

License

go-iso7816 is licensed under the Apache 2.0 license.