From 0643f97e2a0c33dfa2fbc904e43efa9ac1ed328b Mon Sep 17 00:00:00 2001 From: heavenboy <49846064+heavenboy8@users.noreply.github.com> Date: Fri, 1 Jul 2022 14:51:17 +0200 Subject: [PATCH] :arrow_up: use crypto_base 2.0 (#17) --- CHANGELOG.md | 9 ++++++++ Cargo.lock | 23 +++----------------- Cargo.toml | 4 ++-- src/cover_crypt_core.rs | 6 ++--- src/error.rs | 12 +++++----- src/interfaces/ffi/hybrid_cc_aes.rs | 4 ++-- src/interfaces/ffi/tests.rs | 12 ++++------ src/interfaces/pyo3/hybrid_cc_aes.rs | 4 ++-- src/interfaces/statics.rs | 4 ++-- src/interfaces/wasm_bindgen/hybrid_cc_aes.rs | 4 ++-- 10 files changed, 34 insertions(+), 48 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7194d550..34cc19d3 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,15 @@ All notable changes to this project will be documented in this file. +--- +## [3.1.0] - 2022-07-01 +### Added +### Changed +- Bump the cosmian_crypto_base version +### Fixed +### Removed +--- + --- ## [3.0.1] - 2022-06-21 ### Added diff --git a/Cargo.lock b/Cargo.lock index 0e6cd64c..d7909355 100755 --- a/Cargo.lock +++ b/Cargo.lock @@ -221,9 +221,9 @@ dependencies = [ [[package]] name = "cosmian_crypto_base" -version = "1.3.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfe81d8e28941d3458de58b7f7ee530facdf28bb39c87d438b9e0434daafb147" +checksum = "3ede4e2cadd3696c9fe4062109dbca1652eb5359d77f60b6be2dd3ab716d00fd" dependencies = [ "aes", "aes-gcm", @@ -231,7 +231,6 @@ dependencies = [ "cosmian_fpe", "cupid", "curve25519-dalek", - "eyre", "getrandom 0.2.6", "hex", "hkdf", @@ -264,7 +263,7 @@ dependencies = [ [[package]] name = "cover_crypt" -version = "3.0.1" +version = "3.1.0" dependencies = [ "cosmian_crypto_base", "criterion", @@ -474,16 +473,6 @@ dependencies = [ "termcolor", ] -[[package]] -name = "eyre" -version = "0.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c2b6b5a29c02cdc822728b7d7b8ae1bab3e3b05d44522770ddd49722eeac7eb" -dependencies = [ - "indenter", - "once_cell", -] - [[package]] name = "gcc" version = "0.3.55" @@ -585,12 +574,6 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" -[[package]] -name = "indenter" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" - [[package]] name = "indoc" version = "1.0.6" diff --git a/Cargo.toml b/Cargo.toml index dd338186..5dc60cc4 100755 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cover_crypt" -version = "3.0.1" +version = "3.1.0" edition = "2021" authors = [ "Théophile Brezot ", @@ -31,7 +31,7 @@ wasm_bindgen = ["js-sys", "wasm-bindgen"] python = ["pyo3"] [dependencies] -cosmian_crypto_base = "1.3" +cosmian_crypto_base = "2.0" hex = "0.4" leb128 = "0.2" rand_core = { version = "0.5", features = ["getrandom"] } diff --git a/src/cover_crypt_core.rs b/src/cover_crypt_core.rs index cbfa739d..99e3b45e 100644 --- a/src/cover_crypt_core.rs +++ b/src/cover_crypt_core.rs @@ -153,8 +153,7 @@ where } let partition = Partition::from(partition_bytes); let key_bytes = de.read_array()?; - let key = - <::KeyPair as KeyPair>::PrivateKey::try_from_bytes(key_bytes.to_vec())?; + let key = <::KeyPair as KeyPair>::PrivateKey::try_from_bytes(&key_bytes)?; map.insert(partition, key); } Ok(Self(map)) @@ -242,8 +241,7 @@ where } let partition = Partition::from(partition_bytes); let key_bytes = de.read_array()?; - let key = - <::KeyPair as KeyPair>::PublicKey::try_from_bytes(key_bytes.to_vec())?; + let key = <::KeyPair as KeyPair>::PublicKey::try_from_bytes(&key_bytes)?; map.insert(partition, key); } Ok(Self(map)) diff --git a/src/error.rs b/src/error.rs index bf7407cb..0aee6be9 100644 --- a/src/error.rs +++ b/src/error.rs @@ -4,7 +4,7 @@ use std::{ num::{ParseIntError, TryFromIntError}, }; -use cosmian_crypto_base::Error as CryptoError; +use cosmian_crypto_base::CryptoBaseError; use thiserror::Error; #[derive(Error, Debug)] @@ -12,7 +12,7 @@ pub enum Error { #[error("Unknown partition {0}")] UnknownPartition(String), #[error("{0}")] - CryptoError(CryptoError), + CryptoError(CryptoBaseError), #[error("attribute not found: {0}")] AttributeNotFound(String), #[error("{} is missing{}", @@ -94,13 +94,13 @@ impl From for Error { } } -impl From for Error { - fn from(e: cosmian_crypto_base::Error) -> Self { +impl From for Error { + fn from(e: CryptoBaseError) -> Self { match e { - CryptoError::SizeError { given, expected } => { + CryptoBaseError::SizeError { given, expected } => { Error::InvalidSize(format!("expected: {}, given: {}", expected, given)) } - CryptoError::InvalidSize(e) => Error::InvalidSize(e), + CryptoBaseError::InvalidSize(e) => Error::InvalidSize(e), e => Error::CryptoError(e), } } diff --git a/src/interfaces/ffi/hybrid_cc_aes.rs b/src/interfaces/ffi/hybrid_cc_aes.rs index 9977f5a2..2b2f614c 100644 --- a/src/interfaces/ffi/hybrid_cc_aes.rs +++ b/src/interfaces/ffi/hybrid_cc_aes.rs @@ -748,7 +748,7 @@ pub unsafe extern "C" fn h_aes_encrypt_block( let data = std::slice::from_raw_parts(data_ptr as *const u8, data_len as usize).to_vec(); let symmetric_key = ffi_unwrap!(::Key::try_from_bytes( - symmetric_key + &symmetric_key.to_vec() )); let encrypted_block = ffi_unwrap!(encrypt_hybrid_block::< X25519Crypto, @@ -823,7 +823,7 @@ pub unsafe extern "C" fn h_aes_decrypt_block( .to_vec(); let symmetric_key = ffi_unwrap!(::Key::try_from_bytes( - symmetric_key + &symmetric_key.to_vec() )); let encrypted_block = ffi_unwrap!(decrypt_hybrid_block::< X25519Crypto, diff --git a/src/interfaces/ffi/tests.rs b/src/interfaces/ffi/tests.rs index 9b3ef28a..a25615cb 100644 --- a/src/interfaces/ffi/tests.rs +++ b/src/interfaces/ffi/tests.rs @@ -66,8 +66,7 @@ unsafe fn encrypt_header( ))?; let symmetric_key_ = ::Key::try_from_bytes( - std::slice::from_raw_parts(symmetric_key_ptr as *const u8, symmetric_key_len as usize) - .to_vec(), + std::slice::from_raw_parts(symmetric_key_ptr as *const u8, symmetric_key_len as usize), ) .map_err(|e| Error::Other(e.to_string()))?; @@ -121,8 +120,7 @@ unsafe fn decrypt_header( ))?; let symmetric_key_ = ::Key::try_from_bytes( - std::slice::from_raw_parts(symmetric_key_ptr as *const u8, symmetric_key_len as usize) - .to_vec(), + std::slice::from_raw_parts(symmetric_key_ptr as *const u8, symmetric_key_len as usize), ) .map_err(|e| Error::Other(e.to_string()))?; @@ -275,8 +273,7 @@ unsafe fn encrypt_header_using_cache( ))?; let symmetric_key_ = ::Key::try_from_bytes( - std::slice::from_raw_parts(symmetric_key_ptr as *const u8, symmetric_key_len as usize) - .to_vec(), + std::slice::from_raw_parts(symmetric_key_ptr as *const u8, symmetric_key_len as usize), ) .map_err(|e| Error::Other(e.to_string()))?; @@ -335,8 +332,7 @@ unsafe fn decrypt_header_using_cache( ))?; let symmetric_key_ = ::Key::try_from_bytes( - std::slice::from_raw_parts(symmetric_key_ptr as *const u8, symmetric_key_len as usize) - .to_vec(), + std::slice::from_raw_parts(symmetric_key_ptr as *const u8, symmetric_key_len as usize), ) .map_err(|e| Error::Other(e.to_string()))?; diff --git a/src/interfaces/pyo3/hybrid_cc_aes.rs b/src/interfaces/pyo3/hybrid_cc_aes.rs index 26f70b48..1d986e69 100644 --- a/src/interfaces/pyo3/hybrid_cc_aes.rs +++ b/src/interfaces/pyo3/hybrid_cc_aes.rs @@ -137,7 +137,7 @@ pub fn encrypt_hybrid_block( // // Parse symmetric key let symmetric_key = - ::Key::try_from_bytes(symmetric_key_bytes) + ::Key::try_from_bytes(&symmetric_key_bytes) .map_err(|e| PyTypeError::new_err(format!("Deserialize symmetric key failed: {e}")))?; // @@ -168,7 +168,7 @@ pub fn decrypt_hybrid_block( // // Parse symmetric key let symmetric_key = - ::Key::try_from_bytes(symmetric_key_bytes) + ::Key::try_from_bytes(&symmetric_key_bytes) .map_err(|e| PyTypeError::new_err(format!("Deserialize symmetric key failed: {e}")))?; // diff --git a/src/interfaces/statics.rs b/src/interfaces/statics.rs index 6fdfe0e1..f986a34d 100644 --- a/src/interfaces/statics.rs +++ b/src/interfaces/statics.rs @@ -80,7 +80,7 @@ pub fn encrypt_hybrid_header( } Ok(EncryptedHeader { - symmetric_key: DEM::Key::try_from_bytes(secret_key.into()).map_err(Error::CryptoError)?, + symmetric_key: DEM::Key::try_from_bytes(&secret_key).map_err(Error::CryptoError)?, header_bytes, }) } @@ -128,7 +128,7 @@ pub fn decrypt_hybrid_header( }; Ok(ClearTextHeader { - symmetric_key: DEM::Key::try_from_bytes(secret_key.into()).map_err(Error::CryptoError)?, + symmetric_key: DEM::Key::try_from_bytes(&secret_key).map_err(Error::CryptoError)?, meta_data, }) } diff --git a/src/interfaces/wasm_bindgen/hybrid_cc_aes.rs b/src/interfaces/wasm_bindgen/hybrid_cc_aes.rs index e9f299a5..b4c443c3 100644 --- a/src/interfaces/wasm_bindgen/hybrid_cc_aes.rs +++ b/src/interfaces/wasm_bindgen/hybrid_cc_aes.rs @@ -135,7 +135,7 @@ pub fn webassembly_encrypt_hybrid_block( // // Parse symmetric key let symmetric_key = - ::Key::try_from_bytes(symmetric_key_bytes.to_vec()) + ::Key::try_from_bytes(&symmetric_key_bytes.to_vec()) .map_err(|e| { JsValue::from_str(&format!( "Error parsing @@ -186,7 +186,7 @@ pub fn webassembly_decrypt_hybrid_block( // // Parse symmetric key let symmetric_key = - ::Key::try_from_bytes(symmetric_key_bytes.to_vec()) + ::Key::try_from_bytes(&symmetric_key_bytes.to_vec()) .map_err(|e| { JsValue::from_str(&format!( "Error parsing