Skip to content

Commit

Permalink
Use macro to reduce number of u64::from_ne_bytes
Browse files Browse the repository at this point in the history
  • Loading branch information
newpavlov committed Feb 12, 2025
1 parent 67d7440 commit 923ef32
Showing 1 changed file with 71 additions and 65 deletions.
136 changes: 71 additions & 65 deletions des/src/consts.rs
Original file line number Diff line number Diff line change
Expand Up @@ -58,69 +58,75 @@ pub const SBOXES: [[u8; 64]; 8] = [
],
];

pub(crate) static WEAK_KEYS: &[u64; 64] = &[
u64::from_ne_bytes([0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01]),
u64::from_ne_bytes([0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE]),
u64::from_ne_bytes([0xE0, 0xE0, 0xE0, 0xE0, 0xF1, 0xF1, 0xF1, 0xF1]),
u64::from_ne_bytes([0x1F, 0x1F, 0x1F, 0x1F, 0x0E, 0x0E, 0x0E, 0x0E]),
u64::from_ne_bytes([0x01, 0x1F, 0x01, 0x1F, 0x01, 0x0E, 0x01, 0x0E]),
u64::from_ne_bytes([0x1F, 0x01, 0x1F, 0x01, 0x0E, 0x01, 0x0E, 0x01]),
u64::from_ne_bytes([0x01, 0xE0, 0x01, 0xE0, 0x01, 0xF1, 0x01, 0xF1]),
u64::from_ne_bytes([0xE0, 0x01, 0xE0, 0x01, 0xF1, 0x01, 0xF1, 0x01]),
u64::from_ne_bytes([0x01, 0xFE, 0x01, 0xFE, 0x01, 0xFE, 0x01, 0xFE]),
u64::from_ne_bytes([0xFE, 0x01, 0xFE, 0x01, 0xFE, 0x01, 0xFE, 0x01]),
u64::from_ne_bytes([0x1F, 0xE0, 0x1F, 0xE0, 0x0E, 0xF1, 0x0E, 0xF1]),
u64::from_ne_bytes([0xE0, 0x1F, 0xE0, 0x1F, 0xF1, 0x0E, 0xF1, 0x0E]),
u64::from_ne_bytes([0x1F, 0xFE, 0x1F, 0xFE, 0x0E, 0xFE, 0x0E, 0xFE]),
u64::from_ne_bytes([0xFE, 0x1F, 0xFE, 0x1F, 0xFE, 0x0E, 0xFE, 0x0E]),
u64::from_ne_bytes([0xE0, 0xFE, 0xE0, 0xFE, 0xF1, 0xFE, 0xF1, 0xFE]),
u64::from_ne_bytes([0xFE, 0xE0, 0xFE, 0xE0, 0xFE, 0xF1, 0xFE, 0xF1]),
u64::from_ne_bytes([0x01, 0x01, 0x1F, 0x1F, 0x01, 0x01, 0x0E, 0x0E]),
u64::from_ne_bytes([0x1F, 0x1F, 0x01, 0x01, 0x0E, 0x0E, 0x01, 0x01]),
u64::from_ne_bytes([0xE0, 0xE0, 0x1F, 0x1F, 0xF1, 0xF1, 0x0E, 0x0E]),
u64::from_ne_bytes([0x01, 0x01, 0xE0, 0xE0, 0x01, 0x01, 0xF1, 0xF1]),
u64::from_ne_bytes([0x1F, 0x1F, 0xE0, 0xE0, 0x0E, 0x0E, 0xF1, 0xF1]),
u64::from_ne_bytes([0xE0, 0xE0, 0xFE, 0xFE, 0xF1, 0xF1, 0xFE, 0xFE]),
u64::from_ne_bytes([0x01, 0x01, 0xFE, 0xFE, 0x01, 0x01, 0xFE, 0xFE]),
u64::from_ne_bytes([0x1F, 0x1F, 0xFE, 0xFE, 0x0E, 0x0E, 0xFE, 0xFE]),
u64::from_ne_bytes([0xE0, 0xFE, 0x01, 0x1F, 0xF1, 0xFE, 0x01, 0x0E]),
u64::from_ne_bytes([0x01, 0x1F, 0x1F, 0x01, 0x01, 0x0E, 0x0E, 0x01]),
u64::from_ne_bytes([0x1F, 0xE0, 0x01, 0xFE, 0x0E, 0xF1, 0x01, 0xFE]),
u64::from_ne_bytes([0xE0, 0xFE, 0x1F, 0x01, 0xF1, 0xFE, 0x0E, 0x01]),
u64::from_ne_bytes([0x01, 0x1F, 0xE0, 0xFE, 0x01, 0x0E, 0xF1, 0xFE]),
u64::from_ne_bytes([0x1F, 0xE0, 0xE0, 0x1F, 0x0E, 0xF1, 0xF1, 0x0E]),
u64::from_ne_bytes([0xE0, 0xFE, 0xFE, 0xE0, 0xF1, 0xFE, 0xFE, 0xF1]),
u64::from_ne_bytes([0x01, 0x1F, 0xFE, 0xE0, 0x01, 0x0E, 0xFE, 0xF1]),
u64::from_ne_bytes([0x1F, 0xE0, 0xFE, 0x01, 0x0E, 0xF1, 0xFE, 0x01]),
u64::from_ne_bytes([0xFE, 0x01, 0x01, 0xFE, 0xFE, 0x01, 0x01, 0xFE]),
u64::from_ne_bytes([0x01, 0xE0, 0x1F, 0xFE, 0x01, 0xF1, 0x0E, 0xFE]),
u64::from_ne_bytes([0x1F, 0xFE, 0x01, 0xE0, 0x0E, 0xFE, 0x01, 0xF1]),
u64::from_ne_bytes([0xFE, 0x01, 0x1F, 0xE0, 0xFE, 0x01, 0x0E, 0xF1]),
u64::from_ne_bytes([0xFE, 0x01, 0xE0, 0x1F, 0xFE, 0x01, 0xF1, 0x0E]),
u64::from_ne_bytes([0x1F, 0xFE, 0xE0, 0x01, 0x0E, 0xFE, 0xF1, 0x01]),
u64::from_ne_bytes([0xFE, 0x1F, 0x01, 0xE0, 0xFE, 0x0E, 0x01, 0xF1]),
u64::from_ne_bytes([0x01, 0xE0, 0xE0, 0x01, 0x01, 0xF1, 0xF1, 0x01]),
u64::from_ne_bytes([0x1F, 0xFE, 0xFE, 0x1F, 0x0E, 0xFE, 0xFE, 0x0E]),
u64::from_ne_bytes([0xFE, 0x1F, 0xE0, 0x01, 0xFE, 0x0E, 0xF1, 0x01]),
u64::from_ne_bytes([0x01, 0xE0, 0xFE, 0x1F, 0x01, 0xF1, 0xFE, 0x0E]),
u64::from_ne_bytes([0xE0, 0x01, 0x01, 0xE0, 0xF1, 0x01, 0x01, 0xF1]),
u64::from_ne_bytes([0xFE, 0x1F, 0x1F, 0xFE, 0xFE, 0x0E, 0x0E, 0xFE]),
u64::from_ne_bytes([0x01, 0xFE, 0x1F, 0xE0, 0x01, 0xFE, 0x0E, 0xF1]),
u64::from_ne_bytes([0xE0, 0x01, 0x1F, 0xFE, 0xF1, 0x01, 0x0E, 0xFE]),
u64::from_ne_bytes([0xFE, 0xE0, 0x01, 0x1F, 0xFE, 0xF1, 0x01, 0x0E]),
u64::from_ne_bytes([0x01, 0xFE, 0xE0, 0x1F, 0x01, 0xFE, 0xF1, 0x0E]),
u64::from_ne_bytes([0xE0, 0x01, 0xFE, 0x1F, 0xF1, 0x01, 0xFE, 0x0E]),
u64::from_ne_bytes([0xFE, 0xE0, 0x1F, 0x01, 0xFE, 0xF1, 0x0E, 0x01]),
u64::from_ne_bytes([0x01, 0xFE, 0xFE, 0x01, 0x01, 0xFE, 0xFE, 0x01]),
u64::from_ne_bytes([0xE0, 0x1F, 0x01, 0xFE, 0xF1, 0x0E, 0x01, 0xFE]),
u64::from_ne_bytes([0xFE, 0xE0, 0xE0, 0xFE, 0xFE, 0xF1, 0xF1, 0xFE]),
u64::from_ne_bytes([0x1F, 0x01, 0x01, 0x1F, 0x0E, 0x01, 0x01, 0x0E]),
u64::from_ne_bytes([0xE0, 0x1F, 0x1F, 0xE0, 0xF1, 0x0E, 0x0E, 0xF1]),
u64::from_ne_bytes([0xFE, 0xFE, 0x01, 0x01, 0xFE, 0xFE, 0x01, 0x01]),
u64::from_ne_bytes([0x1F, 0x01, 0xE0, 0xFE, 0x0E, 0x01, 0xF1, 0xFE]),
u64::from_ne_bytes([0xE0, 0x1F, 0xFE, 0x01, 0xF1, 0x0E, 0xFE, 0x01]),
u64::from_ne_bytes([0xFE, 0xFE, 0x1F, 0x1F, 0xFE, 0xFE, 0x0E, 0x0E]),
u64::from_ne_bytes([0x1F, 0x01, 0xFE, 0xE0, 0x0E, 0x01, 0xFE, 0xF1]),
u64::from_ne_bytes([0xE0, 0xE0, 0x01, 0x01, 0xF1, 0xF1, 0x01, 0x01]),
u64::from_ne_bytes([0xFE, 0xFE, 0xE0, 0xE0, 0xFE, 0xFE, 0xF1, 0xF1]),
macro_rules! as_ne_u64 {
[$($key:expr,)*] => {
[$(u64::from_ne_bytes($key),)*]
};
}

pub(crate) static WEAK_KEYS: &[u64; 64] = &as_ne_u64![
[0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01],
[0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE],
[0xE0, 0xE0, 0xE0, 0xE0, 0xF1, 0xF1, 0xF1, 0xF1],
[0x1F, 0x1F, 0x1F, 0x1F, 0x0E, 0x0E, 0x0E, 0x0E],
[0x01, 0x1F, 0x01, 0x1F, 0x01, 0x0E, 0x01, 0x0E],
[0x1F, 0x01, 0x1F, 0x01, 0x0E, 0x01, 0x0E, 0x01],
[0x01, 0xE0, 0x01, 0xE0, 0x01, 0xF1, 0x01, 0xF1],
[0xE0, 0x01, 0xE0, 0x01, 0xF1, 0x01, 0xF1, 0x01],
[0x01, 0xFE, 0x01, 0xFE, 0x01, 0xFE, 0x01, 0xFE],
[0xFE, 0x01, 0xFE, 0x01, 0xFE, 0x01, 0xFE, 0x01],
[0x1F, 0xE0, 0x1F, 0xE0, 0x0E, 0xF1, 0x0E, 0xF1],
[0xE0, 0x1F, 0xE0, 0x1F, 0xF1, 0x0E, 0xF1, 0x0E],
[0x1F, 0xFE, 0x1F, 0xFE, 0x0E, 0xFE, 0x0E, 0xFE],
[0xFE, 0x1F, 0xFE, 0x1F, 0xFE, 0x0E, 0xFE, 0x0E],
[0xE0, 0xFE, 0xE0, 0xFE, 0xF1, 0xFE, 0xF1, 0xFE],
[0xFE, 0xE0, 0xFE, 0xE0, 0xFE, 0xF1, 0xFE, 0xF1],
[0x01, 0x01, 0x1F, 0x1F, 0x01, 0x01, 0x0E, 0x0E],
[0x1F, 0x1F, 0x01, 0x01, 0x0E, 0x0E, 0x01, 0x01],
[0xE0, 0xE0, 0x1F, 0x1F, 0xF1, 0xF1, 0x0E, 0x0E],
[0x01, 0x01, 0xE0, 0xE0, 0x01, 0x01, 0xF1, 0xF1],
[0x1F, 0x1F, 0xE0, 0xE0, 0x0E, 0x0E, 0xF1, 0xF1],
[0xE0, 0xE0, 0xFE, 0xFE, 0xF1, 0xF1, 0xFE, 0xFE],
[0x01, 0x01, 0xFE, 0xFE, 0x01, 0x01, 0xFE, 0xFE],
[0x1F, 0x1F, 0xFE, 0xFE, 0x0E, 0x0E, 0xFE, 0xFE],
[0xE0, 0xFE, 0x01, 0x1F, 0xF1, 0xFE, 0x01, 0x0E],
[0x01, 0x1F, 0x1F, 0x01, 0x01, 0x0E, 0x0E, 0x01],
[0x1F, 0xE0, 0x01, 0xFE, 0x0E, 0xF1, 0x01, 0xFE],
[0xE0, 0xFE, 0x1F, 0x01, 0xF1, 0xFE, 0x0E, 0x01],
[0x01, 0x1F, 0xE0, 0xFE, 0x01, 0x0E, 0xF1, 0xFE],
[0x1F, 0xE0, 0xE0, 0x1F, 0x0E, 0xF1, 0xF1, 0x0E],
[0xE0, 0xFE, 0xFE, 0xE0, 0xF1, 0xFE, 0xFE, 0xF1],
[0x01, 0x1F, 0xFE, 0xE0, 0x01, 0x0E, 0xFE, 0xF1],
[0x1F, 0xE0, 0xFE, 0x01, 0x0E, 0xF1, 0xFE, 0x01],
[0xFE, 0x01, 0x01, 0xFE, 0xFE, 0x01, 0x01, 0xFE],
[0x01, 0xE0, 0x1F, 0xFE, 0x01, 0xF1, 0x0E, 0xFE],
[0x1F, 0xFE, 0x01, 0xE0, 0x0E, 0xFE, 0x01, 0xF1],
[0xFE, 0x01, 0x1F, 0xE0, 0xFE, 0x01, 0x0E, 0xF1],
[0xFE, 0x01, 0xE0, 0x1F, 0xFE, 0x01, 0xF1, 0x0E],
[0x1F, 0xFE, 0xE0, 0x01, 0x0E, 0xFE, 0xF1, 0x01],
[0xFE, 0x1F, 0x01, 0xE0, 0xFE, 0x0E, 0x01, 0xF1],
[0x01, 0xE0, 0xE0, 0x01, 0x01, 0xF1, 0xF1, 0x01],
[0x1F, 0xFE, 0xFE, 0x1F, 0x0E, 0xFE, 0xFE, 0x0E],
[0xFE, 0x1F, 0xE0, 0x01, 0xFE, 0x0E, 0xF1, 0x01],
[0x01, 0xE0, 0xFE, 0x1F, 0x01, 0xF1, 0xFE, 0x0E],
[0xE0, 0x01, 0x01, 0xE0, 0xF1, 0x01, 0x01, 0xF1],
[0xFE, 0x1F, 0x1F, 0xFE, 0xFE, 0x0E, 0x0E, 0xFE],
[0x01, 0xFE, 0x1F, 0xE0, 0x01, 0xFE, 0x0E, 0xF1],
[0xE0, 0x01, 0x1F, 0xFE, 0xF1, 0x01, 0x0E, 0xFE],
[0xFE, 0xE0, 0x01, 0x1F, 0xFE, 0xF1, 0x01, 0x0E],
[0x01, 0xFE, 0xE0, 0x1F, 0x01, 0xFE, 0xF1, 0x0E],
[0xE0, 0x01, 0xFE, 0x1F, 0xF1, 0x01, 0xFE, 0x0E],
[0xFE, 0xE0, 0x1F, 0x01, 0xFE, 0xF1, 0x0E, 0x01],
[0x01, 0xFE, 0xFE, 0x01, 0x01, 0xFE, 0xFE, 0x01],
[0xE0, 0x1F, 0x01, 0xFE, 0xF1, 0x0E, 0x01, 0xFE],
[0xFE, 0xE0, 0xE0, 0xFE, 0xFE, 0xF1, 0xF1, 0xFE],
[0x1F, 0x01, 0x01, 0x1F, 0x0E, 0x01, 0x01, 0x0E],
[0xE0, 0x1F, 0x1F, 0xE0, 0xF1, 0x0E, 0x0E, 0xF1],
[0xFE, 0xFE, 0x01, 0x01, 0xFE, 0xFE, 0x01, 0x01],
[0x1F, 0x01, 0xE0, 0xFE, 0x0E, 0x01, 0xF1, 0xFE],
[0xE0, 0x1F, 0xFE, 0x01, 0xF1, 0x0E, 0xFE, 0x01],
[0xFE, 0xFE, 0x1F, 0x1F, 0xFE, 0xFE, 0x0E, 0x0E],
[0x1F, 0x01, 0xFE, 0xE0, 0x0E, 0x01, 0xFE, 0xF1],
[0xE0, 0xE0, 0x01, 0x01, 0xF1, 0xF1, 0x01, 0x01],
[0xFE, 0xFE, 0xE0, 0xE0, 0xFE, 0xFE, 0xF1, 0xF1],
];

0 comments on commit 923ef32

Please sign in to comment.