summaryrefslogtreecommitdiff
path: root/vendor/getrandom/src/backends/solid.rs
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2025-07-02 18:36:06 -0600
committermo khan <mo@mokhan.ca>2025-07-02 18:36:06 -0600
commit8cdfa445d6629ffef4cb84967ff7017654045bc2 (patch)
tree22f0b0907c024c78d26a731e2e1f5219407d8102 /vendor/getrandom/src/backends/solid.rs
parent4351c74c7c5f97156bc94d3a8549b9940ac80e3f (diff)
chore: add vendor directory
Diffstat (limited to 'vendor/getrandom/src/backends/solid.rs')
-rw-r--r--vendor/getrandom/src/backends/solid.rs19
1 files changed, 19 insertions, 0 deletions
diff --git a/vendor/getrandom/src/backends/solid.rs b/vendor/getrandom/src/backends/solid.rs
new file mode 100644
index 00000000..caa773f8
--- /dev/null
+++ b/vendor/getrandom/src/backends/solid.rs
@@ -0,0 +1,19 @@
+//! Implementation for SOLID
+use crate::Error;
+use core::mem::MaybeUninit;
+
+pub use crate::util::{inner_u32, inner_u64};
+
+extern "C" {
+ pub fn SOLID_RNG_SampleRandomBytes(buffer: *mut u8, length: usize) -> i32;
+}
+
+#[inline]
+pub fn fill_inner(dest: &mut [MaybeUninit<u8>]) -> Result<(), Error> {
+ let ret = unsafe { SOLID_RNG_SampleRandomBytes(dest.as_mut_ptr().cast::<u8>(), dest.len()) };
+ if ret >= 0 {
+ Ok(())
+ } else {
+ Err(Error::from_neg_error_code(ret))
+ }
+}