<div dir="ltr"><div>This seems to work for me in 3.0, passing the EVP_MD to EVP_DigestSignInit():</div><div><br></div><div style="margin-left:40px">pkey = EVP_PKEY_new_mac_key()<br></div><div style="margin-left:40px">EVP_DigestSignInit()</div><div style="margin-left:40px">EVP_DigestSignUpdate()</div><div style="margin-left:40px">EVP_DigestSignUpdate()</div><div style="margin-left:40px">.</div><div style="margin-left:40px">.</div><div style="margin-left:40px">.</div><div style="margin-left:40px">EVP_DigestSignFinal()</div><div><br></div><div><br></div><div>Regards,</div><div>Tom.III</div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jul 13, 2021 at 11:02 AM Ken Goldman <<a href="mailto:kgoldman@us.ibm.com">kgoldman@us.ibm.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Porting to 3.0 ... HMAC_Init_ex() had a place for<br>
the hash algorithm.  EVP_MAC_init() does not,<br>
unless it's embedded in the 'params' parameter.<br>
<br>
Any advice?  Or a sample for doing an<br>
HMAC with 3.0?<br>
<br>
</blockquote></div>