Compare commits

..

2 Commits

6 changed files with 17 additions and 15 deletions

View File

@@ -1 +0,0 @@
Test file content for decryption

View File

@@ -1,11 +0,0 @@
-----BEGIN OTP MESSAGE-----
Version: v0.2.72
Pad-ChkSum: 97d9d82b5414a9439102f3811fb90ab1d6368a00d33229a18b306476f9d04f82
Pad-Offset: 2873419
iR6J7HHK1Oc6
-----END OTP MESSAGE-----

18
otp.c
View File

@@ -1626,38 +1626,54 @@ int decrypt_text_silent(const char* pad_identifier, const char* encrypted_messag
char base64_data[MAX_INPUT_SIZE * 2] = {0}; char base64_data[MAX_INPUT_SIZE * 2] = {0};
int in_data_section = 0; int in_data_section = 0;
fprintf(stderr, "DEBUG: decrypt_text_silent called\n");
fprintf(stderr, "DEBUG: encrypted_message is %s\n", encrypted_message ? "not NULL" : "NULL");
if (encrypted_message != NULL) { if (encrypted_message != NULL) {
fprintf(stderr, "DEBUG: Message length: %lu\n", strlen(encrypted_message));
fprintf(stderr, "DEBUG: First 50 chars: %.50s\n", encrypted_message);
// Parse provided encrypted message // Parse provided encrypted message
char *message_copy = strdup(encrypted_message); char *message_copy = strdup(encrypted_message);
char *line_ptr = strtok(message_copy, "\n"); char *line_ptr = strtok(message_copy, "\n");
int found_begin = 0; int found_begin = 0;
while (line_ptr != NULL) { while (line_ptr != NULL) {
fprintf(stderr, "DEBUG: Processing line: '%s'\n", line_ptr);
if (strcmp(line_ptr, "-----BEGIN OTP MESSAGE-----") == 0) { if (strcmp(line_ptr, "-----BEGIN OTP MESSAGE-----") == 0) {
found_begin = 1; found_begin = 1;
fprintf(stderr, "DEBUG: Found BEGIN header\n");
} }
else if (strcmp(line_ptr, "-----END OTP MESSAGE-----") == 0) { else if (strcmp(line_ptr, "-----END OTP MESSAGE-----") == 0) {
fprintf(stderr, "DEBUG: Found END header\n");
break; break;
} }
else if (found_begin) { else if (found_begin) {
if (strncmp(line_ptr, "Pad-ChkSum: ", 12) == 0) { if (strncmp(line_ptr, "Pad-ChkSum: ", 12) == 0) {
strncpy(stored_chksum, line_ptr + 12, 64); strncpy(stored_chksum, line_ptr + 12, 64);
stored_chksum[64] = '\0'; stored_chksum[64] = '\0';
fprintf(stderr, "DEBUG: Found checksum: %.16s...\n", stored_chksum);
} }
else if (strncmp(line_ptr, "Pad-Offset: ", 12) == 0) { else if (strncmp(line_ptr, "Pad-Offset: ", 12) == 0) {
pad_offset = strtoull(line_ptr + 12, NULL, 10); pad_offset = strtoull(line_ptr + 12, NULL, 10);
fprintf(stderr, "DEBUG: Found offset: %lu\n", pad_offset);
} }
else if (strlen(line_ptr) == 0) { else if (strlen(line_ptr) == 0) {
in_data_section = 1; in_data_section = 1;
fprintf(stderr, "DEBUG: Entering data section\n");
} }
else if (in_data_section) { else if (in_data_section) {
strncat(base64_data, line_ptr, sizeof(base64_data) - strlen(base64_data) - 1); strncat(base64_data, line_ptr, sizeof(base64_data) - strlen(base64_data) - 1);
fprintf(stderr, "DEBUG: Added data line: %s\n", line_ptr);
} }
} }
line_ptr = strtok(NULL, "\n"); line_ptr = strtok(NULL, "\n");
} }
free(message_copy); free(message_copy);
fprintf(stderr, "DEBUG: Parsing complete. found_begin=%d, base64_data='%s'\n", found_begin, base64_data);
if (!found_begin) { if (!found_begin) {
fprintf(stderr, "Error: Invalid message format - missing BEGIN header\n"); fprintf(stderr, "Error: Invalid message format - missing BEGIN header\n");
return 1; return 1;
@@ -1730,7 +1746,7 @@ int decrypt_text_silent(const char* pad_identifier, const char* encrypted_messag
plaintext[ciphertext_len] = '\0'; plaintext[ciphertext_len] = '\0';
// Output only the decrypted text - no extra messages // Output only the decrypted text - no extra messages
printf("%s\n", plaintext); printf("%s", plaintext);
// Cleanup // Cleanup
free(ciphertext); free(ciphertext);

View File

@@ -1 +0,0 @@
Testing updated files directory functionality

View File

@@ -1 +0,0 @@
Testing files directory functionality

Binary file not shown.