Inductive HABS := hABS: forall (key data:list byte), HABS.Inductive HABS := hABS: forall (key data:list byte), HABS.Definition abs_relate (a: HABS) (r: hmacstate) : Prop :=
  match a with hABS key data => 
    hmac_relate (hmacUpdate data (hmacInit key)) r
  end.Definition EMPTY sh c : mpred := data_at_ sh t_struct_hmac_ctx_st c.

Lemma body_hmac_crypto: semax_body HmacVarSpecs HmacFunSpecs f_HMAC hmac_crypto_spec.