| Testing PKCS11 support |
| ---------------------- |
| |
| # Install SoftHSM and OpenSC |
| |
| I got SoftHSM via MacPorts, and OpenSC from https://github.com/OpenSC/OpenSC#downloads |
| |
| You need both; softhsm2-util cannot import certificates. |
| |
| # Initialize SoftHSM |
| |
| $ softhsm2-util --init-token --slot 0 --label "TestToken" --pin 1234 --so-pin 4567 |
| The token has been initialized and is reassigned to slot 2006661923 |
| |
| # Create a new RSA key and certificate |
| |
| $ openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -subj "/CN=MyCertTEST" -nodes |
| |
| # Import the RSA key pair into the SoftHSM token |
| |
| $ softhsm2-util --import key.pem --slot 2006661923 --label "testkey" --id 1212 --pin 1234 |
| |
| # Convert the certificate to DER and import it into SoftHSM token |
| |
| $ openssl x509 -in cert.pem -out cert.der -outform DER |
| $ pkcs11-tool --module /opt/local/lib/softhsm/libsofthsm2.so -l --id 1212 --label "testcert" -y cert -w cert.der --pin 1234 |
| |
| # Export the RSA public key convert to PEM, and show in SSH format |
| # (I'm sure this could be done simpler from the original key.pem, but what the heck.) |
| |
| pkcs11-tool --module /opt/local/lib/softhsm/libsofthsm2.so --slot 2006661923 --read-object --type pubkey --id 1212 -o key.der |
| openssl rsa -pubin -inform DER -in key.der -outform PEM -out key.pub.pem |
| ssh-keygen -f key.pub.pem -m pkcs8 -i |
| |
| # Install that public key at Gerrit (or your git server of choice) |
| |
| # Have an ~/.ssh/config with a host entry for your git server using the SoftHSM library as PKCS11 provider: |
| |
| Host gitserver |
| Hostname git.eclipse.org |
| Port 29418 |
| User ... |
| PKCS11Provider /opt/local/lib/softhsm/libsofthsm2.so |
| |
| # Fetch from your git server! When asked for the PIN, enter 1234. |