[FFmpeg-devel] [PATCH] SHA-256 support
Kostya
kostya.shishkov
Wed Jun 10 07:35:39 CEST 2009
On Tue, Jun 09, 2009 at 09:16:10PM +0200, Michael Niedermayer wrote:
> On Tue, Jun 09, 2009 at 09:32:24PM +0300, Kostya wrote:
> > On Tue, Jun 09, 2009 at 04:47:09PM +0200, Michael Niedermayer wrote:
> > > On Tue, Jun 09, 2009 at 08:13:40AM +0300, Kostya wrote:
> > [...]
> > > > /* Hash a single 512-bit block. This is the core of the algorithm. */
> > > >
> > > > static void transform(uint32_t state[5], const uint8_t buffer[64])
> > >
> > > doxy?
> >
> > no
>
> make it a yes please
you know, in this phrase punctiation can radically alter its meaning
[...]
> > Makefile | 6 ++++--
> > 1 file changed, 4 insertions(+), 2 deletions(-)
> > 9f3b5755dfe516571ef2196e1460c648e15423b1 sha2.patch
> > Index: libavutil/Makefile
> > ===================================================================
> > --- libavutil/Makefile (revision 18770)
> > +++ libavutil/Makefile (working copy)
> > @@ -17,7 +17,8 @@
> > mem.h \
> > pixfmt.h \
> > rational.h \
> > - sha1.h
> > + sha1.h \
> > + sha2.h
>
> the sha2.h should also have a \ at the end so future patches are dont need to
> move the lack of a \ down
ok
[...]
> >
> > void av_sha224_init(struct AVSHA256* context);
> > #define av_sha224_update av_sha_256_update
> > void av_sha224_final(struct AVSHA256* context, uint8_t digest[28]);
> >
> > void av_sha256_init(struct AVSHA256* context);
> > void av_sha256_update(struct AVSHA256* context, const uint8_t* data, unsigned int len);
> > void av_sha256_final(struct AVSHA256* context, uint8_t digest[32]);
>
> i think a int bits is nicer than 2 sets of functions
> it also might safe you from some comments about code duplication
why not, done
> [...]
>
> > static void transform(uint32_t state[5], const uint8_t buffer[64])
> > {
> > unsigned int i, a, b, c, d, e, f, g, h;
> > uint32_t block[16];
> > uint32_t T1, T2;
> >
> > a = state[0];
> > b = state[1];
> > c = state[2];
> > d = state[3];
> > e = state[4];
> > f = state[5];
> > g = state[6];
> > h = state[7];
> > #if CONFIG_SMALL
> > for (i = 0; i < 64; i++) {
> > if (i < 16) {
> > T1 = block[i] = be2me_32(((const uint32_t*)buffer)[i]);
> > } else {
> > block[i & 0xF] += block[(i + 9) & 0xF]
> > + sigma0_256(block[(i + 1) & 0xF])
> > + sigma1_256(block[(i + 14) & 0xF]);
> > T1 = block[i & 0xF];
>
> now you removed the other part of the optimization
> please restore the size of the block array and get rid of the & 0xF
Not removed.
The code I used (http://www.aarongifford.com/computers/sha2-1.0.tar.gz)
does not have such kind of optimization, so I have to add it myself.
Done though.
> [...]
> --
> Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
-------------- next part --------------
A non-text attachment was scrubbed...
Name: sha2.patch
Type: text/x-diff
Size: 1428 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090610/8449f506/attachment.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: sha2.h
Type: text/x-chdr
Size: 1693 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090610/8449f506/attachment.h>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: sha2.c
Type: text/x-csrc
Size: 8688 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090610/8449f506/attachment.c>
More information about the ffmpeg-devel
mailing list