crypto: Move the base64 helpers into a common module.
parent
fd705b7d5e
commit
b5c61af472
|
@ -33,7 +33,7 @@ use aes_ctr::{
|
|||
use base64::DecodeError;
|
||||
use sha2::{Digest, Sha256};
|
||||
|
||||
use super::{decode, decode_url_safe, encode, encode_url_safe};
|
||||
use crate::utilities::{decode, decode_url_safe, encode, encode_url_safe};
|
||||
|
||||
const IV_SIZE: usize = 16;
|
||||
const KEY_SIZE: usize = 32;
|
||||
|
|
|
@ -27,8 +27,10 @@ use hmac::{Hmac, Mac, NewMac};
|
|||
use pbkdf2::pbkdf2;
|
||||
use sha2::{Sha256, Sha512};
|
||||
|
||||
use super::{decode, encode, DecodeError};
|
||||
use crate::olm::ExportedRoomKey;
|
||||
use crate::{
|
||||
olm::ExportedRoomKey,
|
||||
utilities::{decode, encode, DecodeError},
|
||||
};
|
||||
|
||||
const SALT_SIZE: usize = 16;
|
||||
const IV_SIZE: usize = 16;
|
||||
|
|
|
@ -3,21 +3,3 @@ mod key_export;
|
|||
|
||||
pub use attachments::{AttachmentDecryptor, AttachmentEncryptor, DecryptorError};
|
||||
pub use key_export::{decrypt_key_export, encrypt_key_export};
|
||||
|
||||
use base64::{decode_config, encode_config, DecodeError, STANDARD_NO_PAD, URL_SAFE_NO_PAD};
|
||||
|
||||
fn decode(input: impl AsRef<[u8]>) -> Result<Vec<u8>, DecodeError> {
|
||||
decode_config(input, STANDARD_NO_PAD)
|
||||
}
|
||||
|
||||
fn decode_url_safe(input: impl AsRef<[u8]>) -> Result<Vec<u8>, DecodeError> {
|
||||
decode_config(input, URL_SAFE_NO_PAD)
|
||||
}
|
||||
|
||||
pub fn encode(input: impl AsRef<[u8]>) -> String {
|
||||
encode_config(input, STANDARD_NO_PAD)
|
||||
}
|
||||
|
||||
pub fn encode_url_safe(input: impl AsRef<[u8]>) -> String {
|
||||
encode_config(input, URL_SAFE_NO_PAD)
|
||||
}
|
||||
|
|
|
@ -36,6 +36,7 @@ pub mod olm;
|
|||
mod requests;
|
||||
mod session_manager;
|
||||
pub mod store;
|
||||
mod utilities;
|
||||
mod verification;
|
||||
|
||||
pub use error::{MegolmError, OlmError};
|
||||
|
|
|
@ -54,10 +54,10 @@ use olm_rs::{
|
|||
|
||||
use crate::{
|
||||
error::{EventError, OlmResult, SessionCreationError},
|
||||
file_encryption::encode,
|
||||
identities::ReadOnlyDevice,
|
||||
requests::UploadSigningKeysRequest,
|
||||
store::{Changes, Store},
|
||||
utilities::encode,
|
||||
OlmError,
|
||||
};
|
||||
|
||||
|
|
|
@ -16,7 +16,6 @@ use aes_gcm::{
|
|||
aead::{generic_array::GenericArray, Aead, NewAead},
|
||||
Aes256Gcm,
|
||||
};
|
||||
use base64::{decode_config, encode_config, DecodeError, URL_SAFE_NO_PAD};
|
||||
use getrandom::getrandom;
|
||||
use matrix_sdk_common::{
|
||||
encryption::DeviceKeys,
|
||||
|
@ -42,19 +41,12 @@ use matrix_sdk_common::{
|
|||
use crate::{
|
||||
error::SignatureError,
|
||||
identities::{MasterPubkey, SelfSigningPubkey, UserSigningPubkey},
|
||||
utilities::{decode_url_safe as decode, encode_url_safe as encode, DecodeError},
|
||||
UserIdentity,
|
||||
};
|
||||
|
||||
const NONCE_SIZE: usize = 12;
|
||||
|
||||
fn encode<T: AsRef<[u8]>>(input: T) -> String {
|
||||
encode_config(input, URL_SAFE_NO_PAD)
|
||||
}
|
||||
|
||||
fn decode<T: AsRef<[u8]>>(input: T) -> Result<Vec<u8>, DecodeError> {
|
||||
decode_config(input, URL_SAFE_NO_PAD)
|
||||
}
|
||||
|
||||
/// Error type reporting failures in the Signign operations.
|
||||
#[derive(Debug, Error)]
|
||||
pub enum SigningError {
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
// Copyright 2020 The Matrix.org Foundation C.I.C.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
pub use base64::DecodeError;
|
||||
use base64::{decode_config, encode_config, STANDARD_NO_PAD, URL_SAFE_NO_PAD};
|
||||
|
||||
/// Decode the input as base64 with no padding.
|
||||
pub fn decode(input: impl AsRef<[u8]>) -> Result<Vec<u8>, DecodeError> {
|
||||
decode_config(input, STANDARD_NO_PAD)
|
||||
}
|
||||
|
||||
/// Decode the input as URL safe base64 with no padding.
|
||||
pub fn decode_url_safe(input: impl AsRef<[u8]>) -> Result<Vec<u8>, DecodeError> {
|
||||
decode_config(input, URL_SAFE_NO_PAD)
|
||||
}
|
||||
|
||||
/// Encode the input as base64 with no padding.
|
||||
pub fn encode(input: impl AsRef<[u8]>) -> String {
|
||||
encode_config(input, STANDARD_NO_PAD)
|
||||
}
|
||||
|
||||
/// Encode the input as URL safe base64 with no padding.
|
||||
pub fn encode_url_safe(input: impl AsRef<[u8]>) -> String {
|
||||
encode_config(input, URL_SAFE_NO_PAD)
|
||||
}
|
Loading…
Reference in New Issue