Definition sha_splitandpad_blocks (msg : Blist) : list Blist :=
  toBlocks (sha_splitandpad_inc msg).

Theorem fold_hash_blocks_eq : forall (l : Blist) (ls : list Blist), length l = 512%nat -> Forall (fun x => length x = 512%nat) ls -> fold_left sha_h (l :: ls) sha_iv = hash_blocks_bits _ B sha_h sha_iv (l ++ concat ls).