aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/nacl/bindings/randombytes.py
diff options
context:
space:
mode:
authorS. Solomon Darnell2025-03-28 21:52:21 -0500
committerS. Solomon Darnell2025-03-28 21:52:21 -0500
commit4a52a71956a8d46fcb7294ac71734504bb09bcc2 (patch)
treeee3dc5af3b6313e921cd920906356f5d4febc4ed /.venv/lib/python3.12/site-packages/nacl/bindings/randombytes.py
parentcc961e04ba734dd72309fb548a2f97d67d578813 (diff)
downloadgn-ai-master.tar.gz
two version of R2R are hereHEADmaster
Diffstat (limited to '.venv/lib/python3.12/site-packages/nacl/bindings/randombytes.py')
-rw-r--r--.venv/lib/python3.12/site-packages/nacl/bindings/randombytes.py51
1 files changed, 51 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/nacl/bindings/randombytes.py b/.venv/lib/python3.12/site-packages/nacl/bindings/randombytes.py
new file mode 100644
index 00000000..ed76deb5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/nacl/bindings/randombytes.py
@@ -0,0 +1,51 @@
+# Copyright 2013 Donald Stufft and individual contributors
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+from nacl import exceptions as exc
+from nacl._sodium import ffi, lib
+
+randombytes_SEEDBYTES: int = lib.randombytes_seedbytes()
+
+
+def randombytes(size: int) -> bytes:
+ """
+ Returns ``size`` number of random bytes from a cryptographically secure
+ random source.
+
+ :param size: int
+ :rtype: bytes
+ """
+ buf = ffi.new("unsigned char[]", size)
+ lib.randombytes(buf, size)
+ return ffi.buffer(buf, size)[:]
+
+
+def randombytes_buf_deterministic(size: int, seed: bytes) -> bytes:
+ """
+ Returns ``size`` number of deterministically generated pseudorandom bytes
+ from a seed
+
+ :param size: int
+ :param seed: bytes
+ :rtype: bytes
+ """
+ if len(seed) != randombytes_SEEDBYTES:
+ raise exc.TypeError(
+ "Deterministic random bytes must be generated from 32 bytes"
+ )
+
+ buf = ffi.new("unsigned char[]", size)
+ lib.randombytes_buf_deterministic(buf, size, seed)
+ return ffi.buffer(buf, size)[:]