(*Module HMAC_Pad.Declare Module HF:HP.HASH_FUNCTION.*)
Module HM:= HP.HMAC_FUN HF.

Lemma equiv_pad shaiv shasplitandpad c p (B: (0< b c p)%nat) (DB32: (I.d*32 =b c p)%nat) ir (IVIR: shaiv = convert ir) gap (GAP: forall bits, NPeano.Nat.divide I.d (length (gap (bitsToBytes bits)))) (sap_gap: forall bits, shasplitandpad bits = bytesToBits (intlist_to_bytelist (gap (bitsToBytes bits)))) HASH (HSH: forall (m:list byte), HASH m = intlist_to_bytelist (I.hashblocks ir (gap m))): forall (bits : Blist) (bytes : list byte), bytes_bits_lists bits bytes -> bytes_bits_lists (hash_words_padded c p B I.shah shaiv shasplitandpad bits) (HASH bytes).