I am using a GO Language script to generate private and public keys. This algorithm uses Ed25519. When I am reading the private keys using python crypto module I am receiving following error.
>>> import cryptography.hazmat.primitives.asymmetric.ed25519 as ed25519
>>> pk = ed25519.Ed25519PrivateKey.from_private_bytes(open('private.key', 'rb').read())
>>> pk
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
/var/folders/yy/..../T/ipykernel_15095/3709883678.py in <module>
1 import cryptography.hazmat.primitives.asymmetric.ed25519 as ed25519
2
----> 3 pk = ed25519.Ed25519PrivateKey.from_private_bytes(open('private.key', 'rb').read())
4
5 pk
.../lib/python3.8/site-packages/cryptography/hazmat/primitives/asymmetric/ed25519.py in from_private_bytes(cls, data)
67 )
68
---> 69 return backend.ed25519_load_private_bytes(data)
70
71 @abc.abstractmethod
.../lib/python3.8/site-packages/cryptography/hazmat/backends/openssl/backend.py in ed25519_load_private_bytes(self, data)
1858 def ed25519_load_private_bytes(self, data):
1859 if len(data) != ed25519._ED25519_KEY_SIZE:
-> 1860 raise ValueError("An Ed25519 private key is 32 bytes long")
1861
1862 utils._check_byteslike("data", data)
ValueError: An Ed25519 private key is 32 bytes long
The following solution is generating results as expected for me