0 | module Crypto.Random.C
10 | %foreign "C:random_buf,libidristls"
11 | prim_io__random_buf : Buffer -> Int -> PrimIO Int
14 | HasIO io => MonadRandom io where
15 | random_bytes Z = pure []
18 | Just buf <- newBuffer n'
19 | | Nothing => assert_total $
idris_crash "somehow newBuffer failed"
20 | 0 <- primIO $
prim_io__random_buf buf n'
21 | | _ => assert_total $
idris_crash "random_buf failed"
22 | traverse (getBits8 buf) (map (cast . finToNat) Fin.range)