diff --git a/ASYD_Cryptograhpy/SW05-SHA1/main.c b/ASYD_Cryptograhpy/SW05-SHA1/main.c index aacd520..c368f93 100644 --- a/ASYD_Cryptograhpy/SW05-SHA1/main.c +++ b/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");