TAY

Fork of Crypto_light by Edward Stott

Committer:
feb11
Date:
Thu Sep 12 15:08:51 2013 +0000
Revision:
5:06cd9c8afa0b
Parent:
0:7a1237bd2d13
Child:
6:19aa835f2bbb
change API & small improvements in SHA-2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
feb11 0:7a1237bd2d13 1 #ifndef SHA2_32_H
feb11 0:7a1237bd2d13 2 #define SHA2_32_H
feb11 0:7a1237bd2d13 3
feb11 0:7a1237bd2d13 4 #include <stdint.h>
feb11 0:7a1237bd2d13 5
feb11 0:7a1237bd2d13 6 enum SHA_32_TYPE
feb11 0:7a1237bd2d13 7 {
feb11 0:7a1237bd2d13 8 SHA_224,
feb11 0:7a1237bd2d13 9 SHA_256
feb11 0:7a1237bd2d13 10 };
feb11 0:7a1237bd2d13 11
feb11 0:7a1237bd2d13 12 class SHA2_32
feb11 0:7a1237bd2d13 13 {
feb11 0:7a1237bd2d13 14 public :
feb11 0:7a1237bd2d13 15
feb11 0:7a1237bd2d13 16 SHA2_32(SHA_32_TYPE type);
feb11 5:06cd9c8afa0b 17 void update(uint8_t *in, uint32_t length);
feb11 5:06cd9c8afa0b 18 void finalize(uint8_t *digest);
feb11 0:7a1237bd2d13 19 static void computeDigest(SHA_32_TYPE type, uint8_t *digest, uint8_t *in, uint32_t length);
feb11 0:7a1237bd2d13 20
feb11 0:7a1237bd2d13 21 private :
feb11 0:7a1237bd2d13 22
feb11 0:7a1237bd2d13 23 static void computeBlock(uint32_t *h02,
feb11 0:7a1237bd2d13 24 uint32_t *h12,
feb11 0:7a1237bd2d13 25 uint32_t *h22,
feb11 0:7a1237bd2d13 26 uint32_t *h32,
feb11 0:7a1237bd2d13 27 uint32_t *h42,
feb11 0:7a1237bd2d13 28 uint32_t *h52,
feb11 0:7a1237bd2d13 29 uint32_t *h62,
feb11 0:7a1237bd2d13 30 uint32_t *h72,
feb11 0:7a1237bd2d13 31 uint8_t *buffer);
feb11 0:7a1237bd2d13 32
feb11 0:7a1237bd2d13 33 SHA_32_TYPE type;
feb11 0:7a1237bd2d13 34 uint32_t h0, h1, h2, h3, h4, h5, h6, h7;
feb11 0:7a1237bd2d13 35 uint32_t totalBufferLength;
feb11 0:7a1237bd2d13 36 uint8_t buffer[64];
feb11 0:7a1237bd2d13 37 uint8_t bufferLength;
feb11 0:7a1237bd2d13 38 };
feb11 0:7a1237bd2d13 39
feb11 0:7a1237bd2d13 40 #endif