On Thu, Oct 12, 2023 at 5:55 PM Dwight Kulkarni <[email protected]> wrote: > > Hello, > > I had Crypto PP code that was previously working and recently stopped > working. We moved to a new version of our BSP. > > Error is: > terminate called after throwing an instance of > 'CryptoPP::AlgorithmParametersBase::ParameterNotUsed' > what(): AlgorithmParametersBase: parameter "IV" not used > > Error is traced to this particular function below. > > I had it running with the Params in ECB mode still passing in the IV. > d.SetKey(key, key.size(),params); > > Then I commented it out with: > d.SetKey(key, key.size()); > > Previously, it wasn't throwing an error even if IV is passed in ECB mode. > > Also, I don't know why it's falling through the catch statement and kills my > program. > > should I have a generic catch statement Exception e to prevent this ? > > std::string decrypt_aes(std::string cipherbytes, SecByteBlock key, > SecByteBlock iv) { > try { > AlgorithmParameters params = MakeParameters(Name::FeedbackSize(), 1/*8-bits*/) > (Name::IV(), ConstByteArrayParameter(iv)); > //CFB_Mode<AES>::Decryption d; > ECB_Mode<AES>::Decryption d; > std::string recovered; > //d.SetKey(key, key.size(),params); > d.SetKey(key, key.size()); > StringSource s(cipherbytes, true, new StreamTransformationFilter(d, new > StringSink(recovered), CryptoPP::BlockPaddingSchemeDef::PKCS_PADDING)); > return recovered; > } > catch (CryptoPP::Exception e) { > std::cerr << e.what() << std::endl; > return ""; > } > }
BlockPaddingSchemeDef::PKCS_PADDING is incorrect for ECB mode. ECB mode does not use padding. The programmer is responsible for padding to block size. Jeff -- You received this message because you are subscribed to the Google Groups "Crypto++ Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/cryptopp-users/CAH8yC8mEuBX99%2BpYiKgSwMVDvRL%3DBct9K%2BpQjCt-%2Be2Mrhc5DA%40mail.gmail.com.
