fixed wrong message length because of empty character after message string

main
Jonas Arnold 3 years ago
parent ae5ccf9fa8
commit 4e5a00e41a
  1. 16
      ASYD_Cryptograhpy/SW05-SHA1/main.c

@ -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");

Loading…
Cancel
Save