diff options
Diffstat (limited to 'ext/crypto/lib.rs')
-rw-r--r-- | ext/crypto/lib.rs | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/ext/crypto/lib.rs b/ext/crypto/lib.rs index 0f1ee565b..5f6445f49 100644 --- a/ext/crypto/lib.rs +++ b/ext/crypto/lib.rs @@ -100,7 +100,8 @@ 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(), + op_crypto_base64url_decode::decl(), + op_crypto_base64url_encode::decl(), x25519::op_generate_x25519_keypair::decl(), x25519::op_derive_bits_x25519::decl(), x25519::op_import_spki_x25519::decl(), @@ -113,6 +114,8 @@ pub fn init(maybe_seed: Option<u64>) -> Extension { ed25519::op_export_spki_ed25519::decl(), ed25519::op_export_pkcs8_ed25519::decl(), ed25519::op_jwk_x_ed25519::decl(), + x25519::op_export_spki_x25519::decl(), + x25519::op_export_pkcs8_x25519::decl(), ]) .state(move |state| { if let Some(seed) = maybe_seed { @@ -124,13 +127,19 @@ pub fn init(maybe_seed: Option<u64>) -> Extension { } #[op] -pub fn op_crypto_base64url(data: String) -> ZeroCopyBuf { +pub fn op_crypto_base64url_decode(data: String) -> ZeroCopyBuf { let data: Vec<u8> = - base64::encode_config(data, base64::URL_SAFE_NO_PAD).into(); + base64::decode_config(data, base64::URL_SAFE_NO_PAD).unwrap(); data.into() } #[op] +pub fn op_crypto_base64url_encode(data: ZeroCopyBuf) -> String { + let data: String = base64::encode_config(data, base64::URL_SAFE_NO_PAD); + data +} + +#[op] pub fn op_crypto_get_random_values( state: &mut OpState, mut zero_copy: ZeroCopyBuf, |