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

PIV: Support AES management keys #330

Open
str4d opened this issue Nov 22, 2021 · 2 comments
Open

PIV: Support AES management keys #330

str4d opened this issue Nov 22, 2021 · 2 comments

Comments

@str4d
Copy link
Contributor

str4d commented Nov 22, 2021

Historically, YubiKey's PIV applet only supported 3DES management keys. However, YubiKeys with firmware 5.4 and up (produced starting from May 2021) support AES-128, AES-192, and AES-256 management keys, which are allowed at least as early as NIST SP 800-78-2 (released in 2010).

We should add support for AES management keys, to enable people who want to migrate away from the default 3DES keys to do so.

@archaelus
Copy link

Hi all, I'm interested in working on this. One of the first questions I have is: the MgmKey struct now needs to either be a DES key or an AES key. If I turn it into an enum, I then have to bifurcate every method on MgmKey - I think this is the way I went the last time I (privately) attempted this. It works, but doesn't feel tidy. Alternately, maybe MgmKey could be a trait, and DesKey/AesKey could implement that? I'd hope with that approach that the code for different key types would be neatly separate, but I have no idea what the downsides to this are.

Anyone have a recommendation? Or I can just wade in and see how it looks.

@tony-iqlusion
Copy link
Member

Could go either way, although the trait-based approach sounds a bit nicer to me

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

3 participants