| //! Random Number Generator Protocol |
| //! |
| //! This protocol is used to provide random numbers for use in applications, or |
| //! entropy for seeding other random number generators. |
| |
| pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( |
| 0x3152bca5, |
| 0xeade, |
| 0x433d, |
| 0x86, |
| 0x2e, |
| &[0xc0, 0x1c, 0xdc, 0x29, 0x1f, 0x44], |
| ); |
| |
| pub type Algorithm = crate::base::Guid; |
| |
| pub const ALGORITHM_SP800_90_HASH_256_GUID: Algorithm = crate::base::Guid::from_fields( |
| 0xa7af67cb, |
| 0x603b, |
| 0x4d42, |
| 0xba, |
| 0x21, |
| &[0x70, 0xbf, 0xb6, 0x29, 0x3f, 0x96], |
| ); |
| pub const ALGORITHM_SP800_90_HMAC_256_GUID: Algorithm = crate::base::Guid::from_fields( |
| 0xc5149b43, |
| 0xae85, |
| 0x4f53, |
| 0x99, |
| 0x82, |
| &[0xb9, 0x43, 0x35, 0xd3, 0xa9, 0xe7], |
| ); |
| pub const ALGORITHM_SP800_90_CTR_256_GUID: Algorithm = crate::base::Guid::from_fields( |
| 0x44f0de6e, |
| 0x4d8c, |
| 0x4045, |
| 0xa8, |
| 0xc7, |
| &[0x4d, 0xd1, 0x68, 0x85, 0x6b, 0x9e], |
| ); |
| pub const ALGORITHM_X9_31_3DES_GUID: Algorithm = crate::base::Guid::from_fields( |
| 0x63c4785a, |
| 0xca34, |
| 0x4012, |
| 0xa3, |
| 0xc8, |
| &[0x0b, 0x6a, 0x32, 0x4f, 0x55, 0x46], |
| ); |
| pub const ALGORITHM_X9_31_AES_GUID: Algorithm = crate::base::Guid::from_fields( |
| 0xacd03321, |
| 0x777e, |
| 0x4d3d, |
| 0xb1, |
| 0xc8, |
| &[0x20, 0xcf, 0xd8, 0x88, 0x20, 0xc9], |
| ); |
| pub const ALGORITHM_RAW: Algorithm = crate::base::Guid::from_fields( |
| 0xe43176d7, |
| 0xb6e8, |
| 0x4827, |
| 0xb7, |
| 0x84, |
| &[0x7f, 0xfd, 0xc4, 0xb6, 0x85, 0x61], |
| ); |
| |
| pub type ProtocolGetInfo = eficall! {fn( |
| *mut Protocol, |
| *mut usize, |
| *mut Algorithm, |
| ) -> crate::base::Status}; |
| |
| pub type ProtocolGetRng = eficall! {fn( |
| *mut Protocol, |
| *mut Algorithm, |
| usize, |
| *mut u8, |
| ) -> crate::base::Status}; |
| |
| #[repr(C)] |
| pub struct Protocol { |
| pub get_info: ProtocolGetInfo, |
| pub get_rng: ProtocolGetRng, |
| } |