Require sha.sha.
Require sha.SHA256.
Local Open Scope logic.

(* Specifications: *)
Lemma updatebodyproof Espec wsh sh c d len data gv (h1 : hmacabs)
(H : has_lengthD (s256a_len (absCtxt h1)) len data)
(Hwsh: writable_share wsh)
(Hsh: readable_share sh):
@semax CompSpecs Espec (func_tycontext f_HMAC_Update HmacVarSpecs HmacFunSpecs nil)
(PROP  ()
LOCAL  (temp _ctx c; temp _data d;
temp _len (Vint (Int.repr len)); gvars gv)
SEP  (K_vector gv; hmacstate_ wsh h1 c; data_block sh data d))
(Ssequence (fn_body f_HMAC_Update) (Sreturn None))
(frame_ret_assert
(function_body_ret_assert tvoid
(PROP  ()
LOCAL ()
SEP  (K_vector gv; hmacstate_ wsh (hmacUpdate data h1) c;
data_block sh data d))) emp).