On Tue, Oct 08, 2024 at 09:57:12AM +0200, Cédric Le Goater wrote: > From: Alejandro Zeise <[email protected]> > > Implements the new hashing API in the nettle hash driver. > Supports creating/destroying a context, updating the context > with input data and obtaining an output hash. > > Signed-off-by: Alejandro Zeise <[email protected]> > [ clg: - Dropped qcrypto_hash_supports() in qcrypto_nettle_hash_new() ] > Signed-off-by: Cédric Le Goater <[email protected]> > --- > crypto/hash-nettle.c | 70 ++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 70 insertions(+)
Reviewed-by: Daniel P. Berrangé <[email protected]> > > diff --git a/crypto/hash-nettle.c b/crypto/hash-nettle.c > index 8b08a9c67531..07e18ce26cba 100644 > --- a/crypto/hash-nettle.c > +++ b/crypto/hash-nettle.c > +static > +int qcrypto_nettle_hash_update(QCryptoHash *hash, > + const struct iovec *iov, > + size_t niov, > + Error **errp) > +{ > + union qcrypto_hash_ctx *ctx = hash->opaque; > + > + for (int i = 0; i < niov; i++) { > + /* > + * Some versions of nettle have functions > + * declared with 'int' instead of 'size_t' > + * so to be safe avoid writing more than > + * UINT_MAX bytes at a time > + */ This is copying the pre-existing code, and I've just realized this is now obsolete. We bumped min nettle to 3.4 ages ago and >= 3.0 is using size_t, so we can simplify now. No need to change this though. I'll do that as a distinct patch to make it a visible change. > + size_t len = iov[i].iov_len; > + uint8_t *base = iov[i].iov_base; > + while (len) { > + size_t shortlen = MIN(len, UINT_MAX); > + qcrypto_hash_alg_map[hash->alg].write(ctx, len, base); > + len -= shortlen; > + base += len; > + } > + } > + > + return 0; > +} With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
