Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> 于2023年5月19日周五 16:43写道: > > On Sat, May 13, 2023 at 03:43:22PM +0800, David Yang wrote: > > > > +static int hica_sha_export(const struct hica_sha_priv *priv, void *out, > > + unsigned int digestsize) > > +{ > > + if (hica_sha_wait(priv, SHA_RECORD_READY)) > > + return -ETIMEDOUT; > > + > > + for (unsigned int i = 0; i < digestsize; i += sizeof(u32)) > > + *(u32 *) (out + i) = > > + be32_to_cpu(readl_relaxed(priv->base + SHA_OUT0 + i)); > > + > > + return 0; > > +} > > Can you please explain what this is doing? Is this exporting > the finalized hash, or the intermediate state? > > If it's exporting the intermediate state, why aren't you implementing > an import function? > > Thanks, > -- > Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> > Home Page: http://gondor.apana.org.au/~herbert/ > PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt The intermediate state. Importing is done by hica_sha_init, since if I got it right, crypto hash api are required to handle multiple requests simultaneously, thus there will be no sense to set ctrl and state separately.