mirror of
https://xff.cz/git/u-boot/
synced 2025-09-01 08:42:12 +02:00
Add support for SHA384 and SHA512
The current recommendation for best security practice from the US government is to use SHA384 for TOP SECRET [1]. This patch adds support for SHA384 and SHA512 in the hash command, and also allows FIT images to be hashed with these algorithms, and signed with sha384,rsaXXXX and sha512,rsaXXXX The SHA implementation is adapted from the linux kernel implementation. [1] Commercial National Security Algorithm Suite http://www.iad.gov/iad/programs/iad-initiatives/cnsa-suite.cfm Signed-off-by: Reuben Dowle <reuben.dowle@4rf.com>
This commit is contained in:
@@ -32,6 +32,7 @@ DECLARE_GLOBAL_DATA_PTR;
|
||||
#include <u-boot/md5.h>
|
||||
#include <u-boot/sha1.h>
|
||||
#include <u-boot/sha256.h>
|
||||
#include <u-boot/sha512.h>
|
||||
|
||||
/*****************************************************************************/
|
||||
/* New uImage format routines */
|
||||
@@ -1206,6 +1207,14 @@ int calculate_hash(const void *data, int data_len, const char *algo,
|
||||
sha256_csum_wd((unsigned char *)data, data_len,
|
||||
(unsigned char *)value, CHUNKSZ_SHA256);
|
||||
*value_len = SHA256_SUM_LEN;
|
||||
} else if (IMAGE_ENABLE_SHA384 && strcmp(algo, "sha384") == 0) {
|
||||
sha384_csum_wd((unsigned char *)data, data_len,
|
||||
(unsigned char *)value, CHUNKSZ_SHA384);
|
||||
*value_len = SHA384_SUM_LEN;
|
||||
} else if (IMAGE_ENABLE_SHA512 && strcmp(algo, "sha512") == 0) {
|
||||
sha512_csum_wd((unsigned char *)data, data_len,
|
||||
(unsigned char *)value, CHUNKSZ_SHA512);
|
||||
*value_len = SHA512_SUM_LEN;
|
||||
} else if (IMAGE_ENABLE_MD5 && strcmp(algo, "md5") == 0) {
|
||||
md5_wd((unsigned char *)data, data_len, value, CHUNKSZ_MD5);
|
||||
*value_len = 16;
|
||||
|
Reference in New Issue
Block a user