Skip to content

Commit 2e6465d

Browse files
author
oech3
committed
cksum: Back support for -a blake3 and -a shake*
1 parent 8cb4f30 commit 2e6465d

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

src/uu/cksum/src/cksum.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,9 +88,13 @@ fn maybe_sanitize_length(
8888
sanitize_sha2_sha3_length_str(algo, s_len).map(Some)
8989
}
9090

91-
// For BLAKE2b, if a length is provided, validate it.
91+
// For BLAKE2b and SKAKE, if a length is provided, validate it.
9292
(Some(AlgoKind::Blake2b), Some(len)) => calculate_blake2b_length_str(len),
93-
93+
(Some(AlgoKind::Shake128 | AlgoKind::Shake256), Some(s_len)) => {
94+
let len = s_len.parse::<usize>()
95+
.map_err(|_| ChecksumError::InvalidLength(s_len.to_string()))?;
96+
Ok(Some(len))
97+
}
9498
// For any other provided algorithm, check if length is 0.
9599
// Otherwise, this is an error.
96100
(_, Some(len)) if len.parse::<u32>() == Ok(0_u32) => Ok(None),

src/uucore/src/lib/features/checksum/mod.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ pub enum AlgoKind {
8686
Sha384,
8787
Sha512,
8888

89-
// Not available in cksum
89+
// Extension
9090
Shake128,
9191
Shake256,
9292
Blake3,
@@ -114,6 +114,11 @@ impl AlgoKind {
114114
ALGORITHM_OPTIONS_SHA256 => Sha256,
115115
ALGORITHM_OPTIONS_SHA384 => Sha384,
116116
ALGORITHM_OPTIONS_SHA512 => Sha512,
117+
118+
// Extension
119+
ALGORITHM_OPTIONS_BLAKE3 => Blake3,
120+
ALGORITHM_OPTIONS_SHAKE128 => Shake128,
121+
ALGORITHM_OPTIONS_SHAKE256 => Shake256,
117122
_ => return Err(ChecksumError::UnknownAlgorithm(algo.as_ref().to_string()).into()),
118123
})
119124
}

0 commit comments

Comments
 (0)