diff options
author | Divy Srivastava <dj.srivastava23@gmail.com> | 2023-11-04 09:59:25 +0530 |
---|---|---|
committer | Divy Srivastava <dj.srivastava23@gmail.com> | 2023-11-05 06:40:35 -0800 |
commit | 5202f5460db793df198ea2751a5aebeaf67521af (patch) | |
tree | efb3a7845911474524e3d03468dd7f7deb40e56d /ext/crypto/ed25519.rs | |
parent | 46faf37ec06c19e1163a57157f6a21eaafe9f5d2 (diff) |
chore(ext/crypto): upgrade ec crates
Diffstat (limited to 'ext/crypto/ed25519.rs')
-rw-r--r-- | ext/crypto/ed25519.rs | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/ext/crypto/ed25519.rs b/ext/crypto/ed25519.rs index 874eb74b0..10477219a 100644 --- a/ext/crypto/ed25519.rs +++ b/ext/crypto/ed25519.rs @@ -11,6 +11,7 @@ use rand::rngs::OsRng; use rand::RngCore; use ring::signature::Ed25519KeyPair; use ring::signature::KeyPair; +use spki::der::asn1::BitString; use spki::der::Decode; use spki::der::Encode; @@ -65,7 +66,7 @@ pub fn op_crypto_import_spki_ed25519( #[buffer] out: &mut [u8], ) -> bool { // 2-3. - let pk_info = match spki::SubjectPublicKeyInfo::from_der(key_data) { + let pk_info = match spki::SubjectPublicKeyInfoRef::try_from(key_data) { Ok(pk_info) => pk_info, Err(_) => return false, }; @@ -78,7 +79,7 @@ pub fn op_crypto_import_spki_ed25519( if pk_info.algorithm.parameters.is_some() { return false; } - out.copy_from_slice(pk_info.subject_public_key); + out.copy_from_slice(pk_info.subject_public_key.raw_bytes()); true } @@ -117,16 +118,16 @@ pub fn op_crypto_export_spki_ed25519( #[buffer] pubkey: &[u8], ) -> Result<ToJsBuffer, AnyError> { let key_info = spki::SubjectPublicKeyInfo { - algorithm: spki::AlgorithmIdentifier { + algorithm: spki::AlgorithmIdentifierOwned { // id-Ed25519 oid: ED25519_OID, parameters: None, }, - subject_public_key: pubkey, + subject_public_key: BitString::from_bytes(pubkey)?, }; Ok( key_info - .to_vec() + .to_der() .map_err(|_| { custom_error("DOMExceptionOperationError", "Failed to export key") })? |