Vigtigt
Denne driver er stadig en tidlig Proof of Concept-implementering, som kun implementerer de funktioner, der er nødvendige for at drive TLS-servere som f.eks. en HTTPS-server.
Adgang til en NetHSM ved hjælp af PKCS#11-driveren#
Download PKCS#11-driveren til NetHSM.
Ændr konfigurationsfilen
p11nethsm.conf
i overensstemmelse med din opsætning (f.eks. adresse, operatørnavn) og gem den i$HOME/.nitrokey
,/etc/nitrokey/
, eller i den mappe, hvor dit program udføres.
Kryptering &; dekryptering#
Når du har oprettet en nøgle (her: ID 42) med den relevante mekanisme, kan du bruge den til kryptering og dekryptering, men først skal du oprette nøglen:
$ KEYID=42
$ HEXID=$(echo ${KEYID}'\c' | xxd -ps)
$ curl -s -X GET https://nethsmdemo.nitrokey.com/api/v1/keys/$KEYID/public.pem -o public.pem
Nu kan du kryptere:
$ echo 'NetHSM rulez!' | openssl pkeyutl -encrypt -pubin -inkey public.pem -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha512 -pkeyopt rsa_mgf1_md:sha512 -out encrypted.data
… Og dekrypterer:
$ pkcs11-tool --module p11nethsm.so -v --decrypt --mechanism RSA-PKCS-OAEP --input-file encrypted.data --id $HEXID --hash-algorithm SHA512
Underskrift#
Først opretter du nøglen igen:
$ KEYID=23
$ HEXID=$(echo ${KEYID}'\c' | xxd -ps)
$ curl -s -X GET https://nethsmdemo.nitrokey.com/api/v1/keys/$KEYID/public.pem -o public.pem
Når du har oprettet en nøgle (her: ID 23) med den relevante mekanisme, kan du bruge den til signering:
$ echo 'NetHSM rulez!' | pkcs11-tool --module p11nethsm.so -v --sign --mechanism SHA512-RSA-PKCS-PSS --output-file sig.data --id $HEXID
$ echo 'NetHSM rulez!' | openssl dgst -keyform PEM -verify public.pem -sha512 -sigopt rsa_padding_mode:pss -sigopt rsa_pss_saltlen:-1 -signature sig.data