![](/img/trans.png)
[英]UnsupportedAlgorithm: This backend does not support this key serialization. - Python cryptography load_pem_private_key
[英]load_pem_private_key fails with ecdsa key of size 521
我有以下兩個ECDSA私鑰進行測試。
from cryptography.hazmat.primitives.serialization import load_pem_private_key
from cryptography.hazmat.backends import default_backend
privateECDSA_openssh521 = b"""-----BEGIN EC PRIVATE KEY-----
MIHcAgEBBEIAjn0lSVF6QweS4bjOGP9RHwqxUiTastSE0MVuLtFvkxygZqQ712oZ
ewMvqKkxthMQgxzSpGtRBcmkL7RqZ94+18qgBwYFK4EEACOhgYkDgYYABAFpX/6B
mxxglwD+VpEvw0hcyxVzLxNnMGzxZGF7xmNj8nlF7M+TQctdlR2Xv/J+AgIeVGmB
j2p84bkV9jBzrUNJEACsJjttZw8NbUrhxjkLT/3rMNtuwjE4vLja0P7DMTE0EV8X
f09ETdku/z/1tOSSrSvRwmUcM9nQUJtHHAZlr5Q0fw==
-----END EC PRIVATE KEY------"""
privateECDSA_openssh384 = b"""-----BEGIN EC PRIVATE KEY-----
MIGkAgEBBDAtAi7I8j73WCX20qUM5hhHwHuFzYWYYILs2Sh8UZ+awNkARZ/Fu2LU
LLl5RtOQpbWgBwYFK4EEACKhZANiAATU17sA9P5FRwSknKcFsjjsk0+E3CeXPYX0
Tk/M0HK3PpWQWgrO8JdRHP9eFE9O/23P8BumwFt7F/AvPlCzVd35VfraFT0o4cCW
G0RqpQ+np31aKmeJshkcYALEchnU+tQ=
-----END EC PRIVATE KEY-----"""
有了這些信息,如果我這樣做。 load_pem_private_key(privateECDSA_openssh384, None, default_backend())
它工作正常,但如果我執行load_pem_private_key(privateECDSA_openssh521, None, default_backend())
我收到以下錯誤
load_pem_private_key(privateECDSA_openssh521, None, default_backend())
File "/usr/lib/python2.7/dist-packages/cryptography/hazmat/primitives/serialization.py", line 20, in load_pem_private_key
return backend.load_pem_private_key(data, password)
File "/usr/lib/python2.7/dist-packages/cryptography/hazmat/backends/multibackend.py", line 282, in load_pem_private_key
return b.load_pem_private_key(data, password)
File "/usr/lib/python2.7/dist-packages/cryptography/hazmat/backends/openssl/backend.py", line 1606, in load_pem_private_key
password,
File "/usr/lib/python2.7/dist-packages/cryptography/hazmat/backends/openssl/backend.py", line 1802, in _load_key
self._handle_key_loading_error()
File "/usr/lib/python2.7/dist-packages/cryptography/hazmat/backends/openssl/backend.py", line 1874, in _handle_key_loading_error
raise ValueError("Could not unserialize key data.")
ValueError: Could not unserialize key data.
我不明白是什么問題。
試圖加載你的數據並獲得以下錯誤字符串b'bad end line'
你在最后一行有六個破折號。 試試吧。
>>> privateECDSA_openssh521 = b"""-----BEGIN EC PRIVATE KEY-----
... MIHcAgEBBEIAjn0lSVF6QweS4bjOGP9RHwqxUiTastSE0MVuLtFvkxygZqQ712oZ
... ewMvqKkxthMQgxzSpGtRBcmkL7RqZ94+18qgBwYFK4EEACOhgYkDgYYABAFpX/6B
... mxxglwD+VpEvw0hcyxVzLxNnMGzxZGF7xmNj8nlF7M+TQctdlR2Xv/J+AgIeVGmB
... j2p84bkV9jBzrUNJEACsJjttZw8NbUrhxjkLT/3rMNtuwjE4vLja0P7DMTE0EV8X
... f09ETdku/z/1tOSSrSvRwmUcM9nQUJtHHAZlr5Q0fw==
... -----END EC PRIVATE KEY-----"""
>>> load_pem_private_key(privateECDSA_openssh521, None, default_backend())
收益:
<cryptography.hazmat.backends.openssl.ec._EllipticCurvePrivateKey object at 0x109cda128>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.