INNER CODE UNIT · Rust
assemble_packet
google/OpenSK · libraries/opensk/src/lib.rs:141
fn assemble_packet(cid: &[u8; 4], cmd: u8, payload: &[u8]) -> HidPacket {
assert!(payload.len() <= 57);
let mut packet = [0x00; 64];
packet[..4].copy_from_slice(cid);
packet[4] = cmd | 0x80;
packet[6] = payload.len() as u8;
packet[7..][..payload.len()].copy_from_slice(payload);
packet
}
fn init_packet() -> HidPacket {
assemble_packet(&[0xFF; 4], 0x06, &[0x55; 8])
}
fn lock_packet(cid: &[u8; 4]) -> HidPacket {
assemble_packet(cid, 0x04, &[0x01; 1])
}