trustcrypto / onlykey-agent

The OnlyKey agent is essentially middleware that lets you use OnlyKey as a hardware SSH/GPG device.
https://docs.crp.to/onlykey-agent.html
GNU Lesser General Public License v3.0
46 stars 15 forks source link

GPG support #11

Closed Superpat closed 4 years ago

Superpat commented 5 years ago

Is GPG support still on the roadmap ?

Is the only problem here man hours, or is there an unsolved technical problem ? Issue #7 was never answered, but asks this question as well.

I have just received my Onlykey and would love to be able to use it as the GPG key for pass(1).

onlykey commented 5 years ago

@Superpat GPG support is definitely doable, its mostly a matter of man hours although there are some technical challenges. It's still on the road map just behind some other things. If any python developers out there are up for a challenge I would be happy to work with them to implement this feature.

haplo commented 4 years ago

I'm also very interested in GPG support. Is this something we can port from trezor-agent? Where would one begin? If you could define the work to be done in smaller steps that would be super helpful.

onlykey commented 4 years ago

@haplo Yes, we can and that was originally the plan. Trezor-agent will accept a PR to add OnlyKey support in - https://github.com/romanz/trezor-agent/issues/303

To start, I think this would involve:

Thanks again for your willingness to look into this, it would be a great improvement to get this working.

onlykey commented 4 years ago

I have implemented support for OnlyKey, including:

SSH (ed25519 and nist256p1) GPG Sign (ed25519 and nist256p1) GPG Decrypt (curve25519 and nist256p1)

https://github.com/romanz/trezor-agent/compare/master...onlykey:onlykey-agent-merge

onlykey commented 4 years ago

@haplo @Superpat Let me know if you guys are interested in beta testing GPG.

haplo commented 4 years ago

@onlykey I am interested in beta testing. I mainly want to GPG-sign git commits. My current GPG key is RSA, so I will need to create a new one.

onlykey commented 4 years ago

@haplo The GPG will work the same as the SSH so you would not need to create a key (although I am adding feature to were you can use custom key). You don't have to create a key, this is one of the main benefits to the agent, unique key is generated based on input, this is how SSH can support an unlimited number of keys - https://docs.crp.to/onlykey-agent.html

onlykey-agent test@test.com creates a different key then onlykey-agent test2@test.com

It is the same by default for the GPG agent. You create an identity such as <name "user@domain.com"> and a unique key is created.

onlykey commented 4 years ago

GPG support has been implemented - https://docs.crp.to/upgradeguide.html