libthai-idcard 0.2.0

A Rust library for reading Thai National ID smart cards via PC/SC
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//! Laser ID (card serial number) reader.

use pcsc::Card;

use crate::apdu;
use crate::model;
use crate::reader::{self, transmit_read_laser_id};

/// Read the laser-engraved card serial number.
pub fn read_laser_id(card: &Card, resp_cmd: &[u8]) -> model::Card {
    let _ = reader::transmit_select(card, apdu::card::SELECT);

    model::Card {
        laser_id: transmit_read_laser_id(card, apdu::card::LASER_ID, resp_cmd).unwrap_or_default(),
    }
}