summaryrefslogtreecommitdiff
path: root/ext/node/ops/crypto/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'ext/node/ops/crypto/mod.rs')
-rw-r--r--ext/node/ops/crypto/mod.rs17
1 files changed, 17 insertions, 0 deletions
diff --git a/ext/node/ops/crypto/mod.rs b/ext/node/ops/crypto/mod.rs
index d224b40f7..92e3029e0 100644
--- a/ext/node/ops/crypto/mod.rs
+++ b/ext/node/ops/crypto/mod.rs
@@ -901,3 +901,20 @@ pub async fn op_node_scrypt_async(
})
.await?
}
+
+#[inline]
+fn gen_prime(size: usize) -> ZeroCopyBuf {
+ primes::Prime::generate(size).0.to_bytes_be().into()
+}
+
+#[op]
+pub fn op_node_gen_prime(size: usize) -> ZeroCopyBuf {
+ gen_prime(size)
+}
+
+#[op]
+pub async fn op_node_gen_prime_async(
+ size: usize,
+) -> Result<ZeroCopyBuf, AnyError> {
+ Ok(tokio::task::spawn_blocking(move || gen_prime(size)).await?)
+}