Tcl pki::pkcs::parse_key 错误使用 Google 授权服务帐户密钥
Tcl pki::pkcs::parse_key error Using Google Auth Service Account Key
我正在尝试创建一个小脚本,我可以在其中使用 google 的 "OAuth 2.0 for Server to Server Applications" 和 Tcl。在设置我的服务帐户并制作 JSON 格式的私钥后,我复制并粘贴了 JSON 文件中的私钥。 (即 screen shot of a part of the private key)
然后我将私钥放入我的 Tcl 脚本中,如下所示:
set keydata "PRIVATEKEY"
set key [::pki::pkcs::parse_key $keydata]
这样做之后,我收到以下错误:
Expected Integer (0x02), but got 30
while executing
"::asn::asnGetBigInteger key ret(n)"
(procedure "::pki::pkcs::parse_key" line 8)
invoked from within
"::pki::pkcs::parse_key $keydata"
("uplevel" body line 45)
invoked from within
我相信我做的每件事都是正确的。我不知道我做错了什么。 .
我发现问题是 Google 给我的密钥是 PEM 格式,而不是 "::pki::pkcs::parse_key" 要求的 RSA 格式。因此,我只是 运行 以下将我的 PEM 密钥转换为 RSA 格式,然后 运行 上面显示的代码,一切正常。
openssl rsa -in domain.key -out domain-rsa.key
我正在尝试创建一个小脚本,我可以在其中使用 google 的 "OAuth 2.0 for Server to Server Applications" 和 Tcl。在设置我的服务帐户并制作 JSON 格式的私钥后,我复制并粘贴了 JSON 文件中的私钥。 (即 screen shot of a part of the private key)
然后我将私钥放入我的 Tcl 脚本中,如下所示:
set keydata "PRIVATEKEY"
set key [::pki::pkcs::parse_key $keydata]
这样做之后,我收到以下错误:
Expected Integer (0x02), but got 30
while executing
"::asn::asnGetBigInteger key ret(n)"
(procedure "::pki::pkcs::parse_key" line 8)
invoked from within
"::pki::pkcs::parse_key $keydata"
("uplevel" body line 45)
invoked from within
我相信我做的每件事都是正确的。我不知道我做错了什么。 .
我发现问题是 Google 给我的密钥是 PEM 格式,而不是 "::pki::pkcs::parse_key" 要求的 RSA 格式。因此,我只是 运行 以下将我的 PEM 密钥转换为 RSA 格式,然后 运行 上面显示的代码,一切正常。
openssl rsa -in domain.key -out domain-rsa.key