08.01.2003 13:00:36v1.1 vs v2.0 Ответов: 2
Евгений Бушманов
Я как обычно торможу или сессионные ключи не совместимы между версиями?

Конкретнее:
-----------------------
// hKeyRecv - ключ получателя
// pSendPK - открытый ключ отправителя
// hExKey - ключ обмена
// pKey - сессионный ключ, закрытый на ключе обмена

CryptImportKey( hProv, pSendPK, szSendPK, hKeyRecv, 0, @hExKey);

CryptImportKey( hProv, pKey, szKey, hExKey, 0, @hCrKey);

CryptDecrypt( hCrKey, 0, TRUE, 0,pData, @szData);
-----------------------

Ключи получателя и отправителя сгенерированы в v1.1.
Если версии CryptoPRO у получателя и отправителя одинаковы, то все ok.
Т.е. [1.1]->[1.1] или [2.0]->[2.0] работает.
Если версии разные ([2.0]->[1.1] или [1.1]->[2.0]) - всё, труба :(
После второго CryptImportKey():
- если сессионый ключ от 1.1 в версии 2.0 - NTE_BAD_DATA;
- если сессионый ключ от 2.0 в версии 1.1 - NTE_BAD_TYPE

Стандартный вопрос - кто виноват и что делать?
 
Ответы:
09.01.2003 17:31:55kure
Форматы блобов сессионных ключей 1.1 и 2.0 отличаются, но их можно преобразовать.

Выложим пример преобразования.

14.01.2003 11:27:52kure
Версия 2.0 понимает блобы 1.1.
Есть примеры преобразования 1.1 в 2.0.

Пока нет возможности выложить на сервер, желающие могут получить по письму на info@cryptopro.ru