[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 1/4] xen/lib: Export additional sha256 functions
On Tue, May 6, 2025 at 11:17 PM Andrew Cooper <andrew.cooper3@xxxxxxxxxx> wrote: > > On 06/05/2025 3:05 pm, Andrew Cooper wrote: > > On 06/05/2025 2:56 pm, Frediano Ziglio wrote: > >> diff --git a/xen/include/xen/sha2.h b/xen/include/xen/sha2.h > >> index 47d97fbf01..ea8bad67e4 100644 > >> --- a/xen/include/xen/sha2.h > >> +++ b/xen/include/xen/sha2.h > >> @@ -9,6 +9,16 @@ > >> > >> #define SHA2_256_DIGEST_SIZE 32 > >> > >> +struct sha2_256_state { > >> + uint32_t state[SHA2_256_DIGEST_SIZE / sizeof(uint32_t)]; > >> + uint8_t buf[64]; > >> + size_t count; /* Byte count. */ > >> +}; > >> + > >> +void sha2_256_init(struct sha2_256_state *s); > >> +void sha2_256_update(struct sha2_256_state *s, const void *msg, > >> + size_t len); > >> +void sha2_256_final(struct sha2_256_state *s, void *_dst); > >> void sha2_256_digest(uint8_t digest[SHA2_256_DIGEST_SIZE], > >> const void *msg, size_t len); > > sha2_256_digest() is unlike the others as it holds sha2_256_state > > internally. I'd suggest having all of the additions below this point, > > which group them more nicely. > > > > Can fix on commit. Otherwise LGTM. > > Not quite. Now that sha2_256_final() is exported, it should have a > proper type for _dst. I've folded: > > diff --git a/xen/include/xen/sha2.h b/xen/include/xen/sha2.h > index 0d55fe640431..cb30e8f8d77c 100644 > --- a/xen/include/xen/sha2.h > +++ b/xen/include/xen/sha2.h > @@ -21,6 +21,7 @@ struct sha2_256_state { > void sha2_256_init(struct sha2_256_state *s); > void sha2_256_update(struct sha2_256_state *s, const void *msg, > size_t len); > -void sha2_256_final(struct sha2_256_state *s, void *_dst); > +void sha2_256_final(struct sha2_256_state *s, > + uint8_t digest[SHA2_256_DIGEST_SIZE]); > > #endif /* XEN_SHA2_H */ > diff --git a/xen/lib/sha2-256.c b/xen/lib/sha2-256.c > index 896a257ed9b7..08ef7011a1c3 100644 > --- a/xen/lib/sha2-256.c > +++ b/xen/lib/sha2-256.c > @@ -171,9 +171,9 @@ void sha2_256_update(struct sha2_256_state *s, const > void *msg, > memcpy(s->buf + partial, msg, len); > } > > -void sha2_256_final(struct sha2_256_state *s, void *_dst) > +void sha2_256_final(struct sha2_256_state *s, uint8_t > digest[SHA2_256_DIGEST_SIZE]) > { > - uint32_t *dst = _dst; > + uint32_t *dst = (uint32_t *)digest; That is we are never going to support architectures with unaligned memory access. > unsigned int i, partial = s->count & 63; > > /* Start padding */ > > in too, which is compatible with the rest of the series too. > > ~Andrew I'll send an updated series with these and all the commits (mail server issues). Frediano
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |