Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions deoxys/src/deoxys_bc.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ use aead::{
consts::{U15, U16, U17, U32, U48},
};

use crate::{DeoxysBcType, DeoxysKey, Tweak};
use crate::{DeoxysBcType, Key, Tweak};

const H_PERM: [u8; 16] = [1, 6, 11, 12, 5, 10, 15, 0, 9, 14, 3, 4, 13, 2, 7, 8];

Expand Down Expand Up @@ -47,9 +47,9 @@ pub trait DeoxysBcInternal {

fn key_schedule(
tweak: &Tweak,
subkeys: &Array<DeoxysKey, Self::SubkeysSize>,
) -> Array<DeoxysKey, Self::SubkeysSize> {
let mut subtweakeys: Array<DeoxysKey, Self::SubkeysSize> = Default::default();
subkeys: &Array<Key, Self::SubkeysSize>,
) -> Array<Key, Self::SubkeysSize> {
let mut subtweakeys: Array<Key, Self::SubkeysSize> = Default::default();
let mut tweak = *tweak;

// First key
Expand Down Expand Up @@ -78,8 +78,8 @@ impl DeoxysBcInternal for DeoxysBc256 {
impl DeoxysBcType for DeoxysBc256 {
type KeySize = U16;

fn precompute_subkeys(key: &Array<u8, Self::KeySize>) -> Array<DeoxysKey, Self::SubkeysSize> {
let mut subkeys: Array<DeoxysKey, Self::SubkeysSize> = Default::default();
fn precompute_subkeys(key: &Array<u8, Self::KeySize>) -> Array<Key, Self::SubkeysSize> {
let mut subkeys: Array<Key, Self::SubkeysSize> = Default::default();

let mut tk2 = [0u8; 16];

Expand Down Expand Up @@ -116,8 +116,8 @@ impl DeoxysBcInternal for DeoxysBc384 {
impl DeoxysBcType for DeoxysBc384 {
type KeySize = U32;

fn precompute_subkeys(key: &Array<u8, Self::KeySize>) -> Array<DeoxysKey, Self::SubkeysSize> {
let mut subkeys: Array<DeoxysKey, Self::SubkeysSize> = Default::default();
fn precompute_subkeys(key: &Array<u8, Self::KeySize>) -> Array<Key, Self::SubkeysSize> {
let mut subkeys: Array<Key, Self::SubkeysSize> = Default::default();

let mut tk3 = [0u8; 16];
let mut tk2 = [0u8; 16];
Expand Down
27 changes: 10 additions & 17 deletions deoxys/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ mod deoxys_bc;
/// Operation modes for Deoxys.
mod modes;

pub use aead::{self, AeadCore, AeadInPlaceDetached, Error, Key, KeyInit, KeySizeUser, consts};
pub use aead::{self, AeadCore, AeadInPlaceDetached, Error, KeyInit, KeySizeUser, consts};

use aead::{
PostfixTagged,
Expand Down Expand Up @@ -143,7 +143,8 @@ type Block = Array<u8, U16>;

type Tweak = Array<u8, U16>;

type DeoxysKey = Array<u8, U16>;
/// Deoxys key
pub type Key = Array<u8, U16>;

/// Deoxys encryption modes.
/// This type contains the public API for a Deoxys mode, like Deoxys-I and Deoxys-II.
Expand All @@ -160,7 +161,7 @@ where
nonce: &Array<u8, Self::NonceSize>,
associated_data: &[u8],
buffer: &mut [u8],
subkeys: &Array<DeoxysKey, B::SubkeysSize>,
subkeys: &Array<Key, B::SubkeysSize>,
) -> Tag;

/// Decrypts the data in place with the specified parameters
Expand All @@ -170,7 +171,7 @@ where
associated_data: &[u8],
buffer: &mut [u8],
tag: &Tag,
subkeys: &Array<DeoxysKey, B::SubkeysSize>,
subkeys: &Array<Key, B::SubkeysSize>,
) -> Result<(), aead::Error>;
}

Expand All @@ -181,14 +182,10 @@ pub trait DeoxysBcType: deoxys_bc::DeoxysBcInternal {
type KeySize: ArraySize;

/// Precompute the subkeys
fn precompute_subkeys(key: &Array<u8, Self::KeySize>) -> Array<DeoxysKey, Self::SubkeysSize>;
fn precompute_subkeys(key: &Array<u8, Self::KeySize>) -> Array<Key, Self::SubkeysSize>;

/// Encrypts a block of data in place.
fn encrypt_in_place(
block: &mut Block,
tweak: &Tweak,
subkeys: &Array<DeoxysKey, Self::SubkeysSize>,
) {
fn encrypt_in_place(block: &mut Block, tweak: &Tweak, subkeys: &Array<Key, Self::SubkeysSize>) {
let keys = Self::key_schedule(tweak, subkeys);

for (b, k) in block.iter_mut().zip(keys[0].iter()) {
Expand All @@ -201,11 +198,7 @@ pub trait DeoxysBcType: deoxys_bc::DeoxysBcInternal {
}

/// Decrypts a block of data in place.
fn decrypt_in_place(
block: &mut Block,
tweak: &Tweak,
subkeys: &Array<DeoxysKey, Self::SubkeysSize>,
) {
fn decrypt_in_place(block: &mut Block, tweak: &Tweak, subkeys: &Array<Key, Self::SubkeysSize>) {
let mut keys = Self::key_schedule(tweak, subkeys);

let r = keys.len();
Expand Down Expand Up @@ -233,7 +226,7 @@ where
M: DeoxysMode<B>,
B: DeoxysBcType,
{
subkeys: Array<DeoxysKey, B::SubkeysSize>,
subkeys: Array<Key, B::SubkeysSize>,
mode: PhantomData<M>,
}

Expand All @@ -250,7 +243,7 @@ where
M: DeoxysMode<B>,
B: DeoxysBcType,
{
fn new(key: &Key<Self>) -> Self {
fn new(key: &aead::Key<Self>) -> Self {
Self {
subkeys: B::precompute_subkeys(key),
mode: PhantomData,
Expand Down
16 changes: 8 additions & 8 deletions deoxys/src/modes.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use super::{Block, DeoxysBcType, DeoxysKey, DeoxysMode, Tag, Tweak};
use super::{Block, DeoxysBcType, DeoxysMode, Key, Tag, Tweak};
use aead::{
array::Array,
consts::{U8, U15, U16},
Expand Down Expand Up @@ -33,7 +33,7 @@ where
fn compute_ad_tag(
associated_data: &[u8],
tweak: &mut Tweak,
subkeys: &Array<DeoxysKey, B::SubkeysSize>,
subkeys: &Array<Key, B::SubkeysSize>,
tag: &mut Tag,
) {
if !associated_data.is_empty() {
Expand Down Expand Up @@ -86,7 +86,7 @@ where
nonce: &Array<u8, Self::NonceSize>,
associated_data: &[u8],
buffer: &mut [u8],
subkeys: &Array<DeoxysKey, B::SubkeysSize>,
subkeys: &Array<Key, B::SubkeysSize>,
) -> Tag {
let mut tag = Tag::default();
let mut checksum = Checksum::default();
Expand Down Expand Up @@ -186,7 +186,7 @@ where
associated_data: &[u8],
buffer: &mut [u8],
tag: &Tag,
subkeys: &Array<DeoxysKey, B::SubkeysSize>,
subkeys: &Array<Key, B::SubkeysSize>,
) -> Result<(), aead::Error> {
let mut computed_tag = Tag::default();
let mut checksum = Checksum::default();
Expand Down Expand Up @@ -291,7 +291,7 @@ where
fn authenticate_message(
buffer: &[u8],
tweak: &mut Tweak,
subkeys: &Array<DeoxysKey, B::SubkeysSize>,
subkeys: &Array<Key, B::SubkeysSize>,
tag: &mut Tag,
) {
if !buffer.is_empty() {
Expand Down Expand Up @@ -332,7 +332,7 @@ where
fn encrypt_decrypt_message(
buffer: &mut [u8],
tweak: &mut Tweak,
subkeys: &Array<DeoxysKey, B::SubkeysSize>,
subkeys: &Array<Key, B::SubkeysSize>,
tag: &Tag,
nonce: &Array<u8, U15>,
) {
Expand Down Expand Up @@ -376,7 +376,7 @@ where
nonce: &Array<u8, Self::NonceSize>,
associated_data: &[u8],
buffer: &mut [u8],
subkeys: &Array<DeoxysKey, B::SubkeysSize>,
subkeys: &Array<Key, B::SubkeysSize>,
) -> Tag {
let mut tag = Tag::default();
let mut tweak = Tweak::default();
Expand Down Expand Up @@ -407,7 +407,7 @@ where
associated_data: &[u8],
buffer: &mut [u8],
tag: &Tag,
subkeys: &Array<DeoxysKey, B::SubkeysSize>,
subkeys: &Array<Key, B::SubkeysSize>,
) -> Result<(), aead::Error> {
let mut computed_tag = Tag::default();
let mut tweak = Tweak::default();
Expand Down