Сейчас на форуме: YDS, _MBK_, user99 (+7 невидимых)

 eXeL@B —› Основной форум —› трабла с CryptAcquireContext
Посл.ответ Сообщение


Ранг: 124.7 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 24 октября 2005 06:29 · Поправил: Nitrogen
· Личное сообщение · #1

возвращает 0 .. wXPsp1, w2ksp4
причем раньше все работало, запускаю свой старый кейген где тоже cryptacquire юзал - так же перестал работать..

ессно "Microsoft Base Cryptographic Provider v1.0" в реестре есть..



Ранг: 160.1 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 24 октября 2005 10:14
· Личное сообщение · #2

телепаты в отпуске, ты хоть код покажи...




Ранг: 124.7 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 24 октября 2005 12:02
· Личное сообщение · #3

например так (из старого кейгена, который боле не пашет):

phProv dd 0
phHash dd 0
phKey dd 0
ips db "IPScannerKeyContainer",0
msb db "Microsoft Base Cryptographic Provider v1.0",0
pbd db "IPScanner",0

Invoke CryptAcquireContextA,addr phProv,addr ips,addr msb,1,0




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 24 октября 2005 19:38
· Личное сообщение · #4

Nitrogen

Вызывай так:
Invoke CryptAcquireContext,addr phProv,0,addr msb,1,0




Ранг: 124.7 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 24 октября 2005 20:18
· Личное сообщение · #5

Ara
угу, я еже домедетировал до этого
сейчас с криптенкрипт мучаюсь неудобно блин ковырять wince-прогу в evc.. вот бы ida49 ;)



Ранг: 40.9 (посетитель)
Активность: 0.020
Статус: Участник
diProtector Software

Создано: 22 ноября 2005 21:14
· Личное сообщение · #6

Кто-нить домедитировал как экспортировать ключ созданный CryptGenKey для DES алгоритма?

invoke CryptAcquireContext, \
addr hProv, \
NULL, \
NULL, \
PROV_RSA_FULL, \
NULL

invoke CryptGenKey, \
hProv, \
CALG_DES, \
CRYPT_EXPORTABLE,\
addr hKey

invoke CryptExportKey, \
hKey, \
NULL, \
PLAINTEXTKEYBLOB, \
NULL, \
addr BLOB_struct, \
addr BLOB_size

все время возвращает ошибку



Ранг: 62.9 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 23 ноября 2005 00:04 · Поправил: ASMax
· Личное сообщение · #7

Экспорт ключа осуществляется в два этапа: при первом вызове CryptExportKey c нулем вместо блоба она подсчитает тебе необходимый объем памяти и запихнет в блобсайз, а при втором вызове, уже с блобом и с длинной блоба она экспортирует ключ.



Ранг: 40.9 (посетитель)
Активность: 0.020
Статус: Участник
diProtector Software

Создано: 23 ноября 2005 10:15
· Личное сообщение · #8

ASMax если б было все так просто. незнаю почему оно не работает, но не из-за блобсайза это точно



Ранг: 62.9 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 23 ноября 2005 14:19
· Личное сообщение · #9

Broken Sword
Лично у меня все работает. Приаттачь для примера неработающий ехе.



Ранг: 40.9 (посетитель)
Активность: 0.020
Статус: Участник
diProtector Software

Создано: 23 ноября 2005 17:08
· Личное сообщение · #10

ASMax, аттачу. у тебя какая ось?

5e9f_TEST.zip



Ранг: 62.9 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 23 ноября 2005 17:29
· Личное сообщение · #11

У меня XPSP2.

Ну смотри, ты же передаешь CryptExportKey нулевой размер буфера. Естественно функция возвращает ошибку. Дай ей BLOB_size(403034h) равный скажем 20h - она и выполнится.
Хотя, повторюсь, по умному надо делать в два этапа.



Ранг: 40.9 (посетитель)
Активность: 0.020
Статус: Участник
diProtector Software

Создано: 24 ноября 2005 21:28
· Личное сообщение · #12

Вообщем, задача такая: нужно сгенерить, экспортировать, а затем импортировать ключ для DES алгоритма. Экспортируется нормально только в SYMMETRICWRAPKEYBLOB. А затык в том, что импортировать можно только PUBLICKEYBLOB, PRIVATEKEYBLOB, SIMPLEBLOB, или PLAINTEXTBLOB. Че делать? пример в аттаче.

f37f_TEST.zip



Ранг: 62.9 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 25 ноября 2005 01:36
· Личное сообщение · #13

Broken Sword
Я гляжу ты хочешь не просто импортировать/экспортировать, а защищенно.
Если я все правильно помню, то при защищенном экспорте в SIMPLEBLOBе сессионный ключ шифруется ассиметричным. В твоем же случае, когда оба алго - DES, надо использовать именно SYMMETRICWRAPKEYBLOB. Что ты имеешь ввиду, говоря, что он потом не импортируется? Только что проверил, все импортируется прямо в твоем примере с раскомментированным импортом и симметрикблобом вместо симпла.



Ранг: 40.9 (посетитель)
Активность: 0.020
Статус: Участник
diProtector Software

Создано: 25 ноября 2005 23:21
· Личное сообщение · #14

ASMax, да не хочу я защищенно , просто PLAINTEXTKEYBLOB поддерживается только в XP.
насчет "оба DES" не совсем корректно - на самом деле один DES (genkey), второй (derivekey) - ДЛЯ DES (по сути - MD5). Симметрикблоб не импортируется в winCE (а именно там мне и надо) - там только те что я писал выше.



Ранг: 40.9 (посетитель)
Активность: 0.020
Статус: Участник
diProtector Software

Создано: 27 ноября 2005 10:54
· Личное сообщение · #15

вообще прикинул тут - я просто неправильно понял смысловое значение DeriveKey. Т.е. мне вообще не нужно экспортировать/импортировать что-либо - достаточно задать один и тот же пароль для генерации хеша, из которого потом создавать ключ. MS гарантирует, что из одного и того же криптопровайдера на одном и том же хеше вылазят одинаковые ключи.


 eXeL@B —› Основной форум —› трабла с CryptAcquireContext
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати