File tree Expand file tree Collapse file tree 2 files changed +12
-3
lines changed
uucore/src/lib/features/checksum Expand file tree Collapse file tree 2 files changed +12
-3
lines changed Original file line number Diff line number Diff 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 ) ,
Original file line number Diff line number Diff 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 }
You can’t perform that action at this time.
0 commit comments