|
|
|
|
@ -22,7 +22,7 @@ |
|
|
|
|
#define VALUE_LENGTH 32 |
|
|
|
|
#define MESSAGE_DIGEST_LENGTH 160 |
|
|
|
|
#define BLOCK_LENGTH (512/8) |
|
|
|
|
#define INPUT_MESSAGE ("abc") |
|
|
|
|
#define INPUT_MESSAGE ("Testnachricht123") |
|
|
|
|
|
|
|
|
|
#pragma region SHA1-Constants |
|
|
|
|
// initial hash values
|
|
|
|
|
@ -72,28 +72,32 @@ void main(void) { |
|
|
|
|
|
|
|
|
|
printf("------ Padding message ------\n\n"); |
|
|
|
|
#pragma region Padding |
|
|
|
|
// print information about message without padding
|
|
|
|
|
unsigned char messageNoPadding[] = INPUT_MESSAGE; |
|
|
|
|
printf("Size of message without padding: %i bits\n", (int)(sizeof(INPUT_MESSAGE) * 8)); |
|
|
|
|
int numBytesMessage = (sizeof(INPUT_MESSAGE) - 1); // -1 because of '\0' at end of the string
|
|
|
|
|
printf("Size of message without padding: %i bits\n", numBytesMessage*8); |
|
|
|
|
printf("Message without padding\n"); |
|
|
|
|
printBits(sizeof(messageNoPadding), &messageNoPadding); |
|
|
|
|
|
|
|
|
|
unsigned char message[BLOCK_LENGTH] = ""; |
|
|
|
|
// fill in message
|
|
|
|
|
for (uint32_t i = 0; i < sizeof(INPUT_MESSAGE); i++) |
|
|
|
|
for (uint32_t i = 0; i < numBytesMessage; i++) |
|
|
|
|
{ |
|
|
|
|
message[i] = INPUT_MESSAGE[i]; |
|
|
|
|
} |
|
|
|
|
// set bit
|
|
|
|
|
message[sizeof(INPUT_MESSAGE)] = 0b10000000; |
|
|
|
|
message[numBytesMessage] = 0b10000000; |
|
|
|
|
printf("\nMessage after adding 1: \n"); |
|
|
|
|
printBits(sizeof(message), &message); |
|
|
|
|
message[BLOCK_LENGTH - 1] = sizeof(INPUT_MESSAGE) * 8; |
|
|
|
|
// add length
|
|
|
|
|
message[BLOCK_LENGTH - 1] = numBytesMessage * 8; |
|
|
|
|
printf("\nMessage after adding length: \n"); |
|
|
|
|
printBits(sizeof(message), &message); |
|
|
|
|
#pragma endregion |
|
|
|
|
|
|
|
|
|
#pragma endregion |
|
|
|
|
|
|
|
|
|
printf("****** Hash computation ******\n\n"); |
|
|
|
|
printf("\n\n****** Hash computation ******\n\n"); |
|
|
|
|
#pragma region Hash computation |
|
|
|
|
|
|
|
|
|
printf("\n------ Prepare message schedule ------\n\n"); |
|
|
|
|
|