Стоит следующая задача: есть данные, зашифрованные ключом по алгоритму DES в одной программе, необходимо расшифровать этим же ключом эти же данные в другой программе, используя CAPI.
Алгоритм действий:
В программе-шифровальщике:
1. CryptAcquireContext
2. CryptGenKey (...CALG_DES)
3. CryptCreateHash (...CALG_MD5)
4. CryptHashData
5. CryptDeriveKey (...CALG_DES)
6. CryptExportKey (...SYMMETRICWRAPKEYBLOB)
7. CryptEncrypt
В программе-дешифровальщике:
1. CryptAcquireContext
2. CryptImportKey
3. CryptDecypt
В чем проблема: импортировать можно только PUBLICKEYBLOB, PRIVATEKEYBLOB, SIMPLEBLOB и PLAINTEXTBLOB, а экспорт без ошибок проходит только в SYMMETRICWRAPKEYBLOB.
PLAINTEXTBLOB (обойтись без симметричного ключа) - не подходит, т.к. он поддерживается только в XP.
Кто может предложить вразумительный алгоритм?
Алгоритм действий:
В программе-шифровальщике:
1. CryptAcquireContext
2. CryptGenKey (...CALG_DES)
3. CryptCreateHash (...CALG_MD5)
4. CryptHashData
5. CryptDeriveKey (...CALG_DES)
6. CryptExportKey (...SYMMETRICWRAPKEYBLOB)
7. CryptEncrypt
В программе-дешифровальщике:
1. CryptAcquireContext
2. CryptImportKey
3. CryptDecypt
В чем проблема: импортировать можно только PUBLICKEYBLOB, PRIVATEKEYBLOB, SIMPLEBLOB и PLAINTEXTBLOB, а экспорт без ошибок проходит только в SYMMETRICWRAPKEYBLOB.
PLAINTEXTBLOB (обойтись без симметричного ключа) - не подходит, т.к. он поддерживается только в XP.
Кто может предложить вразумительный алгоритм?