load_zlib_header

png-branch
an 2019-03-10 01:28:22 -05:00
parent f5ceea654e
commit 9b73cb3513
1 changed files with 28 additions and 0 deletions

View File

@ -2,6 +2,34 @@
use crate::durandal::err::*;
/// Loads a ZLIB file header.
pub fn load_zlib_header(b: &[u8]) -> ResultS<usize>
{
const CM: u8 = 0b00001111;
const CINFO: u8 = 0b11110000;
const FDICT: u8 = 0b00100000;
read_data! {
2, BE in b =>
fcheck = u16[0];
cmf = u8[0];
flg = u8[1];
}
let cm = cmf & CM;
let cinfo = cmf & CINFO >> 4;
if cm != 8 || fcheck % 31 != 0 || cinfo > 7 {
bail!("not zlib format");
}
if flg & FDICT != 0 {
bail!("dictionary not supported");
}
Ok(2)
}
/// Loads a GZIP file header.
pub fn load_gzip_header(b: &[u8]) -> ResultS<usize>
{