oxedyne/fe2o3/fe2o3_iop_crypto/src/lib.rs
1.2 KiB, 2 runs
created by r1870400018:385, which is this file's identity for as long as the history lasts, whatever it is later renamed to
download · who wrote it · its history
| 1 | //! Provides interoperability traits and implementations for cryptographic operations. |
| 2 | //! |
| 3 | //! This crate defines fundamental traits that allow cryptographic schemes to be used |
| 4 | //! interchangeably through common interfaces: |
| 5 | //! |
| 6 | //! - `KeyExchanger` for key exchange mechanisms |
| 7 | //! - `Encrypter` for encryption/decryption operations |
| 8 | //! - `Signer` for digital signatures |
| 9 | //! - `KeyManager` for handling public/private key pairs |
| 10 | //! |
| 11 | //! Each trait is implemented via a `DefAlt` pattern that supports fallback behaviour between |
| 12 | //! default and given implementations. The implementations handle proper error propagation and |
| 13 | //! maintain type safety throughout cryptographic operations. |
| 14 | //! |
| 15 | //! All trait implementations avoid unsafe code and unwrap operations to maintain robustness. |
| 16 | //! |
| 17 | #![forbid(unsafe_code)] |
| 18 | pub mod enc; |
| 19 | pub mod kem; |
| 20 | pub mod keys; |
| 21 | pub mod sign; |
| 22 | |
| 23 | /// A supertrait of every trait here, so an implementor need not name fe2o3_namex to satisfy it. |
| 24 | pub use oxedyne_fe2o3_namex::id::InNamex; |
| 25 | /// The short, local form of a name, returned by [`InNamex::local_id`]. |
| 26 | pub use oxedyne_fe2o3_namex::id::LocalId; |
| 27 | /// The universal identifier an implementor of [`InNamex`] must return. |
| 28 | pub use oxedyne_fe2o3_namex::id::NamexId; |