Хорошо. Благодаря Майку я смог заставить Wincrypt сгенерировать пару ключей Диффи-Хеллмана. Я выяснил, как экспортировать открытый ключ и как импортировать открытый ключ другой стороны. Согласно документам, при импорте открытого ключа другой стороны вычисляется общий секрет. Здорово.
Теперь мне нужно заполучить этот общий секрет, но я не думаю, что это возможно. Простой вызов CryptExportKey
с типом PLAINTEXTKEYBLOB
не работает, если я не вызову CryptSetKeyParam
, чтобы изменить идентификатор алгоритма с CALG_AGREEDKEY_ANY
на что-то... другое. Но мне не нужно что-то еще, мне нужен общий секрет. Однако API, похоже, создан для того, чтобы препятствовать этому.
Есть идеи? Я должен отметить, что проблема здесь в том, что я пишу только одну сторону реализации WiFi Protected Setup. Таким образом, протокол определен для меня, и другая сторона не дает мне HCRYPTKEYs.