diff options
| author | 1-rafael-1 <[email protected]> | 2025-09-15 20:07:18 +0200 |
|---|---|---|
| committer | 1-rafael-1 <[email protected]> | 2025-09-15 20:07:18 +0200 |
| commit | 6bb3d2c0720fa082f27d3cdb70f516058497ec87 (patch) | |
| tree | 5a1e255cff999b00800f203b91a759c720c973e5 /embassy-rp/src/trng.rs | |
| parent | eb685574601d98c44faed9a3534d056199b46e20 (diff) | |
| parent | 92a6fd2946f2cbb15359290f68aa360953da2ff7 (diff) | |
Merge branch 'main' into rp2040-rtc-alarm
Diffstat (limited to 'embassy-rp/src/trng.rs')
| -rw-r--r-- | embassy-rp/src/trng.rs | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/embassy-rp/src/trng.rs b/embassy-rp/src/trng.rs index a8a0172be..a3f23c1f2 100644 --- a/embassy-rp/src/trng.rs +++ b/embassy-rp/src/trng.rs | |||
| @@ -7,7 +7,6 @@ use core::task::Poll; | |||
| 7 | 7 | ||
| 8 | use embassy_hal_internal::{Peri, PeripheralType}; | 8 | use embassy_hal_internal::{Peri, PeripheralType}; |
| 9 | use embassy_sync::waitqueue::AtomicWaker; | 9 | use embassy_sync::waitqueue::AtomicWaker; |
| 10 | use rand_core::Error; | ||
| 11 | 10 | ||
| 12 | use crate::interrupt::typelevel::{Binding, Interrupt}; | 11 | use crate::interrupt::typelevel::{Binding, Interrupt}; |
| 13 | use crate::peripherals::TRNG; | 12 | use crate::peripherals::TRNG; |
| @@ -369,7 +368,7 @@ impl<'d, T: Instance> Trng<'d, T> { | |||
| 369 | } | 368 | } |
| 370 | } | 369 | } |
| 371 | 370 | ||
| 372 | impl<'d, T: Instance> rand_core::RngCore for Trng<'d, T> { | 371 | impl<'d, T: Instance> rand_core_06::RngCore for Trng<'d, T> { |
| 373 | fn next_u32(&mut self) -> u32 { | 372 | fn next_u32(&mut self) -> u32 { |
| 374 | self.blocking_next_u32() | 373 | self.blocking_next_u32() |
| 375 | } | 374 | } |
| @@ -379,16 +378,32 @@ impl<'d, T: Instance> rand_core::RngCore for Trng<'d, T> { | |||
| 379 | } | 378 | } |
| 380 | 379 | ||
| 381 | fn fill_bytes(&mut self, dest: &mut [u8]) { | 380 | fn fill_bytes(&mut self, dest: &mut [u8]) { |
| 382 | self.blocking_fill_bytes(dest) | 381 | self.blocking_fill_bytes(dest); |
| 383 | } | 382 | } |
| 384 | 383 | ||
| 385 | fn try_fill_bytes(&mut self, dest: &mut [u8]) -> Result<(), Error> { | 384 | fn try_fill_bytes(&mut self, dest: &mut [u8]) -> Result<(), rand_core_06::Error> { |
| 386 | self.blocking_fill_bytes(dest); | 385 | self.blocking_fill_bytes(dest); |
| 387 | Ok(()) | 386 | Ok(()) |
| 388 | } | 387 | } |
| 389 | } | 388 | } |
| 390 | 389 | ||
| 391 | impl<'d, T: Instance> rand_core::CryptoRng for Trng<'d, T> {} | 390 | impl<'d, T: Instance> rand_core_06::CryptoRng for Trng<'d, T> {} |
| 391 | |||
| 392 | impl<'d, T: Instance> rand_core_09::RngCore for Trng<'d, T> { | ||
| 393 | fn next_u32(&mut self) -> u32 { | ||
| 394 | self.blocking_next_u32() | ||
| 395 | } | ||
| 396 | |||
| 397 | fn next_u64(&mut self) -> u64 { | ||
| 398 | self.blocking_next_u64() | ||
| 399 | } | ||
| 400 | |||
| 401 | fn fill_bytes(&mut self, dest: &mut [u8]) { | ||
| 402 | self.blocking_fill_bytes(dest); | ||
| 403 | } | ||
| 404 | } | ||
| 405 | |||
| 406 | impl<'d, T: Instance> rand_core_09::CryptoRng for Trng<'d, T> {} | ||
| 392 | 407 | ||
| 393 | /// TRNG interrupt handler. | 408 | /// TRNG interrupt handler. |
| 394 | pub struct InterruptHandler<T: Instance> { | 409 | pub struct InterruptHandler<T: Instance> { |
