Fork of François Berder Crypto, fixed AES CBC and small rework

Dependents:   AES_example shaun_larada Smartage

Fork of Crypto by Francois Berder

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_64_H
feb11 0:7a1237bd2d13 2 #define SHA2_64_H
feb11 0:7a1237bd2d13 3
feb11 0:7a1237bd2d13 4 #include <stdint.h>
feb11 0:7a1237bd2d13 5
feb11 0:7a1237bd2d13 6 enum SHA2_64_TYPE
feb11 0:7a1237bd2d13 7 {
feb11 0:7a1237bd2d13 8 SHA_384,
feb11 0:7a1237bd2d13 9 SHA_512
feb11 0:7a1237bd2d13 10 };
feb11 0:7a1237bd2d13 11
feb11 0:7a1237bd2d13 12 class SHA2_64
feb11 0:7a1237bd2d13 13 {
feb11 0:7a1237bd2d13 14 public :
feb11 0:7a1237bd2d13 15
feb11 0:7a1237bd2d13 16 SHA2_64(SHA2_64_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(SHA2_64_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(uint64_t *h02,
feb11 0:7a1237bd2d13 24 uint64_t *h12,
feb11 0:7a1237bd2d13 25 uint64_t *h22,
feb11 0:7a1237bd2d13 26 uint64_t *h32,
feb11 0:7a1237bd2d13 27 uint64_t *h42,
feb11 0:7a1237bd2d13 28 uint64_t *h52,
feb11 0:7a1237bd2d13 29 uint64_t *h62,
feb11 0:7a1237bd2d13 30 uint64_t *h72,
feb11 0:7a1237bd2d13 31 uint8_t *buffer);
feb11 0:7a1237bd2d13 32
feb11 0:7a1237bd2d13 33 SHA2_64_TYPE type;
feb11 0:7a1237bd2d13 34 uint64_t h0, h1, h2, h3, h4, h5, h6, h7;
feb11 0:7a1237bd2d13 35 uint32_t totalBufferLength;
feb11 0:7a1237bd2d13 36 uint8_t buffer[128];
feb11 0:7a1237bd2d13 37 uint8_t bufferLength;
feb11 0:7a1237bd2d13 38 };
feb11 0:7a1237bd2d13 39
feb11 0:7a1237bd2d13 40 #endif