Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

I can't import pem key #51

Open
auriga1 opened this issue Nov 6, 2018 · 2 comments
Open

I can't import pem key #51

auriga1 opened this issue Nov 6, 2018 · 2 comments

Comments

@auriga1
Copy link

auriga1 commented Nov 6, 2018

I'm trying to import a pem key:

key = """-----BEGIN PRIVATE KEY-----
MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAxY6A0TAXwBeQ+k+L
JB4bgJWvWV4U0hTyryJA6+g7VVC26WN4VDNkSC4xuL0DA7c+kTNst2i5qSbYVgrk
RCo7iwIDAQABAkEAxB5nu0NnEIdUoWl90+kfnFL8tFc1jCjHkx0KHid5X4L2X7Ya
g62bbj3BBqId1vUUBltALN5h2PBCGvvuFYDooQIhAOsVaZUAw0KXijKeQV4Q5Xs5
erhPMFQIhqc/bff0gMrnAiEA1yJTFvWppYXrYI9NtxNzhSCa8oujsmwYaZRoyk8B
Ob0CIEnyX1beeY1N68vGWhuDxxu+1ep6BmK4l9quKiJQB99LAiAHZijRa1WQWdDE
m2ki2MpqU7rAiMjyhAE68F3CR4FVSQIgIggFS94m33R+n4mA25lJGyGRnV5iiynN
DLyEyGqhZOY=
-----END PRIVATE KEY-----"""
``
key_obj = Key.from_pem( key )

But what I get is:

Traceback (most recent call last): File "main.py", line 28, in <module> key_obj = Key.from_pem( key ) File "/home/silvio/Sviluppo/vest/vendor/code_manager/code_manager/lib/python3.6/site-packages/bit/wallet.py", line 392, in from_pem return PrivateKey(ECPrivateKey.from_pem(pem)) File "/home/silvio/Sviluppo/vest/vendor/code_manager/code_manager/lib/python3.6/site-packages/coincurve/keys.py", line 159, in from_pem pem_to_der(pem) File "/home/silvio/Sviluppo/vest/vendor/code_manager/code_manager/lib/python3.6/site-packages/coincurve/utils.py", line 90, in pem_to_der pem.strip()[28:-25].replace(b'\n', b'') TypeError: replace() argument 1 must be str, not bytes

So I tried:

key = b"""-----BEGIN PRIVATE KEY-----
MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAxY6A0TAXwBeQ+k+L
JB4bgJWvWV4U0hTyryJA6+g7VVC26WN4VDNkSC4xuL0DA7c+kTNst2i5qSbYVgrk
RCo7iwIDAQABAkEAxB5nu0NnEIdUoWl90+kfnFL8tFc1jCjHkx0KHid5X4L2X7Ya
g62bbj3BBqId1vUUBltALN5h2PBCGvvuFYDooQIhAOsVaZUAw0KXijKeQV4Q5Xs5
erhPMFQIhqc/bff0gMrnAiEA1yJTFvWppYXrYI9NtxNzhSCa8oujsmwYaZRoyk8B
Ob0CIEnyX1beeY1N68vGWhuDxxu+1ep6BmK4l9quKiJQB99LAiAHZijRa1WQWdDE
m2ki2MpqU7rAiMjyhAE68F3CR4FVSQIgIggFS94m33R+n4mA25lJGyGRnV5iiynN
DLyEyGqhZOY=
-----END PRIVATE KEY-----"""
``
key_obj = Key.from_pem( key )

But what I get is:

Traceback (most recent call last): File "main.py", line 28, in <module> key_obj = Key.from_pem( key ) File "/home/silvio/Sviluppo/vest/vendor/code_manager/code_manager/lib/python3.6/site-packages/bit/wallet.py", line 392, in from_pem return PrivateKey(ECPrivateKey.from_pem(pem)) File "/home/silvio/Sviluppo/vest/vendor/code_manager/code_manager/lib/python3.6/site-packages/coincurve/keys.py", line 160, in from_pem ).native['private_key']['private_key']), KeyError: 'private_key'

Your docs say:

classmethod from_pem(pem)
Parameters: pem (bytes) – A private key previously encoded as PEM.
Return type: PrivateKey

So I tried:

key = """-----BEGIN PRIVATE KEY-----
MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAxY6A0TAXwBeQ+k+L
JB4bgJWvWV4U0hTyryJA6+g7VVC26WN4VDNkSC4xuL0DA7c+kTNst2i5qSbYVgrk
RCo7iwIDAQABAkEAxB5nu0NnEIdUoWl90+kfnFL8tFc1jCjHkx0KHid5X4L2X7Ya
g62bbj3BBqId1vUUBltALN5h2PBCGvvuFYDooQIhAOsVaZUAw0KXijKeQV4Q5Xs5
erhPMFQIhqc/bff0gMrnAiEA1yJTFvWppYXrYI9NtxNzhSCa8oujsmwYaZRoyk8B
Ob0CIEnyX1beeY1N68vGWhuDxxu+1ep6BmK4l9quKiJQB99LAiAHZijRa1WQWdDE
m2ki2MpqU7rAiMjyhAE68F3CR4FVSQIgIggFS94m33R+n4mA25lJGyGRnV5iiynN
DLyEyGqhZOY=
-----END PRIVATE KEY-----"""
``
key_obj = Key.from_pem( bytes(key, 'utf-8') )

But the risult is the same.
Any help?

Thank you

@auriga1
Copy link
Author

auriga1 commented Nov 6, 2018

But I can import a key previously generated with key.bit.
So perhaps it is related to key bits?

@bjarnemagnussen
Copy link
Collaborator

I don't have experience using PEM with Bit. But the PEM was generated outside of Bit? Because when I generate a PrivateKey using Bit, export it to PEM and then import it again it works.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants