# ecc.P256 in embedded systems

I want to try `ecc.P256` in embedded systems (using FreeRTOS) which have a hardware RNG.

I think I need to replace `crypto.random` with a customized one based on the hardware RNG. How to it? Modify `crypto.zig`?

``````/// This is a thread-local, cryptographically secure pseudo random number generator.
pub const random = &@import("crypto/tlcsprng.zig").interface;
``````

After define `cryptoRandomSeed`, I still need to port the thread-local PRNG. Replace it seems
easier.

Using `--single-threaded` can eliminate references to `__aeabi_read_tp`.

Now, the remaining problem is the missing of `__multi3` for u128 multiplication.

Next, I will try to rewrite `mulxU64` to get rid of u128 multiplication.