diff --git a/extra/sodium/ffi/ffi.factor b/extra/sodium/ffi/ffi.factor index 39055bfc53..0ee57c9f5b 100644 --- a/extra/sodium/ffi/ffi.factor +++ b/extra/sodium/ffi/ffi.factor @@ -13,3 +13,9 @@ IN: sodium.ffi LIBRARY: sodium FUNCTION: int sodium_init ( ) + +! randombytes_H +FUNCTION: void randombytes_buf ( void* buf, size_t size ) +FUNCTION: uint32_t randombytes_random ( ) +FUNCTION: uint32_t randombytes_uniform ( uint32_t upper_bound ) +FUNCTION: void randombytes_stir ( ) diff --git a/extra/sodium/sodium.factor b/extra/sodium/sodium.factor index 4f75f21c46..98df73f70a 100644 --- a/extra/sodium/sodium.factor +++ b/extra/sodium/sodium.factor @@ -1,6 +1,6 @@ ! Copyright (C) 2017 Alexander Ilin. ! See http://factorcode.org/license.txt for BSD license. -USING: init kernel math sodium.ffi ; +USING: init kernel math sequences sodium.ffi ; IN: sodium ERROR: sodium-init-fail ; @@ -8,4 +8,7 @@ ERROR: sodium-init-fail ; ! Call this before any other function, may be called multiple times. : sodium-init ( -- ) sodium_init 0 < [ sodium-init-fail ] when ; +: random-bytes ( byte-array -- byte-array' ) + dup dup length randombytes_buf ; + [ sodium-init ] "sodium" add-startup-hook