C/C++ Problem when trying to decryp encryped file with CryptoPP (C++)

  • Thread starter Thread starter CMV123
  • Start date Start date
  • Tags Tags
    File
Click For Summary
The discussion revolves around a decryption issue involving AES128 encryption. The user successfully encrypted a text file using a binary key and Base64 encoding but encounters an error when attempting to decrypt it. The error message indicates a problem with the passphrase during decryption. The user has verified that their own encryption and decryption processes work correctly with the same binary key. Potential causes for the decryption failure include differences in encryption algorithms, padding schemes, or the mode of operation (such as ECB, CBC, or CTR) used during encryption. The user seeks clarification on these aspects to resolve the decryption issue.
CMV123
Messages
1
Reaction score
0
Hi all,

I have a problem.

Someone I know encrypted a text file using AES128 by using binary key file, (He generate the binary key).
After that he uses "base64Encode" over the encryped file

I have the private binary key file.
Now, when I'm trying to decrypt the file, I do as follow:
1. Use "Base64Decoder" to get the encrypted file --> Pass successfully
2. Use the following:

Try using both functions:
FileSource f(in, true, new DefaultDecryptorWithMAC(passPhrase, new FileSink(out)));

FileSource f(in, true, new DefaultDecryptor(passPhrase, new FileSink(out)));

where:
in - is the input file (encrypted file)
passPharse - char* - location of the key file


but I always getting the following error:
terminate called after throwing an instance of 'CryptoPP::DefaultDecryptor::KeyBadErr'
what(): DefaultDecryptor: cannot decrypt message with this passphrase


Now when I'm trying to encrypt and decrypt by myself it works fine,
(I'm using the binary key he gave me)

1. FileSource f(in, true, new DefaultEncryptorWithMAC(passPhrase, new FileSink(out)));
2. FileSource(in, true, new Base64Encoder(new FileSink(out)));
3. FileSource(in, true, new Base64Decoder(new FileSink(out)));
4. FileSource f(in, true, new DefaultDecryptorWithMAC(passPhrase, new FileSink(out)));


Could anyone help me to understand what is my problem?
I'm guessing that the problem could be from 2 reasons:
1. Because this is a different algorithm form java AES128
2. There is a problem in the key, It can't read it right
 
Technology news on Phys.org
I don't know anything about the implementation you are using so I don't know whether your code is correct, but from my experience such problems are usually the result of using different padding schemes.

Also, since it's AES, make sure you are using the same mode (ECB, CBC, CTR...) and initialization vector, if appropriate.

I'm pretty sure one of these two is the problem if your program correctly decrypts the stuff it encrypts.
 
Last edited:
Learn If you want to write code for Python Machine learning, AI Statistics/data analysis Scientific research Web application servers Some microcontrollers JavaScript/Node JS/TypeScript Web sites Web application servers C# Games (Unity) Consumer applications (Windows) Business applications C++ Games (Unreal Engine) Operating systems, device drivers Microcontrollers/embedded systems Consumer applications (Linux) Some more tips: Do not learn C++ (or any other dialect of C) as a...

Similar threads

  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 2 ·
Replies
2
Views
1K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 9 ·
Replies
9
Views
3K
  • · Replies 6 ·
Replies
6
Views
12K
Replies
6
Views
2K
  • · Replies 12 ·
Replies
12
Views
2K
  • · Replies 9 ·
Replies
9
Views
1K
  • · Replies 5 ·
Replies
5
Views
8K
  • · Replies 14 ·
Replies
14
Views
2K