summaryrefslogtreecommitdiff
path: root/ext/crypto
diff options
context:
space:
mode:
authorLuca Casonato <hello@lcas.dev>2023-05-08 23:07:45 +0200
committerGitHub <noreply@github.com>2023-05-08 23:07:45 +0200
commit1f9d47b174a148dcfef2c86cfabd51b0b75f0dc7 (patch)
tree6cfcccf46646da95dc2f8116f0a89d20a2f74d74 /ext/crypto
parente021070a2a564b2e972851360265f2466f7e4b22 (diff)
refactor: prefix ops w/ crate they are defined in (#19044)
Co-authored-by: Bartek IwaƄczuk <biwanczuk@gmail.com>
Diffstat (limited to 'ext/crypto')
-rw-r--r--ext/crypto/00_crypto.js28
-rw-r--r--ext/crypto/ed25519.rs31
-rw-r--r--ext/crypto/lib.rs28
-rw-r--r--ext/crypto/x25519.rs20
4 files changed, 65 insertions, 42 deletions
diff --git a/ext/crypto/00_crypto.js b/ext/crypto/00_crypto.js
index 1008f4cf6..5253c5784 100644
--- a/ext/crypto/00_crypto.js
+++ b/ext/crypto/00_crypto.js
@@ -884,7 +884,7 @@ class SubtleCrypto {
// https://briansmith.org/rustdoc/src/ring/ec/curve25519/ed25519/signing.rs.html#260
const SIGNATURE_LEN = 32 * 2; // ELEM_LEN + SCALAR_LEN
const signature = new Uint8Array(SIGNATURE_LEN);
- if (!ops.op_sign_ed25519(keyData, data, signature)) {
+ if (!ops.op_crypto_sign_ed25519(keyData, data, signature)) {
throw new DOMException(
"Failed to sign",
"OperationError",
@@ -1363,7 +1363,7 @@ class SubtleCrypto {
);
}
- return ops.op_verify_ed25519(keyData, data, signature);
+ return ops.op_crypto_verify_ed25519(keyData, data, signature);
}
}
@@ -1997,7 +1997,7 @@ async function generateKey(normalizedAlgorithm, extractable, usages) {
}
const privateKeyData = new Uint8Array(32);
const publicKeyData = new Uint8Array(32);
- ops.op_generate_x25519_keypair(privateKeyData, publicKeyData);
+ ops.op_crypto_generate_x25519_keypair(privateKeyData, publicKeyData);
const handle = {};
WeakMapPrototypeSet(KEY_STORE, handle, privateKeyData);
@@ -2042,7 +2042,7 @@ async function generateKey(normalizedAlgorithm, extractable, usages) {
const privateKeyData = new Uint8Array(ED25519_SEED_LEN);
const publicKeyData = new Uint8Array(ED25519_PUBLIC_KEY_LEN);
if (
- !ops.op_generate_ed25519_keypair(privateKeyData, publicKeyData)
+ !ops.op_crypto_generate_ed25519_keypair(privateKeyData, publicKeyData)
) {
throw new DOMException("Failed to generate key", "OperationError");
}
@@ -2179,7 +2179,7 @@ function importKeyEd25519(
}
const publicKeyData = new Uint8Array(32);
- if (!ops.op_import_spki_ed25519(keyData, publicKeyData)) {
+ if (!ops.op_crypto_import_spki_ed25519(keyData, publicKeyData)) {
throw new DOMException("Invalid key data", "DataError");
}
@@ -2210,7 +2210,7 @@ function importKeyEd25519(
}
const privateKeyData = new Uint8Array(32);
- if (!ops.op_import_pkcs8_ed25519(keyData, privateKeyData)) {
+ if (!ops.op_crypto_import_pkcs8_ed25519(keyData, privateKeyData)) {
throw new DOMException("Invalid key data", "DataError");
}
@@ -2397,7 +2397,7 @@ function importKeyX25519(
}
const publicKeyData = new Uint8Array(32);
- if (!ops.op_import_spki_x25519(keyData, publicKeyData)) {
+ if (!ops.op_crypto_import_spki_x25519(keyData, publicKeyData)) {
throw new DOMException("Invalid key data", "DataError");
}
@@ -2428,7 +2428,7 @@ function importKeyX25519(
}
const privateKeyData = new Uint8Array(32);
- if (!ops.op_import_pkcs8_x25519(keyData, privateKeyData)) {
+ if (!ops.op_crypto_import_pkcs8_x25519(keyData, privateKeyData)) {
throw new DOMException("Invalid key data", "DataError");
}
@@ -4055,7 +4055,7 @@ function exportKeyEd25519(format, key, innerKey) {
);
}
- const spkiDer = ops.op_export_spki_ed25519(innerKey);
+ const spkiDer = ops.op_crypto_export_spki_ed25519(innerKey);
return TypedArrayPrototypeGetBuffer(spkiDer);
}
case "pkcs8": {
@@ -4067,7 +4067,7 @@ function exportKeyEd25519(format, key, innerKey) {
);
}
- const pkcs8Der = ops.op_export_pkcs8_ed25519(
+ const pkcs8Der = ops.op_crypto_export_pkcs8_ed25519(
new Uint8Array([0x04, 0x22, ...new SafeArrayIterator(innerKey)]),
);
pkcs8Der[15] = 0x20;
@@ -4075,7 +4075,7 @@ function exportKeyEd25519(format, key, innerKey) {
}
case "jwk": {
const x = key[_type] === "private"
- ? ops.op_jwk_x_ed25519(innerKey)
+ ? ops.op_crypto_jwk_x_ed25519(innerKey)
: ops.op_crypto_base64url_encode(innerKey);
const jwk = {
kty: "OKP",
@@ -4118,7 +4118,7 @@ function exportKeyX25519(format, key, innerKey) {
);
}
- const spkiDer = ops.op_export_spki_x25519(innerKey);
+ const spkiDer = ops.op_crypto_export_spki_x25519(innerKey);
return TypedArrayPrototypeGetBuffer(spkiDer);
}
case "pkcs8": {
@@ -4130,7 +4130,7 @@ function exportKeyX25519(format, key, innerKey) {
);
}
- const pkcs8Der = ops.op_export_pkcs8_x25519(
+ const pkcs8Der = ops.op_crypto_export_pkcs8_x25519(
new Uint8Array([0x04, 0x22, ...new SafeArrayIterator(innerKey)]),
);
pkcs8Der[15] = 0x20;
@@ -4476,7 +4476,7 @@ async function deriveBits(normalizedAlgorithm, baseKey, length) {
const u = WeakMapPrototypeGet(KEY_STORE, uHandle);
const secret = new Uint8Array(32);
- const isIdentity = ops.op_derive_bits_x25519(k, u, secret);
+ const isIdentity = ops.op_crypto_derive_bits_x25519(k, u, secret);
// 6.
if (isIdentity) {
diff --git a/ext/crypto/ed25519.rs b/ext/crypto/ed25519.rs
index 898366bbc..784583c6b 100644
--- a/ext/crypto/ed25519.rs
+++ b/ext/crypto/ed25519.rs
@@ -12,7 +12,10 @@ use spki::der::Decode;
use spki::der::Encode;
#[op(fast)]
-pub fn op_generate_ed25519_keypair(pkey: &mut [u8], pubkey: &mut [u8]) -> bool {
+pub fn op_crypto_generate_ed25519_keypair(
+ pkey: &mut [u8],
+ pubkey: &mut [u8],
+) -> bool {
let mut rng = OsRng;
rng.fill_bytes(pkey);
@@ -25,7 +28,11 @@ pub fn op_generate_ed25519_keypair(pkey: &mut [u8], pubkey: &mut [u8]) -> bool {
}
#[op(fast)]
-pub fn op_sign_ed25519(key: &[u8], data: &[u8], signature: &mut [u8]) -> bool {
+pub fn op_crypto_sign_ed25519(
+ key: &[u8],
+ data: &[u8],
+ signature: &mut [u8],
+) -> bool {
let pair = match Ed25519KeyPair::from_seed_unchecked(key) {
Ok(p) => p,
Err(_) => return false,
@@ -35,7 +42,11 @@ pub fn op_sign_ed25519(key: &[u8], data: &[u8], signature: &mut [u8]) -> bool {
}
#[op(fast)]
-pub fn op_verify_ed25519(pubkey: &[u8], data: &[u8], signature: &[u8]) -> bool {
+pub fn op_crypto_verify_ed25519(
+ pubkey: &[u8],
+ data: &[u8],
+ signature: &[u8],
+) -> bool {
ring::signature::UnparsedPublicKey::new(&ring::signature::ED25519, pubkey)
.verify(data, signature)
.is_ok()
@@ -46,7 +57,7 @@ pub const ED25519_OID: const_oid::ObjectIdentifier =
const_oid::ObjectIdentifier::new_unwrap("1.3.101.112");
#[op(fast)]
-pub fn op_import_spki_ed25519(key_data: &[u8], out: &mut [u8]) -> bool {
+pub fn op_crypto_import_spki_ed25519(key_data: &[u8], out: &mut [u8]) -> bool {
// 2-3.
let pk_info = match spki::SubjectPublicKeyInfo::from_der(key_data) {
Ok(pk_info) => pk_info,
@@ -66,7 +77,7 @@ pub fn op_import_spki_ed25519(key_data: &[u8], out: &mut [u8]) -> bool {
}
#[op(fast)]
-pub fn op_import_pkcs8_ed25519(key_data: &[u8], out: &mut [u8]) -> bool {
+pub fn op_crypto_import_pkcs8_ed25519(key_data: &[u8], out: &mut [u8]) -> bool {
// 2-3.
// This should probably use OneAsymmetricKey instead
let pk_info = match PrivateKeyInfo::from_der(key_data) {
@@ -92,7 +103,9 @@ pub fn op_import_pkcs8_ed25519(key_data: &[u8], out: &mut [u8]) -> bool {
}
#[op]
-pub fn op_export_spki_ed25519(pubkey: &[u8]) -> Result<ZeroCopyBuf, AnyError> {
+pub fn op_crypto_export_spki_ed25519(
+ pubkey: &[u8],
+) -> Result<ZeroCopyBuf, AnyError> {
let key_info = spki::SubjectPublicKeyInfo {
algorithm: spki::AlgorithmIdentifier {
// id-Ed25519
@@ -105,7 +118,9 @@ pub fn op_export_spki_ed25519(pubkey: &[u8]) -> Result<ZeroCopyBuf, AnyError> {
}
#[op]
-pub fn op_export_pkcs8_ed25519(pkey: &[u8]) -> Result<ZeroCopyBuf, AnyError> {
+pub fn op_crypto_export_pkcs8_ed25519(
+ pkey: &[u8],
+) -> Result<ZeroCopyBuf, AnyError> {
// This should probably use OneAsymmetricKey instead
let pk_info = rsa::pkcs8::PrivateKeyInfo {
public_key: None,
@@ -123,7 +138,7 @@ pub fn op_export_pkcs8_ed25519(pkey: &[u8]) -> Result<ZeroCopyBuf, AnyError> {
// 'x' from Section 2 of RFC 8037
// https://www.rfc-editor.org/rfc/rfc8037#section-2
#[op]
-pub fn op_jwk_x_ed25519(pkey: &[u8]) -> Result<String, AnyError> {
+pub fn op_crypto_jwk_x_ed25519(pkey: &[u8]) -> Result<String, AnyError> {
let pair = Ed25519KeyPair::from_seed_unchecked(pkey)?;
Ok(base64::encode_config(
pair.public_key().as_ref(),
diff --git a/ext/crypto/lib.rs b/ext/crypto/lib.rs
index 6056b02a4..695cc3abd 100644
--- a/ext/crypto/lib.rs
+++ b/ext/crypto/lib.rs
@@ -88,20 +88,20 @@ deno_core::extension!(deno_crypto,
op_crypto_unwrap_key,
op_crypto_base64url_decode,
op_crypto_base64url_encode,
- x25519::op_generate_x25519_keypair,
- x25519::op_derive_bits_x25519,
- x25519::op_import_spki_x25519,
- x25519::op_import_pkcs8_x25519,
- ed25519::op_generate_ed25519_keypair,
- ed25519::op_import_spki_ed25519,
- ed25519::op_import_pkcs8_ed25519,
- ed25519::op_sign_ed25519,
- ed25519::op_verify_ed25519,
- ed25519::op_export_spki_ed25519,
- ed25519::op_export_pkcs8_ed25519,
- ed25519::op_jwk_x_ed25519,
- x25519::op_export_spki_x25519,
- x25519::op_export_pkcs8_x25519,
+ x25519::op_crypto_generate_x25519_keypair,
+ x25519::op_crypto_derive_bits_x25519,
+ x25519::op_crypto_import_spki_x25519,
+ x25519::op_crypto_import_pkcs8_x25519,
+ ed25519::op_crypto_generate_ed25519_keypair,
+ ed25519::op_crypto_import_spki_ed25519,
+ ed25519::op_crypto_import_pkcs8_ed25519,
+ ed25519::op_crypto_sign_ed25519,
+ ed25519::op_crypto_verify_ed25519,
+ ed25519::op_crypto_export_spki_ed25519,
+ ed25519::op_crypto_export_pkcs8_ed25519,
+ ed25519::op_crypto_jwk_x_ed25519,
+ x25519::op_crypto_export_spki_x25519,
+ x25519::op_crypto_export_pkcs8_x25519,
],
esm = [ "00_crypto.js", "01_webidl.js" ],
options = {
diff --git a/ext/crypto/x25519.rs b/ext/crypto/x25519.rs
index 0ecdf4ddc..99914e14e 100644
--- a/ext/crypto/x25519.rs
+++ b/ext/crypto/x25519.rs
@@ -12,7 +12,7 @@ use spki::der::Decode;
use spki::der::Encode;
#[op(fast)]
-pub fn op_generate_x25519_keypair(pkey: &mut [u8], pubkey: &mut [u8]) {
+pub fn op_crypto_generate_x25519_keypair(pkey: &mut [u8], pubkey: &mut [u8]) {
// u-coordinate of the base point.
const X25519_BASEPOINT_BYTES: [u8; 32] = [
9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32,7 +32,11 @@ pub fn op_generate_x25519_keypair(pkey: &mut [u8], pubkey: &mut [u8]) {
const MONTGOMERY_IDENTITY: MontgomeryPoint = MontgomeryPoint([0; 32]);
#[op(fast)]
-pub fn op_derive_bits_x25519(k: &[u8], u: &[u8], secret: &mut [u8]) -> bool {
+pub fn op_crypto_derive_bits_x25519(
+ k: &[u8],
+ u: &[u8],
+ secret: &mut [u8],
+) -> bool {
let k: [u8; 32] = k.try_into().expect("Expected byteLength 32");
let u: [u8; 32] = u.try_into().expect("Expected byteLength 32");
let sh_sec = x25519_dalek::x25519(k, u);
@@ -49,7 +53,7 @@ pub const X25519_OID: const_oid::ObjectIdentifier =
const_oid::ObjectIdentifier::new_unwrap("1.3.101.110");
#[op(fast)]
-pub fn op_import_spki_x25519(key_data: &[u8], out: &mut [u8]) -> bool {
+pub fn op_crypto_import_spki_x25519(key_data: &[u8], out: &mut [u8]) -> bool {
// 2-3.
let pk_info = match spki::SubjectPublicKeyInfo::from_der(key_data) {
Ok(pk_info) => pk_info,
@@ -69,7 +73,7 @@ pub fn op_import_spki_x25519(key_data: &[u8], out: &mut [u8]) -> bool {
}
#[op(fast)]
-pub fn op_import_pkcs8_x25519(key_data: &[u8], out: &mut [u8]) -> bool {
+pub fn op_crypto_import_pkcs8_x25519(key_data: &[u8], out: &mut [u8]) -> bool {
// 2-3.
// This should probably use OneAsymmetricKey instead
let pk_info = match PrivateKeyInfo::from_der(key_data) {
@@ -95,7 +99,9 @@ pub fn op_import_pkcs8_x25519(key_data: &[u8], out: &mut [u8]) -> bool {
}
#[op]
-pub fn op_export_spki_x25519(pubkey: &[u8]) -> Result<ZeroCopyBuf, AnyError> {
+pub fn op_crypto_export_spki_x25519(
+ pubkey: &[u8],
+) -> Result<ZeroCopyBuf, AnyError> {
let key_info = spki::SubjectPublicKeyInfo {
algorithm: spki::AlgorithmIdentifier {
// id-X25519
@@ -108,7 +114,9 @@ pub fn op_export_spki_x25519(pubkey: &[u8]) -> Result<ZeroCopyBuf, AnyError> {
}
#[op]
-pub fn op_export_pkcs8_x25519(pkey: &[u8]) -> Result<ZeroCopyBuf, AnyError> {
+pub fn op_crypto_export_pkcs8_x25519(
+ pkey: &[u8],
+) -> Result<ZeroCopyBuf, AnyError> {
// This should probably use OneAsymmetricKey instead
let pk_info = rsa::pkcs8::PrivateKeyInfo {
public_key: None,