Назад | Перейти на главную страницу

Создание статических ключей OpenVPN в памяти?

Я знаю, что могу сгенерировать статический ключ OpenVPN с помощью openvpn --genkey --secret myfile.key. В Python я сейчас использую вызов оболочки для генерации ключа, открываю myfile.key и считываю его обратно. Было бы намного чище, если бы я мог делать это без вызова оболочки.

Кто-нибудь знает, какой тип ключа генерируется с помощью команды --genkey или способ сгенерировать ключ непосредственно в Python?

К сожалению, OpenVPN в настоящее время не предоставляет API-интерфейсы Python. Однако один из способов (немного) очистить ваш скрипт - заставить его сгенерировать ключ непосредственно для stdout, а затем используйте stdout вернулся Popen.

openvpn --genkey --secret /dev/stdout

Т.е.,

from subprocess import Popen, PIPE

proc = Popen("openvpn --genkey --secret /dev/stdout", shell=True, stdout=PIPE)
(stdout, stderr) = proc.communicate()

Насколько мне известно, даже несмотря на то, что ключи генерируются с использованием функции TLS PRF, нет «другого» способа сгенерировать ключи.