@@ -78,16 +78,9 @@ const MAX_BRIDGE_SIZE: u32 = 5;
7878const KERNEL_PARAM_DELIMITER : & str = " " ;
7979/// Block size (in bytes) used by dm-verity block size validation.
8080pub const VERITY_BLOCK_SIZE_BYTES : u64 = 512 ;
81- /// Kernel dm-verity mode handled by the initramfs.
82- pub const VERITY_MODE_INITRAMFS : & str = "initramfs" ;
83- /// Kernel dm-verity mode handled directly by the kernel.
84- pub const VERITY_MODE_KERNELINIT : & str = "kernelinit" ;
85-
8681/// Parsed kernel dm-verity parameters.
8782#[ derive( Clone , Debug , Default , Deserialize , Serialize ) ]
8883pub struct KernelVerityParams {
89- /// Verity mode ("kernelinit" or "initramfs").
90- pub mode : String ,
9184 /// Root hash value.
9285 pub root_hash : String ,
9386 /// Salt used to generate verity hash tree.
@@ -129,22 +122,6 @@ pub fn parse_kernel_verity_params(params: &str) -> Result<Option<KernelVerityPar
129122 values. insert ( key. to_string ( ) , value. to_string ( ) ) ;
130123 }
131124
132- let mode = values
133- . get ( "mode" )
134- . ok_or_else ( || {
135- io:: Error :: new (
136- io:: ErrorKind :: InvalidData ,
137- "Missing kernel_verity_params mode" ,
138- )
139- } ) ?
140- . to_string ( ) ;
141- if mode != VERITY_MODE_KERNELINIT && mode != VERITY_MODE_INITRAMFS {
142- return Err ( io:: Error :: new (
143- io:: ErrorKind :: InvalidData ,
144- format ! ( "Invalid kernel_verity_params mode: {mode}" ) ,
145- ) ) ;
146- }
147-
148125 let root_hash = values
149126 . get ( "root_hash" )
150127 . ok_or_else ( || {
@@ -172,61 +149,54 @@ pub fn parse_kernel_verity_params(params: &str) -> Result<Option<KernelVerityPar
172149 }
173150 } ;
174151
175- let ( data_blocks, data_block_size, hash_block_size) = if mode == VERITY_MODE_KERNELINIT {
176- let data_blocks = parse_uint_field ( "data_blocks" ) ?;
177- let data_block_size = parse_uint_field ( "data_block_size" ) ?;
178- let hash_block_size = parse_uint_field ( "hash_block_size" ) ?;
179-
180- if salt. is_empty ( ) {
181- return Err ( io:: Error :: new (
182- io:: ErrorKind :: InvalidData ,
183- "Missing kernel_verity_params salt" ,
184- ) ) ;
185- }
186- if data_blocks == 0 {
187- return Err ( io:: Error :: new (
188- io:: ErrorKind :: InvalidData ,
189- "Invalid kernel_verity_params data_blocks: must be non-zero" ,
190- ) ) ;
191- }
192- if data_block_size == 0 {
193- return Err ( io:: Error :: new (
194- io:: ErrorKind :: InvalidData ,
195- "Invalid kernel_verity_params data_block_size: must be non-zero" ,
196- ) ) ;
197- }
198- if hash_block_size == 0 {
199- return Err ( io:: Error :: new (
200- io:: ErrorKind :: InvalidData ,
201- "Invalid kernel_verity_params hash_block_size: must be non-zero" ,
202- ) ) ;
203- }
204- if data_block_size % VERITY_BLOCK_SIZE_BYTES != 0 {
205- return Err ( io:: Error :: new (
206- io:: ErrorKind :: InvalidData ,
207- format ! (
208- "Invalid kernel_verity_params data_block_size: must be multiple of {}" ,
209- VERITY_BLOCK_SIZE_BYTES
210- ) ,
211- ) ) ;
212- }
213- if hash_block_size % VERITY_BLOCK_SIZE_BYTES != 0 {
214- return Err ( io:: Error :: new (
215- io:: ErrorKind :: InvalidData ,
216- format ! (
217- "Invalid kernel_verity_params hash_block_size: must be multiple of {}" ,
218- VERITY_BLOCK_SIZE_BYTES
219- ) ,
220- ) ) ;
221- }
152+ let data_blocks = parse_uint_field ( "data_blocks" ) ?;
153+ let data_block_size = parse_uint_field ( "data_block_size" ) ?;
154+ let hash_block_size = parse_uint_field ( "hash_block_size" ) ?;
222155
223- ( data_blocks, data_block_size, hash_block_size)
224- } else {
225- ( 0 , 0 , 0 )
226- } ;
156+ if salt. is_empty ( ) {
157+ return Err ( io:: Error :: new (
158+ io:: ErrorKind :: InvalidData ,
159+ "Missing kernel_verity_params salt" ,
160+ ) ) ;
161+ }
162+ if data_blocks == 0 {
163+ return Err ( io:: Error :: new (
164+ io:: ErrorKind :: InvalidData ,
165+ "Invalid kernel_verity_params data_blocks: must be non-zero" ,
166+ ) ) ;
167+ }
168+ if data_block_size == 0 {
169+ return Err ( io:: Error :: new (
170+ io:: ErrorKind :: InvalidData ,
171+ "Invalid kernel_verity_params data_block_size: must be non-zero" ,
172+ ) ) ;
173+ }
174+ if hash_block_size == 0 {
175+ return Err ( io:: Error :: new (
176+ io:: ErrorKind :: InvalidData ,
177+ "Invalid kernel_verity_params hash_block_size: must be non-zero" ,
178+ ) ) ;
179+ }
180+ if data_block_size % VERITY_BLOCK_SIZE_BYTES != 0 {
181+ return Err ( io:: Error :: new (
182+ io:: ErrorKind :: InvalidData ,
183+ format ! (
184+ "Invalid kernel_verity_params data_block_size: must be multiple of {}" ,
185+ VERITY_BLOCK_SIZE_BYTES
186+ ) ,
187+ ) ) ;
188+ }
189+ if hash_block_size % VERITY_BLOCK_SIZE_BYTES != 0 {
190+ return Err ( io:: Error :: new (
191+ io:: ErrorKind :: InvalidData ,
192+ format ! (
193+ "Invalid kernel_verity_params hash_block_size: must be multiple of {}" ,
194+ VERITY_BLOCK_SIZE_BYTES
195+ ) ,
196+ ) ) ;
197+ }
227198
228199 Ok ( Some ( KernelVerityParams {
229- mode,
230200 root_hash,
231201 salt,
232202 data_blocks,
0 commit comments