You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@teaclave.apache.org by yu...@apache.org on 2025/08/15 10:03:39 UTC
(incubator-teaclave-crates) 03/05: getrandom: add optee target
This is an automated email from the ASF dual-hosted git repository.
yuanz pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-teaclave-crates.git
commit c35dc47683ef49699579d81f160ab96d65f861d4
Author: Yuan Zhuang <yu...@apache.org>
AuthorDate: Wed Aug 13 08:12:06 2025 +0000
getrandom: add optee target
---
getrandom-0.2.16/Cargo.toml | 3 +++
getrandom-0.2.16/src/lib.rs | 3 +++
getrandom-0.2.16/src/optee.rs | 19 +++++++++++++++++++
3 files changed, 25 insertions(+)
diff --git a/getrandom-0.2.16/Cargo.toml b/getrandom-0.2.16/Cargo.toml
index 0365734..2fd3c8a 100644
--- a/getrandom-0.2.16/Cargo.toml
+++ b/getrandom-0.2.16/Cargo.toml
@@ -23,6 +23,9 @@ libc = { version = "0.2.154", default-features = false }
[target.'cfg(target_os = "wasi")'.dependencies]
wasi = { version = "0.11", default-features = false }
+[target.'cfg(target_os = "optee")'.dependencies]
+optee-utee = { version = "0.4.0" }
+
[target.'cfg(all(any(target_arch = "wasm32", target_arch = "wasm64"), target_os = "unknown"))'.dependencies]
wasm-bindgen = { version = "0.2.62", default-features = false, optional = true }
js-sys = { version = "0.3", optional = true }
diff --git a/getrandom-0.2.16/src/lib.rs b/getrandom-0.2.16/src/lib.rs
index 68b5af9..4ea576e 100644
--- a/getrandom-0.2.16/src/lib.rs
+++ b/getrandom-0.2.16/src/lib.rs
@@ -31,6 +31,7 @@
//! | QNX Neutrino | `*‑nto-qnx*` | [`/dev/urandom`][14] (identical to `/dev/random`)
//! | AIX | `*-ibm-aix` | [`/dev/urandom`][15]
//! | Cygwin | `*-cygwin` | [`getrandom`][19] (based on [`RtlGenRandom`])
+//! | OP-TEE | `*-optee` | [`Random::generate`] from OP-TEE UTEE API
//!
//! Pull Requests that add support for new targets to `getrandom` are always welcome.
//!
@@ -326,6 +327,8 @@ cfg_if! {
#[path = "solid.rs"] mod imp;
} else if #[cfg(target_os = "espidf")] {
#[path = "espidf.rs"] mod imp;
+ } else if #[cfg(target_os = "optee")] {
+ #[path = "optee.rs"] mod imp;
} else if #[cfg(windows)] {
#[path = "windows.rs"] mod imp;
} else if #[cfg(all(target_arch = "x86_64", target_env = "sgx"))] {
diff --git a/getrandom-0.2.16/src/optee.rs b/getrandom-0.2.16/src/optee.rs
new file mode 100644
index 0000000..c6651b5
--- /dev/null
+++ b/getrandom-0.2.16/src/optee.rs
@@ -0,0 +1,19 @@
+//! Implementation for OP-TEE TrustZone SDK
+use crate::Error;
+use core::mem::MaybeUninit;
+
+pub fn getrandom_inner(dest: &mut [MaybeUninit<u8>]) -> Result<(), Error> {
+ // Convert MaybeUninit slice to a regular slice for optee_utee::Random::generate
+ // This is safe because we're about to initialize the entire slice
+ let dest_slice = unsafe {
+ core::slice::from_raw_parts_mut(
+ dest.as_mut_ptr() as *mut u8,
+ dest.len()
+ )
+ };
+
+ // Use OP-TEE's random number generator
+ optee_utee::Random::generate(dest_slice);
+
+ Ok(())
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@teaclave.apache.org
For additional commands, e-mail: commits-help@teaclave.apache.org