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

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))
(fn_body f_HMAC_Update)
(normal_ret_assert
(PROP ( )
LOCAL ()
SEP (K_vector gv;
hmacstate_ wsh (hmacUpdate data h1) c;
data_block sh data d) *
stackframe_of f_HMAC_Update)).