ssp/
lib.rs

1#![cfg_attr(not(feature = "std"), no_std)]
2
3//! This library is an implementation of the Smiley Secure Protocol.
4//!
5//! From the SSP Implementation Guide:
6//!
7//! ```nobuild, no_run
8//! Smiley Secure Protocol (SSP) is a serial communication protocol designed by Innovative
9//! Technology LTD to address problems historically experienced by cash handling systems in
10//! gaming machines. Problems such as acceptor swapping, reprogramming acceptors and
11//! line tapping.
12//! ```
13//!
14//! The current implementation supports both the standard (SSP), and encrypted variant (eSSP).
15
16#[macro_use(format)]
17extern crate alloc;
18
19#[macro_use(bitfield)]
20extern crate bitfield;
21
22#[cfg(not(feature = "std"))]
23use core as std;
24#[cfg(feature = "std")]
25#[allow(clippy::single_component_path_imports)]
26use std;
27
28#[macro_use]
29mod macros;
30
31pub mod aes;
32pub mod arrays;
33pub mod channel_value_data;
34mod channels;
35pub mod configure_bezel;
36pub mod crc;
37pub mod dataset_version;
38pub mod disable;
39pub mod disable_payout;
40pub mod display_off;
41pub mod display_on;
42pub mod empty;
43pub mod enable;
44pub mod enable_payout;
45pub mod encrypted;
46pub mod encryption_reset;
47pub mod error;
48pub mod event_ack;
49pub mod firmware;
50pub mod get_barcode_data;
51pub mod get_barcode_inhibit;
52pub mod get_barcode_reader_configuration;
53pub mod hold;
54pub mod host_protocol_version;
55#[cfg(feature = "jsonrpc")]
56pub mod jsonrpc;
57pub mod keys;
58pub mod last_reject_code;
59pub mod len;
60pub mod message;
61pub mod payout_by_denomination;
62pub mod poll;
63pub mod poll_with_ack;
64pub mod primes;
65pub mod reject;
66pub mod request_key_exchange;
67pub mod reset;
68pub mod rng;
69pub mod serial_number;
70pub mod set_barcode_inhibit;
71pub mod set_barcode_reader_configuration;
72pub mod set_encryption_key;
73pub mod set_generator;
74pub mod set_inhibits;
75pub mod set_modulus;
76pub mod setup_request;
77pub mod smart_empty;
78pub mod sync;
79pub mod types;
80pub mod unit_data;
81
82pub use channel_value_data::*;
83pub use channels::*;
84pub use configure_bezel::*;
85pub use dataset_version::*;
86pub use disable::*;
87pub use disable_payout::*;
88pub use display_off::*;
89pub use display_on::*;
90pub use empty::*;
91pub use enable::*;
92pub use enable_payout::*;
93pub use encrypted::*;
94pub use encryption_reset::*;
95pub use error::*;
96pub use event_ack::*;
97pub use firmware::*;
98pub use get_barcode_data::*;
99pub use get_barcode_inhibit::*;
100pub use get_barcode_reader_configuration::*;
101pub use hold::*;
102pub use host_protocol_version::*;
103pub use keys::*;
104pub use last_reject_code::*;
105pub use message::{index as message_index, *};
106pub use payout_by_denomination::*;
107pub use poll::*;
108pub use poll_with_ack::*;
109pub use reject::*;
110pub use request_key_exchange::*;
111pub use reset::*;
112pub use rng::*;
113pub use serial_number::*;
114pub use set_barcode_inhibit::*;
115pub use set_barcode_reader_configuration::*;
116pub use set_encryption_key::*;
117pub use set_generator::*;
118pub use set_inhibits::*;
119pub use set_modulus::*;
120pub use setup_request::*;
121pub use smart_empty::*;
122pub use sync::*;
123pub use types::*;
124pub use unit_data::*;
125
126pub type Vec<T> = heapless::Vec<T, { len::MAX_DATA }>;