blob: eba8cd3a1a4e5d4f0677d7359520e268aebf2eae [file] [log] [blame]
// Licensed under the Apache-2.0 license
// SPDX-License-Identifier: Apache-2.0
//! Blocking (synchronous) HAL traits for OpenPRoT
//!
//! This crate provides a blocking (synchronous) hardware abstraction layer (HAL) for
//! OpenPRoT-compliant platforms. It includes platform-specific modules such as reset
//! control and re-exports traits from `embedded-hal` 1.0 for common hardware interfaces
//! like SPI, I2C, GPIO, and delays.
//!
//! The goal is to offer a unified, safe, and no_std-compatible interface for embedded
//! development across multiple chip families.
#![no_std]
#![forbid(unsafe_code)]
#![deny(missing_docs)]
/// Cryptographic digest operations (hashing)
pub mod digest;
/// ECDSA digital signature operations
pub mod ecdsa;
/// Gpio port module
pub mod gpio_port;
/// I2C device implementation traits (application layer)
pub mod i2c_device;
/// I2C hardware controller traits (hardware abstraction layer)
pub mod i2c_hardware;
/// Message Authentication Code (MAC) traits and implementations
pub mod mac;
/// Reset and clocking traits for OpenPRoT HAL
pub mod system_control;
/// Key management traits
pub mod key_vault;
/// Symmetric cipher abstractions with zero-copy support
pub mod cipher;
// Re-export embedded-hal 1.0 traits
pub use embedded_hal::delay::DelayNs;
pub use embedded_hal::digital::{InputPin, OutputPin, StatefulOutputPin};
pub use embedded_hal::i2c::{I2c, SevenBitAddress, TenBitAddress};
pub use embedded_hal::spi::{SpiBus, SpiDevice};
// Re-export system control traits
pub use system_control::{ClockControl, ResetControl, SystemControl};