Commit Graph

4 Commits

Author SHA1 Message Date
Roland Bracewell Shoemaker 6fe950bc0c
Add PKCS#11 certificate generation tool (#3729)
Tested against relevant hardware for generating both RSA and ECDSA roots and intermediates with keys generated using `gen-key`.

Also this makes a few changes to the `gen-key` tool after further experience with the HSM and more reading of the PCKS#11 specification. Main change is the removal of `compatMode`, which was intended to provide support for two naming schemes for EC used in subsequent PKCS#11 drafts. It turns out these schemes were changes in name only and the underlying structs/ints were the exact same (i.e. `CKA_ECDSA_PARAMS == CKA_EC_PARAMS` and `CKM_ECDSA_KEY_PAIR_GEN == CKM_EC_KEY_PAIR_GEN`) and just allowed using one of the two names based on preference. This meant with `compatMode` enabled or disabled the tool did the exact same thing.

Fixes #3697.
2018-06-12 12:13:09 -07:00
Roland Bracewell Shoemaker 30394c4b4c Accept empty pin and generate a key ID (#3713)
Two fixes that I found while doing work on the gen-cert tool and setting up the HSM again
* Accept an empty PIN argument, this allows purely using the PED for login if not using challenge mode
* Generate 4 byte key ID for public/private key pairs during key gen, the HSM doesn't generate this field itself and `letsencrypt/pkcs11key` relies on this attribute to function
2018-05-16 08:33:34 -04:00
Roland Bracewell Shoemaker d01f74402b Fix ec gen-key test (#3685)
Test sign function didn't properly pad R and S in the EC signature as per the PKCS#11 spec.

Fixes #3671.
2018-05-01 18:07:01 -07:00
Roland Bracewell Shoemaker 29c95f0aed Add a PKCS#11 key generation tool (#3163)
Tested against master SoftHSMv2 and relevant hardware.

Fixes #3125.
2017-10-30 16:09:28 -07:00