Yubico / ykneo-openpgp

OpenPGP applet for the YubiKey NEO
https://developers.yubico.com/ykneo-openpgp/
GNU General Public License v2.0
215 stars 67 forks source link

Support RSA keysizes other than 2048 #29

Closed promovicz closed 9 years ago

promovicz commented 9 years ago

It would be nice to support at the very least 4096 bit keys, but 1024 bit might also still be interesting for compatibility purposes.

While most JavaCard cards (just as the YKNEO) do not support more than 2048 bits there are various cards on the market which do, even though most of them require signing an NDA or other considerations.

I have access to one such device, and it would be nice to clean up the code so it can deal with arbitrary RSA key sizes, as supported by the card.

klali commented 9 years ago

There is some code to this effect on the branch devel/key_attributes

ghost commented 9 years ago

@promovicz Why are JavaCard cards with 4096bit support under NDA?

klali commented 9 years ago

closing this as a duplicate of #2

promovicz commented 9 years ago

@JHGitty There is no reason per-se for that. Actually all smartcard processors (except for some chinese ones) I know of require an NDA for proper documentation. The issue with 4096bit cards is that they simply aren't marketed to end users, and working with them commercially will often require an NDA just to know the exact features of the card...

seefood commented 7 years ago

Almost two years later, is it safe to say no RSA4096 NEO is around the corner, and if it comes it won't be FOSS?

jonathancross commented 7 years ago

@seefood The non-FOSS YubiKey-4 supports RSA4096, but there is no indication that the FOSS Yubikey NEO will ever support > 2048.

seefood commented 7 years ago

So if I want a FOSS key that supports RSA4096 I guess it won't do u2f and cost more. bleh. I guess I'll go for a NEO and source the PGP functionality elsewhere.

jonathancross commented 7 years ago

I'll go for a NEO and source the PGP functionality elsewhere.

I use a NEO-n for PGP, it is very elegant and usable. I have a 4096 Master key and only use the NEO for the subkeys (which are 2048 bit). Considering subkeys can easily be revoked, I feel it is an acceptable tradeoff for now...

We will have better options soon (already tremendous progress with Bitcoin Wallets supporting PGP ECC keys like Trezor[1] and Ledger[2]). They will probably stabilize over the next year.

[1] https://github.com/romanz/trezor-agent/blob/master/README-GPG.md [2] https://themerkle.com/new-ledger-bitcoin-hardware-can-run-pgp-and-ethereum-wallet/