| ||||
| ||||
Пытаюсь экспортировать разовый ключ алгоритмом CALG_SIMPLE_EXPORT. Порядок действий, по модулю обработки ошибок, следующий: CPGetUserKey(prov, AT_KEYEXCHANGE, &key); CPImportKey(prov, keybuf, kblen, key, CRYPT_EXPORTABLE, &pairkey); CPGenKey(prov, CALG_G28147, CRYPT_EXPORTABLE, &onekey); CPEncrypt(prov, onekey, 0, TRUE, 0, data, &datalen, datalen); DWORD exp_alg = CALG_SIMPLE_EXPORT; CPSetKeyParam(prov, pairkey, KP_ALGID, (BYTE*)&exp_alg, 0); CPExportKey(prov, onekey, pairkey, SIMPLEBLOB, 0, keybuf, &kblen); Все отрабатывает без ошибок, и я получаю блоб вполне соответствующего документации формата, но zsh% zsh% dumpasn1 -60 enckey 0 9: SEQUENCE { 2 7: OBJECT IDENTIFIER CP GOST 28147 default params (1 2 643 2 2 31 1) : } - OID тот же, что и при умолчательном запуске, и насколько я могу судить по документации, этот OID соответствует CALG_PRO_EXPORT. Начальный вектор ключа в блобе (байты 16-23) тоже ненулевой, а насколько я понимаю, при Simple его быть не должно. | ||||
Ответы: | ||||
| ||||
А что есть при этом keybuf - как он был получен? | ||||
| ||||
Результат экспорта (CPExportKey) другого открытого ключа. Кидается через файл. Да, забыл версию CSP указать. 2.0 (Build 2049). | ||||
| ||||
Да призадумался... Долговременные ключи - 94 года. | ||||