summaryrefslogtreecommitdiff
path: root/ext/crypto/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'ext/crypto/lib.rs')
-rw-r--r--ext/crypto/lib.rs22
1 files changed, 22 insertions, 0 deletions
diff --git a/ext/crypto/lib.rs b/ext/crypto/lib.rs
index f4e118626..0f1ee565b 100644
--- a/ext/crypto/lib.rs
+++ b/ext/crypto/lib.rs
@@ -55,12 +55,14 @@ use std::path::PathBuf;
pub use rand; // Re-export rand
mod decrypt;
+mod ed25519;
mod encrypt;
mod export_key;
mod generate_key;
mod import_key;
mod key;
mod shared;
+mod x25519;
pub use crate::decrypt::op_crypto_decrypt;
pub use crate::encrypt::op_crypto_encrypt;
@@ -98,6 +100,19 @@ pub fn init(maybe_seed: Option<u64>) -> Extension {
op_crypto_random_uuid::decl(),
op_crypto_wrap_key::decl(),
op_crypto_unwrap_key::decl(),
+ op_crypto_base64url::decl(),
+ x25519::op_generate_x25519_keypair::decl(),
+ x25519::op_derive_bits_x25519::decl(),
+ x25519::op_import_spki_x25519::decl(),
+ x25519::op_import_pkcs8_x25519::decl(),
+ ed25519::op_generate_ed25519_keypair::decl(),
+ ed25519::op_import_spki_ed25519::decl(),
+ ed25519::op_import_pkcs8_ed25519::decl(),
+ ed25519::op_sign_ed25519::decl(),
+ ed25519::op_verify_ed25519::decl(),
+ ed25519::op_export_spki_ed25519::decl(),
+ ed25519::op_export_pkcs8_ed25519::decl(),
+ ed25519::op_jwk_x_ed25519::decl(),
])
.state(move |state| {
if let Some(seed) = maybe_seed {
@@ -109,6 +124,13 @@ pub fn init(maybe_seed: Option<u64>) -> Extension {
}
#[op]
+pub fn op_crypto_base64url(data: String) -> ZeroCopyBuf {
+ let data: Vec<u8> =
+ base64::encode_config(data, base64::URL_SAFE_NO_PAD).into();
+ data.into()
+}
+
+#[op]
pub fn op_crypto_get_random_values(
state: &mut OpState,
mut zero_copy: ZeroCopyBuf,