summaryrefslogtreecommitdiff
path: root/vendor/security-framework/src/random.rs
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2025-07-15 16:37:08 -0600
committermo khan <mo@mokhan.ca>2025-07-17 16:30:22 -0600
commit45df4d0d9b577fecee798d672695fe24ff57fb1b (patch)
tree1b99bf645035b58e0d6db08c7a83521f41f7a75b /vendor/security-framework/src/random.rs
parentf94f79608393d4ab127db63cc41668445ef6b243 (diff)
feat: migrate from Cedar to SpiceDB authorization system
This is a major architectural change that replaces the Cedar policy-based authorization system with SpiceDB's relation-based authorization. Key changes: - Migrate from Rust to Go implementation - Replace Cedar policies with SpiceDB schema and relationships - Switch from envoy `ext_authz` with Cedar to SpiceDB permission checks - Update build system and dependencies for Go ecosystem - Maintain Envoy integration for external authorization This change enables more flexible permission modeling through SpiceDB's Google Zanzibar inspired relation-based system, supporting complex hierarchical permissions that were difficult to express in Cedar. Breaking change: Existing Cedar policies and Rust-based configuration will no longer work and need to be migrated to SpiceDB schema.
Diffstat (limited to 'vendor/security-framework/src/random.rs')
-rw-r--r--vendor/security-framework/src/random.rs39
1 files changed, 0 insertions, 39 deletions
diff --git a/vendor/security-framework/src/random.rs b/vendor/security-framework/src/random.rs
deleted file mode 100644
index 7bd7f614..00000000
--- a/vendor/security-framework/src/random.rs
+++ /dev/null
@@ -1,39 +0,0 @@
-//! Randomness support.
-
-use security_framework_sys::random::{SecRandomCopyBytes, SecRandomRef, kSecRandomDefault};
-use std::io;
-
-/// A source of random data.
-pub struct SecRandom(SecRandomRef);
-
-unsafe impl Sync for SecRandom {}
-unsafe impl Send for SecRandom {}
-
-impl Default for SecRandom {
- #[inline(always)]
- fn default() -> Self {
- unsafe { Self(kSecRandomDefault) }
- }
-}
-
-impl SecRandom {
- /// Fills the buffer with cryptographically secure random bytes.
- pub fn copy_bytes(&self, buf: &mut [u8]) -> io::Result<()> {
- if unsafe { SecRandomCopyBytes(self.0, buf.len(), buf.as_mut_ptr().cast()) } == 0 {
- Ok(())
- } else {
- Err(io::Error::last_os_error())
- }
- }
-}
-
-#[cfg(test)]
-mod test {
- use super::*;
-
- #[test]
- fn basic() {
- let mut buf = [0; 10];
- SecRandom::default().copy_bytes(&mut buf).unwrap();
- }
-}