Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of Crypto_light by
hash/SHA2_32.h@7:2dbbdfb08123, 2013-09-14 (annotated)
- Committer:
- feb11
- Date:
- Sat Sep 14 18:21:32 2013 +0000
- Revision:
- 7:2dbbdfb08123
- Parent:
- SHA2_32.h@6:19aa835f2bbb
added DES (not tested yet)
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 |