在内存中生成 OpenVPN 静态密钥?

在内存中生成 OpenVPN 静态密钥?

我知道我可以通过“openvpn --genkey --secret myfile.key”生成 OpenVPN 静态密钥。在 python 中,我目前使用 shell 调用来生成密钥,打开“myfile.key”并将其读回。如果我可以在不使用 shell 调用的情况下完成此操作,那么它会更简洁。

有人知道使用 --genkey 命令生成什么类型​​的密钥,或者在 Python 中直接生成密钥的方法吗?

答案1

不幸的是,OpenVPN 目前不提供 Python API。但是,一种(稍微)清理脚本的方法是让它直接生成密钥stdout,然后使用stdout返回的Popen

openvpn --genkey --secret /dev/stdout

IE,

from subprocess import Popen, PIPE

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

据我所知,即使使用 TLS PRF 函数生成密钥,也没有“其他”方法来生成密钥。

相关内容