| ||||
| ||||
Пытаюсь экспортировать сессионный ключ, для чего, если я правильно понял, нужен открытый ключ получателя. При импорте выдаётся ошибка NTE_BAD_TYPE, т.е. ошибочный тип ключевого блоба. Не подскажете, где ошибка? (пишу в Delphi) Экспорт открытого ключа: // Получаю хэндл ключевой пары CPGetUserKey(hProv,AT_KEYEXCHANGE,@hExchangeKeyPair); // Выделяю память для экспорта CPExportKey(hProv,hExchangeKeyPair,0,PUBLICKEYBLOB,0,Nil,@dwKeyBlobDataLen); pbPubKeyBlobData:=AllocMem(dwKeyBlobDataLen) // Экспортирую открытый ключ CPExportKey(hProv,hExcnangeKeyPair,0,PUBLICKEYBLOB,0,pbPubKeyBlobData,@dwKeyBlobDataLen); // Пишу ключ в файл iFileHandle:=FileCreate(sKeyFileName); FileWrite(iFileHandle,pbPubKeyBlobData,dwKeyBlobDataLen); FileClose(iFileHandle); FreeMem(pbPubKeyBlobData); Теперь импорт на другой стороне: // Получаю ключевой блоб из файла iFileHandle:=FileOpen(sKeyFileName,fmOpenRead); iFileLength:=FileSeek(iFileHandle,0,2); pbPubKeyBlobData:=AllocMem(iFileLength+1); FileRead(iFileHandle,pbPubKeyBlobData,iFileLength); FileClose(iFileHandle); // Пытаюсь его импортировать CPImportKey(hProv,pbPubKeyBlobData,iFileLength,0,0,@hPubKey) --> NTE_BAD_TYPE Пробовал написать так: CPImportKey(hProv,pbPubKeyBlobData,iFileLength,hExchangeKeyPair,0,@hPubKey) --> та же ошибка. Вообще, из документации следует, что четвёртый параметр в CPImportKey должен соответствовать третьему в CPExportKey... Или нет? | ||||
Ответы: | ||||
| ||||
Посмотрите http://www.cryptopro.ru/CryptoPro/forum/myforum.asp?q=4 Там пример на С приведен. | ||||