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