[Crypto++ 5.5.2] Konflikt Serpent-ECC

0

Piszę program w C++ Builder 2007 korzystając z biblioteki Crypto++.

Szyfrowanie/deszyfrowanie tekstu realizuję w ten sposób:

delete new StringSource(InputText, true, new StreamTransformationFilter(*(new CBC_Mode<Serpent>::Encryption(Key, SHA256::DIGESTSIZE, IV)), new StringSink(OutputText)));

Wszystko działa poprawnie do momentu, aż w kodzie pojawi się ECIES.
ECIES< ECP, IncompatibleCofactorMultiplication, true >::Encryptor *ECEncryptor = new ECIES< ECP, IncompatibleCofactorMultiplication, true >::Encryptor(>>>Tu podaję klucz publiczny<<<);

Jeśli ten fragment kodu jest napisany, to zdeszyfrowanie wiadomości zaszyfrowanej algorytmem Serpent jest niemożliwe (wyjątek, InvalidCiphertext). Podobne błędy występują dla niektórych szyfrów, AES działa dobrze. Co można z tym zrobić, żeby nie rezygnować z Serpent?

PS. Klucze generowane są za pomocą PKCS5_PBKDF2_HMAC<H>, gdzie H to f-cja haszująca, w moim przypadku SHA-512.

0

drobna uwaga..

delete new StringSource(InputText..

to IMHO lekki bezplan.. napisz po prostu:

StringSource(InputText...

1 użytkowników online, w tym zalogowanych: 0, gości: 1