Fork of François Berder Crypto, fixed AES CBC and small rework
Dependents: AES_example shaun_larada Smartage
Fork of Crypto by
hash/SHA2_32.h@16:4399e2e6260b, 2015-01-28 (annotated)
- Committer:
- Geremia
- Date:
- Wed Jan 28 17:55:13 2015 +0000
- Revision:
- 16:4399e2e6260b
- Parent:
- 7:2dbbdfb08123
AES: bugfixed CBC, added PCBC (i could add CFB and OFB if needed), added public setIV(), moved keyExpansion() to public, in and out buffers can be the same
Who changed what in which revision?
User | Revision | Line number | New 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 | 6:19aa835f2bbb | 17 | void update(uint8_t *data, uint32_t length); |
feb11 | 5:06cd9c8afa0b | 18 | void finalize(uint8_t *digest); |
feb11 | 6:19aa835f2bbb | 19 | |
feb11 | 6:19aa835f2bbb | 20 | static void computeHash(SHA_32_TYPE type, uint8_t *digest, uint8_t *data, uint32_t length); |
feb11 | 0:7a1237bd2d13 | 21 | |
feb11 | 0:7a1237bd2d13 | 22 | private : |
feb11 | 0:7a1237bd2d13 | 23 | |
feb11 | 0:7a1237bd2d13 | 24 | static void computeBlock(uint32_t *h02, |
feb11 | 0:7a1237bd2d13 | 25 | uint32_t *h12, |
feb11 | 0:7a1237bd2d13 | 26 | uint32_t *h22, |
feb11 | 0:7a1237bd2d13 | 27 | uint32_t *h32, |
feb11 | 0:7a1237bd2d13 | 28 | uint32_t *h42, |
feb11 | 0:7a1237bd2d13 | 29 | uint32_t *h52, |
feb11 | 0:7a1237bd2d13 | 30 | uint32_t *h62, |
feb11 | 0:7a1237bd2d13 | 31 | uint32_t *h72, |
feb11 | 0:7a1237bd2d13 | 32 | uint8_t *buffer); |
feb11 | 0:7a1237bd2d13 | 33 | |
feb11 | 0:7a1237bd2d13 | 34 | SHA_32_TYPE type; |
feb11 | 0:7a1237bd2d13 | 35 | uint32_t h0, h1, h2, h3, h4, h5, h6, h7; |
feb11 | 0:7a1237bd2d13 | 36 | uint32_t totalBufferLength; |
feb11 | 0:7a1237bd2d13 | 37 | uint8_t buffer[64]; |
feb11 | 0:7a1237bd2d13 | 38 | uint8_t bufferLength; |
feb11 | 0:7a1237bd2d13 | 39 | }; |
feb11 | 0:7a1237bd2d13 | 40 | |
feb11 | 0:7a1237bd2d13 | 41 | #endif |