Definition b := (c+p)%nat.(*example: P m := NPeano.divide 8 (length m)*)
Definition Message : Set := {m: Blist | P m}.Definition Message2Blist(msg:Message):Blist := let (m,_) := msg in m.Definition wrappedSAP (msg:Message): list (Bvector b) :=
  splitAndPad_v (Message2Blist msg).Definition wrappedSAP_1_1: forall msg1 msg2, wrappedSAP msg1=wrappedSAP msg2 -> msg1=msg2.

(* Specifications: *)
Lemma hash_words_eq: forall l v (HVL: Forall2 (fun bv bl => bl = Vector.to_list bv) v l) ivA ivB (IV: ivA = Vector.to_list ivB), HMAC_List.hash_words h ivA l = Vector.to_list (hash_words p h_v ivB v).
Lemma app_fpad_eq v l (L:l = Vector.to_list v): HMAC_List.app_fpad fpad l = Vector.to_list (app_fpad fpad_v v).