(*SHA256-specific files*)

(* Specifications: *)
Lemma sha_splitandpad_fpad : forall (l m : Blist),
length l = b ->
InBlocks 8 m ->
sha_splitandpad (l ++ m) = l ++ HMAC_Concat.app_fpad fpad m.
Theorem HMAC_concat_pad_sap_instantiated
h (HH: forall x y, length x = c -> length y = b -> length (h x y)  = c)
iv (IV: length iv = c) (op ip : Blist) (IL: length ip = b) (OL: length op = b)
: forall (k m : Blist), length k = b ->
sha.HMAC_spec_pad.HMAC c p B h iv sha_splitandpad op ip k m =
HMAC_Concat.HMAC c p B h iv sha_splitandpad_inc fpad op ip k m.
Theorem HMAC_concat_pad_explicit : forall (k m : Blist) (op ip : Blist),
length k = b ->
length ip = b ->
length op = b ->
sha.HMAC_spec_pad.HMAC c p B sha_h sha_iv sha_splitandpad op ip k m =
HMAC_Concat.HMAC c p B sha_h sha_iv sha_splitandpad_inc fpad op ip k m.