CAVP crypto 113.10.09
Implements various cryptographic algorithms for CAVP validation.
 
Loading...
Searching...
No Matches
mySha.c File Reference
#include <tommath.h>
#include "stdio.h"
#include "string.h"
#include <tomcrypt.h>
#include "utils.h"

Functions

void shaHash (const int hashAlgorithm, const char *message, char *outHash, int *outHashLength)
 SHA 雜湊函數
 
void sha2MCTHash (const int hashAlgorithm, const char *initialSeedString)
 SHA 2 雜湊函數的Monte Carlo Test.
 
int sha3MCTHash (const int hashAlgorithm, const char *initialSeedString)
 SHA 3 雜湊函數的Monte Carlo Test.
 

Variables

const int SHA2_256 = 1
 
const int SHA2_384 = 2
 
const int SHA2_512 = 3
 
const int SHA3_256 = 4
 
const int SHA3_384 = 5
 
const int SHA3_512 = 6
 

Function Documentation

◆ sha2MCTHash()

void sha2MCTHash ( const int hashAlgorithm,
const char * initialSeedString )

SHA 2 雜湊函數的Monte Carlo Test.

SHA 2 雜湊函數的Monte Carlo Test
此函式的輸入為雜湊演算法及初始種子字串
使用範例:

char* initialSeedString = "1A673F1F806BCA480B608D1F17BC0CBA23D1703795F799DF8CED28EE9C0C6EBC666BA621EB963F9DEA69908A3551B41177129F2490A9B0C1882BB6BF09B4B29C";
sha2MCTHash(SHA2_512, initialSeedString);
const int SHA2_512
Definition mySha.c:10
void sha2MCTHash(const int hashAlgorithm, const char *initialSeedString)
SHA 2 雜湊函數的Monte Carlo Test.
Definition mySha.c:131
Parameters
hashAlgorithm使用的雜湊演算法: SHA2_256, SHA2_384, SHA2_512
initialSeedString初始種子字串

◆ sha3MCTHash()

int sha3MCTHash ( const int hashAlgorithm,
const char * initialSeedString )

SHA 3 雜湊函數的Monte Carlo Test.

SHA 3 雜湊函數的Monte Carlo Test
此函式的輸入為雜湊演算法及初始種子字串
使用範例:

char* initialSeedString = "C8CF81F8854475AB1D79FCAAA823E796038DDC4E65AE0BE6F784BFF9D604B50A";
sha3MCTHash(SHA3_256, initialSeedString);
int sha3MCTHash(const int hashAlgorithm, const char *initialSeedString)
SHA 3 雜湊函數的Monte Carlo Test.
Definition mySha.c:245
const int SHA3_256
Definition mySha.c:11
Parameters
hashAlgorithm使用的雜湊演算法: SHA3_256, SHA3_384, SHA3_512
initialSeedString初始種子字串

◆ shaHash()

void shaHash ( const int hashAlgorithm,
const char * message,
char * outHash,
int * outHashLength )

SHA 雜湊函數

SHA 2 或SHA 3 的雜湊函數
此函式的輸入為雜湊演算法、訊息
此函式的輸出為雜湊值及雜湊值長度
使用範例:

char* message = "688FA628817550071ABE4115BF98C179E1240C4C2BC9EB69D8DB245174DD950C7D1E4DFD0FACCF \
E20DF5B3B0059A44FB1F9A571D8E48C1B58DB6D451585DFCCD6E47B00394E01438429A95ED7E781 \
FAD2C7CAF71AB04532D22E1DE23E5127DA2E2312925487077CE0B0222E176E4966CD9B963D5FFDF \
FF976CF8740CAF1F3B647C0BD115E5F9668F51AF50AA9CBF2697ED8E422076F9AEB4470E1EAE00C \
97D5CADBEA19C7B84FA1CD9DACFAE9446A68AA775D52D7BE8231EA84D9AE015406A205DE5F1434A \
CD0DC3BCBE089A185602E1EE34EF6BEADB419F02EC6A8847B6DBE274E705972895BE96E0C009BC8 \
7260A12D6E296F122DF08627C1AD80863ED83C57B8FC02369D9C38525114AF33EBDB9DBF5CD76CB \
7B5672350B6E70EB1BE3A72BB347794001FFE04DAD1247941513D1EC05F4EC0B19370CF5D0C1234 \
92671986CA55F0710A9BFCFE1D88F02884B42F72EB8965CB3504D8ABA5723FFD0E1B8DDB09B93D7 \
0C428A8362A73D58A3F16418D0920402042133007C6C499A2C21771F3133F4ED64128933BB9B7EE \
750CAF603F250214700EA11A588F7EA9675461EE18F8E229AF55669F1D905EC15C7BCF76702BEE0 \
4B0306AD53CDEA44CD046338A8B045A44831F9C2D39C244EAE3DDF8FCCC5EEFAADEECE2733D7549 \
3B72A051627B32AF45689BC55FC6CCF1A2A3A84A861A26ED21A8BECD3A49C2D0587F62EA2B64E88 \
32E640323A9809859AC173C361DCDB8AE6CCBB64B0E6103589C3545F8206908DED9B6183EC883A8 \
E7F3BD2E4D925F05AE6783432433C2494692CBB752689C06CA54CE95237C2021AFFFFA1D47A7A61 \
44387BE8427336DAD7ED9846EFA3398D200F4D5E3B6A29D5CFBBA7691D13122CAF1B5EAEB3AAD0B \
A0488537B0C91BEC2681CB5E7A62A7DA2E72E92132D3A622B69A5D7AD66A2A9D6F6F489B90C1104 \
61CED5A47F3F7BD187C9C4505D80C7AE8D41608C11F38C970C9CF46278B14767388C13DADCC8A38 \
BF6B6CB39FDAF46CA596D3A0074499175A8B16C23CA72885202C2FFA34B211BC841D5D6A3683549 \
79BFBED50104492A38305EFCF890E560CC5A33";
char hash[1024];
int hashLength;
shaHash(SHA2_256, message, hash, &hashLength);
printf("hash: %s\n", hash); //73C4960A70DB9A6D02E005CE8D3F001DCC0B102B56AFA93649EE1928EF0D2CE2
void shaHash(const int hashAlgorithm, const char *message, char *outHash, int *outHashLength)
SHA 雜湊函數
Definition mySha.c:16
const int SHA2_256
Definition mySha.c:8
Parameters
hashAlgorithm使用的雜湊演算法: SHA2_256, SHA2_384, SHA2_512, SHA3_256, SHA3_384, SHA3_512
message要雜湊的訊息
outHash輸出的雜湊值 (利用指標回傳)
outHashLength輸出的雜湊值長度 (利用指標回傳)

Variable Documentation

◆ SHA2_256

const int SHA2_256 = 1

◆ SHA2_384

const int SHA2_384 = 2

◆ SHA2_512

const int SHA2_512 = 3

◆ SHA3_256

const int SHA3_256 = 4

◆ SHA3_384

const int SHA3_384 = 5

◆ SHA3_512

const int SHA3_512 = 6