diff --git a/source/_redirects/.htaccess b/source/_redirects/.htaccess
index 07027bb405..9b30326452 100644
--- a/source/_redirects/.htaccess
+++ b/source/_redirects/.htaccess
@@ -15,4 +15,184 @@
#=========
RedirectMatch 302 "(/[a-z][a-z])?/path/to/old_article.html$" "$1/path/to/new_article.html"
+#Nitrokey FIDO2
+RedirectMatch 301 "(/[a-z][a-z])?/fido2/(mac/|windows/|linux/)?2fa-nextcloud.html$" "$1/nitrokeys/features/fido2/nextcloud.html"
+RedirectMatch 301 "(/[a-z][a-z])?/fido2/(mac/|windows/|linux/)?2fa-odoo.html$" "$1/nitrokeys/features/u2f/odoo.html"
+RedirectMatch 301 "(/[a-z][a-z])?/fido2/index.html$" "$1/nitrokeys/fido2/index.html"
+RedirectMatch 301 "(/[a-z][a-z])?/fido2/faq.html$" "$1/nitrokeys/fido2/faq.html"
+RedirectMatch 301 "(/[a-z][a-z])?/fido2/(mac/|windows/|linux/)?firmware-update.html$" "$1/nitrokeys/fido2/firmware-update.html"
+RedirectMatch 301 "(/[a-z][a-z])?/fido2/(mac/|windows/|linux/)index.html$" "$1/nitrokeys/fido2/getting-started.html"
+RedirectMatch 301 "(/[a-z][a-z])?/fido2/(mac/|windows/|linux/)reset.html$" "$1/nitrokeys/fido2/reset.html"
+RedirectMatch 301 "(/[a-z][a-z])?/fido2/linux/desktop-login.html$" "$1/nitrokeys/features/u2f/desktop-login.html"
+RedirectMatch 301 "(/[a-z][a-z])?/fido2/windows/passwordless-microsoft.html$" "$1/nitrokeys/features/fido2/passwordless-microsoft.html"
+#Nitrokey Passkey
+RedirectMatch 301 "(/[a-z][a-z])?/nkpk/index.html$" "$1/nitrokeys/passkey/index.html"
+#Nitrokey HSM2 not done
+RedirectMatch 301 "(/[a-z][a-z])?/hsm/index.html$" "$1/nitrokeys/hsm/index.html"
+RedirectMatch 301 "(/[a-z][a-z])?/hsm/faq.html$" "$1/nitrokeys/hsm/faq.html"
+RedirectMatch 301 "(/[a-z][a-z])?/hsm/n-of-m-schemes.html$" "$1/nitrokeys/features/hsm/n-of-m-schemes.html"
+#Nitrokey U2F
+RedirectMatch 301 "(/[a-z][a-z])?/u2f/index.html$" "$1/nitrokeys/u2f/index.html"
+RedirectMatch 301 "(/[a-z][a-z])?/u2f/(mac/|windows/|linux/)index.html$" "$1/nitrokeys/u2f/getting-started.html"
+RedirectMatch 301 "(/[a-z][a-z])?/u2f/(mac/|windows/|linux/)?2fa-nextcloud.html$" "$1/nitrokeys/features/fido2/nextcloud.html"
+RedirectMatch 301 "(/[a-z][a-z])?/u2f/(mac/|windows/|linux/)?2fa-odoo.html$" "$1/nitrokeys/features/u2f/odoo.html"
+RedirectMatch 301 "(/[a-z][a-z])?/fido2/linux/desktop-login.html$" "$1/nitrokeys/features/u2f/desktop-login.html"
+#Nitrokey Storage
+RedirectMatch 301 "(/[a-z][a-z])?/storage/index.html$" "$1/nitrokeys/storage/index.html"
+RedirectMatch 301 "(/[a-z][a-z])?/storage/(mac/|windows/|linux/)?factory-reset.html$" "$1/nitrokeys/storage/factory-reset.html"
+RedirectMatch 301 "(/[a-z][a-z])?/storage/encrypted-mobile-storage.html$" "$1/nitrokeys/features/encrypted-storage/index.html"
+RedirectMatch 301 "(/[a-z][a-z])?/storage/faq.html$" "$1/nitrokeys/storage/faq.html"
+RedirectMatch 301 "(/[a-z][a-z])?/storage/hidden.html$" "$1/nitrokeys/features/hidden-storage/index.html"
+RedirectMatch 301 "(/[a-z][a-z])?/storage/(mac/|windows/|linux/)?firmware-update-manually.html$" "$1/nitrokeys/storage/firmware-update-manually.html"
+RedirectMatch 301 "(/[a-z][a-z])?/storage/(mac/|windows/|linux/)?firmware-update.html$" "$1/nitrokeys/storage/firmware-update.html"
+RedirectMatch 301 "(/[a-z][a-z])?/storage/(mac/|windows/|linux/)?2fa-nextcloud.html$" "$1/nitrokeys/features/totp/nextcloud.html"
+RedirectMatch 301 "(/[a-z][a-z])?/storage/(mac/|windows/|linux/)?2fa-odoo.html$" "$1/nitrokeys/features/u2f/odoo.html"
+RedirectMatch 301 "(/[a-z][a-z])?/storage/linux/desktop-login.html$" "$1/nitrokeys/features/u2f/desktop-login.html"
+RedirectMatch 301 "(/[a-z][a-z])?/storage/(mac/|windows/|linux/)index.html$" "$1/nitrokeys/storage/getting-started.html"
+RedirectMatch 301 "(/[a-z][a-z])?/storage/(mac/|windows/|linux/)smime-thunderbird.html$" "$1/nitrokeys/features/openpgp-card/smime/smime-thunderbird.html"
+RedirectMatch 301 "(/[a-z][a-z])?/storage/(mac/|windows/|linux/)smime-outlook.html$" "$1/nitrokeys/features/openpgp-card/smime/smime-outlook.html"
+RedirectMatch 301 "(/[a-z][a-z])?/storage/(mac/|windows/|linux/)smime.html$" "$1/nitrokeys/features/openpgp-card/smime/index.html"
+RedirectMatch 301 "(/[a-z][a-z])?/storage/(mac/|windows/|linux/)openpgp.html$" "$1/nitrokeys/features/openpgp-card/index.html"
+RedirectMatch 301 "(/[a-z][a-z])?/storage/(mac/|windows/|linux/)openpgp-thunderbird.html$" "$1/nitrokeys/features/openpgp-card/openpgp-thunderbird.html"
+RedirectMatch 301 "(/[a-z][a-z])?/storage/(mac/|windows/|linux/)openpgp-outlook.html$" "$1/nitrokeys/features/openpgp-card/openpgp-outlook.html"
+RedirectMatch 301 "(/[a-z][a-z])?/storage/(mac/|windows/|linux/)openpgp-keygen-on-device.html$" "$1/nitrokeys/features/openpgp-card/openpgp-keygen-on-device.html"
+RedirectMatch 301 "(/[a-z][a-z])?/storage/(mac/|windows/|linux/)openpgp-keygen-gpa.html$" "$1/nitrokeys/features/openpgp-card/openpgp-keygen-gpa.html"
+RedirectMatch 301 "(/[a-z][a-z])?/storage/(mac/|windows/|linux/)openpgp-keygen-backup.html$" "$1/nitrokeys/features/openpgp-card/openpgp-keygen-backup.html"
+RedirectMatch 301 "(/[a-z][a-z])?/storage/(mac/|windows/|linux/)openpgp-csp.html$" "$1/nitrokeys/features/openpgp-card/openpgp-csp.html"
+RedirectMatch 301 "(/[a-z][a-z])?/storage/windows/smart-policy.html$" "$1/nitrokeys/features/openpgp-card/desktop-login/smart-policy.html"
+RedirectMatch 301 "(/[a-z][a-z])?/storage/windows/putty.html$" "$1/nitrokeys/features/openpgp-card/ssh/putty.html"
+RedirectMatch 301 "(/[a-z][a-z])?/storage/(mac/|windows/|linux/)ssh.html$" "$1/nitrokeys/features/openpgp-card/ssh/index.html"
+RedirectMatch 301 "(/[a-z][a-z])?/storage/(mac/|windows/|linux/)otp.html$" "$1/nitrokeys/features/totp/index.html"
+RedirectMatch 301 "(/[a-z][a-z])?/storage/(mac/|windows/|linux/)hidden.html$" "$1/nitrokeys/features/hidden-storage/index.html"
+RedirectMatch 301 "(/[a-z][a-z])?/storage/(mac/|windows/|linux/)hard-disk-encryption.html$" "$1/nitrokeys/features/openpgp-card/hard-disk-encryption/index.html"
+RedirectMatch 301 "(/[a-z][a-z])?/storage/(mac/|windows/|linux/)disk-encryption-luks.html$" "$1/nitrokeys/features/openpgp-card/hard-disk-encryption/luks.html"
+RedirectMatch 301 "(/[a-z][a-z])?/storage/(mac/|windows/|linux/)gpa.html$" "$1/nitrokeys/features/openpgp-card/gpa.html"
+RedirectMatch 301 "(/[a-z][a-z])?/storage/(mac/|windows/|linux/)encrypted-mobile-storage.html$" "$1/nitrokeys/features/encrypted-storage/index.html"
+RedirectMatch 301 "(/[a-z][a-z])?/storage/(mac/|windows/|linux/)eid-authenticate.html$" "$1/nitrokeys/features/openpgp-card/eid.html"
+RedirectMatch 301 "(/[a-z][a-z])?/storage/(mac/|windows/|linux/)ecc.html$" "$1/nitrokeys/features/misc/ecc.html"
+RedirectMatch 301 "(/[a-z][a-z])?/storage/(mac/|windows/|linux/)change-pins.html$" "$1/nitrokeys/features/openpgp-card/change-pins.html"
+RedirectMatch 301 "(/[a-z][a-z])?/storage/(mac/|windows/|linux/)2fa-microsoft.html$" "$1/nitrokeys/features/totp/microsoft.html"
+RedirectMatch 301 "(/[a-z][a-z])?/storage/(mac/|windows/|linux/)2fa-google.html$" "$1/nitrokeys/features/totp/google.html"
+RedirectMatch 301 "(/[a-z][a-z])?/storage/(mac/|windows/|linux/)automatic-screen-lock.html$" "$1/nitrokeys/features/misc/automatic-screen-lock.html"
+RedirectMatch 301 "(/[a-z][a-z])?/storage/(mac/|windows/|linux/)certificate-authority.html$" "$1/nitrokeys/features/openpgp-card/certificate-authority.html"
+RedirectMatch 301 "(/[a-z][a-z])?/storage/(mac/|windows/|linux/)openvpn-easyrsa.html$" "$1/nitrokeys/features/openpgp-card/openvpn/easyrsa.html"
+RedirectMatch 301 "(/[a-z][a-z])?/storage/(mac/|windows/|linux/)stunnel.html$" "$1/nitrokeys/features/openpgp-card/stunnel.html"
+RedirectMatch 301 "(/[a-z][a-z])?/storage/(mac/|windows/|linux/)ipsec.html$" "$1/nitrokeys/features/openpgp-card/ipsec.html"
+RedirectMatch 301 "(/[a-z][a-z])?/storage/(mac/|windows/|linux/)login-with-pam.html$" "$1/nitrokeys/features/openpgp-card/desktop-login/pam.html"
+#Nitrokey Start
+RedirectMatch 301 "(/[a-z][a-z])?/start/index.html$" "$1/nitrokeys/start/index.html"
+RedirectMatch 301 "(/[a-z][a-z])?/start/(mac/|windows/|linux/)index.html$" "$1/nitrokeys/start/getting-started.html"
+RedirectMatch 301 "(/[a-z][a-z])?/start/faq.html$" "$1/nitrokeys/start/faq.html"
+RedirectMatch 301 "(/[a-z][a-z])?/start/(mac/|windows/|linux/)?factory-reset.html$" "$1/nitrokeys/start/factory-reset.html"
+RedirectMatch 301 "(/[a-z][a-z])?/start/(mac/|windows/|linux/)smime-thunderbird.html$" "$1/nitrokeys/features/openpgp-card/smime/smime-thunderbird.html"
+RedirectMatch 301 "(/[a-z][a-z])?/start/(mac/|windows/|linux/)smime-outlook.html$" "$1/nitrokeys/features/openpgp-card/smime/smime-outlook.html"
+RedirectMatch 301 "(/[a-z][a-z])?/start/(mac/|windows/|linux/)smime.html$" "$1/nitrokeys/features/openpgp-card/smime/index.html"
+RedirectMatch 301 "(/[a-z][a-z])?/start/(mac/|windows/|linux/)openpgp.html$" "$1/nitrokeys/features/openpgp-card/index.html"
+RedirectMatch 301 "(/[a-z][a-z])?/start/(mac/|windows/|linux/)openpgp-thunderbird.html$" "$1/nitrokeys/features/openpgp-card/openpgp-thunderbird.html"
+RedirectMatch 301 "(/[a-z][a-z])?/start/(mac/|windows/|linux/)openpgp-outlook.html$" "$1/nitrokeys/features/openpgp-card/openpgp-outlook.html"
+RedirectMatch 301 "(/[a-z][a-z])?/start/(mac/|windows/|linux/)openpgp-keygen-on-device.html$" "$1/nitrokeys/features/openpgp-card/openpgp-keygen-on-device.html"
+RedirectMatch 301 "(/[a-z][a-z])?/start/(mac/|windows/|linux/)openpgp-keygen-gpa.html$" "$1/nitrokeys/features/openpgp-card/openpgp-keygen-gpa.html"
+RedirectMatch 301 "(/[a-z][a-z])?/start/(mac/|windows/|linux/)openpgp-keygen-backup.html$" "$1/nitrokeys/features/openpgp-card/openpgp-keygen-backup.html"
+RedirectMatch 301 "(/[a-z][a-z])?/start/(mac/|windows/|linux/)openpgp-csp.html$" "$1/nitrokeys/features/openpgp-card/openpgp-csp.html"
+RedirectMatch 301 "(/[a-z][a-z])?/start/windows/putty.html$" "$1/nitrokeys/features/openpgp-card/ssh/putty.html"
+RedirectMatch 301 "(/[a-z][a-z])?/start/(mac/|windows/|linux/)ssh.html$" "$1/nitrokeys/features/openpgp-card/ssh/index.html"
+RedirectMatch 301 "(/[a-z][a-z])?/start/(mac/|windows/|linux/)gpa.html$" "$1/nitrokeys/features/openpgp-card/gpa.html"
+RedirectMatch 301 "(/[a-z][a-z])?/start/(mac/|windows/|linux/)stunnel.html$" "$1/nitrokeys/features/openpgp-card/stunnel.html"
+RedirectMatch 301 "(/[a-z][a-z])?/start/(mac/|windows/|linux/)ipsec.html$" "$1/nitrokeys/features/openpgp-card/ipsec.html"
+RedirectMatch 301 "(/[a-z][a-z])?/start/(mac/|windows/|linux/)login-with-pam.html$" "$1/nitrokeys/features/openpgp-card/desktop-login/pam.html"
+RedirectMatch 301 "(/[a-z][a-z])?/start/linux/firmware-update.html$" "$1/nitrokeys/start/firmware-update.html"
+RedirectMatch 301 "(/[a-z][a-z])?/start/(mac/|windows/|linux/)?setting-kdf-do.html$" "$1/nitrokeys/start/setting-kdf-do.html"
+RedirectMatch 301 "(/[a-z][a-z])?/start/(mac/|windows/|linux/)?multiple-identities.html$" "$1/nitrokeys/start/multiple-identities.html"
+#Nitrokey Pro
+RedirectMatch 301 "(/[a-z][a-z])?/pro/index.html$" "$1/nitrokeys/pro/index.html"
+RedirectMatch 301 "(/[a-z][a-z])?/pro/(mac/|windows/|linux/)index.html$" "$1/nitrokeys/pro/getting-started.html"
+RedirectMatch 301 "(/[a-z][a-z])?/pro/faq.html$" "$1/nitrokeys/pro/faq.html"
+RedirectMatch 301 "(/[a-z][a-z])?/pro/(mac/|windows/|linux/)?factory-reset.html$" "$1/nitrokeys/pro/factory-reset.html"
+RedirectMatch 301 "(/[a-z][a-z])?/pro/(mac/|windows/|linux/)?firmware-update.html$" "$1/nitrokeys/pro/firmware-update.html"
+RedirectMatch 301 "(/[a-z][a-z])?/pro/(mac/|windows/|linux/)smime-thunderbird.html$" "$1/nitrokeys/features/openpgp-card/smime/smime-thunderbird.html"
+RedirectMatch 301 "(/[a-z][a-z])?/pro/(mac/|windows/|linux/)smime-outlook.html$" "$1/nitrokeys/features/openpgp-card/smime/smime-outlook.html"
+RedirectMatch 301 "(/[a-z][a-z])?/pro/(mac/|windows/|linux/)smime.html$" "$1/nitrokeys/features/openpgp-card/smime/index.html"
+RedirectMatch 301 "(/[a-z][a-z])?/pro/(mac/|windows/|linux/)openpgp.html$" "$1/nitrokeys/features/openpgp-card/index.html"
+RedirectMatch 301 "(/[a-z][a-z])?/pro/(mac/|windows/|linux/)openpgp-thunderbird.html$" "$1/nitrokeys/features/openpgp-card/openpgp-thunderbird.html"
+RedirectMatch 301 "(/[a-z][a-z])?/pro/(mac/|windows/|linux/)openpgp-outlook.html$" "$1/nitrokeys/features/openpgp-card/openpgp-outlook.html"
+RedirectMatch 301 "(/[a-z][a-z])?/pro/(mac/|windows/|linux/)openpgp-keygen-on-device.html$" "$1/nitrokeys/features/openpgp-card/openpgp-keygen-on-device.html"
+RedirectMatch 301 "(/[a-z][a-z])?/pro/(mac/|windows/|linux/)openpgp-keygen-gpa.html$" "$1/nitrokeys/features/openpgp-card/openpgp-keygen-gpa.html"
+RedirectMatch 301 "(/[a-z][a-z])?/pro/(mac/|windows/|linux/)openpgp-keygen-backup.html$" "$1/nitrokeys/features/openpgp-card/openpgp-keygen-backup.html"
+RedirectMatch 301 "(/[a-z][a-z])?/pro/(mac/|windows/|linux/)openpgp-csp.html$" "$1/nitrokeys/features/openpgp-card/openpgp-csp.html"
+RedirectMatch 301 "(/[a-z][a-z])?/pro/windows/putty.html$" "$1/nitrokeys/features/openpgp-card/ssh/putty.html"
+RedirectMatch 301 "(/[a-z][a-z])?/pro/(mac/|windows/|linux/)?ssh.html$" "$1/nitrokeys/features/openpgp-card/ssh/index.html"
+RedirectMatch 301 "(/[a-z][a-z])?/pro/(mac/|windows/|linux/)?gpa.html$" "$1/nitrokeys/features/openpgp-card/gpa.html"
+RedirectMatch 301 "(/[a-z][a-z])?/pro/(mac/|windows/|linux/)stunnel.html$" "$1/nitrokeys/features/openpgp-card/stunnel.html"
+RedirectMatch 301 "(/[a-z][a-z])?/pro/(mac/|windows/|linux/)ipsec.html$" "$1/nitrokeys/features/openpgp-card/ipsec.html"
+RedirectMatch 301 "(/[a-z][a-z])?/pro/(mac/|windows/|linux/)login-with-pam.html$" "$1/nitrokeys/features/openpgp-card/desktop-login/pam.html"
+RedirectMatch 301 "(/[a-z][a-z])?/pro/(mac/|windows/|linux/)openvpn-easyrsa.html$" "$1/nitrokeys/features/openpgp-card/openvpn/easyrsa.html"
+RedirectMatch 301 "(/[a-z][a-z])?/pro/(mac/|windows/|linux/)openvpn-viscosity.html$" "$1/nitrokeys/features/openpgp-card/openvpn/viscosity.html"
+RedirectMatch 301 "(/[a-z][a-z])?/pro/(mac/|windows/|linux/)change-pins.html$" "$1/nitrokeys/features/openpgp-card/change-pins.html"
+RedirectMatch 301 "(/[a-z][a-z])?/pro/(mac/|windows/|linux/)certificate-authority.html$" "$1/nitrokeys/features/openpgp-card/certificate-authority.html"
+RedirectMatch 301 "(/[a-z][a-z])?/pro/(mac/|windows/|linux/)ecc.html$" "$1/nitrokeys/features/misc/ecc.html"
+RedirectMatch 301 "(/[a-z][a-z])?/pro/(mac/|windows/|linux/)eid-authenticate.html$" "$1/nitrokeys/features/openpgp-card/eid.html"
+RedirectMatch 301 "(/[a-z][a-z])?/pro/windows/smart-policy.html$" "$1/nitrokeys/features/openpgp-card/desktop-login/smart-policy.html"
+RedirectMatch 301 "(/[a-z][a-z])?/pro/(mac/|windows/|linux/)hard-disk-encryption.html$" "$1/nitrokeys/features/openpgp-card/hard-disk-encryption/index.html"
+RedirectMatch 301 "(/[a-z][a-z])?/pro/(mac/|windows/|linux/)disk-encryption-luks.html$" "$1/nitrokeys/features/openpgp-card/hard-disk-encryption/luks.html"
+RedirectMatch 301 "(/[a-z][a-z])?/pro/(mac/|windows/|linux/)otp.html$" "$1/nitrokeys/features/totp/index.html"
+RedirectMatch 301 "(/[a-z][a-z])?/pro/(mac/|windows/|linux/)2fa-microsoft.html$" "$1/nitrokeys/features/totp/microsoft.html"
+RedirectMatch 301 "(/[a-z][a-z])?/pro/(mac/|windows/|linux/)2fa-google.html$" "$1/nitrokeys/features/totp/google.html"
+RedirectMatch 301 "(/[a-z][a-z])?/pro/(mac/|windows/|linux/)?2fa-nextcloud.html$" "$1/nitrokeys/features/fido2/nextcloud.html"
+RedirectMatch 301 "(/[a-z][a-z])?/pro/(mac/|windows/|linux/)?2fa-odoo.html$" "$1/nitrokeys/features/u2f/odoo.html"
+RedirectMatch 301 "(/[a-z][a-z])?/pro/(mac/|windows/|linux/)automatic-screen-lock.html$" "$1/nitrokeys/features/misc/automatic-screen-lock.html"
+#Nitrokey 3
+RedirectMatch 301 "(/[a-z][a-z])?/nitrokey3/index.html$" "$1/nitrokeys/nitrokey3/index.html"
+RedirectMatch 301 "(/[a-z][a-z])?/nitrokey3/(mac/|windows/|linux/)index.html$" "$1/nitrokeys/nitrokey3/getting-started.html"
+RedirectMatch 301 "(/[a-z][a-z])?/nitrokey3/faq.html$" "$1/nitrokeys/nitrokey3/faq.html"
+RedirectMatch 301 "(/[a-z][a-z])?/nitrokey3/features.html$" "$1/nitrokeys/nitrokey3/overview.html"
+RedirectMatch 301 "(/[a-z][a-z])?/nitrokey3/(mac/|windows/|linux/)?firmware-update.html$" "$1/nitrokeys/nitrokey3/firmware-update.html"
+RedirectMatch 301 "(/[a-z][a-z])?/nitrokey3/(mac/|windows/|linux/)?adsk.html$" "$1/nitrokeys/nitrokey3/adsk.html"
+RedirectMatch 301 "(/[a-z][a-z])?/nitrokey3/(mac/|windows/|linux/)?reset.html$" "$1/nitrokeys/nitrokey3/reset.html"
+RedirectMatch 301 "(/[a-z][a-z])?/nitrokey3/(mac/|windows/|linux/)?set-pins.html$" "$1/nitrokeys/nitrokey3/set-pins.html"
+RedirectMatch 301 "(/[a-z][a-z])?/nitrokey3/(mac/|windows/|linux/)?troubleshooting.html$" "$1/nitrokeys/nitrokey3/troubleshooting.html"
+RedirectMatch 301 "(/[a-z][a-z])?/nitrokey3/(mac/|windows/|linux/)?nitropy.html$" "$1/nitrokeys/nitrokey3/nitropy.html"
+RedirectMatch 301 "(/[a-z][a-z])?/nitrokey3/shared/main.html$" "$1/nitrokeys/nitrokey3/getting-started.html"
+RedirectMatch 301 "(/[a-z][a-z])?/nitrokey3/linux/firmware-update-qubes.html$" "$1/nitrokeys/nitrokey3/firmware-update-qubes.html"
+RedirectMatch 301 "(/[a-z][a-z])?/nitrokey3/(mac/|windows/|linux/)?2fa-odoo.html$" "$1/nitrokeys/features/u2f/odoo.html"
+RedirectMatch 301 "(/[a-z][a-z])?/nitrokey3/linux/desktop-login.html$" "$1/nitrokeys/features/u2f/desktop-login.html"
+RedirectMatch 301 "(/[a-z][a-z])?/nitrokey3/linux/fedora-gnupg-configuration.html$" "$1/nitrokeys/features/openpgp-card/fedora-gnupg-configuration.html"
+RedirectMatch 301 "(/[a-z][a-z])?/nitrokey3/windows/passwordless-microsoft.html$" "$1/nitrokeys/features/fido2/passwordless-microsoft.html"
+RedirectMatch 301 "(/[a-z][a-z])?/nitrokey3/(mac/|windows/|linux/)keepassxc.html$" "$1/nitrokeys/features/password-safe/index.html"
+RedirectMatch 301 "(/[a-z][a-z])?/nitrokey3/(mac/|windows/|linux/)smime-thunderbird.html$" "$1/nitrokeys/features/openpgp-card/smime/smime-thunderbird.html"
+RedirectMatch 301 "(/[a-z][a-z])?/nitrokey3/(mac/|windows/|linux/)smime-outlook.html$" "$1/nitrokeys/features/openpgp-card/smime/smime-outlook.html"
+RedirectMatch 301 "(/[a-z][a-z])?/nitrokey3/(mac/|windows/|linux/)smime.html$" "$1/nitrokeys/features/openpgp-card/smime/index.html"
+RedirectMatch 301 "(/[a-z][a-z])?/nitrokey3/(mac/|windows/|linux/)openpgp.html$" "$1/nitrokeys/features/openpgp-card/index.html"
+RedirectMatch 301 "(/[a-z][a-z])?/nitrokey3/(mac/|windows/|linux/)openpgp-thunderbird.html$" "$1/nitrokeys/features/openpgp-card/openpgp-thunderbird.html"
+RedirectMatch 301 "(/[a-z][a-z])?/nitrokey3/(mac/|windows/|linux/)openpgp-outlook.html$" "$1/nitrokeys/features/openpgp-card/openpgp-outlook.html"
+RedirectMatch 301 "(/[a-z][a-z])?/nitrokey3/(mac/|windows/|linux/)openpgp-keygen-on-device.html$" "$1/nitrokeys/features/openpgp-card/openpgp-keygen-on-device.html"
+RedirectMatch 301 "(/[a-z][a-z])?/nitrokey3/(mac/|windows/|linux/)openpgp-keygen-gpa.html$" "$1/nitrokeys/features/openpgp-card/openpgp-keygen-gpa.html"
+RedirectMatch 301 "(/[a-z][a-z])?/nitrokey3/(mac/|windows/|linux/)openpgp-keygen-backup.html$" "$1/nitrokeys/features/openpgp-card/openpgp-keygen-backup.html"
+RedirectMatch 301 "(/[a-z][a-z])?/nitrokey3/(mac/|windows/|linux/)openpgp-csp.html$" "$1/nitrokeys/features/openpgp-card/openpgp-csp.html"
+RedirectMatch 301 "(/[a-z][a-z])?/nitrokey3/(mac/|windows/|linux/)openpgp-uif.html$" "$1/nitrokeys/features/openpgp-card/uif.html"
+RedirectMatch 301 "(/[a-z][a-z])?/nitrokey3/windows/piv/index.html$" "$1/nitrokeys/features/piv/index.html"
+RedirectMatch 301 "(/[a-z][a-z])?/nitrokey3/windows/piv/access_control.html$" "$1/nitrokeys/features/piv/access_control.html"
+RedirectMatch 301 "(/[a-z][a-z])?/nitrokey3/windows/piv/certificate-management.html$" "$1/nitrokeys/features/piv/certificate-management.html"
+RedirectMatch 301 "(/[a-z][a-z])?/nitrokey3/windows/piv/factory_reset.html$" "$1/nitrokeys/features/piv/factory_reset.html"
+RedirectMatch 301 "(/[a-z][a-z])?/nitrokey3/windows/piv/key_management.html$" "$1/nitrokeys/features/piv/key_management.html"
+RedirectMatch 301 "(/[a-z][a-z])?/nitrokey3/windows/piv/guides/index.html$" "$1/nitrokeys/features/piv/guides/index.html"
+RedirectMatch 301 "(/[a-z][a-z])?/nitrokey3/windows/piv/guides/client_logon_with_active_directory.html$" "$1/nitrokeys/features/piv/guides/client_logon_with_active_directory.html"
+#Nitrokey HSM
+RedirectMatch 301 "(/[a-z][a-z])?/hsm/(mac/|windows/|linux/)index.html$" "$1/nitrokeys/hsm/getting-started.html"
+RedirectMatch 301 "(/[a-z][a-z])?/hsm/index.html$" "$1/nitrokeys/hsm/index.html"
+RedirectMatch 301 "(/[a-z][a-z])?/hsm/faq.html$" "$1/nitrokeys/hsm/faq.html"
+RedirectMatch 301 "(/[a-z][a-z])?/hsm/(mac/|windows/|linux/)smime.html$" "$1/nitrokeys/features/openpgp-card/smime/index.html"
+RedirectMatch 301 "(/[a-z][a-z])?/hsm/(mac/|windows/|linux/)smime-thunderbird.html$" "$1/nitrokeys/features/openpgp-card/smime/smime-thunderbird.html"
+RedirectMatch 301 "(/[a-z][a-z])?/hsm/(mac/|windows/|linux/)smime-outlook.html$" "$1/nitrokeys/features/openpgp-card/smime/smime-outlook.html"
+RedirectMatch 301 "(/[a-z][a-z])?/hsm/(mac/|windows/|linux/)pkcs11-url.html$" "$1/nitrokeys/features/hsm/pkcs11-url.html"
+RedirectMatch 301 "(/[a-z][a-z])?/hsm/(mac/|windows/|linux/)import-keys-certs.html$" "$1/nitrokeys/features/hsm/import-keys-certs.html"
+RedirectMatch 301 "(/[a-z][a-z])?/hsm/(mac/|windows/|linux/)certificate-authority.html$" "$1/nitrokeys/features/openpgp-card/certificate-authority.html"
+RedirectMatch 301 "(/[a-z][a-z])?/hsm/(mac/|windows/|linux/)apache2-tls.html$" "$1/nitrokeys/features/hsm/apache2-tls.html"
+RedirectMatch 301 "(/[a-z][a-z])?/hsm/windows/smart-policy.html$" "$1/nitrokeys/features/openpgp-card/desktop-login/smart-policy.html"
+RedirectMatch 301 "(/[a-z][a-z])?/hsm/(mac/|windows/|linux/)?n-of-m-schemes.html$" "$1/nitrokeys/features/hsm/n-of-m-schemes.html"
+RedirectMatch 301 "(/[a-z][a-z])?/hsm/(mac/|windows/|linux/)hard-disk-encryption.html$" "$1/nitrokeys/features/openpgp-card/hard-disk-encryption/index.html"
+RedirectMatch 301 "(/[a-z][a-z])?/hsm/(mac/|windows/|linux/)ipsec.html$" "$1/nitrokeys/features/openpgp-card/ipsec.html"
+RedirectMatch 301 "(/[a-z][a-z])?/hsm/(mac/|windows/|linux/)gpa.html$" "$1/nitrokeys/features/openpgp-card/gpa.html"
+RedirectMatch 301 "(/[a-z][a-z])?/hsm/(mac/|windows/|linux/)stunnel.html$" "$1/nitrokeys/features/openpgp-card/stunnel.html"
+RedirectMatch 301 "(/[a-z][a-z])?/hsm/(mac/|windows/|linux/)automatic-screen-lock.html$" "$1/nitrokeys/features/misc/automatic-screen-lock.html"
+RedirectMatch 301 "(/[a-z][a-z])?/hsm/(mac/|windows/|linux/)dnssec.html$" "$1/nitrokeys/features/hsm/dnssec.html"
diff --git a/source/_static/css/custom.css b/source/_static/css/custom.css
index a7d799f203..767623efe5 100644
--- a/source/_static/css/custom.css
+++ b/source/_static/css/custom.css
@@ -718,3 +718,14 @@ article ul li {
#breadcrumbs a:last-child:after {
display: none;
}
+
+.products-table td p {
+ text-align: center;
+ font-size: 1.25em !important;
+ margin: 0 !important;
+}
+.products-table td {
+ padding: 0 !important;
+}
+
+
diff --git a/source/components/fido2/2fa-nextcloud.rst b/source/components/fido2/2fa-nextcloud.rst
deleted file mode 100644
index 2f5bdee469..0000000000
--- a/source/components/fido2/2fa-nextcloud.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-
-These are the basic steps for registering the Nitrokey FIDO2 as a second factor or setting up passwordless login of a Nextcloud account.
-
-.. raw:: html
-
-
-
diff --git a/source/components/fido2/index.rst b/source/components/fido2/index.rst
deleted file mode 100644
index 37bfb22c4d..0000000000
--- a/source/components/fido2/index.rst
+++ /dev/null
@@ -1,23 +0,0 @@
-Nitrokey FIDO2
-==============
-
-.. contents:: :local:
-
-First check the:
-
-.. toctree::
- :maxdepth: 1
- :glob:
-
- Frequently Asked Questions
-
-or choose your operating system:
-
-.. toctree::
- :maxdepth: 1
- :glob:
-
- Windows
- macOS
- Linux
-
diff --git a/source/components/fido2/linux/2fa-nextcloud.rst b/source/components/fido2/linux/2fa-nextcloud.rst
deleted file mode 100644
index d71d6f6144..0000000000
--- a/source/components/fido2/linux/2fa-nextcloud.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-Two-Factor Authentication And Passwordless Login For Nextcloud Accounts
-=======================================================================
-
-.. include:: ../2fa-nextcloud.rst
diff --git a/source/components/fido2/linux/2fa-odoo.rst b/source/components/fido2/linux/2fa-odoo.rst
deleted file mode 100644
index 374fbfa5dc..0000000000
--- a/source/components/fido2/linux/2fa-odoo.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../2fa-odoo.rst.inc
diff --git a/source/components/fido2/linux/firmware-update.rst b/source/components/fido2/linux/firmware-update.rst
deleted file mode 100644
index a24e2be178..0000000000
--- a/source/components/fido2/linux/firmware-update.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../shared/firmware-update.rst.inc
diff --git a/source/components/fido2/linux/index.rst b/source/components/fido2/linux/index.rst
deleted file mode 100644
index 7a78f34194..0000000000
--- a/source/components/fido2/linux/index.rst
+++ /dev/null
@@ -1,26 +0,0 @@
-FIDO2 With Linux
-================
-
-.. contents:: :local:
-
-.. toctree::
- :maxdepth: 1
- :glob:
- :hidden:
-
- *
-
-.. include:: ../shared/index-content1.rst.inc
-
-Troubleshooting
----------------
-
-If the Nitrokey is not detected, proceed the following:
-
-1. Copy this file
- `41-nitrokey.rules `__
- to ``/etc/udev/rules.d/``. In very rare cases, the system will need
- the `older
- version `__
- of this file.
-2. Restart udev via ``sudo service udev restart`` or ``udevadm control --reload-rules && udevadm trigger`` if you are using Fedora.
diff --git a/source/components/fido2/linux/reset.rst b/source/components/fido2/linux/reset.rst
deleted file mode 100644
index fdfea9ff6b..0000000000
--- a/source/components/fido2/linux/reset.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../shared/index-content2.rst.inc
diff --git a/source/components/fido2/mac/2fa-nextcloud.rst b/source/components/fido2/mac/2fa-nextcloud.rst
deleted file mode 100644
index d71d6f6144..0000000000
--- a/source/components/fido2/mac/2fa-nextcloud.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-Two-Factor Authentication And Passwordless Login For Nextcloud Accounts
-=======================================================================
-
-.. include:: ../2fa-nextcloud.rst
diff --git a/source/components/fido2/mac/2fa-odoo.rst b/source/components/fido2/mac/2fa-odoo.rst
deleted file mode 100644
index 374fbfa5dc..0000000000
--- a/source/components/fido2/mac/2fa-odoo.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../2fa-odoo.rst.inc
diff --git a/source/components/fido2/mac/firmware-update.rst b/source/components/fido2/mac/firmware-update.rst
deleted file mode 100644
index a24e2be178..0000000000
--- a/source/components/fido2/mac/firmware-update.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../shared/firmware-update.rst.inc
diff --git a/source/components/fido2/mac/index.rst b/source/components/fido2/mac/index.rst
deleted file mode 100644
index 553cd2c90f..0000000000
--- a/source/components/fido2/mac/index.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-FIDO2 With macOS
-================
-
-.. contents:: :local:
-
-.. toctree::
- :maxdepth: 1
- :glob:
- :hidden:
-
- *
-
-.. include:: ../shared/index-content1.rst.inc
diff --git a/source/components/fido2/mac/reset.rst b/source/components/fido2/mac/reset.rst
deleted file mode 100644
index fdfea9ff6b..0000000000
--- a/source/components/fido2/mac/reset.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../shared/index-content2.rst.inc
diff --git a/source/components/fido2/shared/index-content2.rst.inc b/source/components/fido2/shared/index-content2.rst.inc
deleted file mode 100644
index 53e137388d..0000000000
--- a/source/components/fido2/shared/index-content2.rst.inc
+++ /dev/null
@@ -1,17 +0,0 @@
-Nitrokey Reset
---------------
-
-.. contents:: :local:
-
-Factory Reset operation regenerates the secret material stored on the Nitrokey FIDO U2F / Nitrokey FIDO2, which makes it a completely new key logic-side. New owner cannot use it to login to account of the previous one. In case of the FIDO2 Resident Keys the material is erased.
-
-To avoid accidental and malicious reset of the Nitrokey, the required
-touch confirmation time for the FIDO2 reset operation is longer and with
-a distinct LED behavior (red LED light) than normal operations. To reset
-the Nitrokey FIDO2, confirm by touching the touch button for at least 5
-seconds until the green or blue LED lights up.
-
-Nitrokey FIDO2 could be reset by:
-
-* pynitrokey tool: ``nitropy fido2 reset`` (requires Administrator rights to execute)
-* Google Chrome: `Manage security keys` via the direct link: `chrome://settings/securityKeys`
diff --git a/source/components/fido2/windows/2fa-nextcloud.rst b/source/components/fido2/windows/2fa-nextcloud.rst
deleted file mode 100644
index d71d6f6144..0000000000
--- a/source/components/fido2/windows/2fa-nextcloud.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-Two-Factor Authentication And Passwordless Login For Nextcloud Accounts
-=======================================================================
-
-.. include:: ../2fa-nextcloud.rst
diff --git a/source/components/fido2/windows/2fa-odoo.rst b/source/components/fido2/windows/2fa-odoo.rst
deleted file mode 100644
index 374fbfa5dc..0000000000
--- a/source/components/fido2/windows/2fa-odoo.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../2fa-odoo.rst.inc
diff --git a/source/components/fido2/windows/firmware-update.rst b/source/components/fido2/windows/firmware-update.rst
deleted file mode 100644
index a24e2be178..0000000000
--- a/source/components/fido2/windows/firmware-update.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../shared/firmware-update.rst.inc
diff --git a/source/components/fido2/windows/images/enabling-u2f-on-firefox/1.png b/source/components/fido2/windows/images/enabling-u2f-on-firefox/1.png
deleted file mode 100644
index 150e64d2d6..0000000000
Binary files a/source/components/fido2/windows/images/enabling-u2f-on-firefox/1.png and /dev/null differ
diff --git a/source/components/fido2/windows/index.rst b/source/components/fido2/windows/index.rst
deleted file mode 100644
index cb732798f3..0000000000
--- a/source/components/fido2/windows/index.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-Nitrokey FIDO2 With Windows
-===========================
-
-.. contents:: :local:
-
-.. toctree::
- :maxdepth: 1
- :glob:
- :hidden:
-
- *
-
-.. include:: ../shared/index-content1.rst.inc
diff --git a/source/components/hsm/ipsec.rst.inc b/source/components/hsm/ipsec.rst.inc
deleted file mode 100644
index 4fe4c78568..0000000000
--- a/source/components/hsm/ipsec.rst.inc
+++ /dev/null
@@ -1,46 +0,0 @@
-.. contents:: :local:
-
-`Strong Swan `__ works using the `PKCS#11 driver `__. Basically follow these steps:
-
-1. Generate a key on Nitrokey via pkcs11-tool. In this example it's a 4096 bit RSA key.
-
-.. code-block:: bash
-
- $ pkcs11-tool --module /usr/lib/x86_64-linux-gnu/pkcs11/opensc-pkcs11.so -l -k --key-type rsa:4096 --id 10 --label 'Staging Access'
-
-2. Generate a certificate signing request via openssl + pkcs11 module
-
-.. code-block:: bash
-
- $ openssl
- OpenSSL> engine dynamic -pre SO_PATH:/usr/lib/x86_64-linux-gnu/engines-1.1/pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:/usr/lib/x86_64-linux-gnu/pkcs11/opensc-pkcs11.so
- OpenSSL> req -engine pkcs11 -sha256 -new -key id_10 -keyform engine -out user@email.com-staging-cert.csr -subj '/C=GB/L=Cambridge/O=Organization/OU=Staging Access/CN=user@email.com/emailAddress=user@email.com'
-
-3. Sign the certificate with your certificate authority
-
-4. Convert the certificate to DER
-
-.. code-block:: bash
-
- $ openssl x509 -in user@email.com-staging-cert.csr -out user@email.com-staging-cert.der -outform DER
-
-5. Import the certificate into the Nitrokey via pkcs11-tool
-
-.. code-block:: bash
-
- $ pkcs11-tool --module /usr/lib/x86_64-linux-gnu/pkcs11/opensc-pkcs11.so -l -y cert -w user@email.com-staging-cert.der --id 10 --label 'Staging Access'
-
-6. Configure Strongswan to load opensc-pkcs11 module then to load the certificate on Nitrokey. Edit /etc/strongswan.d/charon/pkcs11.conf and add the following module:
-
-.. code-block:: bash
-
- modules {
- Nitrokey {
- path = /usr/lib/x86_64-linux-gnu/pkcs11/opensc-pkcs11.so
- }
- }
-
-
-7. Initiate the VPN connection via IPSec/Strongswan, then prompt for Nitrokey PIN
-
-8. VPN is now connected
diff --git a/source/components/hsm/linux/apache2-tls.rst b/source/components/hsm/linux/apache2-tls.rst
deleted file mode 100644
index 9d6b689cb1..0000000000
--- a/source/components/hsm/linux/apache2-tls.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-.. include:: ../apache2-tls.rst.inc
-
diff --git a/source/components/hsm/linux/automatic-screen-lock.rst b/source/components/hsm/linux/automatic-screen-lock.rst
deleted file mode 100644
index d8f8332ad1..0000000000
--- a/source/components/hsm/linux/automatic-screen-lock.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../pro/linux/automatic-screen-lock.rst
diff --git a/source/components/hsm/linux/certificate-authority.rst b/source/components/hsm/linux/certificate-authority.rst
deleted file mode 100644
index d414fc892f..0000000000
--- a/source/components/hsm/linux/certificate-authority.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../certificate-authority.rst.inc
diff --git a/source/components/hsm/linux/gpa.rst b/source/components/hsm/linux/gpa.rst
deleted file mode 100644
index 398ae468bc..0000000000
--- a/source/components/hsm/linux/gpa.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../pro/gpa.rst
diff --git a/source/components/hsm/linux/hard-disk-encryption.rst b/source/components/hsm/linux/hard-disk-encryption.rst
deleted file mode 100644
index 95e1694368..0000000000
--- a/source/components/hsm/linux/hard-disk-encryption.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../pro/linux/hard-disk-encryption.rst
diff --git a/source/components/hsm/linux/import-keys-certs.rst b/source/components/hsm/linux/import-keys-certs.rst
deleted file mode 100644
index 95ee7978a4..0000000000
--- a/source/components/hsm/linux/import-keys-certs.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-.. include:: ../import-keys-certs.rst.inc
-
diff --git a/source/components/hsm/linux/index.rst b/source/components/hsm/linux/index.rst
deleted file mode 100644
index edb30900b2..0000000000
--- a/source/components/hsm/linux/index.rst
+++ /dev/null
@@ -1,30 +0,0 @@
-Nitrokey HSM with GNU/Linux
-===========================
-
-.. contents:: :local:
-
-.. toctree::
- :maxdepth: 1
- :glob:
- :hidden:
-
- *
-
-1. Install `OpenSC `__. You need
- at least version 0.19. You can find recent builds for debian-based
- systems like Ubuntu
- `here `__ if your system
- does not have the newest version of OpenSC. Alternatively, install
- `this `__
- driver (`source `__).
-2. Define SO-PIN and PIN of your own choices. See `these
- instructions `__.
- Afterwards you can begin to `generate new
- keys `__.
-
-Your Nitrokey is now ready to use.
-
-* There is `nitrotool `__ as a more comfortable frontend to OpenSC. (hsmwiz)
-* Embedded Systems: For systems with minimal memory footprint a read/only PKCS#11 module is provided by the `sc-hsm-embedded `__ project.
-* `This PKCS#11 module `__ is useful for deployments where key generation at the user's workplace is not required. The PKCS#11 module also supports major electronic signature cards available in the German market.
-* OpenSCDP: The SmartCard-HSM is fully integrated with `OpenSCDP `__, the open smart card development platform. See the `public support scripts `__ for details.
diff --git a/source/components/hsm/linux/ipsec.rst b/source/components/hsm/linux/ipsec.rst
deleted file mode 100644
index 4e0695fd04..0000000000
--- a/source/components/hsm/linux/ipsec.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-IPsec
-=====
-
-.. include:: ../ipsec.rst.inc
diff --git a/source/components/hsm/linux/n-of-m-schemes.rst b/source/components/hsm/linux/n-of-m-schemes.rst
deleted file mode 100644
index 37e1d8d430..0000000000
--- a/source/components/hsm/linux/n-of-m-schemes.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-N-of-m Schemes
-==============
-
-.. include:: ../n-of-m-schemes.rst
-
diff --git a/source/components/hsm/linux/pkcs11-url.rst b/source/components/hsm/linux/pkcs11-url.rst
deleted file mode 100644
index 5ad8f40b7a..0000000000
--- a/source/components/hsm/linux/pkcs11-url.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-.. include:: ../pkcs11-url.rst.inc
-
diff --git a/source/components/hsm/linux/smime-outlook.rst b/source/components/hsm/linux/smime-outlook.rst
deleted file mode 100644
index acd45a24a9..0000000000
--- a/source/components/hsm/linux/smime-outlook.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../pro/smime-outlook.rst.inc
diff --git a/source/components/hsm/linux/smime-thunderbird.rst b/source/components/hsm/linux/smime-thunderbird.rst
deleted file mode 100644
index 4ae43d43ba..0000000000
--- a/source/components/hsm/linux/smime-thunderbird.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../pro/smime-thunderbird.rst.inc
diff --git a/source/components/hsm/linux/smime.rst b/source/components/hsm/linux/smime.rst
deleted file mode 100644
index 9a7ca24e7c..0000000000
--- a/source/components/hsm/linux/smime.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../smime.rst.inc
diff --git a/source/components/hsm/linux/stunnel.rst b/source/components/hsm/linux/stunnel.rst
deleted file mode 100644
index 263c7fdc22..0000000000
--- a/source/components/hsm/linux/stunnel.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-Stunnel
-=======
-
-.. include:: ../stunnel.rst.inc
diff --git a/source/components/hsm/mac/apache2-tls.rst b/source/components/hsm/mac/apache2-tls.rst
deleted file mode 100644
index 9d6b689cb1..0000000000
--- a/source/components/hsm/mac/apache2-tls.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-.. include:: ../apache2-tls.rst.inc
-
diff --git a/source/components/hsm/mac/certificate-authority.rst b/source/components/hsm/mac/certificate-authority.rst
deleted file mode 100644
index d414fc892f..0000000000
--- a/source/components/hsm/mac/certificate-authority.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../certificate-authority.rst.inc
diff --git a/source/components/hsm/mac/gpa.rst b/source/components/hsm/mac/gpa.rst
deleted file mode 100644
index 398ae468bc..0000000000
--- a/source/components/hsm/mac/gpa.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../pro/gpa.rst
diff --git a/source/components/hsm/mac/hard-disk-encryption.rst b/source/components/hsm/mac/hard-disk-encryption.rst
deleted file mode 100644
index 97111bfd66..0000000000
--- a/source/components/hsm/mac/hard-disk-encryption.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-Hard Disk Encryption
-===========================
-
-.. include:: ../../pro/hard-disk-encryption.rst.inc
diff --git a/source/components/hsm/mac/import-keys-certs.rst b/source/components/hsm/mac/import-keys-certs.rst
deleted file mode 100644
index 95ee7978a4..0000000000
--- a/source/components/hsm/mac/import-keys-certs.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-.. include:: ../import-keys-certs.rst.inc
-
diff --git a/source/components/hsm/mac/index.rst b/source/components/hsm/mac/index.rst
deleted file mode 100644
index 66fe944024..0000000000
--- a/source/components/hsm/mac/index.rst
+++ /dev/null
@@ -1,27 +0,0 @@
-Nitrokey HSM with macOS
-=======================
-
-.. contents:: :local:
-
-.. toctree::
- :maxdepth: 1
- :glob:
- :hidden:
-
- *
-
-1. Install `OpenSC `__.
- Alternatively, install
- `this `__
- driver (`source `__).
-2. Define SO-PIN and PIN of your own choices. See `these
- instructions `__.
- Afterwards you can begin to `generate new
- keys `__.
-
-Your Nitrokey is now ready to use.
-
-* There is `nitrotool `__ as a more comfortable frontend to OpenSC. (hsmwiz)
-* Embedded Systems: For systems with minimal memory footprint a read/only PKCS#11 module is provided by the `sc-hsm-embedded `__ project.
-* `This PKCS#11 module `__ is useful for deployments where key generation at the user's workplace is not required. The PKCS#11 module also supports major electronic signature cards available in the German market.
-* OpenSCDP: The SmartCard-HSM is fully integrated with `OpenSCDP `__, the open smart card development platform. See the `public support scripts `__ for details.
diff --git a/source/components/hsm/mac/pkcs11-url.rst b/source/components/hsm/mac/pkcs11-url.rst
deleted file mode 100644
index 5ad8f40b7a..0000000000
--- a/source/components/hsm/mac/pkcs11-url.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-.. include:: ../pkcs11-url.rst.inc
-
diff --git a/source/components/hsm/mac/smime-outlook.rst b/source/components/hsm/mac/smime-outlook.rst
deleted file mode 100644
index acd45a24a9..0000000000
--- a/source/components/hsm/mac/smime-outlook.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../pro/smime-outlook.rst.inc
diff --git a/source/components/hsm/mac/smime-thunderbird.rst b/source/components/hsm/mac/smime-thunderbird.rst
deleted file mode 100644
index 4ae43d43ba..0000000000
--- a/source/components/hsm/mac/smime-thunderbird.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../pro/smime-thunderbird.rst.inc
diff --git a/source/components/hsm/mac/smime.rst b/source/components/hsm/mac/smime.rst
deleted file mode 100644
index 9a7ca24e7c..0000000000
--- a/source/components/hsm/mac/smime.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../smime.rst.inc
diff --git a/source/components/hsm/smime.rst.inc b/source/components/hsm/smime.rst.inc
deleted file mode 100644
index 6f5038a91c..0000000000
--- a/source/components/hsm/smime.rst.inc
+++ /dev/null
@@ -1,64 +0,0 @@
-S/MIME Email Encryption
-=======================
-
-.. contents:: :local:
-
-Prerequisites
--------------
-
-There are two widely used standards for email encryption.
-
-- OpenPGP/GnuPG is popular among individuals,
-
-- S/MIME/X.509 is mostly used by enterprises.
-
-The Nitrokey HSM 2 currently supports the S/MIME/X.509 standard. This page describes the usage of S/MIME email encryption.
-
-You need to purchase a S/MIME certificate (e.g. at `CERTUM `__) or may already got one by your company. Furthermore, you need to install `OpenSC `__ on your System. While GNU/Linux users usually can install OpenSC over the package manager (e.g. ``sudo apt install opensc`` on Ubuntu), macOS and Windows users can download the installation files from the `OpenSC `__ page.
-
-Import Existing Key and Certificate
------------------------------------
-
-The following instructions are based on the `wiki of OpenSC `__. We will assume, that you already got a key-certificate pair as a .p12 file. Please have a look at the wiki page, if you got a separate key and certificate file.
-
-To open the Windows command line please push the Windows-key and R-key. Now type ‘cmd.exe’ in the text field and hit enter. To open a Terminal on macOS or GNU/Linux please use the application search (e.g. spotlight on macOS).
-
-To make these commands as simple as possible, the .p12 file needs to be in your home folder. On Windows this is usually ``C:\Users\yourusername`` and on macOS and GNU/Linux system it will be ``/home/yourusername``. If you do not store the .p12 file there, you have to adapt the path in the commands below. Please plug in the Nitrokey before submitting the commands.
-
-Assuming that your key-certificate file reads ‘myprivate.p12’ the commands for Windows looks like this:
-
-.. code-block:: bash
-
- "C:\Program Files\OpenSC Project\OpenSC\tools\pkcs15-init" --delete-objects privkey,pubkey --id 3 --store-private-key myprivate.p12 --format pkcs12 --auth-id 3 --verify-pin
- "C:\Program Files\OpenSC Project\OpenSC\tools\pkcs15-init" --delete-objects privkey,pubkey --id 2 --store-private-key myprivate.p12 --format pkcs12 --auth-id 3 --verify-pin
-
-and on macOS and GNU/Linux it will be
-
-.. code-block:: bash
-
- $ pkcs15-init --delete-objects privkey,pubkey --id 3 --store-private-key myprivate.p12 --format pkcs12 --auth-id 3 --verify-pin
- $ pkcs15-init --delete-objects privkey,pubkey --id 2 --store-private-key myprivate.p12 --format pkcs12 --auth-id 3 --verify-pin
-
-The two commands copy the key-certificate pair to the slot 2 (needed for decrypting emails) and slot 3 (needed for signing). The output looks on both systems something like this:
-
-.. figure:: /components/pro/images/smime/1.png
- :alt: img1
-
-
-
-Please note that there will be error messages that can be safely ignored (see output example above). You now have the key-certificate pair loaded on the Nitrokey.
-
-Usage
------
-
-You can find further information about the usage on these pages:
-
-- for using `S/MIME encryption on
- Thunderbird `_
-
-- for using `S/MIME encryption on
- Outlook `_
-
-- for using
- `Evolution `__,
- an email client for the Gnome Desktop on Linux systems
diff --git a/source/components/hsm/stunnel.rst.inc b/source/components/hsm/stunnel.rst.inc
deleted file mode 100644
index 4869e58c9f..0000000000
--- a/source/components/hsm/stunnel.rst.inc
+++ /dev/null
@@ -1,19 +0,0 @@
-.. contents:: :local:
-
-`Stunnel `__ works as an SSL encryption wrapper between remote client and local (inetd-startable) or remote server. It can be used to add SSL functionality to commonly used inetd daemons like POP2, POP3, and IMAP servers without any changes in the programs' code.
-
-Stunnel is able to load OpenSC PKCS#11 engine using this configuration:
-
-.. code-block:: bash
-
- engine=dynamic
- engineCtrl=SO_PATH:/usr/lib/opensc/engine_pkcs11.so
- engineCtrl=ID:pkcs11
- engineCtrl=LIST_ADD:1
- engineCtrl=LOAD
- engineCtrl=MODULE_PATH:/usr/lib/pkcs11/opensc-pkcs11.so
- engineCtrl=INIT
-
- [service]
- engineNum=1
- key=id_45
diff --git a/source/components/hsm/windows/apache2-tls.rst b/source/components/hsm/windows/apache2-tls.rst
deleted file mode 100644
index 9d6b689cb1..0000000000
--- a/source/components/hsm/windows/apache2-tls.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-.. include:: ../apache2-tls.rst.inc
-
diff --git a/source/components/hsm/windows/certificate-authority.rst b/source/components/hsm/windows/certificate-authority.rst
deleted file mode 100644
index d414fc892f..0000000000
--- a/source/components/hsm/windows/certificate-authority.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../certificate-authority.rst.inc
diff --git a/source/components/hsm/windows/gpa.rst b/source/components/hsm/windows/gpa.rst
deleted file mode 100644
index 398ae468bc..0000000000
--- a/source/components/hsm/windows/gpa.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../pro/gpa.rst
diff --git a/source/components/hsm/windows/hard-disk-encryption.rst b/source/components/hsm/windows/hard-disk-encryption.rst
deleted file mode 100644
index 7a15e069ec..0000000000
--- a/source/components/hsm/windows/hard-disk-encryption.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-Hard Disk Encryption
-===========================
-
-.. include:: ../../pro/hard-disk-encryption.rst.inc
diff --git a/source/components/hsm/windows/import-keys-certs.rst b/source/components/hsm/windows/import-keys-certs.rst
deleted file mode 100644
index 95ee7978a4..0000000000
--- a/source/components/hsm/windows/import-keys-certs.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-.. include:: ../import-keys-certs.rst.inc
-
diff --git a/source/components/hsm/windows/index.rst b/source/components/hsm/windows/index.rst
deleted file mode 100644
index b508ac7ff0..0000000000
--- a/source/components/hsm/windows/index.rst
+++ /dev/null
@@ -1,27 +0,0 @@
-Nitrokey HSM With Windows
-=========================
-
-.. contents:: :local:
-
-.. toctree::
- :maxdepth: 1
- :glob:
- :hidden:
-
- *
-
-1. Install `OpenSC `__.
- Alternatively, install
- `this `__
- driver (`source `__).
-2. Define SO-PIN and PIN of your own choices. See `these
- instructions `__.
- Afterwards you can begin to `generate new
- keys `__.
-
-Your Nitrokey is now ready to use.
-
-* There is `nitrotool `__ as a more comfortable frontend to OpenSC. (hsmwiz)
-* Embedded Systems: For systems with minimal memory footprint a read/only PKCS#11 module is provided by the `sc-hsm-embedded `__ project.
-* `This PKCS#11 module `__ is useful for deployments where key generation at the user's workplace is not required. The PKCS#11 module also supports major electronic signature cards available in the German market.
-* OpenSCDP: The SmartCard-HSM is fully integrated with `OpenSCDP `__, the open smart card development platform. See the `public support scripts `__ for details.
diff --git a/source/components/hsm/windows/pkcs11-url.rst b/source/components/hsm/windows/pkcs11-url.rst
deleted file mode 100644
index 5ad8f40b7a..0000000000
--- a/source/components/hsm/windows/pkcs11-url.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-.. include:: ../pkcs11-url.rst.inc
-
diff --git a/source/components/hsm/windows/smart-policy.rst b/source/components/hsm/windows/smart-policy.rst
deleted file mode 100644
index 7f85805135..0000000000
--- a/source/components/hsm/windows/smart-policy.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../pro/smart-policy.rst.inc
diff --git a/source/components/hsm/windows/smime-outlook.rst b/source/components/hsm/windows/smime-outlook.rst
deleted file mode 100644
index acd45a24a9..0000000000
--- a/source/components/hsm/windows/smime-outlook.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../pro/smime-outlook.rst.inc
diff --git a/source/components/hsm/windows/smime-thunderbird.rst b/source/components/hsm/windows/smime-thunderbird.rst
deleted file mode 100644
index 2167f1b220..0000000000
--- a/source/components/hsm/windows/smime-thunderbird.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-.. include:: ../../pro/smime-thunderbird.rst.inc
-
diff --git a/source/components/hsm/windows/smime.rst b/source/components/hsm/windows/smime.rst
deleted file mode 100644
index 7080df4aeb..0000000000
--- a/source/components/hsm/windows/smime.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-.. include:: ../smime.rst.inc
- :end-line: 20
-
-.. note::
- Windows users with 64-bit system (standard) need to install both, the 32-bit and the 64-bit version of OpenSC!
-
-.. include:: ../smime.rst.inc
- :start-line: 20
diff --git a/source/components/nitrokey3/index.rst b/source/components/nitrokey3/index.rst
deleted file mode 100644
index c14556df2d..0000000000
--- a/source/components/nitrokey3/index.rst
+++ /dev/null
@@ -1,35 +0,0 @@
-Nitrokey 3
-==========
-
-.. contents:: :local:
-
-The Nitrokey 3 currently supports:
-
-* FIDO2
-* Password-Safe & One-Time Passwords (OTP)
-* OpenPGP Card (`Secure Element Backend or Software Backend`_)
-
-Additional features like PIV are available in test firmware releases. See the `release notes`_ on GitHub for more information.
-
-.. _Secure Element Backend or Software Backend: faq#how-can-I-use-the-se050-secure-element
-.. _release notes: https://github.com/Nitrokey/nitrokey-3-firmware/releases
-
-First check the:
-
-.. toctree::
- :maxdepth: 1
- :glob:
-
- Frequently Asked Questions
- features
-
-Or choose your operating system:
-
-.. toctree::
- :maxdepth: 1
- :glob:
-
- Windows
- macOS
- Linux
-
diff --git a/source/components/nitrokey3/linux/2fa-odoo.rst b/source/components/nitrokey3/linux/2fa-odoo.rst
deleted file mode 100644
index b4591596e0..0000000000
--- a/source/components/nitrokey3/linux/2fa-odoo.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-
-.. include:: ../../fido2/2fa-odoo.rst.inc
diff --git a/source/components/nitrokey3/linux/adsk.rst b/source/components/nitrokey3/linux/adsk.rst
deleted file mode 100644
index 00ce644292..0000000000
--- a/source/components/nitrokey3/linux/adsk.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../nitrokey3/adsk.rst.inc
diff --git a/source/components/nitrokey3/linux/desktop-login.rst b/source/components/nitrokey3/linux/desktop-login.rst
deleted file mode 100644
index 11e6d5e5c6..0000000000
--- a/source/components/nitrokey3/linux/desktop-login.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-
-.. include:: ../../fido2/linux/desktop-login.rst
-
diff --git a/source/components/nitrokey3/linux/firmware-update.rst b/source/components/nitrokey3/linux/firmware-update.rst
deleted file mode 100644
index ba622ba13a..0000000000
--- a/source/components/nitrokey3/linux/firmware-update.rst
+++ /dev/null
@@ -1,16 +0,0 @@
-.. include:: ../firmware-update.rst.inc
-
-Troubleshooting:
-----------------
-
-**Issue:** I get ``permission denied for /dev/hidrawX`` during update.
- This likely means your user has not the needed permissions to
- read/write the device. Please make sure you have set up the correct
- `udev-rules`_. Download this `udev-rules`_ set and place it in your
- udev rules directory (e.g., ``/etc/udev/rules.d``). Then remove
- your Nitrokey 3 from the USB slot and run:
- ``udevadm control --reload-rules && udevadm trigger`` or reboot
- your machine. Afterwards the update should work without the
- permission issue.
-
-.. _udev-rules: https://raw.githubusercontent.com/Nitrokey/libnitrokey/master/data/41-nitrokey.rules
diff --git a/source/components/nitrokey3/linux/images b/source/components/nitrokey3/linux/images
deleted file mode 120000
index c7bda842dd..0000000000
--- a/source/components/nitrokey3/linux/images
+++ /dev/null
@@ -1 +0,0 @@
-../../fido2/linux/images/
\ No newline at end of file
diff --git a/source/components/nitrokey3/linux/index.rst b/source/components/nitrokey3/linux/index.rst
deleted file mode 100644
index 18d9b204cf..0000000000
--- a/source/components/nitrokey3/linux/index.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-Nitrokey 3 With Linux
-===========================
-
-.. contents:: :local:
-
-.. toctree::
- :maxdepth: 1
- :glob:
- :hidden:
-
- *
-
-.. include:: ../shared/main.rst
diff --git a/source/components/nitrokey3/linux/keepassxc.rst b/source/components/nitrokey3/linux/keepassxc.rst
deleted file mode 100644
index 148bcb82bd..0000000000
--- a/source/components/nitrokey3/linux/keepassxc.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-
-.. include:: ../../software/nk-app2/keepassxc.rst
diff --git a/source/components/nitrokey3/linux/nitropy.rst b/source/components/nitrokey3/linux/nitropy.rst
deleted file mode 100644
index 4cb4985709..0000000000
--- a/source/components/nitrokey3/linux/nitropy.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../shared/nitropy.rst
diff --git a/source/components/nitrokey3/linux/openpgp-keygen-backup.rst b/source/components/nitrokey3/linux/openpgp-keygen-backup.rst
deleted file mode 100644
index b4528e0139..0000000000
--- a/source/components/nitrokey3/linux/openpgp-keygen-backup.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../pro/openpgp-keygen-backup.rst.inc
diff --git a/source/components/nitrokey3/linux/openpgp-keygen-gpa.rst b/source/components/nitrokey3/linux/openpgp-keygen-gpa.rst
deleted file mode 100644
index 472d298006..0000000000
--- a/source/components/nitrokey3/linux/openpgp-keygen-gpa.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../pro/openpgp-keygen-gpa.rst.inc
diff --git a/source/components/nitrokey3/linux/openpgp-keygen-on-device.rst b/source/components/nitrokey3/linux/openpgp-keygen-on-device.rst
deleted file mode 100644
index fc90850b8e..0000000000
--- a/source/components/nitrokey3/linux/openpgp-keygen-on-device.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../pro/openpgp-keygen-on-device.rst.inc
diff --git a/source/components/nitrokey3/linux/openpgp-outlook.rst b/source/components/nitrokey3/linux/openpgp-outlook.rst
deleted file mode 100644
index fa4e7dd855..0000000000
--- a/source/components/nitrokey3/linux/openpgp-outlook.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../pro/openpgp-outlook.rst.inc
diff --git a/source/components/nitrokey3/linux/openpgp-thunderbird.rst b/source/components/nitrokey3/linux/openpgp-thunderbird.rst
deleted file mode 100644
index 59e0956c63..0000000000
--- a/source/components/nitrokey3/linux/openpgp-thunderbird.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../pro/openpgp-thunderbird.rst.inc
diff --git a/source/components/nitrokey3/linux/openpgp-uif.rst b/source/components/nitrokey3/linux/openpgp-uif.rst
deleted file mode 100644
index 05f0ae6925..0000000000
--- a/source/components/nitrokey3/linux/openpgp-uif.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../shared/openpgp-uif.rst.inc
diff --git a/source/components/nitrokey3/linux/openpgp.rst b/source/components/nitrokey3/linux/openpgp.rst
deleted file mode 100644
index ce0f581887..0000000000
--- a/source/components/nitrokey3/linux/openpgp.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../shared/openpgp.rst.inc
diff --git a/source/components/nitrokey3/linux/reset.rst b/source/components/nitrokey3/linux/reset.rst
deleted file mode 100644
index 3454a004c3..0000000000
--- a/source/components/nitrokey3/linux/reset.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../shared/reset.rst.inc
diff --git a/source/components/nitrokey3/linux/set-pins.rst b/source/components/nitrokey3/linux/set-pins.rst
deleted file mode 100644
index 9c6dfe6d81..0000000000
--- a/source/components/nitrokey3/linux/set-pins.rst
+++ /dev/null
@@ -1,21 +0,0 @@
-.. include:: ../shared/set-pins.rst.inc
- :start-after: start-header
- :end-before: end-header
-.. include:: ../shared/set-pins.rst.inc
- :start-after: start-fido2-header
- :end-before: end-fido2-header
-.. include:: ../shared/set-pins.rst.inc
- :start-after: start-fido2-nitropy
- :end-before: end-fido2-nitropy
-.. include:: ../shared/set-pins.rst.inc
- :start-after: start-fido2-chromeium
- :end-before: end-fido2-chromeium
-.. include:: ../shared/set-pins.rst.inc
- :start-after: start-passwords-otp-secrets
- :end-before: end-passwords-otp-secrets
-.. include:: ../shared/set-pins.rst.inc
- :start-after: start-openpgp-card
- :end-before: end-openpgp-card
-.. include:: ../shared/set-pins.rst.inc
- :start-after: start-piv-card
- :end-before: end-piv-card
diff --git a/source/components/nitrokey3/linux/smime-outlook.rst b/source/components/nitrokey3/linux/smime-outlook.rst
deleted file mode 100644
index acd45a24a9..0000000000
--- a/source/components/nitrokey3/linux/smime-outlook.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../pro/smime-outlook.rst.inc
diff --git a/source/components/nitrokey3/linux/smime-thunderbird.rst b/source/components/nitrokey3/linux/smime-thunderbird.rst
deleted file mode 100644
index 4ae43d43ba..0000000000
--- a/source/components/nitrokey3/linux/smime-thunderbird.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../pro/smime-thunderbird.rst.inc
diff --git a/source/components/nitrokey3/linux/smime.rst b/source/components/nitrokey3/linux/smime.rst
deleted file mode 100644
index 5029a3135c..0000000000
--- a/source/components/nitrokey3/linux/smime.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../pro/smime.rst.inc
diff --git a/source/components/nitrokey3/linux/troubleshooting.rst b/source/components/nitrokey3/linux/troubleshooting.rst
deleted file mode 100644
index 71e54fdba1..0000000000
--- a/source/components/nitrokey3/linux/troubleshooting.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../nitrokey3/troubleshooting.rst.inc
diff --git a/source/components/nitrokey3/mac/2fa-odoo.rst b/source/components/nitrokey3/mac/2fa-odoo.rst
deleted file mode 100644
index b4591596e0..0000000000
--- a/source/components/nitrokey3/mac/2fa-odoo.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-
-.. include:: ../../fido2/2fa-odoo.rst.inc
diff --git a/source/components/nitrokey3/mac/adsk.rst b/source/components/nitrokey3/mac/adsk.rst
deleted file mode 100644
index 00ce644292..0000000000
--- a/source/components/nitrokey3/mac/adsk.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../nitrokey3/adsk.rst.inc
diff --git a/source/components/nitrokey3/mac/firmware-update.rst b/source/components/nitrokey3/mac/firmware-update.rst
deleted file mode 100644
index 97c722b20c..0000000000
--- a/source/components/nitrokey3/mac/firmware-update.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../firmware-update.rst.inc
diff --git a/source/components/nitrokey3/mac/index.rst b/source/components/nitrokey3/mac/index.rst
deleted file mode 100644
index be61a80b8a..0000000000
--- a/source/components/nitrokey3/mac/index.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-Nitrokey 3 With macOS
-=====================
-
-.. contents:: :local:
-
-.. toctree::
- :maxdepth: 1
- :glob:
- :hidden:
-
- *
-
-.. include:: ../shared/main.rst
diff --git a/source/components/nitrokey3/mac/keepassxc.rst b/source/components/nitrokey3/mac/keepassxc.rst
deleted file mode 100644
index 148bcb82bd..0000000000
--- a/source/components/nitrokey3/mac/keepassxc.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-
-.. include:: ../../software/nk-app2/keepassxc.rst
diff --git a/source/components/nitrokey3/mac/nitropy.rst b/source/components/nitrokey3/mac/nitropy.rst
deleted file mode 100644
index 4cb4985709..0000000000
--- a/source/components/nitrokey3/mac/nitropy.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../shared/nitropy.rst
diff --git a/source/components/nitrokey3/mac/openpgp-keygen-backup.rst b/source/components/nitrokey3/mac/openpgp-keygen-backup.rst
deleted file mode 100644
index b4528e0139..0000000000
--- a/source/components/nitrokey3/mac/openpgp-keygen-backup.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../pro/openpgp-keygen-backup.rst.inc
diff --git a/source/components/nitrokey3/mac/openpgp-keygen-gpa.rst b/source/components/nitrokey3/mac/openpgp-keygen-gpa.rst
deleted file mode 100644
index 472d298006..0000000000
--- a/source/components/nitrokey3/mac/openpgp-keygen-gpa.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../pro/openpgp-keygen-gpa.rst.inc
diff --git a/source/components/nitrokey3/mac/openpgp-keygen-on-device.rst b/source/components/nitrokey3/mac/openpgp-keygen-on-device.rst
deleted file mode 100644
index fc90850b8e..0000000000
--- a/source/components/nitrokey3/mac/openpgp-keygen-on-device.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../pro/openpgp-keygen-on-device.rst.inc
diff --git a/source/components/nitrokey3/mac/openpgp-outlook.rst b/source/components/nitrokey3/mac/openpgp-outlook.rst
deleted file mode 100644
index fa4e7dd855..0000000000
--- a/source/components/nitrokey3/mac/openpgp-outlook.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../pro/openpgp-outlook.rst.inc
diff --git a/source/components/nitrokey3/mac/openpgp-thunderbird.rst b/source/components/nitrokey3/mac/openpgp-thunderbird.rst
deleted file mode 100644
index 59e0956c63..0000000000
--- a/source/components/nitrokey3/mac/openpgp-thunderbird.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../pro/openpgp-thunderbird.rst.inc
diff --git a/source/components/nitrokey3/mac/openpgp-uif.rst b/source/components/nitrokey3/mac/openpgp-uif.rst
deleted file mode 100644
index 3a7dcc6aa7..0000000000
--- a/source/components/nitrokey3/mac/openpgp-uif.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-.. include:: ../shared/openpgp-uif.rst.inc
-
diff --git a/source/components/nitrokey3/mac/openpgp.rst b/source/components/nitrokey3/mac/openpgp.rst
deleted file mode 100644
index ce0f581887..0000000000
--- a/source/components/nitrokey3/mac/openpgp.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../shared/openpgp.rst.inc
diff --git a/source/components/nitrokey3/mac/reset.rst b/source/components/nitrokey3/mac/reset.rst
deleted file mode 100644
index 3454a004c3..0000000000
--- a/source/components/nitrokey3/mac/reset.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../shared/reset.rst.inc
diff --git a/source/components/nitrokey3/mac/set-pins.rst b/source/components/nitrokey3/mac/set-pins.rst
deleted file mode 100644
index 9c6dfe6d81..0000000000
--- a/source/components/nitrokey3/mac/set-pins.rst
+++ /dev/null
@@ -1,21 +0,0 @@
-.. include:: ../shared/set-pins.rst.inc
- :start-after: start-header
- :end-before: end-header
-.. include:: ../shared/set-pins.rst.inc
- :start-after: start-fido2-header
- :end-before: end-fido2-header
-.. include:: ../shared/set-pins.rst.inc
- :start-after: start-fido2-nitropy
- :end-before: end-fido2-nitropy
-.. include:: ../shared/set-pins.rst.inc
- :start-after: start-fido2-chromeium
- :end-before: end-fido2-chromeium
-.. include:: ../shared/set-pins.rst.inc
- :start-after: start-passwords-otp-secrets
- :end-before: end-passwords-otp-secrets
-.. include:: ../shared/set-pins.rst.inc
- :start-after: start-openpgp-card
- :end-before: end-openpgp-card
-.. include:: ../shared/set-pins.rst.inc
- :start-after: start-piv-card
- :end-before: end-piv-card
diff --git a/source/components/nitrokey3/mac/smime-outlook.rst b/source/components/nitrokey3/mac/smime-outlook.rst
deleted file mode 100644
index acd45a24a9..0000000000
--- a/source/components/nitrokey3/mac/smime-outlook.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../pro/smime-outlook.rst.inc
diff --git a/source/components/nitrokey3/mac/smime-thunderbird.rst b/source/components/nitrokey3/mac/smime-thunderbird.rst
deleted file mode 100644
index 4ae43d43ba..0000000000
--- a/source/components/nitrokey3/mac/smime-thunderbird.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../pro/smime-thunderbird.rst.inc
diff --git a/source/components/nitrokey3/mac/smime.rst b/source/components/nitrokey3/mac/smime.rst
deleted file mode 100644
index 5029a3135c..0000000000
--- a/source/components/nitrokey3/mac/smime.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../pro/smime.rst.inc
diff --git a/source/components/nitrokey3/mac/troubleshooting.rst b/source/components/nitrokey3/mac/troubleshooting.rst
deleted file mode 100644
index 71e54fdba1..0000000000
--- a/source/components/nitrokey3/mac/troubleshooting.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../nitrokey3/troubleshooting.rst.inc
diff --git a/source/components/nitrokey3/shared/openpgp.rst.inc b/source/components/nitrokey3/shared/openpgp.rst.inc
deleted file mode 100644
index c7efd1430d..0000000000
--- a/source/components/nitrokey3/shared/openpgp.rst.inc
+++ /dev/null
@@ -1,10 +0,0 @@
-OpenPGP Email Encryption
-========================
-
-.. contents:: :local:
-
-.. note::
- OpenPGP support was introduced with the `1.4.0 release of the Nitrokey 3 `_ firmware.
- If you have an older version, `update your firmware `_
-
-.. include:: ../../shared/openpgp.rst.inc
diff --git a/source/components/nitrokey3/windows/2fa-odoo.rst b/source/components/nitrokey3/windows/2fa-odoo.rst
deleted file mode 100644
index b4591596e0..0000000000
--- a/source/components/nitrokey3/windows/2fa-odoo.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-
-.. include:: ../../fido2/2fa-odoo.rst.inc
diff --git a/source/components/nitrokey3/windows/adsk.rst b/source/components/nitrokey3/windows/adsk.rst
deleted file mode 100644
index 00ce644292..0000000000
--- a/source/components/nitrokey3/windows/adsk.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../nitrokey3/adsk.rst.inc
diff --git a/source/components/nitrokey3/windows/firmware-update.rst b/source/components/nitrokey3/windows/firmware-update.rst
deleted file mode 100644
index 97c722b20c..0000000000
--- a/source/components/nitrokey3/windows/firmware-update.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../firmware-update.rst.inc
diff --git a/source/components/nitrokey3/windows/images/enabling-u2f-on-firefox b/source/components/nitrokey3/windows/images/enabling-u2f-on-firefox
deleted file mode 120000
index 93ed840643..0000000000
--- a/source/components/nitrokey3/windows/images/enabling-u2f-on-firefox
+++ /dev/null
@@ -1 +0,0 @@
-../../../fido2/windows/images/enabling-u2f-on-firefox
\ No newline at end of file
diff --git a/source/components/nitrokey3/windows/images/passwordless-microsoft b/source/components/nitrokey3/windows/images/passwordless-microsoft
deleted file mode 120000
index 0164bec391..0000000000
--- a/source/components/nitrokey3/windows/images/passwordless-microsoft
+++ /dev/null
@@ -1 +0,0 @@
-../../../fido2/windows/images/passwordless-microsoft
\ No newline at end of file
diff --git a/source/components/nitrokey3/windows/index.rst b/source/components/nitrokey3/windows/index.rst
deleted file mode 100644
index 12fbaee4f2..0000000000
--- a/source/components/nitrokey3/windows/index.rst
+++ /dev/null
@@ -1,14 +0,0 @@
-Nitrokey 3 With Windows
-===========================
-
-.. contents:: :local:
-
-.. toctree::
- :maxdepth: 1
- :glob:
- :hidden:
-
- *
- piv/index.rst
-
-.. include:: ../shared/main.rst
diff --git a/source/components/nitrokey3/windows/keepassxc.rst b/source/components/nitrokey3/windows/keepassxc.rst
deleted file mode 100644
index 148bcb82bd..0000000000
--- a/source/components/nitrokey3/windows/keepassxc.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-
-.. include:: ../../software/nk-app2/keepassxc.rst
diff --git a/source/components/nitrokey3/windows/openpgp-csp.rst b/source/components/nitrokey3/windows/openpgp-csp.rst
deleted file mode 100644
index 947e69d379..0000000000
--- a/source/components/nitrokey3/windows/openpgp-csp.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-.. include:: ../../pro/windows/openpgp-csp.rst
-
diff --git a/source/components/nitrokey3/windows/openpgp-keygen-backup.rst b/source/components/nitrokey3/windows/openpgp-keygen-backup.rst
deleted file mode 100644
index b4528e0139..0000000000
--- a/source/components/nitrokey3/windows/openpgp-keygen-backup.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../pro/openpgp-keygen-backup.rst.inc
diff --git a/source/components/nitrokey3/windows/openpgp-keygen-gpa.rst b/source/components/nitrokey3/windows/openpgp-keygen-gpa.rst
deleted file mode 100644
index 472d298006..0000000000
--- a/source/components/nitrokey3/windows/openpgp-keygen-gpa.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../pro/openpgp-keygen-gpa.rst.inc
diff --git a/source/components/nitrokey3/windows/openpgp-keygen-on-device.rst b/source/components/nitrokey3/windows/openpgp-keygen-on-device.rst
deleted file mode 100644
index fc90850b8e..0000000000
--- a/source/components/nitrokey3/windows/openpgp-keygen-on-device.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../pro/openpgp-keygen-on-device.rst.inc
diff --git a/source/components/nitrokey3/windows/openpgp-outlook.rst b/source/components/nitrokey3/windows/openpgp-outlook.rst
deleted file mode 100644
index fa4e7dd855..0000000000
--- a/source/components/nitrokey3/windows/openpgp-outlook.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../pro/openpgp-outlook.rst.inc
diff --git a/source/components/nitrokey3/windows/openpgp-thunderbird.rst b/source/components/nitrokey3/windows/openpgp-thunderbird.rst
deleted file mode 100644
index 59e0956c63..0000000000
--- a/source/components/nitrokey3/windows/openpgp-thunderbird.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../pro/openpgp-thunderbird.rst.inc
diff --git a/source/components/nitrokey3/windows/openpgp-uif.rst b/source/components/nitrokey3/windows/openpgp-uif.rst
deleted file mode 100644
index 05f0ae6925..0000000000
--- a/source/components/nitrokey3/windows/openpgp-uif.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../shared/openpgp-uif.rst.inc
diff --git a/source/components/nitrokey3/windows/openpgp.rst b/source/components/nitrokey3/windows/openpgp.rst
deleted file mode 100644
index ce0f581887..0000000000
--- a/source/components/nitrokey3/windows/openpgp.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../shared/openpgp.rst.inc
diff --git a/source/components/nitrokey3/windows/passwordless-microsoft.rst b/source/components/nitrokey3/windows/passwordless-microsoft.rst
deleted file mode 100644
index d934d793b4..0000000000
--- a/source/components/nitrokey3/windows/passwordless-microsoft.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-.. include:: ../../fido2/windows/passwordless-microsoft.rst
diff --git a/source/components/nitrokey3/windows/piv/index.rst b/source/components/nitrokey3/windows/piv/index.rst
deleted file mode 100644
index cbcc6557cc..0000000000
--- a/source/components/nitrokey3/windows/piv/index.rst
+++ /dev/null
@@ -1,22 +0,0 @@
-PIV (Personal Identity Verification)
-====================================
-
-.. warning::
- The PIV application of the Nitrokey 3 is currently considered unstable and is not available on the stable firmware releases.
- To obtain that functionality it is required to install a test firmware.
- Subsequent firmware updates may lead to loss of data and cryptographic keys.
- Please refer to `the firmware update documentation <../firmware-update.html#firmware-release-types>`__ for more information.
-
-The *Personal Identity Verfication* (PIV) is based on the NIST special publication `SP 800-73 `__.
-
-.. toctree::
- :hidden:
- :maxdepth: 1
- :glob:
-
- access_control.rst
- certificate_management.rst
- factory_reset.rst
- key_management.rst
-
- guides/index.rst
diff --git a/source/components/nitrokey3/windows/reset.rst b/source/components/nitrokey3/windows/reset.rst
deleted file mode 100644
index 3454a004c3..0000000000
--- a/source/components/nitrokey3/windows/reset.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../shared/reset.rst.inc
diff --git a/source/components/nitrokey3/windows/set-pins.rst b/source/components/nitrokey3/windows/set-pins.rst
deleted file mode 100644
index 5d41ae818e..0000000000
--- a/source/components/nitrokey3/windows/set-pins.rst
+++ /dev/null
@@ -1,24 +0,0 @@
-.. include:: ../shared/set-pins.rst.inc
- :start-after: start-header
- :end-before: end-header
-.. include:: ../shared/set-pins.rst.inc
- :start-after: start-fido2-header
- :end-before: end-fido2-header
-.. include:: ../shared/set-pins.rst.inc
- :start-after: start-fido2-nitropy
- :end-before: end-fido2-nitropy
-.. include:: ../shared/set-pins.rst.inc
- :start-after: start-fido2-windows-settings-application
- :end-before: start-fido2-windows-settings-application
-.. include:: ../shared/set-pins.rst.inc
- :start-after: start-fido2-chromeium
- :end-before: end-fido2-chromeium
-.. include:: ../shared/set-pins.rst.inc
- :start-after: start-passwords-otp-secrets
- :end-before: end-passwords-otp-secrets
-.. include:: ../shared/set-pins.rst.inc
- :start-after: start-openpgp-card
- :end-before: end-openpgp-card
-.. include:: ../shared/set-pins.rst.inc
- :start-after: start-piv-card
- :end-before: end-piv-card
diff --git a/source/components/nitrokey3/windows/smime-outlook.rst b/source/components/nitrokey3/windows/smime-outlook.rst
deleted file mode 100644
index acd45a24a9..0000000000
--- a/source/components/nitrokey3/windows/smime-outlook.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../pro/smime-outlook.rst.inc
diff --git a/source/components/nitrokey3/windows/smime-thunderbird.rst b/source/components/nitrokey3/windows/smime-thunderbird.rst
deleted file mode 100644
index 4ae43d43ba..0000000000
--- a/source/components/nitrokey3/windows/smime-thunderbird.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../pro/smime-thunderbird.rst.inc
diff --git a/source/components/nitrokey3/windows/smime.rst b/source/components/nitrokey3/windows/smime.rst
deleted file mode 100644
index cd746658c8..0000000000
--- a/source/components/nitrokey3/windows/smime.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-.. include:: ../../pro/smime.rst.inc
- :end-line: 20
-
-.. note::
- Windows users with 64-bit system (standard) need to install both, the 32-bit and the 64-bit version of OpenSC!
-
-.. include:: ../../pro/smime.rst.inc
- :start-line: 20
-
diff --git a/source/components/nitrokey3/windows/troubleshooting.rst b/source/components/nitrokey3/windows/troubleshooting.rst
deleted file mode 100644
index 71e54fdba1..0000000000
--- a/source/components/nitrokey3/windows/troubleshooting.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../nitrokey3/troubleshooting.rst.inc
diff --git a/source/components/storage/encrypted-mobile-storage.rst b/source/components/nitrokeys/features/encrypted-storage/index.rst
similarity index 57%
rename from source/components/storage/encrypted-mobile-storage.rst
rename to source/components/nitrokeys/features/encrypted-storage/index.rst
index 3495423960..469934c1d0 100644
--- a/source/components/storage/encrypted-mobile-storage.rst
+++ b/source/components/nitrokeys/features/encrypted-storage/index.rst
@@ -1,3 +1,29 @@
+Encrypted Mobile Storage
+========================
+
+.. list-table::
+ :width: 100%
+ :header-rows: 1
+ :class: products-table
+
+ * - `Nitrokey 3 `_
+ - `Nitrokey Passkey `_
+ - `Nitrokey FIDO2 `_
+ - `Nitrokey U2F `_
+ - `Nitrokey HSM 2 `_
+ - `Nitrokey Pro 2 `_
+ - `Nitrokey Start `_
+ - `Nitrokey Storage 2 `_
+
+ * - ⨯
+ - ⨯
+ - ⨯
+ - ⨯
+ - ⨯
+ - ⨯
+ - ⨯
+ - ✓
+
Prior of using the encrypted mobile storage you need to install and initialize the Nitrokey Storage and download the latest `Nitrokey App `__.
1. Start the Nitrokey App.
@@ -8,4 +34,5 @@ Prior of using the encrypted mobile storage you need to install and initialize t
6. To remove or lock the encrypted volume you should unmount/eject it first.
7. Afterwards you can disconnect the Nitrokey or select "lock encrypted volume" from the Nitrokey App menu.
-The Nitrokey Storage is able to create hidden volumes as well. Please have a look at the corresponding instructions for `hidden volumes `_.
+The Nitrokey Storage is able to create hidden volumes as well. Please have a look at the corresponding instructions for `hidden volumes <../hidden-storage/index.html>`_.
+
diff --git a/source/components/fido2/windows/images/passwordless-microsoft/1.png b/source/components/nitrokeys/features/fido2/images/passwordless-microsoft/1.png
similarity index 100%
rename from source/components/fido2/windows/images/passwordless-microsoft/1.png
rename to source/components/nitrokeys/features/fido2/images/passwordless-microsoft/1.png
diff --git a/source/components/fido2/windows/images/passwordless-microsoft/10.png b/source/components/nitrokeys/features/fido2/images/passwordless-microsoft/10.png
similarity index 100%
rename from source/components/fido2/windows/images/passwordless-microsoft/10.png
rename to source/components/nitrokeys/features/fido2/images/passwordless-microsoft/10.png
diff --git a/source/components/fido2/windows/images/passwordless-microsoft/11.png b/source/components/nitrokeys/features/fido2/images/passwordless-microsoft/11.png
similarity index 100%
rename from source/components/fido2/windows/images/passwordless-microsoft/11.png
rename to source/components/nitrokeys/features/fido2/images/passwordless-microsoft/11.png
diff --git a/source/components/fido2/windows/images/passwordless-microsoft/12.png b/source/components/nitrokeys/features/fido2/images/passwordless-microsoft/12.png
similarity index 100%
rename from source/components/fido2/windows/images/passwordless-microsoft/12.png
rename to source/components/nitrokeys/features/fido2/images/passwordless-microsoft/12.png
diff --git a/source/components/fido2/windows/images/passwordless-microsoft/2.png b/source/components/nitrokeys/features/fido2/images/passwordless-microsoft/2.png
similarity index 100%
rename from source/components/fido2/windows/images/passwordless-microsoft/2.png
rename to source/components/nitrokeys/features/fido2/images/passwordless-microsoft/2.png
diff --git a/source/components/fido2/windows/images/passwordless-microsoft/3.png b/source/components/nitrokeys/features/fido2/images/passwordless-microsoft/3.png
similarity index 100%
rename from source/components/fido2/windows/images/passwordless-microsoft/3.png
rename to source/components/nitrokeys/features/fido2/images/passwordless-microsoft/3.png
diff --git a/source/components/fido2/windows/images/passwordless-microsoft/4.png b/source/components/nitrokeys/features/fido2/images/passwordless-microsoft/4.png
similarity index 100%
rename from source/components/fido2/windows/images/passwordless-microsoft/4.png
rename to source/components/nitrokeys/features/fido2/images/passwordless-microsoft/4.png
diff --git a/source/components/fido2/windows/images/passwordless-microsoft/5.png b/source/components/nitrokeys/features/fido2/images/passwordless-microsoft/5.png
similarity index 100%
rename from source/components/fido2/windows/images/passwordless-microsoft/5.png
rename to source/components/nitrokeys/features/fido2/images/passwordless-microsoft/5.png
diff --git a/source/components/fido2/windows/images/passwordless-microsoft/6.png b/source/components/nitrokeys/features/fido2/images/passwordless-microsoft/6.png
similarity index 100%
rename from source/components/fido2/windows/images/passwordless-microsoft/6.png
rename to source/components/nitrokeys/features/fido2/images/passwordless-microsoft/6.png
diff --git a/source/components/fido2/windows/images/passwordless-microsoft/7.png b/source/components/nitrokeys/features/fido2/images/passwordless-microsoft/7.png
similarity index 100%
rename from source/components/fido2/windows/images/passwordless-microsoft/7.png
rename to source/components/nitrokeys/features/fido2/images/passwordless-microsoft/7.png
diff --git a/source/components/fido2/windows/images/passwordless-microsoft/8.png b/source/components/nitrokeys/features/fido2/images/passwordless-microsoft/8.png
similarity index 100%
rename from source/components/fido2/windows/images/passwordless-microsoft/8.png
rename to source/components/nitrokeys/features/fido2/images/passwordless-microsoft/8.png
diff --git a/source/components/fido2/windows/images/passwordless-microsoft/9.png b/source/components/nitrokeys/features/fido2/images/passwordless-microsoft/9.png
similarity index 100%
rename from source/components/fido2/windows/images/passwordless-microsoft/9.png
rename to source/components/nitrokeys/features/fido2/images/passwordless-microsoft/9.png
diff --git a/source/components/nitrokeys/features/fido2/index.rst b/source/components/nitrokeys/features/fido2/index.rst
new file mode 100644
index 0000000000..e97bb27a1c
--- /dev/null
+++ b/source/components/nitrokeys/features/fido2/index.rst
@@ -0,0 +1,35 @@
+FIDO2
+=====
+
+.. section products-begin
+.. list-table::
+ :width: 100%
+ :header-rows: 1
+ :class: products-table
+
+ * - `Nitrokey 3 `_
+ - `Nitrokey Passkey `_
+ - `Nitrokey FIDO2 `_
+ - `Nitrokey U2F `_
+ - `Nitrokey HSM 2 `_
+ - `Nitrokey Pro 2 `_
+ - `Nitrokey Start `_
+ - `Nitrokey Storage 2 `_
+
+ * - ✓
+ - ✓
+ - ✓
+ - ⨯
+ - ⨯
+ - ⨯
+ - ⨯
+ - ⨯
+.. section products-end
+
+.. toctree::
+ :maxdepth: 1
+ :glob:
+
+ Website Login
+ Nextcloud Login
+ Passwordless Microsoft Login (Windows only)
\ No newline at end of file
diff --git a/source/components/nitrokeys/features/fido2/nextcloud.rst b/source/components/nitrokeys/features/fido2/nextcloud.rst
new file mode 100644
index 0000000000..0d3eda183d
--- /dev/null
+++ b/source/components/nitrokeys/features/fido2/nextcloud.rst
@@ -0,0 +1,13 @@
+Two-Factor Authentication And Passwordless Login For Nextcloud Accounts
+=======================================================================
+
+.. include:: index.rst
+ :start-after: products-begin
+ :end-before: products-end
+
+These are the basic steps for registering the Nitrokey as a second factor or setting up passwordless login of a Nextcloud account.
+
+.. raw:: html
+
+
+
diff --git a/source/components/fido2/windows/passwordless-microsoft.rst b/source/components/nitrokeys/features/fido2/passwordless-microsoft.rst
similarity index 96%
rename from source/components/fido2/windows/passwordless-microsoft.rst
rename to source/components/nitrokeys/features/fido2/passwordless-microsoft.rst
index 61919f8be2..982945373a 100644
--- a/source/components/fido2/windows/passwordless-microsoft.rst
+++ b/source/components/nitrokeys/features/fido2/passwordless-microsoft.rst
@@ -1,6 +1,10 @@
Passwordless Authentication With Microsoft
==========================================
+.. include:: index.rst
+ :start-after: products-begin
+ :end-before: products-end
+
.. contents:: :local:
The Nitrokey FIDO2 supports password-less authentication, where entering a password is replaced by logging in with the Nitrokey FIDO2 and a PIN.
diff --git a/source/components/nitrokeys/features/fido2/website.rst b/source/components/nitrokeys/features/fido2/website.rst
new file mode 100644
index 0000000000..a35f009d74
--- /dev/null
+++ b/source/components/nitrokeys/features/fido2/website.rst
@@ -0,0 +1,185 @@
+2FA Website Login
+=================
+
+.. include:: index.rst
+ :start-after: products-begin
+ :end-before: products-end
+
+.. contents:: :local:
+
+
+The Nitrokey FIDO2 supports two-factor authentication (2FA) and
+passwordless authentication:
+
+- With **passwordless authentication**, entering a password is replaced
+ by logging in with the Nitrokey FIDO2 and a PIN.
+
+- With **two-factor authentication** (2FA), the Nitrokey FIDO2 is
+ checked in addition to the password.
+
+The Nitrokey FIDO2 can be used with any current browser.
+
+.. important::
+
+ The Nitrokey App can not be used for the Nitrokey FIDO2.
+
+.. tip::
+
+ `Check online `__ if your Nitrokey
+ FIDO2 has the latest firmware installed.
+
+Passwordless Authentication
+---------------------------
+
+1. Open a web page that supports FIDO2 (for example
+ `Google `__).
+2. Log in to the website and go to “Passkeys and security keys” in the security
+ settings of your account.
+3. Click on Create passkey.
+4. Click on Use a different device.
+5. Follow the prompts to set a PIN for your Nitrokey FIDO2.
+6. Touch the button of your Nitrokey FIDO2 when prompted.
+7. Once you have successfully configured the device, you will need to
+ activate your Nitrokey FIDO2 this way each time you log in, after
+ entering your PIN.
+
+
+Touch Button And LED Behavior
+-----------------------------
+
+The first FIDO operation is automatically accepted within two seconds
+after connecting Nitrokey FIDO2. In this case touching the touch button
+is not required.
+
+Multiple operations can be accepted by a single touch. For this, keep
+the touch button touched for up to 10 seconds.
+
+To avoid accidental and malicious reset of the Nitrokey, the required
+touch confirmation time for the FIDO2 reset operation is longer and with
+a distinct LED behavior (red LED light) than normal operations. To reset
+the Nitrokey FIDO2, confirm by touching the touch button for at least 5
+seconds until the green or blue LED lights up.
+
++-----------------+-----------------+-----------------+-----------------+
+| LED Color | Event | Time Period | Comments |
++=================+=================+=================+=================+
+| Any (blinking) | Awaiting for | Until touch is | |
+| | touch | confirmed or | |
+| | | timed out | |
++-----------------+-----------------+-----------------+-----------------+
+| Any (blinking | Touch detected, | Until touch is | |
+| faster) | counting | confirmed or | |
+| | seconds | timed out | |
++-----------------+-----------------+-----------------+-----------------+
+| White (blinks) | Touch request | | Requires 1 |
+| | for FIDO | | second touch to |
+| | registration or | | complete; |
+| | authentication | | timeout is |
+| | operation | | usually about |
+| | | | 30 seconds |
++-----------------+-----------------+-----------------+-----------------+
+| Yellow (blinks) | Touch request | | Requires 5 |
+| | for | | seconds touch |
+| | configuration | | to complete; |
+| | operation | | e.g. used for |
+| | | | activating |
+| | | | firmware update |
+| | | | mode |
++-----------------+-----------------+-----------------+-----------------+
+| Red (blinks) | Touch request | Available only | Requires 5 |
+| | for reset | during the very | seconds touch |
+| | operation | first 10 | to complete; |
+| | | seconds after | e.g. used for |
+| | | Nitrokey is | FIDO2 reset |
+| | | powered | operation |
++-----------------+-----------------+-----------------+-----------------+
+| Green | Touch accepted, | After touch was | For the FIDO |
+| (constant) | Nitrokey is | registered, 10 | registration or |
+| | active and | seconds timeout | authentication |
+| | accepting | | operations |
+| | further FIDO2 | | after a |
+| | operations | | confirmation |
+| | | | Nitrokey enters |
+| | | | into |
+| | | | “activation” |
+| | | | mode, |
+| | | | auto-accepting |
+| | | | any following |
+| | | | mentioned |
+| | | | operations |
+| | | | until touch |
+| | | | button is |
+| | | | released, but |
+| | | | not longer than |
+| | | | 10 seconds |
++-----------------+-----------------+-----------------+-----------------+
+| Blue (constant) | Touch consumed | Until touch is | Touch |
+| | - accepted and | released | consumption |
+| | used up by the | | here means, |
+| | operation | | that without |
+| | | | releasing the |
+| | | | touch button, |
+| | | | and touching |
+| | | | again the |
+| | | | Nitrokey will |
+| | | | not confirm any |
+| | | | new operations |
++-----------------+-----------------+-----------------+-----------------+
+| White (single | Nitrokey ready | 0.5 seconds | |
+| blink) | to work | after powering | |
+| | | up | |
++-----------------+-----------------+-----------------+-----------------+
+| (no LED signal) | Nitrokey is | | |
+| | idle | | |
+| | | | |
++-----------------+-----------------+-----------------+-----------------+
+| (no LED signal) | Auto-accept | Within first 2 | Nitrokey is |
+| | single FIDO | seconds after | automatically |
+| | registration or | powering up | accepting any |
+| | authentication | | single FIDO |
+| | operation | | registration or |
+| | | | authentication |
+| | | | operation upon |
+| | | | insertion event |
+| | | | - the latter is |
+| | | | treated as an |
+| | | | equivalent of |
+| | | | the touch |
+| | | | button |
+| | | | registration |
+| | | | signal (user |
+| | | | presence); the |
+| | | | conf |
+| | | | iguration/reset |
+| | | | operations are |
+| | | | not accepted |
++-----------------+-----------------+-----------------+-----------------+
+| All colors | Nitrokey is in | Active until | If the firmware |
+| | Firmware Update | firmware update | update fails, |
+| | mode | operation is | the Nitrokey |
+| | | successful, or | will stay in |
+| | | until | the this mode |
+| | | reinsertion | until the |
+| | | | firmware is |
+| | | | written |
+| | | | correctly |
++-----------------+-----------------+-----------------+-----------------+
+
+
+Note: white LED blinking is used as well to signalize the selected device (the so called WINK command).
+If you are using Windows, the first time you plug in the Nitrokey it may need some
+time to configure the device.
+
+Troubleshooting (Linux)
+-----------------------
+
+- If the Nitrokey is not accepted immediately, you may need to copy
+ this file
+ `41-nitrokey.rules `__
+ to ``etc/udev/rules.d/``. In very rare cases, the system will need
+ the `older
+ version `__
+ of this file.
+
+- After copying the file, restart udev via
+ ``sudo service udev restart``.
diff --git a/source/components/storage/windows/images/format-dialog.png b/source/components/nitrokeys/features/hidden-storage/images/hidden/format-dialog.png
similarity index 100%
rename from source/components/storage/windows/images/format-dialog.png
rename to source/components/nitrokeys/features/hidden-storage/images/hidden/format-dialog.png
diff --git a/source/components/storage/windows/images/format-tool.png b/source/components/nitrokeys/features/hidden-storage/images/hidden/format-tool.png
similarity index 100%
rename from source/components/storage/windows/images/format-tool.png
rename to source/components/nitrokeys/features/hidden-storage/images/hidden/format-tool.png
diff --git a/source/components/storage/images/hidden-schema.svg b/source/components/nitrokeys/features/hidden-storage/images/hidden/hidden-schema.svg
similarity index 100%
rename from source/components/storage/images/hidden-schema.svg
rename to source/components/nitrokeys/features/hidden-storage/images/hidden/hidden-schema.svg
diff --git a/source/components/storage/linux/images/hidden-storage-partition.png b/source/components/nitrokeys/features/hidden-storage/images/hidden/hidden-storage-partition.png
similarity index 100%
rename from source/components/storage/linux/images/hidden-storage-partition.png
rename to source/components/nitrokeys/features/hidden-storage/images/hidden/hidden-storage-partition.png
diff --git a/source/components/storage/images/hidden-storage-passphrase.png b/source/components/nitrokeys/features/hidden-storage/images/hidden/hidden-storage-passphrase.png
similarity index 100%
rename from source/components/storage/images/hidden-storage-passphrase.png
rename to source/components/nitrokeys/features/hidden-storage/images/hidden/hidden-storage-passphrase.png
diff --git a/source/components/storage/images/setup_hidden_volume.png b/source/components/nitrokeys/features/hidden-storage/images/hidden/setup_hidden_volume.png
similarity index 100%
rename from source/components/storage/images/setup_hidden_volume.png
rename to source/components/nitrokeys/features/hidden-storage/images/hidden/setup_hidden_volume.png
diff --git a/source/components/nitrokeys/features/hidden-storage/index.rst b/source/components/nitrokeys/features/hidden-storage/index.rst
new file mode 100644
index 0000000000..19c557a539
--- /dev/null
+++ b/source/components/nitrokeys/features/hidden-storage/index.rst
@@ -0,0 +1,99 @@
+Hidden Volumes
+==============
+
+.. list-table::
+ :width: 100%
+ :header-rows: 1
+ :class: products-table
+
+ * - `Nitrokey 3 `_
+ - `Nitrokey Passkey `_
+ - `Nitrokey FIDO2 `_
+ - `Nitrokey U2F `_
+ - `Nitrokey HSM 2 `_
+ - `Nitrokey Pro 2 `_
+ - `Nitrokey Start `_
+ - `Nitrokey Storage 2 `_
+
+ * - ⨯
+ - ⨯
+ - ⨯
+ - ⨯
+ - ⨯
+ - ⨯
+ - ⨯
+ - ✓
+
+Hidden volumes allow hiding data inside of the encrypted volume. This data is protected by an additional passphrase. Without the passphrase, it is impossible to know whether hidden volumes are present.
+They are not configured with a default password so that their existence can be `denied plausibly `__.
+The concept is similar to `VeraCrypt's/TrueCrypt's hidden volume `__ but with Nitrokey Storage the entire functionality of hidden volumes is implemented in hardware.
+
+You can configure up to four hidden volumes. Once unlocked, hidden volumes behave like ordinary storage where you can create various partitions, filesystems and store files as you like.
+
+.. warning::
+ If you chose to use hidden volumes, you must not write any data to the encrypted volume, or you risk loosing data in the hidden volume.
+
+.. note::
+ Hidden volumes are hidden within the free space of the encrypted volume, which will be overwritten when writing data to the encrypted volume.
+ There are no mechanisms to prevent accidental overwritting of hidden data, as they would reveal the existence of hidden volumes.
+ Data written to the encrypted volume before the creation of the hidden volume can still be read.
+
+.. figure:: images/hidden/hidden-schema.svg
+ :alt: Hidden volume description. The hidden volumes are within the free space of the encrypted volume.
+
+
+Configuring hidden volumes
+--------------------------
+
+.. tip::
+ Copy some files to the encrypted volume prior to creating the hidden volume.
+
+.. note::
+ Using a journaling filesystem may risk overwriting the hidden data. The encrypted filesystem is formated to FAT32 by default, and it is recommended to leave it that way when using hidden volumes.
+
+
+1. Unlock the encrypted volume using the Nitrokey App.
+2. In the menu, select "setup hidden volume".
+
+ .. figure:: images/hidden/setup_hidden_volume.png
+ :alt: menu containing the hidden volume setup utility.
+
+3. Enter a strong passphrase twice. Unlike the encrypted volume PIN, there are no limit to the number of attempts at opening hidden volumes, so the strength of the passphrase is extremely important.
+4. Define the storage area to be used. Hidden volumes are stored in the free areas of the encrypted volume. When creating multiple hidden volume, you need to allocate a part of the free area for each volume, making sure they do not overlap.
+
+ .. figure:: images/hidden/hidden-storage-passphrase.png
+ :alt: Hidden volume dialog box
+
+Using hidden volumes
+--------------------
+
+1. Unlock the encrypted volume.
+
+2. Select "unlock hidden volume" and enter any of the hidden volume's passwords.
+
+3.
+
+ .. tabs::
+ .. tab:: Linux
+
+ If this is the first time you unlock the hidden volume, you may need to create a partition on the hidden volume. You will need to open a partition manager such as `GParted `__ and create one or more partitions manually. Make sure to create the partitions on the device that appeared when unlocking the hidden volume.
+
+ .. figure:: images/hidden/hidden-storage-partition.png
+ :alt: Hidden volume partitioning
+
+ .. tab:: MacOS
+
+ If this is the first time you unlock the hidden volume, you may need to create a partition on the hidden volume. You will need to use `Disk Utility `__. Make sure to create the partitions on the device that appeared when unlocking the hidden volume.
+
+ .. tab:: Windows
+
+ If this is the first time you unlock the hidden volume, you may need to create a partition on the hidden volume. In this case, Windows will prompt you to do so. You can then format the hidden volume using FAT32, for compatibility with most operating systems.
+
+
+ .. figure:: images/hidden/format-dialog.png
+ :alt: Windows formating prompt
+
+ .. figure:: images/hidden/format-tool.png
+ :alt: Windows formating tool
+
+4. Make sure to unmount/eject all partitions on the hidden volumes before locking or disconnecting the Nitrokey.
\ No newline at end of file
diff --git a/source/components/hsm/apache2-tls.rst.inc b/source/components/nitrokeys/features/hsm/apache2-tls.rst
similarity index 97%
rename from source/components/hsm/apache2-tls.rst.inc
rename to source/components/nitrokeys/features/hsm/apache2-tls.rst
index 78a27eafa6..eb7269a511 100644
--- a/source/components/hsm/apache2-tls.rst.inc
+++ b/source/components/nitrokeys/features/hsm/apache2-tls.rst
@@ -1,6 +1,10 @@
TLS Setup With Apache2
======================
+.. include:: index.rst
+ :start-after: products-begin
+ :end-before: products-end
+
.. contents:: :local:
.. hint::
@@ -70,7 +74,7 @@ Complete Apache2 Config Example
-------------------------------
A complete Apache2 (``VirtualHost``) config snippet might look like this:
-.. code-block:: bash
+::
SSLPassPhraseDialog "|/bin/echo 123456"
diff --git a/source/components/hsm/linux/dnssec.rst b/source/components/nitrokeys/features/hsm/dnssec.rst
similarity index 89%
rename from source/components/hsm/linux/dnssec.rst
rename to source/components/nitrokeys/features/hsm/dnssec.rst
index 60a10d0b2b..dcb64e2ad3 100644
--- a/source/components/hsm/linux/dnssec.rst
+++ b/source/components/nitrokeys/features/hsm/dnssec.rst
@@ -1,6 +1,10 @@
DNSSEC
======================
+.. include:: index.rst
+ :start-after: products-begin
+ :end-before: products-end
+
.. contents:: :local:
diff --git a/source/components/hsm/import-keys-certs.rst.inc b/source/components/nitrokeys/features/hsm/import-keys-certs.rst
similarity index 97%
rename from source/components/hsm/import-keys-certs.rst.inc
rename to source/components/nitrokeys/features/hsm/import-keys-certs.rst
index 633a197d5c..758d5d0161 100644
--- a/source/components/hsm/import-keys-certs.rst.inc
+++ b/source/components/nitrokeys/features/hsm/import-keys-certs.rst
@@ -1,6 +1,10 @@
Importing Keys And Certificates
===============================
+.. include:: index.rst
+ :start-after: products-begin
+ :end-before: products-end
+
.. contents:: :local:
Generally the concept to import key-pairs and/or certificates
diff --git a/source/components/nitrokeys/features/hsm/index.rst b/source/components/nitrokeys/features/hsm/index.rst
new file mode 100644
index 0000000000..42c7c7eee8
--- /dev/null
+++ b/source/components/nitrokeys/features/hsm/index.rst
@@ -0,0 +1,44 @@
+HSM Features
+============
+
+.. section products-begin
+.. list-table::
+ :width: 100%
+ :header-rows: 1
+ :class: products-table
+
+ * - `Nitrokey 3 `_
+ - `Nitrokey Passkey `_
+ - `Nitrokey FIDO2 `_
+ - `Nitrokey U2F `_
+ - `Nitrokey HSM 2 `_
+ - `Nitrokey Pro 2 `_
+ - `Nitrokey Start `_
+ - `Nitrokey Storage 2 `_
+
+ * - ⨯
+ - ⨯
+ - ⨯
+ - ⨯
+ - ✓
+ - ⨯
+ - ⨯
+ - ⨯
+.. section products-end
+
+.. toctree::
+ :maxdepth: 1
+
+ SMIME <../openpgp-card/smime/index>
+ Smart <../openpgp-card/desktop-login/smart-policy>
+ GPA <../openpgp-card/gpa>
+ DNSSEC (Linux only)
+ Hard Disk Encryption <../openpgp-card/hard-disk-encryption/index>
+ Automatic Screen Lock (Linux only) <../misc/automatic-screen-lock>
+ Import Keys Certs
+ Stunnel (Linux only) <../openpgp-card/stunnel>
+ Certificate Authority <../openpgp-card/certificate-authority>
+ Ipsec (Linux only) <../openpgp-card/ipsec>
+ N-of-m Schemes
+ Pkcs11-URL
+ Apache 2 TLS
\ No newline at end of file
diff --git a/source/components/hsm/n-of-m-schemes.rst b/source/components/nitrokeys/features/hsm/n-of-m-schemes.rst
similarity index 94%
rename from source/components/hsm/n-of-m-schemes.rst
rename to source/components/nitrokeys/features/hsm/n-of-m-schemes.rst
index 622ac1ba44..f309c6ef01 100644
--- a/source/components/hsm/n-of-m-schemes.rst
+++ b/source/components/nitrokeys/features/hsm/n-of-m-schemes.rst
@@ -1,3 +1,10 @@
+N-of-m Schemes
+==============
+
+.. include:: index.rst
+ :start-after: products-begin
+ :end-before: products-end
+
The Nitrokey HSM 2 supports two different n-of-m schemes - one for secure sharing of key material/passwords and one for public key authentication to control the access to the device. Please see `this blog post `__ for more detailed information.
N-of-m for DKEK Shares
diff --git a/source/components/hsm/pkcs11-url.rst.inc b/source/components/nitrokeys/features/hsm/pkcs11-url.rst
similarity index 95%
rename from source/components/hsm/pkcs11-url.rst.inc
rename to source/components/nitrokeys/features/hsm/pkcs11-url.rst
index 67302aaa1f..348a3d94bb 100644
--- a/source/components/hsm/pkcs11-url.rst.inc
+++ b/source/components/nitrokeys/features/hsm/pkcs11-url.rst
@@ -1,6 +1,10 @@
PKCS#11 URL Generation
======================
+.. include:: index.rst
+ :start-after: products-begin
+ :end-before: products-end
+
.. contents:: :local:
@@ -41,7 +45,7 @@ Use the following command to get a list of available tokens (Nitrokeys):
Choose the token (Nitrokey) URL you want to generate URL tokens for and use it like this:
-.. code-block:: bash
+::
p11tool --list-all
diff --git a/source/components/nitrokeys/features/index.rst b/source/components/nitrokeys/features/index.rst
new file mode 100644
index 0000000000..46cc3be5c0
--- /dev/null
+++ b/source/components/nitrokeys/features/index.rst
@@ -0,0 +1,17 @@
+Features
+========
+
+.. toctree::
+ :maxdepth: 1
+ :glob:
+
+ FIDO2
+ U2F
+ TOTP
+ OpenPGP card
+ Password Safe
+ Encrypted Mobile Storage
+ Hidden Storage
+ HSM
+ PIV (Windows only)
+ Miscellaneous
diff --git a/source/components/pro/linux/automatic-screen-lock.rst b/source/components/nitrokeys/features/misc/automatic-screen-lock.rst
similarity index 76%
rename from source/components/pro/linux/automatic-screen-lock.rst
rename to source/components/nitrokeys/features/misc/automatic-screen-lock.rst
index a79abdc700..720a371e87 100644
--- a/source/components/pro/linux/automatic-screen-lock.rst
+++ b/source/components/nitrokeys/features/misc/automatic-screen-lock.rst
@@ -1,6 +1,31 @@
Automatic Screen Lock at Removal
================================
+.. section products-begin
+.. list-table::
+ :width: 100%
+ :header-rows: 1
+ :class: products-table
+
+ * - `Nitrokey 3 `_
+ - `Nitrokey Passkey `_
+ - `Nitrokey FIDO2 `_
+ - `Nitrokey U2F `_
+ - `Nitrokey HSM 2 `_
+ - `Nitrokey Pro 2 `_
+ - `Nitrokey Start `_
+ - `Nitrokey Storage 2 `_
+
+ * - ⨯
+ - ⨯
+ - ⨯
+ - ⨯
+ - ✓
+ - ✓
+ - ⨯
+ - ✓
+.. section products-end
+
.. contents:: :local:
This guide will walk you through the configuration of your computer, to automatically lock your session when you remove the Nitrokey.
diff --git a/source/components/pro/ecc.rst.inc b/source/components/nitrokeys/features/misc/ecc.rst
similarity index 91%
rename from source/components/pro/ecc.rst.inc
rename to source/components/nitrokeys/features/misc/ecc.rst
index 7eb28ac0e4..c6563c4d6b 100644
--- a/source/components/pro/ecc.rst.inc
+++ b/source/components/nitrokeys/features/misc/ecc.rst
@@ -1,6 +1,31 @@
Elliptic Curves (ECC) Support
=============================
+.. section products-begin
+.. list-table::
+ :width: 100%
+ :header-rows: 1
+ :class: products-table
+
+ * - `Nitrokey 3 `_
+ - `Nitrokey Passkey `_
+ - `Nitrokey FIDO2 `_
+ - `Nitrokey U2F `_
+ - `Nitrokey HSM 2 `_
+ - `Nitrokey Pro 2 `_
+ - `Nitrokey Start `_
+ - `Nitrokey Storage 2 `_
+
+ * - ⨯
+ - ⨯
+ - ⨯
+ - ⨯
+ - ⨯
+ - ✓
+ - ⨯
+ - ✓
+.. section products-end
+
.. contents:: :local:
RSA-2048 Becomes Increasingly Insecure
@@ -86,7 +111,7 @@ Now we enter ``gpg2 --card-edit`` and see that brainpoolP256r1 is under
Then we create the key.
-.. code-block:: bash
+::
gpg/card> admin
Admin commands are allowed
diff --git a/source/components/nitrokeys/features/misc/index.rst b/source/components/nitrokeys/features/misc/index.rst
new file mode 100644
index 0000000000..245e11bfcd
--- /dev/null
+++ b/source/components/nitrokeys/features/misc/index.rst
@@ -0,0 +1,8 @@
+Miscellaneous
+=============
+
+.. toctree::
+ :maxdepth: 1
+
+ Automatic Screen Lock
+ Elliptic Curves (ECC) Support
\ No newline at end of file
diff --git a/source/components/hsm/certificate-authority.rst.inc b/source/components/nitrokeys/features/openpgp-card/certificate-authority.rst
similarity index 97%
rename from source/components/hsm/certificate-authority.rst.inc
rename to source/components/nitrokeys/features/openpgp-card/certificate-authority.rst
index 6e64e24933..b20fe58ee0 100644
--- a/source/components/hsm/certificate-authority.rst.inc
+++ b/source/components/nitrokeys/features/openpgp-card/certificate-authority.rst
@@ -1,6 +1,31 @@
Creating a Certificate Authority
================================
+.. section products-begin
+.. list-table::
+ :width: 100%
+ :header-rows: 1
+ :class: products-table
+
+ * - `Nitrokey 3 `_
+ - `Nitrokey Passkey `_
+ - `Nitrokey FIDO2 `_
+ - `Nitrokey U2F `_
+ - `Nitrokey HSM 2 `_
+ - `Nitrokey Pro 2 `_
+ - `Nitrokey Start `_
+ - `Nitrokey Storage 2 `_
+
+ * - ✓
+ - ⨯
+ - ⨯
+ - ⨯
+ - ✓
+ - ✓
+ - ✓
+ - ✓
+.. section products-end
+
.. contents:: :local:
This article shows you how to setup your own private certificate authority backed by a Nitrokey HSM. This certificate authority has no automation and does not really scale. Other open source projects can be referenced for automation and scalability.
@@ -57,7 +82,7 @@ Creating The Root Certificate Authority
We start by generating the private key for the certificate authority directly on the Nitrokey HSM. This allows us to use the private key in the future, but not access it.
-.. code-block:: bash
+::
# Generate private key on HSM
$ pkcs11-tool -l --keypairgen --key-type EC:secp384r1 --label root
@@ -154,7 +179,7 @@ Fill out the request information in with information for your C
Generate the self-signed public certificate from the private key. Use the private key id value from earlier.
-.. code-block:: bash
+::
$ openssl req -config create_root_cert.ini -engine pkcs11 -keyform engine -key e0161cc8b6f5d66ac6835ecdecb623fc0506a675 -new -x509 -days 3650 -sha512 -extensions v3_ca -out ../certs/root.crt
engine "pkcs11" set.
@@ -162,7 +187,7 @@ Generate the self-signed public certificate from the private key. Use the privat
Verify that the root certificate was generated correctly. Verify that Signature-Algorithm matches above and below. Verify that Issuer and Subject match, all root certificates are self signed. Verify that Key Usage matches what was in the v3_ca information in our config file.
-.. code-block:: bash
+::
$ openssl x509 -noout -text -in ../certs/root.crt
Certificate:
@@ -212,7 +237,7 @@ Creating The Intermediate Certificate Authority
We continue by generating the private key for the intermediate certificate authority directly on the Nitrokey HSM. This allows us to use the private key in the future, but not access it.
-.. code-block:: bash
+::
# Generate private key on HSM
$ pkcs11-tool -l --keypairgen --key-type EC:secp384r1 --label intermediate
@@ -276,7 +301,7 @@ Fill out the request information in with information for your C
Generate the certificate signing request for the intermediate CA from the intermediate CA’s private key. Use the private key ID value from earlier.
-.. code-block:: bash
+::
$ openssl req -config create_intermediate_csr.ini -engine pkcs11 -keyform engine -key bcb48fe9b566ae61891aabbfde6a23d4ff3ab639 -new -sha512 -out ../intermediate/csr/intermediate.csr
engine "pkcs11" set.
@@ -284,7 +309,7 @@ Generate the certificate signing request for the intermediate CA from the interm
Verify that the CSR was created correctly. Verify that your Subject is correct. Verify that your Public Key and Signature Algorithm are correct.
-.. code-block:: bash
+::
$ openssl req -text -noout -verify -in ../intermediate/csr/intermediate.csr
verify OK
@@ -317,7 +342,7 @@ Verify that the CSR was created correctly. Verify that your Subject is correct.
We need to find out the fully qualified PKCS#11 URI for your private key:
-.. code-block:: bash
+::
$ p11tool --list-all
warning: no token URL was provided for this operation; the available tokens are:
@@ -413,7 +438,7 @@ Now, we need to create a config file to use the private key of the root certific
Then sign the intermediate certificate with the root certificate.
-.. code-block:: bash
+::
$ openssl ca -config sign_intermediate_csr.ini -engine pkcs11 -keyform engine -extensions v3_intermediate_ca -days 1825 -notext -md sha512 -create_serial -in ../intermediate/csr/intermediate.csr -out ../intermediate/certs/intermediate.crt
engine "pkcs11" set.
@@ -453,7 +478,7 @@ Then sign the intermediate certificate with the root certificate.
Verify that the root certificate was generated correctly. Verify that the Issuer and Subject are different, and correct. Verify that the Key Usage matches the config file. Verify that the signature algorithm are correct above and below.
-.. code-block:: bash
+::
$ openssl x509 -noout -text -in ../intermediate/certs/intermediate.crt
Certificate:
@@ -522,7 +547,7 @@ Create a CSR in the normal method for your application. Proper creation of your
We need to find out the fully qualified PKCS#11 URI for your private key:
-.. code-block:: bash
+::
$ p11tool --list-all
warning: no token URL was provided for this operation; the available tokens are:
@@ -621,7 +646,7 @@ Create a config file to use the private key of the intermediate certificate to s
Then run openssl to sign the server’s CSR.
-.. code-block:: bash
+::
$ openssl ca -config sign_server_csrs.ini -engine pkcs11 -keyform engine -extensions server_cert -days 375 -notext -md sha512 -create_serial -in server_cert.csr -out server_cert.crt
engine "pkcs11" set.
diff --git a/source/components/nitrokeys/features/openpgp-card/change-pins.rst b/source/components/nitrokeys/features/openpgp-card/change-pins.rst
new file mode 100644
index 0000000000..bf3126d3b0
--- /dev/null
+++ b/source/components/nitrokeys/features/openpgp-card/change-pins.rst
@@ -0,0 +1,73 @@
+Change User and Admin PIN
+=========================
+
+.. section products-begin
+.. list-table::
+ :width: 100%
+ :header-rows: 1
+ :class: products-table
+
+ * - `Nitrokey 3 `_
+ - `Nitrokey Passkey `_
+ - `Nitrokey FIDO2 `_
+ - `Nitrokey U2F `_
+ - `Nitrokey HSM 2 `_
+ - `Nitrokey Pro 2 `_
+ - `Nitrokey Start `_
+ - `Nitrokey Storage 2 `_
+
+ * - ⨯
+ - ⨯
+ - ⨯
+ - ⨯
+ - ⨯
+ - ✓
+ - ⨯
+ - ✓
+.. section products-end
+
+.. contents:: :local:
+
+User PIN
+--------
+
+The user PIN is at least 6-digits long and is used to get access to the content of the Nitrokey. This is the PIN you will use a lot in every day use e.g. for decrypting messages, for unlocking your encrypted storage (NK Storage only) etc.
+
+You can change the user PIN with the Nitrokey App if using a Nitrokey Pro or Nitrokey Storage. In the `Nitrokey `__ App open ‘Menu ->
+Configure -> Change User PIN’ to open the dialog to change the PIN.
+
+.. figure:: /nitrokeys/features/openpgp-card/images/change-pins/1.png
+ :alt: img1
+
+
+
+You can change the User PIN in the dialog window now.
+
+The user PIN can have up to 20 digits and other characters (e.g. alphabetic and special characters). But as the user PIN is blocked as soon three wrong PIN attempts were done, it is sufficiently secure to only have a 6 digits PIN. The default PIN is 123456.
+
+.. figure:: /nitrokeys/features/openpgp-card/images/change-pins/2.png
+ :alt: img2
+
+
+
+Admin PIN
+---------
+
+The admin PIN is at least 8-digits long and is used to change contents/settings of the Nitrokey. That is to say after initializing the Nitrokey you probably won’t need this PIN too often (e.g. if you want to add another password to the password safe of the Nitrokey Pro or Nitrokey Storage).
+
+You can change the admin PIN with the Nitrokey App if using a Nitrokey Pro or Nitrokey Storage. In the `Nitrokey App `__ open ‘Menu -> Configure ->
+Change Admin PIN’ to open the dialog to change the PIN.
+
+.. figure:: /nitrokeys/features/openpgp-card/images/change-pins/3.png
+ :alt: img3
+
+
+
+You can change the admin PIN in the dialog window now.
+
+The admin PIN can have up to 20 digits and other characters (e.g. alphabetic and special characters). But as the admin PIN is blocked as soon three wrong PIN attempts were done, it is sufficiently secure to only have 8 digits PIN. The default PIN is 12345678.
+
+.. figure:: /nitrokeys/features/openpgp-card/images/change-pins/4.png
+ :alt: img4
+
+
diff --git a/source/components/pro/images/smart-policy/1.png b/source/components/nitrokeys/features/openpgp-card/desktop-login/images/smart-policy/1.png
similarity index 100%
rename from source/components/pro/images/smart-policy/1.png
rename to source/components/nitrokeys/features/openpgp-card/desktop-login/images/smart-policy/1.png
diff --git a/source/components/pro/images/smart-policy/2.png b/source/components/nitrokeys/features/openpgp-card/desktop-login/images/smart-policy/2.png
similarity index 100%
rename from source/components/pro/images/smart-policy/2.png
rename to source/components/nitrokeys/features/openpgp-card/desktop-login/images/smart-policy/2.png
diff --git a/source/components/pro/images/smart-policy/3.png b/source/components/nitrokeys/features/openpgp-card/desktop-login/images/smart-policy/3.png
similarity index 100%
rename from source/components/pro/images/smart-policy/3.png
rename to source/components/nitrokeys/features/openpgp-card/desktop-login/images/smart-policy/3.png
diff --git a/source/components/pro/images/smart-policy/4.png b/source/components/nitrokeys/features/openpgp-card/desktop-login/images/smart-policy/4.png
similarity index 100%
rename from source/components/pro/images/smart-policy/4.png
rename to source/components/nitrokeys/features/openpgp-card/desktop-login/images/smart-policy/4.png
diff --git a/source/components/pro/images/smart-policy/5.png b/source/components/nitrokeys/features/openpgp-card/desktop-login/images/smart-policy/5.png
similarity index 100%
rename from source/components/pro/images/smart-policy/5.png
rename to source/components/nitrokeys/features/openpgp-card/desktop-login/images/smart-policy/5.png
diff --git a/source/components/pro/images/smart-policy/6.png b/source/components/nitrokeys/features/openpgp-card/desktop-login/images/smart-policy/6.png
similarity index 100%
rename from source/components/pro/images/smart-policy/6.png
rename to source/components/nitrokeys/features/openpgp-card/desktop-login/images/smart-policy/6.png
diff --git a/source/components/nitrokeys/features/openpgp-card/desktop-login/index.rst b/source/components/nitrokeys/features/openpgp-card/desktop-login/index.rst
new file mode 100644
index 0000000000..dce913093a
--- /dev/null
+++ b/source/components/nitrokeys/features/openpgp-card/desktop-login/index.rst
@@ -0,0 +1,13 @@
+Desktop Login
+=============
+
+.. include:: ../index.rst
+ :start-after: products-begin
+ :end-before: products-end
+
+.. toctree::
+ :maxdepth: 1
+ :glob:
+
+ Pam (Linux)
+ Smart Policy (Windows)
\ No newline at end of file
diff --git a/source/components/pro/login-with-pam.rst.inc b/source/components/nitrokeys/features/openpgp-card/desktop-login/pam.rst
similarity index 61%
rename from source/components/pro/login-with-pam.rst.inc
rename to source/components/nitrokeys/features/openpgp-card/desktop-login/pam.rst
index 42f922fb9a..765b9444e6 100644
--- a/source/components/pro/login-with-pam.rst.inc
+++ b/source/components/nitrokeys/features/openpgp-card/desktop-login/pam.rst
@@ -1,3 +1,10 @@
+PAM
+===
+
+.. include:: ../index.rst
+ :start-after: products-begin
+ :end-before: products-end
+
.. contents:: :local:
How to Setup The Login
@@ -13,30 +20,30 @@ It is necessary to already have keys generated on the Nitrokey, as the authentic
1. At first you need to find out the Application ID of your Nitrokey. It looks like or similar to ``D00600012401020000000000xxxxxxxx``.
-.. code-block:: bash
-
- gpg --card-status | grep Application
+ .. code-block:: bash
+
+ gpg --card-status | grep Application
2. Now you have to add a line to ``/etc/poldi/localdb/users`` which contains the following information ````.
- This could look like ``D00600012401020000000000xxxxxxxx nitrokeyuser``. Now dump the public key from the Nitrokey into Poldis local db:
+ This could look like ``D00600012401020000000000xxxxxxxx nitrokeyuser``. Now dump the public key from the Nitrokey into Poldis local db:
-.. code-block:: bash
+ .. code-block:: bash
- sudo sh -c 'gpg-connect-agent "/datafile /etc/poldi/localdb/keys/" "SCD READKEY --advanced OPENPGP.3" /bye'
+ sudo sh -c 'gpg-connect-agent "/datafile /etc/poldi/localdb/keys/" "SCD READKEY --advanced OPENPGP.3" /bye'
-Please be aware that you have to insert your Application ID in the line above with the one of your Nitrokey!
+ Please be aware that you have to insert your Application ID in the line above with the one of your Nitrokey!
-Then you have to configure PAM. Just add ``auth sufficient pam_poldi.so`` to PAM configuration files according to your needs:
+ Then you have to configure PAM. Just add ``auth sufficient pam_poldi.so`` to PAM configuration files according to your needs:
- * ``/etc/pam.d/common-auth`` for graphical user login
- * ``/etc/pam.d/login`` for console login
- * ``/etc/pam.d/sudo`` for sudo authentication
- * ``/etc/pam.d/gnome-screensaver`` for login back from a locked screen
- * and other files in ``/etc/pam.d``
+ * ``/etc/pam.d/common-auth`` for graphical user login
+ * ``/etc/pam.d/login`` for console login
+ * ``/etc/pam.d/sudo`` for sudo authentication
+ * ``/etc/pam.d/gnome-screensaver`` for login back from a locked screen
+ * and other files in ``/etc/pam.d``
-.. note:: PAM is dangerous to play around with, so make sure you have a way of accessing the machine if you break authentication completely. Remember that booting into rescue mode from GRUB requires a root password, so keep that or a live CD which can read your filesystems to hand.
+ .. note:: PAM is dangerous to play around with, so make sure you have a way of accessing the machine if you break authentication completely. Remember that booting into rescue mode from GRUB requires a root password, so keep that or a live CD which can read your filesystems to hand.
Here you find `further instructions `__ (in German, partially outdated).
@@ -45,7 +52,7 @@ Troubleshooting
If you get an error similar to ``ERR 100663414 Invalid ID `` you should try instead
-.. code-block:: bash
+::
poldi-ctrl -k > ; sudo mv /etc/poldi/localdb/keys
diff --git a/source/components/nitrokeys/features/openpgp-card/desktop-login/smart-policy.rst b/source/components/nitrokeys/features/openpgp-card/desktop-login/smart-policy.rst
new file mode 100644
index 0000000000..4d2d489f97
--- /dev/null
+++ b/source/components/nitrokeys/features/openpgp-card/desktop-login/smart-policy.rst
@@ -0,0 +1,122 @@
+Login to Windows Domain Computers With MS Active Directory
+==========================================================
+
+.. section products-begin
+.. list-table::
+ :width: 100%
+ :header-rows: 1
+ :class: products-table
+
+ * - `Nitrokey 3 `_
+ - `Nitrokey Passkey `_
+ - `Nitrokey FIDO2 `_
+ - `Nitrokey U2F `_
+ - `Nitrokey HSM 2 `_
+ - `Nitrokey Pro 2 `_
+ - `Nitrokey Start `_
+ - `Nitrokey Storage 2 `_
+
+ * - ✓
+ - ⨯
+ - ⨯
+ - ⨯
+ - ✓
+ - ✓
+ - ✓
+ - ✓
+.. section products-end
+
+.. contents:: :local:
+
+1. Download and install the latest
+ `OpenSC `__.
+2. Use a text editor to add the following settings to
+ ``C:\Program Files:\OpenSC Project\OpenSC\opensc.conf``.
+
+ ::
+
+ # Nitrokey Pro 2, OpenPGP Card, Nitrokey Storage 2
+ card_atr 3b:da:18:ff:81:b1:fe:75:1f:03:00:31:f5:73:c0:01:60:00:90:00:1c {
+ type = 9002;
+ driver = "openpgp";
+ # name = "Nitrokey Pro 2";
+ md_read_only = false;
+ md_supports_X509_enrollment = true;
+ }
+ # Nitrokey Pro, OpenPGP Card
+ card_atr 3B:DA:18:FF:81:B1:FE:75:1F:03:00:31:C5:73:C0:01:40:00:90:00:0C {
+ type = 9002;
+ driver = "openpgp";
+ # name = "Nitrokey Pro";
+ md_read_only = false;
+ md_supports_X509_enrollment = true;
+ }
+ # Nitrokey HSM 2, SmartCard-HSM
+ card_atr 3b:de:18:ff:81:91:fe:1f:c3:80:31:81:54:48:53:4d:31:73:80:21:40:81:07:1c {
+ type = 26000;
+ driver = "sc-hsm";
+ # name = "Nitrokey HSM 2";
+ md_read_only = false;
+ md_supports_X509_enrollment = true;
+ }
+ # Nitrokey HSM, SmartCard-HSM
+ card_atr 3B:FE:18:00:00:81:31:FE:45:80:31:81:54:48:53:4D:31:73:80:21:40:81:07:FA {
+ type = 26000;
+ driver = "sc-hsm";
+ # name = "Nitrokey HSM";
+ md_read_only = false;
+ md_supports_X509_enrollment = true;
+ }
+
+
+3. Open a command terminal and enter “regedit”. Use regedit to import
+ `this
+ file `__.
+4. Now you can enroll Nitrokeys for your users managed in Microsoft
+ Active Directory. You may either use Microsoft PKI,
+ `gpgsm `__,
+ or `Smart
+ Policy `__.
+ The following steps describe the usage of Smart Policy.
+5. `Download `__
+ and install Smart Policy.
+6. Select “Read a smart card”
+
+ .. figure:: images/smart-policy/1.png
+ :alt: img1
+
+
+
+7. Select the certificate, mapping, and user.
+
+ .. figure:: images/smart-policy/2.png
+ :alt: img2
+
+
+
+8. Verify the device status via CRL.
+
+ .. figure:: images/smart-policy/3.png
+ :alt: img3
+
+
+
+9. Choose a Group Policy Object (GPO).
+
+ .. figure:: images/smart-policy/4.png
+ :alt: img4
+
+
+
+10. Confirm applying the mapping.
+
+.. figure:: images/smart-policy/5.png
+ :alt: img5
+
+
+
+From now on, when logging on to your Windows computer you need to connect the Nitrokey and enter your PIN.
+
+.. figure:: images/smart-policy/6.png
+ :alt: img6
+
diff --git a/source/components/pro/eidauthenticate.rst.inc b/source/components/nitrokeys/features/openpgp-card/eid.rst
similarity index 67%
rename from source/components/pro/eidauthenticate.rst.inc
rename to source/components/nitrokeys/features/openpgp-card/eid.rst
index 6197f352ed..a735aaf824 100644
--- a/source/components/pro/eidauthenticate.rst.inc
+++ b/source/components/nitrokeys/features/openpgp-card/eid.rst
@@ -1,27 +1,32 @@
Login With EIDAuthenticate on Stand Alone Windows Computers
===========================================================
+.. include:: index.rst
+ :start-after: products-begin
+ :end-before: products-end
+
.. contents:: :local:
1. Download and install the latest version of `OpenSC `__. Please install the `OpenPGP-CSP `__ driver **instead** if using Nitrokey Storage 2 or Nitrokey Pro 2.
2. Download and install `EIDAuthenticate `__.
- .. note::
- The free community edition is disabled. You may test the enterprise edition instead.
+ .. note::
+
+ The free community edition is disabled. You may test the enterprise edition instead.
3. Start EIDConfigurationWizard.exe
4. Select “Associate a new certificate”
-.. figure:: /components/pro/images/eidauthenticate/1.png
- :alt: img1
+ .. figure:: images/eidauthenticate/1.png
+ :alt: img1
5. Select or generate a Certificate Authority which should issue the
user’s certificate on the Nitrokey.
-.. figure:: /components/pro/images/eidauthenticate/2.png
- :alt: img2
+ .. figure:: images/eidauthenticate/2.png
+ :alt: img2
@@ -30,43 +35,43 @@ Login With EIDAuthenticate on Stand Alone Windows Computers
your Nitrokey is not detected you may want to execute “certutil
-scinfo” for troubleshooting.
-.. figure:: /components/pro/images/eidauthenticate/3.png
- :alt: img3
+ .. figure:: images/eidauthenticate/3.png
+ :alt: img3
7. Select the newly generated certificate and press continue.
-.. figure:: /components/pro/images/eidauthenticate/4.png
- :alt: img4
+ .. figure:: images/eidauthenticate/4.png
+ :alt: img4
8. All checks should succeed. Press continue.
-.. figure:: /components/pro/images/eidauthenticate/5.png
- :alt: img5
+ .. figure:: images/eidauthenticate/5.png
+ :alt: img5
9. Enter the password of your user account.
-.. figure:: /components/pro/images/eidauthenticate/6.png
- :alt: img6
+ .. figure:: images/eidauthenticate/6.png
+ :alt: img6
10. Enter the user PIN which you defined previously in step 4.
-.. figure:: /components/pro/images/eidauthenticate/7.png
- :alt: img7
+ .. figure:: images/eidauthenticate/7.png
+ :alt: img7
11. The final screen may look like this.
-.. figure:: /components/pro/images/eidauthenticate/8.png
- :alt: img8
+ .. figure:: images/eidauthenticate/8.png
+ :alt: img8
@@ -74,6 +79,6 @@ You may perform further configurations such as activate the force smart card pol
From now on, when logging on to your Windows computer you need to connect the Nitrokey and enter your PIN.
-.. figure:: /components/pro/images/eidauthenticate/9.png
+.. figure:: images/eidauthenticate/9.png
:alt: img9
diff --git a/source/components/nitrokey3/linux/fedora-gnupg-configuration.rst b/source/components/nitrokeys/features/openpgp-card/fedora-gnupg-configuration.rst
similarity index 97%
rename from source/components/nitrokey3/linux/fedora-gnupg-configuration.rst
rename to source/components/nitrokeys/features/openpgp-card/fedora-gnupg-configuration.rst
index 3748b2e8ca..82bc3c8ef4 100644
--- a/source/components/nitrokey3/linux/fedora-gnupg-configuration.rst
+++ b/source/components/nitrokeys/features/openpgp-card/fedora-gnupg-configuration.rst
@@ -1,6 +1,10 @@
OpenPGP smartcard with GnuPG on Fedora
======================================
+.. include:: index.rst
+ :start-after: products-begin
+ :end-before: products-end
+
.. note::
The following instructions require the Nitrokey 3 to have at least firmware version ``1.4.0`` installed.
Please refer to `firmware update <./firmware-update.html>`__ to learn how to update it.
diff --git a/source/components/pro/gpa.rst b/source/components/nitrokeys/features/openpgp-card/gpa.rst
similarity index 68%
rename from source/components/pro/gpa.rst
rename to source/components/nitrokeys/features/openpgp-card/gpa.rst
index 3976f8d855..867ee0ac31 100644
--- a/source/components/pro/gpa.rst
+++ b/source/components/nitrokeys/features/openpgp-card/gpa.rst
@@ -1,55 +1,80 @@
Setup With Gnu Privacy Assistant (GPA)
=======================================================
+.. section products-begin
+.. list-table::
+ :width: 100%
+ :header-rows: 1
+ :class: products-table
+
+ * - `Nitrokey 3 `_
+ - `Nitrokey Passkey `_
+ - `Nitrokey FIDO2 `_
+ - `Nitrokey U2F `_
+ - `Nitrokey HSM 2 `_
+ - `Nitrokey Pro 2 `_
+ - `Nitrokey Start `_
+ - `Nitrokey Storage 2 `_
+
+ * - ✓
+ - ⨯
+ - ⨯
+ - ⨯
+ - ✓
+ - ✓
+ - ✓
+ - ✓
+.. section products-end
+
This document describes how to use Gnu Privacy Assistant (GPA) to set up the Nitrokey for its first usage.
1. First you need to install Gnu Privacy Assistant (GPA). For Windows you should download and install the `GPG4Win `__ package which contains GPA. For Linux you should install the GPA package of your distribution (e.g. on Ubuntu: sudo apt-get install gpa ).
2. Start GPA and select the Card Manager; either by pressing the icon at the top or by choosing Card Manager in the Windows menu.
- .. figure:: /components/pro/images/gpa/1.png
+ .. figure:: images/gpa/1.png
:alt: img1
3. The window of the Card Manager will appear. Enter your salutation, name and optional other information. While doing so you might be asked to enter the admin PIN.
- .. figure:: /components/pro/images/gpa/2.png
+ .. figure:: images/gpa/2.png
:alt: img2
4. Confirm this window and enter the admin PIN in the next window.
- .. figure:: /components/pro/images/gpa/3.png
+ .. figure:: images/gpa/3.png
:alt: img3
5. In the Card Manager window you might need to scroll down until you see the buttons to change the PINs. The term PIN is used interchangeable with "password". Press the first button "Change PIN" in order to change the user password. Read and confirm the following information window.
- .. figure:: /components/pro/images/gpa/4.png
+ .. figure:: images/gpa/4.png
:alt: img4
6. Choose and enter your own PIN with a minimum length of six characters. This PIN is required for the daily usage of the Nitrokey.
- .. figure:: /components/pro/images/gpa/5.png
+ .. figure:: images/gpa/5.png
:alt: img5
7. Go back to the Card Manager window in step three. This time you choose the third button Change PIN in order to change the admin PIN. The admin PIN is required to change the information on the Nitrokey and to change the cryptographic keys. Proceed as described in steps four and five.
8. After changing both the user and the admin PIN, you are back in the Card Manager window. Select "Generate key" in the "Card" menu.
- .. figure:: /components/pro/images/gpa/6.png
+ .. figure:: images/gpa/6.png
:alt: img6
9. Enter your name and e-mail address. You should keep "backup" enabled in order to create a backup file of your cryptographic keys. Optionally you might select an expiration date for your cryptographic keys.
- .. figure:: /components/pro/images/gpa/7.png
+ .. figure:: images/gpa/7.png
:alt: img7
10. Wait until the keys are generated successfully.
- .. figure:: /components/pro/images/gpa/8.png
+ .. figure:: images/gpa/8.png
:alt: img8
11. Enter a strong passphrase for your backup keys. We strongly recommend to store the backup file on a separate storage(e.g. CD-ROM) and on a safe location.
- .. figure:: /components/pro/images/gpa/9.png
+ .. figure:: images/gpa/9.png
:alt: img9
Congratulations, your Nitrokey is now ready to use. Please see the `applications `__ section for further information of its usage.
diff --git a/source/components/pro/linux/images/luks_1.png b/source/components/nitrokeys/features/openpgp-card/hard-disk-encryption/images/luks/luks_1.png
similarity index 100%
rename from source/components/pro/linux/images/luks_1.png
rename to source/components/nitrokeys/features/openpgp-card/hard-disk-encryption/images/luks/luks_1.png
diff --git a/source/components/pro/linux/images/luks_2.png b/source/components/nitrokeys/features/openpgp-card/hard-disk-encryption/images/luks/luks_2.png
similarity index 100%
rename from source/components/pro/linux/images/luks_2.png
rename to source/components/nitrokeys/features/openpgp-card/hard-disk-encryption/images/luks/luks_2.png
diff --git a/source/components/pro/linux/images/luks_3.png b/source/components/nitrokeys/features/openpgp-card/hard-disk-encryption/images/luks/luks_3.png
similarity index 100%
rename from source/components/pro/linux/images/luks_3.png
rename to source/components/nitrokeys/features/openpgp-card/hard-disk-encryption/images/luks/luks_3.png
diff --git a/source/components/pro/linux/images/luks_5.png b/source/components/nitrokeys/features/openpgp-card/hard-disk-encryption/images/luks/luks_5.png
similarity index 100%
rename from source/components/pro/linux/images/luks_5.png
rename to source/components/nitrokeys/features/openpgp-card/hard-disk-encryption/images/luks/luks_5.png
diff --git a/source/components/pro/linux/images/luks_6.png b/source/components/nitrokeys/features/openpgp-card/hard-disk-encryption/images/luks/luks_6.png
similarity index 100%
rename from source/components/pro/linux/images/luks_6.png
rename to source/components/nitrokeys/features/openpgp-card/hard-disk-encryption/images/luks/luks_6.png
diff --git a/source/components/pro/linux/images/luks_7.png b/source/components/nitrokeys/features/openpgp-card/hard-disk-encryption/images/luks/luks_7.png
similarity index 100%
rename from source/components/pro/linux/images/luks_7.png
rename to source/components/nitrokeys/features/openpgp-card/hard-disk-encryption/images/luks/luks_7.png
diff --git a/source/components/pro/linux/hard-disk-encryption.rst b/source/components/nitrokeys/features/openpgp-card/hard-disk-encryption/index.rst
similarity index 86%
rename from source/components/pro/linux/hard-disk-encryption.rst
rename to source/components/nitrokeys/features/openpgp-card/hard-disk-encryption/index.rst
index cab92c4900..75a37952ae 100644
--- a/source/components/pro/linux/hard-disk-encryption.rst
+++ b/source/components/nitrokeys/features/openpgp-card/hard-disk-encryption/index.rst
@@ -1,6 +1,31 @@
Hard Disk Encryption
====================
+.. section products-begin
+.. list-table::
+ :width: 100%
+ :header-rows: 1
+ :class: products-table
+
+ * - `Nitrokey 3 `_
+ - `Nitrokey Passkey `_
+ - `Nitrokey FIDO2 `_
+ - `Nitrokey U2F `_
+ - `Nitrokey HSM 2 `_
+ - `Nitrokey Pro 2 `_
+ - `Nitrokey Start `_
+ - `Nitrokey Storage 2 `_
+
+ * - ✓
+ - ⨯
+ - ⨯
+ - ⨯
+ - ✓
+ - ✓
+ - ✓
+ - ✓
+.. section products-end
+
.. contents:: :local:
VeraCrypt (formerly TrueCrypt)
@@ -41,7 +66,13 @@ Note: `Aloaha Crypt `__ is based on T
Hard Disk Encryption on GNU+Linux with LUKS/dm-crypt
----------------------------------------------------
-Here are `excellent instructions `__ how to use Nitrokey to encrypt your hard disk under GNU+Linux with LUKS/dm-crypt. `Other instructions `__.
+For setting up LUKS Disk Encryption follow our guide:
+
+.. toctree::
+ :maxdepth: 1
+
+ Full-Disk Encryption With cryptsetup/LUKS
+
Purism has created a `simple script `__ to add the Nitrokey/LibremKey as a way to unlock LUKS partitions (not tested by Nitrokey yet).
diff --git a/source/components/pro/linux/disk-encryption-luks.rst b/source/components/nitrokeys/features/openpgp-card/hard-disk-encryption/luks.rst
similarity index 96%
rename from source/components/pro/linux/disk-encryption-luks.rst
rename to source/components/nitrokeys/features/openpgp-card/hard-disk-encryption/luks.rst
index 02d9fc86b7..83ee3e4c57 100644
--- a/source/components/pro/linux/disk-encryption-luks.rst
+++ b/source/components/nitrokeys/features/openpgp-card/hard-disk-encryption/luks.rst
@@ -1,6 +1,10 @@
Full-Disk Encryption With cryptsetup/LUKS
=========================================
+.. include:: index.rst
+ :start-after: products-begin
+ :end-before: products-end
+
.. contents:: :local:
This guide shows how to configure LUKS-encrypted volumes, to authenticate at boot with `Nitrokey Pro `__ or `Nitrokey Storage `__.
@@ -107,13 +111,13 @@ and sets up crypttab, LUKS, initramfs, and GRUB.
First you will be prompted for the ``User PIN``
-.. figure:: /components/pro/linux/images/luks_1.png
+.. figure:: images/luks/luks_1.png
:alt: img1
Once you unlock the Nitrokey, you will be prompted for your ``OLD passphrase``.
It is the passphrase you entered to encrypt your volume at installation.
-.. figure:: /components/pro/linux/images/luks_2.png
+.. figure:: images/luks/luks_2.png
:alt: img2
.. note:: This is a fall-back alternative in case you lose your Nitrokey, or if
@@ -125,7 +129,7 @@ Once you enter the passphrase, the script finishes the setup in about one
minute. Do not interrupt the script, or you might get locked out of your
computer after reboot.
-.. figure:: /components/pro/linux/images/luks_3.png
+.. figure:: images/luks/luks_3.png
:alt: img3
Done!
@@ -138,12 +142,12 @@ Usage
After reboot you should be prompted for your User PIN
-.. figure:: /components/pro/linux/images/luks_5.png
+.. figure:: images/luks/luks_5.png
:alt: img5
Enter your User PIN to unlock the drive
-.. figure:: /components/pro/linux/images/luks_6.png
+.. figure:: images/luks/luks_6.png
:alt: img6
diff --git a/source/components/pro/images/change-pins/1.png b/source/components/nitrokeys/features/openpgp-card/images/change-pins/1.png
similarity index 100%
rename from source/components/pro/images/change-pins/1.png
rename to source/components/nitrokeys/features/openpgp-card/images/change-pins/1.png
diff --git a/source/components/pro/images/change-pins/2.png b/source/components/nitrokeys/features/openpgp-card/images/change-pins/2.png
similarity index 100%
rename from source/components/pro/images/change-pins/2.png
rename to source/components/nitrokeys/features/openpgp-card/images/change-pins/2.png
diff --git a/source/components/pro/images/change-pins/3.png b/source/components/nitrokeys/features/openpgp-card/images/change-pins/3.png
similarity index 100%
rename from source/components/pro/images/change-pins/3.png
rename to source/components/nitrokeys/features/openpgp-card/images/change-pins/3.png
diff --git a/source/components/pro/images/change-pins/4.png b/source/components/nitrokeys/features/openpgp-card/images/change-pins/4.png
similarity index 100%
rename from source/components/pro/images/change-pins/4.png
rename to source/components/nitrokeys/features/openpgp-card/images/change-pins/4.png
diff --git a/source/components/pro/linux/images/App-change-pin.png b/source/components/nitrokeys/features/openpgp-card/images/change-pins/App-change-pin.png
similarity index 100%
rename from source/components/pro/linux/images/App-change-pin.png
rename to source/components/nitrokeys/features/openpgp-card/images/change-pins/App-change-pin.png
diff --git a/source/components/pro/images/eidauthenticate/1.png b/source/components/nitrokeys/features/openpgp-card/images/eidauthenticate/1.png
similarity index 100%
rename from source/components/pro/images/eidauthenticate/1.png
rename to source/components/nitrokeys/features/openpgp-card/images/eidauthenticate/1.png
diff --git a/source/components/pro/images/eidauthenticate/2.png b/source/components/nitrokeys/features/openpgp-card/images/eidauthenticate/2.png
similarity index 100%
rename from source/components/pro/images/eidauthenticate/2.png
rename to source/components/nitrokeys/features/openpgp-card/images/eidauthenticate/2.png
diff --git a/source/components/pro/images/eidauthenticate/3.png b/source/components/nitrokeys/features/openpgp-card/images/eidauthenticate/3.png
similarity index 100%
rename from source/components/pro/images/eidauthenticate/3.png
rename to source/components/nitrokeys/features/openpgp-card/images/eidauthenticate/3.png
diff --git a/source/components/pro/images/eidauthenticate/4.png b/source/components/nitrokeys/features/openpgp-card/images/eidauthenticate/4.png
similarity index 100%
rename from source/components/pro/images/eidauthenticate/4.png
rename to source/components/nitrokeys/features/openpgp-card/images/eidauthenticate/4.png
diff --git a/source/components/pro/images/eidauthenticate/5.png b/source/components/nitrokeys/features/openpgp-card/images/eidauthenticate/5.png
similarity index 100%
rename from source/components/pro/images/eidauthenticate/5.png
rename to source/components/nitrokeys/features/openpgp-card/images/eidauthenticate/5.png
diff --git a/source/components/pro/images/eidauthenticate/6.png b/source/components/nitrokeys/features/openpgp-card/images/eidauthenticate/6.png
similarity index 100%
rename from source/components/pro/images/eidauthenticate/6.png
rename to source/components/nitrokeys/features/openpgp-card/images/eidauthenticate/6.png
diff --git a/source/components/pro/images/eidauthenticate/7.png b/source/components/nitrokeys/features/openpgp-card/images/eidauthenticate/7.png
similarity index 100%
rename from source/components/pro/images/eidauthenticate/7.png
rename to source/components/nitrokeys/features/openpgp-card/images/eidauthenticate/7.png
diff --git a/source/components/pro/images/eidauthenticate/8.png b/source/components/nitrokeys/features/openpgp-card/images/eidauthenticate/8.png
similarity index 100%
rename from source/components/pro/images/eidauthenticate/8.png
rename to source/components/nitrokeys/features/openpgp-card/images/eidauthenticate/8.png
diff --git a/source/components/pro/images/eidauthenticate/9.png b/source/components/nitrokeys/features/openpgp-card/images/eidauthenticate/9.png
similarity index 100%
rename from source/components/pro/images/eidauthenticate/9.png
rename to source/components/nitrokeys/features/openpgp-card/images/eidauthenticate/9.png
diff --git a/source/components/pro/images/openpgp-keygen-gpa/1.png b/source/components/nitrokeys/features/openpgp-card/images/gpa-keygen/1.png
similarity index 100%
rename from source/components/pro/images/openpgp-keygen-gpa/1.png
rename to source/components/nitrokeys/features/openpgp-card/images/gpa-keygen/1.png
diff --git a/source/components/pro/images/openpgp-keygen-gpa/2.png b/source/components/nitrokeys/features/openpgp-card/images/gpa-keygen/2.png
similarity index 100%
rename from source/components/pro/images/openpgp-keygen-gpa/2.png
rename to source/components/nitrokeys/features/openpgp-card/images/gpa-keygen/2.png
diff --git a/source/components/pro/images/openpgp-keygen-gpa/3.png b/source/components/nitrokeys/features/openpgp-card/images/gpa-keygen/3.png
similarity index 100%
rename from source/components/pro/images/openpgp-keygen-gpa/3.png
rename to source/components/nitrokeys/features/openpgp-card/images/gpa-keygen/3.png
diff --git a/source/components/pro/images/openpgp-keygen-gpa/4.png b/source/components/nitrokeys/features/openpgp-card/images/gpa-keygen/4.png
similarity index 100%
rename from source/components/pro/images/openpgp-keygen-gpa/4.png
rename to source/components/nitrokeys/features/openpgp-card/images/gpa-keygen/4.png
diff --git a/source/components/pro/images/openpgp-keygen-gpa/5.png b/source/components/nitrokeys/features/openpgp-card/images/gpa-keygen/5.png
similarity index 100%
rename from source/components/pro/images/openpgp-keygen-gpa/5.png
rename to source/components/nitrokeys/features/openpgp-card/images/gpa-keygen/5.png
diff --git a/source/components/pro/images/openpgp-keygen-gpa/6.png b/source/components/nitrokeys/features/openpgp-card/images/gpa-keygen/6.png
similarity index 100%
rename from source/components/pro/images/openpgp-keygen-gpa/6.png
rename to source/components/nitrokeys/features/openpgp-card/images/gpa-keygen/6.png
diff --git a/source/components/pro/images/openpgp-keygen-gpa/7.png b/source/components/nitrokeys/features/openpgp-card/images/gpa-keygen/7.png
similarity index 100%
rename from source/components/pro/images/openpgp-keygen-gpa/7.png
rename to source/components/nitrokeys/features/openpgp-card/images/gpa-keygen/7.png
diff --git a/source/components/pro/images/gpa/1.png b/source/components/nitrokeys/features/openpgp-card/images/gpa/1.png
similarity index 100%
rename from source/components/pro/images/gpa/1.png
rename to source/components/nitrokeys/features/openpgp-card/images/gpa/1.png
diff --git a/source/components/pro/images/gpa/2.png b/source/components/nitrokeys/features/openpgp-card/images/gpa/2.png
similarity index 100%
rename from source/components/pro/images/gpa/2.png
rename to source/components/nitrokeys/features/openpgp-card/images/gpa/2.png
diff --git a/source/components/pro/images/gpa/3.png b/source/components/nitrokeys/features/openpgp-card/images/gpa/3.png
similarity index 100%
rename from source/components/pro/images/gpa/3.png
rename to source/components/nitrokeys/features/openpgp-card/images/gpa/3.png
diff --git a/source/components/pro/images/gpa/4.png b/source/components/nitrokeys/features/openpgp-card/images/gpa/4.png
similarity index 100%
rename from source/components/pro/images/gpa/4.png
rename to source/components/nitrokeys/features/openpgp-card/images/gpa/4.png
diff --git a/source/components/pro/images/gpa/5.png b/source/components/nitrokeys/features/openpgp-card/images/gpa/5.png
similarity index 100%
rename from source/components/pro/images/gpa/5.png
rename to source/components/nitrokeys/features/openpgp-card/images/gpa/5.png
diff --git a/source/components/pro/images/gpa/6.png b/source/components/nitrokeys/features/openpgp-card/images/gpa/6.png
similarity index 100%
rename from source/components/pro/images/gpa/6.png
rename to source/components/nitrokeys/features/openpgp-card/images/gpa/6.png
diff --git a/source/components/pro/images/gpa/7.png b/source/components/nitrokeys/features/openpgp-card/images/gpa/7.png
similarity index 100%
rename from source/components/pro/images/gpa/7.png
rename to source/components/nitrokeys/features/openpgp-card/images/gpa/7.png
diff --git a/source/components/pro/images/gpa/8.png b/source/components/nitrokeys/features/openpgp-card/images/gpa/8.png
similarity index 100%
rename from source/components/pro/images/gpa/8.png
rename to source/components/nitrokeys/features/openpgp-card/images/gpa/8.png
diff --git a/source/components/pro/images/gpa/9.png b/source/components/nitrokeys/features/openpgp-card/images/gpa/9.png
similarity index 100%
rename from source/components/pro/images/gpa/9.png
rename to source/components/nitrokeys/features/openpgp-card/images/gpa/9.png
diff --git a/source/components/pro/windows/images/openpgp-csp/1.png b/source/components/nitrokeys/features/openpgp-card/images/openpgp-csp/1.png
similarity index 100%
rename from source/components/pro/windows/images/openpgp-csp/1.png
rename to source/components/nitrokeys/features/openpgp-card/images/openpgp-csp/1.png
diff --git a/source/components/pro/windows/images/openpgp-csp/10.png b/source/components/nitrokeys/features/openpgp-card/images/openpgp-csp/10.png
similarity index 100%
rename from source/components/pro/windows/images/openpgp-csp/10.png
rename to source/components/nitrokeys/features/openpgp-card/images/openpgp-csp/10.png
diff --git a/source/components/pro/windows/images/openpgp-csp/11.png b/source/components/nitrokeys/features/openpgp-card/images/openpgp-csp/11.png
similarity index 100%
rename from source/components/pro/windows/images/openpgp-csp/11.png
rename to source/components/nitrokeys/features/openpgp-card/images/openpgp-csp/11.png
diff --git a/source/components/pro/windows/images/openpgp-csp/2.png b/source/components/nitrokeys/features/openpgp-card/images/openpgp-csp/2.png
similarity index 100%
rename from source/components/pro/windows/images/openpgp-csp/2.png
rename to source/components/nitrokeys/features/openpgp-card/images/openpgp-csp/2.png
diff --git a/source/components/pro/windows/images/openpgp-csp/3.png b/source/components/nitrokeys/features/openpgp-card/images/openpgp-csp/3.png
similarity index 100%
rename from source/components/pro/windows/images/openpgp-csp/3.png
rename to source/components/nitrokeys/features/openpgp-card/images/openpgp-csp/3.png
diff --git a/source/components/pro/windows/images/openpgp-csp/4.png b/source/components/nitrokeys/features/openpgp-card/images/openpgp-csp/4.png
similarity index 100%
rename from source/components/pro/windows/images/openpgp-csp/4.png
rename to source/components/nitrokeys/features/openpgp-card/images/openpgp-csp/4.png
diff --git a/source/components/pro/windows/images/openpgp-csp/5.png b/source/components/nitrokeys/features/openpgp-card/images/openpgp-csp/5.png
similarity index 100%
rename from source/components/pro/windows/images/openpgp-csp/5.png
rename to source/components/nitrokeys/features/openpgp-card/images/openpgp-csp/5.png
diff --git a/source/components/pro/windows/images/openpgp-csp/6.png b/source/components/nitrokeys/features/openpgp-card/images/openpgp-csp/6.png
similarity index 100%
rename from source/components/pro/windows/images/openpgp-csp/6.png
rename to source/components/nitrokeys/features/openpgp-card/images/openpgp-csp/6.png
diff --git a/source/components/pro/windows/images/openpgp-csp/7.png b/source/components/nitrokeys/features/openpgp-card/images/openpgp-csp/7.png
similarity index 100%
rename from source/components/pro/windows/images/openpgp-csp/7.png
rename to source/components/nitrokeys/features/openpgp-card/images/openpgp-csp/7.png
diff --git a/source/components/pro/windows/images/openpgp-csp/8.png b/source/components/nitrokeys/features/openpgp-card/images/openpgp-csp/8.png
similarity index 100%
rename from source/components/pro/windows/images/openpgp-csp/8.png
rename to source/components/nitrokeys/features/openpgp-card/images/openpgp-csp/8.png
diff --git a/source/components/pro/windows/images/openpgp-csp/9.png b/source/components/nitrokeys/features/openpgp-card/images/openpgp-csp/9.png
similarity index 100%
rename from source/components/pro/windows/images/openpgp-csp/9.png
rename to source/components/nitrokeys/features/openpgp-card/images/openpgp-csp/9.png
diff --git a/source/components/pro/windows/images/openpgp-outlook/1.png b/source/components/nitrokeys/features/openpgp-card/images/outlook/1.png
similarity index 100%
rename from source/components/pro/windows/images/openpgp-outlook/1.png
rename to source/components/nitrokeys/features/openpgp-card/images/outlook/1.png
diff --git a/source/components/pro/windows/images/openpgp-outlook/2.png b/source/components/nitrokeys/features/openpgp-card/images/outlook/2.png
similarity index 100%
rename from source/components/pro/windows/images/openpgp-outlook/2.png
rename to source/components/nitrokeys/features/openpgp-card/images/outlook/2.png
diff --git a/source/components/pro/windows/images/openpgp-outlook/3.png b/source/components/nitrokeys/features/openpgp-card/images/outlook/3.png
similarity index 100%
rename from source/components/pro/windows/images/openpgp-outlook/3.png
rename to source/components/nitrokeys/features/openpgp-card/images/outlook/3.png
diff --git a/source/components/pro/windows/images/openpgp-outlook/4.png b/source/components/nitrokeys/features/openpgp-card/images/outlook/4.png
similarity index 100%
rename from source/components/pro/windows/images/openpgp-outlook/4.png
rename to source/components/nitrokeys/features/openpgp-card/images/outlook/4.png
diff --git a/source/components/pro/images/openpgp-thunderbird/1.png b/source/components/nitrokeys/features/openpgp-card/images/thunderbird/1.png
similarity index 100%
rename from source/components/pro/images/openpgp-thunderbird/1.png
rename to source/components/nitrokeys/features/openpgp-card/images/thunderbird/1.png
diff --git a/source/components/pro/images/openpgp-thunderbird/10.png b/source/components/nitrokeys/features/openpgp-card/images/thunderbird/10.png
similarity index 100%
rename from source/components/pro/images/openpgp-thunderbird/10.png
rename to source/components/nitrokeys/features/openpgp-card/images/thunderbird/10.png
diff --git a/source/components/pro/images/openpgp-thunderbird/11.png b/source/components/nitrokeys/features/openpgp-card/images/thunderbird/11.png
similarity index 100%
rename from source/components/pro/images/openpgp-thunderbird/11.png
rename to source/components/nitrokeys/features/openpgp-card/images/thunderbird/11.png
diff --git a/source/components/pro/images/openpgp-thunderbird/12.png b/source/components/nitrokeys/features/openpgp-card/images/thunderbird/12.png
similarity index 100%
rename from source/components/pro/images/openpgp-thunderbird/12.png
rename to source/components/nitrokeys/features/openpgp-card/images/thunderbird/12.png
diff --git a/source/components/pro/images/openpgp-thunderbird/13.png b/source/components/nitrokeys/features/openpgp-card/images/thunderbird/13.png
similarity index 100%
rename from source/components/pro/images/openpgp-thunderbird/13.png
rename to source/components/nitrokeys/features/openpgp-card/images/thunderbird/13.png
diff --git a/source/components/pro/images/openpgp-thunderbird/14.png b/source/components/nitrokeys/features/openpgp-card/images/thunderbird/14.png
similarity index 100%
rename from source/components/pro/images/openpgp-thunderbird/14.png
rename to source/components/nitrokeys/features/openpgp-card/images/thunderbird/14.png
diff --git a/source/components/pro/images/openpgp-thunderbird/2.png b/source/components/nitrokeys/features/openpgp-card/images/thunderbird/2.png
similarity index 100%
rename from source/components/pro/images/openpgp-thunderbird/2.png
rename to source/components/nitrokeys/features/openpgp-card/images/thunderbird/2.png
diff --git a/source/components/pro/images/openpgp-thunderbird/3.png b/source/components/nitrokeys/features/openpgp-card/images/thunderbird/3.png
similarity index 100%
rename from source/components/pro/images/openpgp-thunderbird/3.png
rename to source/components/nitrokeys/features/openpgp-card/images/thunderbird/3.png
diff --git a/source/components/pro/images/openpgp-thunderbird/4.png b/source/components/nitrokeys/features/openpgp-card/images/thunderbird/4.png
similarity index 100%
rename from source/components/pro/images/openpgp-thunderbird/4.png
rename to source/components/nitrokeys/features/openpgp-card/images/thunderbird/4.png
diff --git a/source/components/pro/images/openpgp-thunderbird/5.png b/source/components/nitrokeys/features/openpgp-card/images/thunderbird/5.png
similarity index 100%
rename from source/components/pro/images/openpgp-thunderbird/5.png
rename to source/components/nitrokeys/features/openpgp-card/images/thunderbird/5.png
diff --git a/source/components/pro/images/openpgp-thunderbird/6.png b/source/components/nitrokeys/features/openpgp-card/images/thunderbird/6.png
similarity index 100%
rename from source/components/pro/images/openpgp-thunderbird/6.png
rename to source/components/nitrokeys/features/openpgp-card/images/thunderbird/6.png
diff --git a/source/components/pro/images/openpgp-thunderbird/7.png b/source/components/nitrokeys/features/openpgp-card/images/thunderbird/7.png
similarity index 100%
rename from source/components/pro/images/openpgp-thunderbird/7.png
rename to source/components/nitrokeys/features/openpgp-card/images/thunderbird/7.png
diff --git a/source/components/pro/images/openpgp-thunderbird/8.png b/source/components/nitrokeys/features/openpgp-card/images/thunderbird/8.png
similarity index 100%
rename from source/components/pro/images/openpgp-thunderbird/8.png
rename to source/components/nitrokeys/features/openpgp-card/images/thunderbird/8.png
diff --git a/source/components/pro/images/openpgp-thunderbird/9.png b/source/components/nitrokeys/features/openpgp-card/images/thunderbird/9.png
similarity index 100%
rename from source/components/pro/images/openpgp-thunderbird/9.png
rename to source/components/nitrokeys/features/openpgp-card/images/thunderbird/9.png
diff --git a/source/components/nitrokeys/features/openpgp-card/index.rst b/source/components/nitrokeys/features/openpgp-card/index.rst
new file mode 100644
index 0000000000..11b1e142c0
--- /dev/null
+++ b/source/components/nitrokeys/features/openpgp-card/index.rst
@@ -0,0 +1,53 @@
+OpenPGP Card
+============
+
+.. section products-begin
+.. list-table::
+ :width: 100%
+ :header-rows: 1
+ :class: products-table
+
+ * - `Nitrokey 3 `_
+ - `Nitrokey Passkey `_
+ - `Nitrokey FIDO2 `_
+ - `Nitrokey U2F `_
+ - `Nitrokey HSM 2 `_
+ - `Nitrokey Pro 2 `_
+ - `Nitrokey Start `_
+ - `Nitrokey Storage 2 `_
+
+ * - ✓
+ - ⨯
+ - ⨯
+ - ⨯
+ - ⨯
+ - ✓
+ - ✓
+ - ✓
+.. section products-end
+
+.. toctree::
+ :maxdepth: 1
+
+ Overview
+ Keygen with GPA
+ Keygen with Backup
+ Keygen on device
+ Windows Login and S/MIME Email Encryption with Active Directory
+ OpenPGP encryption with Thunderbird
+ OpenPGP encryption with Outlook
+ OpenPGP Touch Confirmation (Nitrokey 3 only)
+ OpenVPN
+ Claws Mail, an email client (and news reader) for Linux and Windows
+ Evolution, an email client for the Gnome Desktop on Linux systems
+ GPGTools on macOS
+ Desktop Login
+ SSH
+ IPSec
+ Hard Disk Encryption
+ Stunnel
+ Gnu Privacy Assistant (GPA)
+ EID
+ Certificate-authority
+ GnuPG with Fedora
+ Change Pins
\ No newline at end of file
diff --git a/source/components/nitrokeys/features/openpgp-card/ipsec.rst b/source/components/nitrokeys/features/openpgp-card/ipsec.rst
new file mode 100644
index 0000000000..add74577d7
--- /dev/null
+++ b/source/components/nitrokeys/features/openpgp-card/ipsec.rst
@@ -0,0 +1,74 @@
+IPSec
+=====
+
+.. section products-begin
+.. list-table::
+ :width: 100%
+ :header-rows: 1
+ :class: products-table
+
+ * - `Nitrokey 3 `_
+ - `Nitrokey Passkey `_
+ - `Nitrokey FIDO2 `_
+ - `Nitrokey U2F `_
+ - `Nitrokey HSM 2 `_
+ - `Nitrokey Pro 2 `_
+ - `Nitrokey Start `_
+ - `Nitrokey Storage 2 `_
+
+ * - ✓
+ - ⨯
+ - ⨯
+ - ⨯
+ - ✓
+ - ✓
+ - ✓
+ - ✓
+.. section products-end
+
+.. contents:: :local:
+
+`Strong Swan `__ works using the `PKCS#11 driver `__. Basically follow these steps:
+
+1. Generate a key on Nitrokey via pkcs11-tool. In this example it's a 4096 bit RSA key.
+
+ .. code-block:: bash
+
+ $ pkcs11-tool --module /usr/lib/x86_64-linux-gnu/pkcs11/opensc-pkcs11.so -l -k --key-type rsa:4096 --id 10 --label 'Staging Access'
+
+2. Generate a certificate signing request via openssl + pkcs11 module
+
+ .. code-block:: bash
+
+ $ openssl
+ OpenSSL> engine dynamic -pre SO_PATH:/usr/lib/x86_64-linux-gnu/engines-1.1/pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:/usr/lib/x86_64-linux-gnu/pkcs11/opensc-pkcs11.so
+ OpenSSL> req -engine pkcs11 -sha256 -new -key id_10 -keyform engine -out user@email.com-staging-cert.csr -subj '/C=GB/L=Cambridge/O=Organization/OU=Staging Access/CN=user@email.com/emailAddress=user@email.com'
+
+3. Sign the certificate with your certificate authority
+
+4. Convert the certificate to DER
+
+ .. code-block:: bash
+
+ $ openssl x509 -in user@email.com-staging-cert.csr -out user@email.com-staging-cert.der -outform DER
+
+5. Import the certificate into the Nitrokey via pkcs11-tool
+
+ .. code-block:: bash
+
+ $ pkcs11-tool --module /usr/lib/x86_64-linux-gnu/pkcs11/opensc-pkcs11.so -l -y cert -w user@email.com-staging-cert.der --id 10 --label 'Staging Access'
+
+6. Configure Strongswan to load opensc-pkcs11 module then to load the certificate on Nitrokey. Edit /etc/strongswan.d/charon/pkcs11.conf and add the following module:
+
+ ::
+
+ modules {
+ Nitrokey {
+ path = /usr/lib/x86_64-linux-gnu/pkcs11/opensc-pkcs11.so
+ }
+ }
+
+
+7. Initiate the VPN connection via IPSec/Strongswan, then prompt for Nitrokey PIN
+
+8. VPN is now connected
diff --git a/source/components/pro/windows/openpgp-csp.rst b/source/components/nitrokeys/features/openpgp-card/openpgp-csp.rst
similarity index 81%
rename from source/components/pro/windows/openpgp-csp.rst
rename to source/components/nitrokeys/features/openpgp-card/openpgp-csp.rst
index 95938fccc8..c1c8272e31 100644
--- a/source/components/pro/windows/openpgp-csp.rst
+++ b/source/components/nitrokeys/features/openpgp-card/openpgp-csp.rst
@@ -1,6 +1,10 @@
Windows Login and S/MIME Email Encryption with Active Directory
===============================================================
+.. include:: index.rst
+ :start-after: products-begin
+ :end-before: products-end
+
.. contents:: :local:
Please note that this driver is still in development/testing. Please tell us your experiences! See our `contact page `__.
@@ -22,45 +26,45 @@ Creating Certificate Template on Server Side
On Active Directory Server open certsrv.msc to manage your certificate templates. Right click on ‘Certificate Templates’ and choose ‘Manage’
-.. figure:: /components/pro/windows/images/openpgp-csp/1.png
+.. figure:: images/openpgp-csp/1.png
:alt: img1
Now right click on ‘Smartcard Logon’ template and click ‘Duplicate’, to create a new template on basis of this standard template. Rename template to ‘OpenPGP Card Logon and Email’ or alike.
-.. figure:: /components/pro/windows/images/openpgp-csp/2.png
+.. figure:: images/openpgp-csp/2.png
:alt: img2
Under ‘Request Handling’, you can choose the OpenPGP-CSP as the one and only Cryptography Service Provider (click the Button labeled ‘CSPs…’). For this to work, you need to install the driver on the server as well and you have to insert a Nitrokey beforehand. This is optional. You can let the user choose, which CSP to use.
-.. figure:: /components/pro/windows/images/openpgp-csp/3.png
+.. figure:: images/openpgp-csp/3.png
:alt: img3
-.. figure:: /components/pro/windows/images/openpgp-csp/4.png
+.. figure:: images/openpgp-csp/4.png
:alt: img4
For enabling S/MIME email encryption go to ‘Subject name’. Tick the checkbox ‘E-Mail name’ (note: You must save the mail addresses of your users in the corresponding Active Directory field!).
-.. figure:: /components/pro/windows/images/openpgp-csp/5.png
+.. figure:: images/openpgp-csp/5.png
:alt: img5
Then go to ‘Extensions’, there you edit the applications guideline and add ‘Secure Email’.
-.. figure:: /components/pro/windows/images/openpgp-csp/6.png
+.. figure:: images/openpgp-csp/6.png
:alt: img6
-.. figure:: /components/pro/windows/images/openpgp-csp/7.png
+.. figure:: images/openpgp-csp/7.png
:alt: img7
@@ -71,19 +75,19 @@ Request Certificate on Client (Domain Member)
To request a certificate for a domain member, you have to open certmgr.msc. Right click on folder ‘Personal->Certificates’ and click
’All Tasks->Request New Certificate and choose the template you created on the AD.
-.. figure:: /components/pro/windows/images/openpgp-csp/8.png
+.. figure:: images/openpgp-csp/8.png
:alt: img8
If you did not enforce the usage of OpenPGP-CSP you have to choose it here now.
-.. figure:: /components/pro/windows/images/openpgp-csp/9.png
+.. figure:: images/openpgp-csp/9.png
:alt: img9
-.. figure:: /components/pro/windows/images/openpgp-csp/10.png
+.. figure:: images/openpgp-csp/10.png
:alt: img10
@@ -92,6 +96,6 @@ Next you choose the Authentication slot for the certificate.
You are now ready to logon on the computer with the Nitrokey instead of your password and you can use `S/MIME email encryption/signing `_ with the Nitrokey. The driver has to be installed on every computer you want to use the certificate on.
-.. figure:: /components/pro/windows/images/openpgp-csp/11.png
+.. figure:: images/openpgp-csp/11.png
:alt: img11
diff --git a/source/components/pro/openpgp-keygen-backup.rst.inc b/source/components/nitrokeys/features/openpgp-card/openpgp-keygen-backup.rst
similarity index 98%
rename from source/components/pro/openpgp-keygen-backup.rst.inc
rename to source/components/nitrokeys/features/openpgp-card/openpgp-keygen-backup.rst
index 9249a0f871..09bdb1f739 100644
--- a/source/components/pro/openpgp-keygen-backup.rst.inc
+++ b/source/components/nitrokeys/features/openpgp-card/openpgp-keygen-backup.rst
@@ -1,6 +1,10 @@
OpenPGP Key Generation With Backup
==================================
+.. include:: index.rst
+ :start-after: products-begin
+ :end-before: products-end
+
.. contents:: :local:
The following instructions explain the generation of OpenPGP keys and how to copy them to the Nitrokey. This method has the advantage of providing a backup of the keys in case of losing or breaking the Nitrokey. The instructions are based on the command line interface of GnuPG. Thus, you need to have GnuPG installed on your system. The newest GnuPG version for Windows can be found `here `__ and the newest version for MacOS can be found `here `__. Users of Linux systems please install GnuPG with help of the package manager.
@@ -15,7 +19,7 @@ Main Key and Encryption Subkey
We can use the command ``gpg --full-generate-key --expert`` to start a guided key generation with all possible options. You can choose the key type (usually RSA (1) or ECC (9)), the length of the key and other attributes. The following output is just a simple example, you may choose other values.
-.. code-block:: bash
+::
> gpg --full-generate-key --expert
gpg (GnuPG) 2.2.10; Copyright (C) 2018 Free Software Foundation, Inc.
@@ -86,7 +90,7 @@ Subkey for Authentication
You now have a main key with the capability to sign and certify (marked as [SC]) and a subkey for encryption (marked as [E]). It is necessary to have another subkey for use cases in which authentication is needed. This subkey is generated in the next step. Type in ``gpg --edit-key --expert keyID`` to start the process, whereas “keyID”
is either the id of the key or the email address used during key generation.
-.. code-block:: bash
+::
> gpg --edit-key --expert jane@example.com
gpg (GnuPG) 2.2.10; Copyright (C) 2018 Free Software Foundation, Inc.
@@ -106,7 +110,7 @@ is either the id of the key or the email address used during key generation.
Now you are in the interactive mode of GnuPG and you can add a key by simply typing ``addkey``. You need to choose the key you want to use. It is crucial to choose “set your own capabilities”, because we want to have the “authenticate” capability which is not available otherwise. We toggle sign and encrypt by typing ``s`` and ``e`` and we activate authenticate by typing ``a``.
-.. code-block:: bash
+::
gpg> addkey
Please select what kind of key you want:
@@ -164,7 +168,7 @@ Now you are in the interactive mode of GnuPG and you can add a key by simply typ
We quit with ``q``. Afterwards we need to answer the same questions as before. Finally, we have a ready-to-go key set which we can import to our device.
-.. code-block:: bash
+::
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048)
@@ -209,7 +213,7 @@ You have a main key and two subkeys which can be imported to your Nitrokey. Befo
We start the process by accessing the interactive interface of GnuPG again with ``gpg --edit-key --expert keyID``, whereas ``keyID`` is either the id of the key or the email address used during key generation.
-.. code-block:: bash
+::
> gpg --edit-key --expert jane@example.com
gpg (GnuPG) 2.2.10; Copyright (C) 2018 Free Software Foundation, Inc.
@@ -245,7 +249,7 @@ We start the process by accessing the interactive interface of GnuPG again with
We just imported the main key to the card. Now we proceed with the two subkeys. We type ``key 1`` to select the encryption subkey and type in ``keytocard`` again and select the slot to use.
-.. code-block:: bash
+::
gpg> key 1
@@ -274,7 +278,7 @@ We just imported the main key to the card. Now we proceed with the two subkeys.
Now we deselect the first key with ``key 1`` and select the second subkey with ``key 2`` and move it as well with ``keytocard``. Afterwards we quit and save the changes.
-.. code-block:: bash
+::
gpg> key 1
diff --git a/source/components/pro/openpgp-keygen-gpa.rst.inc b/source/components/nitrokeys/features/openpgp-card/openpgp-keygen-gpa.rst
similarity index 84%
rename from source/components/pro/openpgp-keygen-gpa.rst.inc
rename to source/components/nitrokeys/features/openpgp-card/openpgp-keygen-gpa.rst
index e43ac0fd3f..4c7a3b382a 100644
--- a/source/components/pro/openpgp-keygen-gpa.rst.inc
+++ b/source/components/nitrokeys/features/openpgp-card/openpgp-keygen-gpa.rst
@@ -1,25 +1,29 @@
OpenPGP Key Generation Using GPA
================================
+.. include:: index.rst
+ :start-after: products-begin
+ :end-before: products-end
+
.. contents:: :local:
The following instructions explain the generation of OpenPGP keys directly on the Nitrokey with help of the GNU Privacy Assistant (GPA). You won’t be able to create a backup of these keys. Thus, if you lose the Nitrokey or it breaks you can not decrypt mails or use these keys anymore. Please see `here `_ for a comparison of the different methods to generate OpenPGP keys.
-You need to have GnuPG and GPA installed on your system. The newest version for Windows can be found `here `__ (make sure to check “GPA” during the installation!). Users of Linux systems please install GnuPG and GPA with help of the package manager (e.g. using ``sudo apt install gnupg gpa`` on Ubuntu).
+You need to have GnuPG and GPA installed on your system. The newest version for Windows can be found `here `__ (make sure to check “GPA” during the installation!). Users of Linux systems please install GnuPG and GPA with help of the package manager (e.g. using ``sudo apt install gnupg gpa`` on Ubuntu).
Key Generation
--------------
At first, open the GNU Privacy Assistant (GPA). You may are asked to generate a key, you can skip this step for now by clicking “Do it later”. In the main window, please click on “Card” or “Card Manager”.
-.. figure:: /components/pro/images/openpgp-keygen-gpa/1.png
+.. figure:: images/gpa-keygen/1.png
:alt: img1
Another windows opens. Please go to “Card” -> “Generate key” to start the key generation process.
-.. figure:: /components/pro/images/openpgp-keygen-gpa/2.png
+.. figure:: images/gpa-keygen/2.png
:alt: img2
@@ -28,21 +32,21 @@ Now you can put in your name and the email address you want to use for the key t
**Please do not use the backup checkbox**. This “backup” does only save the encryption key. In case of a loss of the device, you will not be able to restore the whole key set. So on the one hand it is no full backup (use `these instructions `_ instead, if you need one) and on the other hand you risk that someone else can get in possession of your encryption key. The advantage of generating keys on-device is to make sure that keys are stored securely. Therefore, we recommend to skip this half-backup.
-.. figure:: /components/pro/images/openpgp-keygen-gpa/3.png
+.. figure:: images/gpa-keygen/3.png
:alt: img3
You will be asked for the admin PIN (default: 12345678) and the user PIN (default: 123456). When the key generation is finished, you can see the fingerprints of the keys on the bottom of the window. You may fill up the fields shown above, which are saved on your Nitrokey as well.
-.. figure:: /components/pro/images/openpgp-keygen-gpa/4.png
+.. figure:: images/gpa-keygen/4.png
:alt: img4
Now you can close the window and go back to the main window. Your key will be visible in the key manager after refreshing. Every application which makes use of GnuPG will work with your Nitrokey as well, because GnuPG is fully aware of the fact, that the keys are stored on your Nitrokey.
-.. figure:: /components/pro/images/openpgp-keygen-gpa/5.png
+.. figure:: images/gpa-keygen/5.png
:alt: img5
@@ -52,7 +56,7 @@ Exporting Public Key and Keyserver Usage
Although you can start to use your Nitrokey right away after generating the keys on your system, you need to import your public key on every system, you want to use the Nitrokey on. So to be prepared you have two options: You either save the public key anywhere you like and use it on another system or you save the public key on a webpage/keyserver.
-.. figure:: /components/pro/images/openpgp-keygen-gpa/6.png
+.. figure:: images/gpa-keygen/6.png
:alt: img6
@@ -64,8 +68,8 @@ You can carry the keyfile with you or send it to anyone who you like. This file
If you do not want to carry a public keyfile with you, you can upload it to keyserver. If you are using another machine you can just import it by using “Server” -> “Retrieve Keys…” and entering your name or key id.
-Another possibility is to change the URL setting on your card. Open the card manager again and fill in the URL where the key is situated (e.g. on the keyserver or on your webpage etc.). From now on you can import the key on another system by right-clicking on the URL and click on “Fetch Key”.
+Another possibility is to change the URL setting on your card. Open the card manager again and fill in the URL where the key is situated (e.g. on the keyserver or on your webpage etc.). From now on you can import the key on another system by right-clicking on the URL and click on “Fetch Key”.
-.. figure:: /components/pro/images/openpgp-keygen-gpa/7.png
+.. figure:: images/gpa-keygen/7.png
:alt: img7
diff --git a/source/components/pro/openpgp-keygen-on-device.rst.inc b/source/components/nitrokeys/features/openpgp-card/openpgp-keygen-on-device.rst
similarity index 98%
rename from source/components/pro/openpgp-keygen-on-device.rst.inc
rename to source/components/nitrokeys/features/openpgp-card/openpgp-keygen-on-device.rst
index 3012967dae..b44bf2940c 100644
--- a/source/components/pro/openpgp-keygen-on-device.rst.inc
+++ b/source/components/nitrokeys/features/openpgp-card/openpgp-keygen-on-device.rst
@@ -1,6 +1,10 @@
OpenPGP Key Generation On-Device
================================
+.. include:: index.rst
+ :start-after: products-begin
+ :end-before: products-end
+
.. contents:: :local:
The following instructions explain the generation of OpenPGP keys directly on the Nitrokey. This is done by using the command line interface of GnuPG. Thus, you need to have GnuPG installed on your system. The newest GnuPG version for Windows can be found `here `__ and the newest version for MacOS can be found `here `__. Users of Linux systems please install GnuPG with help of the package manager.
@@ -10,7 +14,7 @@ The following instructions explain the generation of OpenPGP keys directly on th
These instructions are based on GnuPG version 2.2.6 or higher. Some
Linux Distributions have an older version installed. In this case
please choose a different method as listed
- `here `_
+ `here `_
or install a newer version if possible.
Key Generation
@@ -22,7 +26,7 @@ Open a command line and type ``gpg2 --card-edit``.
To open the Windows command line please push the Windows-key and R-key. Now type ‘cmd.exe’ in the text field and hit enter. To open a Terminal on macOS or GNU/Linux please use the application search (e.g. spotlight on macOS).
-.. code-block:: bash
+::
> gpg2 --card-edit
@@ -50,7 +54,7 @@ To open the Windows command line please push the Windows-key and R-key. Now type
Now you are in the interactive interface of GnuPG. Activate the admin commands with ``admin`` and use ``generate`` afterwards to start the generation of keys.
-.. code-block:: bash
+::
gpg/card> admin
Admin commands are allowed
@@ -102,7 +106,7 @@ This section is about changing the key attributes. If you want to use the defaul
Open a command line and type ``gpg2 --card-edit --expert``.
-.. code-block:: bash
+::
> gpg2 --card-edit --expert
@@ -129,7 +133,7 @@ Open a command line and type ``gpg2 --card-edit --expert``.
Now you are in the interactive interface of GnuPG. As you can see in the
“Key attributes” field above, the default value rsa2048 is set. To change them, activate the admin commands with ``admin`` and use ``key-attr`` afterwards to change the attributes of the keys.
-.. code-block:: bash
+::
gpg/card> admin
Admin commands are allowed
@@ -159,7 +163,7 @@ Now you are in the interactive interface of GnuPG. As you can see in the
You can choose the attribute for each key (that is, signature, encryption and authentication key). Most people will use the same attributes for every key. Type ``list`` to see the results (have look at the “Key attributes” field, which now reads rsa4096).
-.. code-block:: bash
+.. code-block::
gpg/card> list
diff --git a/source/components/pro/openpgp-outlook.rst.inc b/source/components/nitrokeys/features/openpgp-card/openpgp-outlook.rst
similarity index 81%
rename from source/components/pro/openpgp-outlook.rst.inc
rename to source/components/nitrokeys/features/openpgp-card/openpgp-outlook.rst
index 7bb7839ba9..9fb5e72b20 100644
--- a/source/components/pro/openpgp-outlook.rst.inc
+++ b/source/components/nitrokeys/features/openpgp-card/openpgp-outlook.rst
@@ -1,6 +1,10 @@
OpenPGP Email Encryption with Outlook
=====================================
+.. include:: index.rst
+ :start-after: products-begin
+ :end-before: products-end
+
.. contents:: :local:
.. note::
@@ -15,7 +19,7 @@ If you do not have PGP-Keys on your Nitrokey yet, please look at `this page `__. You need to make sure to have “GpgOL” checked during installation process (see below).
-.. figure:: /components/pro/windows/images/openpgp-outlook/1.png
+.. figure:: images/outlook/1.png
:alt: img1
@@ -25,21 +29,21 @@ Usage
After installing GPG4Win along with GpgOL, you will see a new icon labeled “Secure” in the composing window. To encrypt and sign a mail you just click on the sign like seen below.
-.. figure:: /components/pro/windows/images/openpgp-outlook/2.png
+.. figure:: images/outlook/2.png
:alt: img2
GnuPG will start signing and encrypting the mail as soon as you click on ‘send’. You are requested to choose the identity you want to sign with and encrypt for.
-.. figure:: /components/pro/windows/images/openpgp-outlook/3.png
+.. figure:: images/outlook/3.png
:alt: img3
Furthermore, you are asked for typing in the User PIN of the Nitrokey for signing the mail.
-.. figure:: /components/pro/windows/images/openpgp-outlook/4.png
+.. figure:: images/outlook/4.png
:alt: img4
diff --git a/source/components/pro/openpgp-thunderbird.rst.inc b/source/components/nitrokeys/features/openpgp-card/openpgp-thunderbird.rst
similarity index 71%
rename from source/components/pro/openpgp-thunderbird.rst.inc
rename to source/components/nitrokeys/features/openpgp-card/openpgp-thunderbird.rst
index 5933522429..40adce8072 100644
--- a/source/components/pro/openpgp-thunderbird.rst.inc
+++ b/source/components/nitrokeys/features/openpgp-card/openpgp-thunderbird.rst
@@ -1,6 +1,10 @@
OpenPGP Email Encryption With Thunderbird
=========================================
+.. include:: index.rst
+ :start-after: products-begin
+ :end-before: products-end
+
.. contents:: :local:
Thunderbird 78.3 and newer
@@ -55,15 +59,15 @@ Procedure
3. In Thunderbird, select as shown in the following picture. “OpenPGP” →
“Manage smart card”
-.. figure:: /components/pro/images/openpgp-thunderbird/1.png
- :alt: img1
+ .. figure:: images/thunderbird/1.png
+ :alt: img1
4. In the “SmartCard Details” window, select “SmartCard → Change PIN”
-.. figure:: /components/pro/images/openpgp-thunderbird/2.png
- :alt: img2
+ .. figure:: images/thunderbird/2.png
+ :alt: img2
@@ -73,15 +77,15 @@ Procedure
() [] {}% +. The PIN should be at least 6 characters long. Click
“OK”.
-.. figure:: /components/pro/images/openpgp-thunderbird/3.png
- :alt: img3
+ .. figure:: images/thunderbird/3.png
+ :alt: img3
6. Repeat the procedure for the Admin PIN. “SmartCard → Change PIN”
-.. figure:: /components/pro/images/openpgp-thunderbird/4.png
- :alt: img4
+ .. figure:: images/thunderbird/4.png
+ :alt: img4
@@ -91,8 +95,8 @@ Procedure
.;;:- !? () [] {}% +. The PIN should be at least 8 characters long.
Click “OK”.
-.. figure:: /components/pro/images/openpgp-thunderbird/5.png
- :alt: img5
+ .. figure:: images/thunderbird/5.png
+ :alt: img5
@@ -118,16 +122,16 @@ To encrypt data and e-mails, a key pair consisting of a public key and a private
“User ID” is correct. You can also specify whether a private key
backup copy should be stored on your computer.
-.. figure:: /components/pro/images/openpgp-thunderbird/6.png
- :alt: img6
+ .. figure:: images/thunderbird/6.png
+ :alt: img6
5. If you do not create a backup copy, you have no chance to get your
encrypted data if the Nitrokey is lost or damaged!
-.. figure:: /components/pro/images/openpgp-thunderbird/7.png
- :alt: img7
+ .. figure:: images/thunderbird/7.png
+ :alt: img7
@@ -139,39 +143,39 @@ To encrypt data and e-mails, a key pair consisting of a public key and a private
avoid known prose or lyric. Also, no name or known term should be
used.
-**Allowed characters**: a-z A-Z 0-9 /.,;:-!?( )%+ (no umlauts ä,ü,ö,Ä,Ü,Ö or ß)
+ **Allowed characters**: a-z A-Z 0-9 /.,;:-!?( )%+ (no umlauts ä,ü,ö,Ä,Ü,Ö or ß)
-**Poor Passwords**: qwerty123, ILoveSusi3, Password, If you can dream it, you can do it.
+ **Poor Passwords**: qwerty123, ILoveSusi3, Password, If you can dream it, you can do it.
-**Strong Passwords**: g(Ak?2Pn7Yn or Ki.stg2bLqzp%d or A dog with greeen Earz and fife legs (spelling errors increase security)
+ **Strong Passwords**: g(Ak?2Pn7Yn or Ki.stg2bLqzp%d or A dog with greeen Earz and fife legs (spelling errors increase security)
-You do **not** need this password for daily work. It is only necessary for the restoration of the secret key, e.g. if you have lost the Nitrokey. Therefore, keep the password in a safe place.
+ You do **not** need this password for daily work. It is only necessary for the restoration of the secret key, e.g. if you have lost the Nitrokey. Therefore, keep the password in a safe place.
-You can also specify whether and when the key should be automatically invalid. This means, from this point onwards, no more e-mails can be encrypted with this key and you have to create a new key pair.
+ You can also specify whether and when the key should be automatically invalid. This means, from this point onwards, no more e-mails can be encrypted with this key and you have to create a new key pair.
1. Finally, click on “Generate key pair”.
-.. figure:: /components/pro/images/openpgp-thunderbird/8.png
- :alt: img8
+ .. figure:: images/thunderbird/8.png
+ :alt: img8
2. You are now asked if the key should be generated. Confirm with “Yes”.
-.. figure:: /components/pro/images/openpgp-thunderbird/9.png
- :alt: img9
+ .. figure:: images/thunderbird/9.png
+ :alt: img9
3. In order for the program to write your keys to the stick, you must
enter the admin PIN and the user PIN (changed above).
-.. figure:: /components/pro/images/openpgp-thunderbird/10.png
- :alt: img10
+ .. figure:: images/thunderbird/10.png
+ :alt: img10
-The key generation can take a few minutes. Do not terminate the program prematurely!
+ The key generation can take a few minutes. Do not terminate the program prematurely!
4. When the key generation is complete, you receive the following
message. A certificate is now created that allows you to invalidate
@@ -180,34 +184,41 @@ The key generation can take a few minutes. Do not terminate the program prematur
least one other external medium so that you can revoke the validity
of the keys if your keys and backups are lost. Click “Yes”
-You can now select the directory in which the backup copy is stored. This copy is encrypted with your password entered above. This means that no one can read or use the keys without your password. Do not give your password to anyone. This file with the name of your e-mail address and the suffix “.asc” should be backed up on another medium. After selecting the directory, click “Save”.
+ You can now select the directory in which the backup copy is stored. This copy is encrypted with your password entered above. This means that no one can read or use the keys without your password. Do not give your password to anyone. This file with the name of your e-mail address and the suffix “.asc” should be backed up on another medium. After selecting the directory, click “Save”.
-.. figure:: /components/pro/images/openpgp-thunderbird/11.png
- :alt: img11
+ .. figure:: images/thunderbird/11.png
+ :alt: img11
5. Here you must again specify your user PIN or passphrase. Then click
“OK”
-.. figure:: /components/pro/images/openpgp-thunderbird/12.png
- :alt: img12
+ .. figure:: images/thunderbird/12.png
+ :alt: img12
+
+
+
+6. Repeat the procedure for the Admin PIN. “SmartCard → Change PIN”
+
+ .. figure:: images/thunderbird/4.png
+ :alt: img4
7. You will now see the message that the certificate was created and
saved. Click “OK”
-.. figure:: /components/pro/images/openpgp-thunderbird/13.png
- :alt: img13
+ .. figure:: images/thunderbird/13.png
+ :alt: img13
8. Key generation is now complete. You can now exit the program (File -
Close).
-.. figure:: /components/pro/images/openpgp-thunderbird/14.png
- :alt: img14
+ .. figure:: images/thunderbird/14.png
+ :alt: img14
diff --git a/source/components/pro/linux/openvpn-easyrsa.rst b/source/components/nitrokeys/features/openpgp-card/openvpn/easyrsa.rst
similarity index 74%
rename from source/components/pro/linux/openvpn-easyrsa.rst
rename to source/components/nitrokeys/features/openpgp-card/openvpn/easyrsa.rst
index c43491fc62..f5fe0c04b0 100644
--- a/source/components/pro/linux/openvpn-easyrsa.rst
+++ b/source/components/nitrokeys/features/openpgp-card/openvpn/easyrsa.rst
@@ -1,6 +1,10 @@
OpenVPN Configuration with Easy-RSA
===================================
+.. include:: ../index.rst
+ :start-after: products-begin
+ :end-before: products-end
+
.. contents:: :local:
:depth: 2
@@ -75,18 +79,18 @@ Server side
3. Close after saving it, and enter this command
- .. code-block:: bash
+ .. code-block:: bash
- $ sysctl -p
+ $ sysctl -p
- Once IP forwarding is done, we will need to download the latest release of OpenvPN for our Debian 10 server, according to `these instructions `__:
+ Once IP forwarding is done, we will need to download the latest release of OpenvPN for our Debian 10 server, according to `these instructions `__:
4. Change to root and download the GPG key that signed the package
- .. code-block:: bash
+ .. code-block:: bash
- $ sudo -s
- # wget -O - https://swupdate.openvpn.net/repos/repo-public.gpg|apt-key add -
+ $ sudo -s
+ # wget -O - https://swupdate.openvpn.net/repos/repo-public.gpg|apt-key add -
5. Add the URL of the adequate OpenVPN packages to the ``sources.list`` file
@@ -119,14 +123,14 @@ Server side
2. Install Easy-RSA
^^^^^^^^^^^^^^^^^^^
-To build the PKI, we will download the latest version of Easy-RSA on the server and client machines. To get the latest release, go to the `Releases page on the official EasyRSA GitHub project `__, copy the download link for the file ending in ``.tgz``, and then paste it into the following command:
+ To build the PKI, we will download the latest version of Easy-RSA on the server and client machines. To get the latest release, go to the `Releases page on the official EasyRSA GitHub project `__, copy the download link for the file ending in ``.tgz``, and then paste it into the following command:
1. Download the latest release
.. code-block:: bash
$ cd ~
- wget -P ~/ https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.7/EasyRSA-3.0.7.tgz
+ $ wget -P ~/ https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.7/EasyRSA-3.0.7.tgz
2. Extract the tarball
@@ -139,92 +143,92 @@ To build the PKI, we will download the latest version of Easy-RSA on the server
3. Create a PKI for OpenVPN server
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Before you can create your OpenVPN server’s private key and certificate, you need to create a local Public Key Infrastructure directory on your OpenVPN server. You will use this directory to manage the server and clients’ certificate requests, instead of making them directly on your CA server.
+ Before you can create your OpenVPN server’s private key and certificate, you need to create a local Public Key Infrastructure directory on your OpenVPN server. You will use this directory to manage the server and clients’ certificate requests, instead of making them directly on your CA server.
-To build a PKI directory on your OpenVPN server, you’ll need to populate a file called ``vars`` with some default values.
+ To build a PKI directory on your OpenVPN server, you’ll need to populate a file called ``vars`` with some default values.
- 1. Create a ``vars`` file
+ 1. Create a ``vars`` file
- .. code-block:: bash
+ .. code-block:: bash
- $ touch ~/easyrsa/vars
- $ cd easyrsa/
- $ editor vars
+ $ touch ~/easyrsa/vars
+ $ cd easyrsa/
+ $ editor vars
- 2. Once the file is opened, paste in the following two lines
+ 2. Once the file is opened, paste in the following two lines
- .. code-block:: bash
+ .. code-block:: bash
- set_var EASYRSA_ALGO "ec"
- set_var EASYRSA_DIGEST "sha512"
+ set_var EASYRSA_ALGO "ec"
+ set_var EASYRSA_DIGEST "sha512"
- These are the only two lines that you need in this ``vars`` file on your OpenVPN server since it will not be used as a Certificate Authority. They will ensure that your private keys and certificate requests are configured to use Elliptic Curve Cryptography (ECC) to generate keys, and secure signatures for your clients and OpenVPN server.
+ These are the only two lines that you need in this ``vars`` file on your OpenVPN server since it will not be used as a Certificate Authority. They will ensure that your private keys and certificate requests are configured to use Elliptic Curve Cryptography (ECC) to generate keys, and secure signatures for your clients and OpenVPN server.
- In regards to the choice of the cryptographic algorithms, I follow the model in `this tutorial `__, and you can customize these according to your specific needs.
+ In regards to the choice of the cryptographic algorithms, I follow the model in `this tutorial `__, and you can customize these according to your specific needs.
- 3. Initialize the PKI
+ 3. Initialize the PKI
- Once you have populated the ``vars`` file you can proceed with creating the PKI directory. To do so, run the easyrsa script with the init-pki option:
+ Once you have populated the ``vars`` file you can proceed with creating the PKI directory. To do so, run the easyrsa script with the init-pki option:
- .. code-block:: bash
+ .. code-block:: bash
- $ ./easyrsa init-pki
+ $ ./easyrsa init-pki
- After you’ve initialized your PKI on the OpenVPN server, you are ready to move on to the next step, which is creating an OpenVPN server certificate request and private key.
+ After you’ve initialized your PKI on the OpenVPN server, you are ready to move on to the next step, which is creating an OpenVPN server certificate request and private key.
4. Create ``server.req`` and ``server.key``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Now that your OpenVPN server has all the prerequisites installed, the next step is to generate a key pair composed of a private key (to keep secret), and a Certificate Signing Request (``.csr``) on your OpenVPN server.
+ Now that your OpenVPN server has all the prerequisites installed, the next step is to generate a key pair composed of a private key (to keep secret), and a Certificate Signing Request (``.csr``) on your OpenVPN server.
- In general terms, on systems where we generate a key and request, these files are left unencrypted by using the ``nopass`` argument, since servers usually need to start up without any password input. This generates an *unencrypted key*, so mind *protect its access and file permissions* carefully.
+ In general terms, on systems where we generate a key and request, these files are left unencrypted by using the ``nopass`` argument, since servers usually need to start up without any password input. This generates an *unencrypted key*, so mind *protect its access and file permissions* carefully.
- .. tip::
+ .. tip::
- Configuration notes from OpenVPN:
+ Configuration notes from OpenVPN:
- 1. The server, and each client, must have their own cert and key
- file. The server and all clients will use the same CA file.
- 2. Server certificate should have the following:
+ 1. The server, and each client, must have their own cert and key
+ file. The server and all clients will use the same CA file.
+ 2. Server certificate should have the following:
- - ``keyUsage: digitalSignature, keyEncipherment``
+ - ``keyUsage: digitalSignature, keyEncipherment``
- - ``extendedKeyUsage: serverAuth``
+ - ``extendedKeyUsage: serverAuth``
- 1. Create the signing request for the server
+ 1. Create the signing request for the server
- Navigate to the ``~/easyrsa`` directory on your OpenVPN Server as your non-root user, and enter the following commands:
+ Navigate to the ``~/easyrsa`` directory on your OpenVPN Server as your non-root user, and enter the following commands:
- .. code-block:: bash
+ .. code-block:: bash
- $ cd easyrsa/
- $ ./easyrsa gen-req server nopass
+ $ cd easyrsa/
+ $ ./easyrsa gen-req server nopass
- This will create a private key for the server and a certificate request file called ``server.req``.
+ This will create a private key for the server and a certificate request file called ``server.req``.
- Once you have a signed certificate, you’ll transfer it back to the OpenVPN server.
+ Once you have a signed certificate, you’ll transfer it back to the OpenVPN server.
- 2. Copy the key to the OpenVPN server directory
+ 2. Copy the key to the OpenVPN server directory
- .. code-block:: bash
+ .. code-block:: bash
- $ sudo cp /home/admin/EasyRSA/pki/private/server.key /etc/openvpn/server/
+ $ sudo cp /home/admin/EasyRSA/pki/private/server.key /etc/openvpn/server/
- After completing these steps, you have successfully created a private key for your OpenVPN server. You have also generated a Certificate Signing Request for the OpenVPN server.
+ After completing these steps, you have successfully created a private key for your OpenVPN server. You have also generated a Certificate Signing Request for the OpenVPN server.
- .. tip::
+ .. tip::
- File extensions for certificate signing requests
+ File extensions for certificate signing requests
- The file extension that is adopted by the CA and HSM tutorial
- indicates the creation of a ``.csr`` file, however Easy-RSA creates
- certificate signing requests with a ``.req`` extension.
+ The file extension that is adopted by the CA and HSM tutorial
+ indicates the creation of a ``.csr`` file, however Easy-RSA creates
+ certificate signing requests with a ``.req`` extension.
- We will use interchangeably both extensions, while making sure that
- we transfer the right files to the Certificate Authority, and
- generate a final certificate with a ``.crt`` extension.
+ We will use interchangeably both extensions, while making sure that
+ we transfer the right files to the Certificate Authority, and
+ generate a final certificate with a ``.crt`` extension.
- In the next section of this guide, we will sign a ``.req`` file with our CA on deployed on the HSM 2 device. For this purpose, I will use a dedicated machine to sign the requests.
+ In the next section of this guide, we will sign a ``.req`` file with our CA on deployed on the HSM 2 device. For this purpose, I will use a dedicated machine to sign the requests.
5. Sign and retrieve ``server.crt``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -413,19 +417,19 @@ Client side configuration
3. Create a ``client.req`` and ``client.key``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- In the same manner we issued the key pair on the sever, we generate a key pair for the client which will be composed of the ``client.req``
- file and the ``client.key`` file. The latter must be kept secret on the client machine.
+ In the same manner we issued the key pair on the sever, we generate a key pair for the client which will be composed of the ``client.req``
+ file and the ``client.key`` file. The latter must be kept secret on the client machine.
4. Sign ``client.req`` and issue the ``client.crt`` file
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- To transfer the ``client.req`` file to the CA machine, we will use the same method as we did for the ``server.req`` file.
+ To transfer the ``client.req`` file to the CA machine, we will use the same method as we did for the ``server.req`` file.
- Once transferred, on the CA machine we sign the certificate signing request file with this command
+ Once transferred, on the CA machine we sign the certificate signing request file with this command
- .. code-block:: bash
+ .. code-block:: bash
- $ openssl ca -config sign_server_csrs.ini -engine pkcs11 -keyform engine -days 375 -notext -md sha512 -create_serial -in client.req -out /home/user/pki/issued/client.crt
+ $ openssl ca -config sign_server_csrs.ini -engine pkcs11 -keyform engine -days 375 -notext -md sha512 -create_serial -in client.req -out /home/user/pki/issued/client.crt
5. Import ``client.crt`` on the Nitrokey from the CA machine
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -562,50 +566,74 @@ Client side configuration
3. Configure the OpenVPN client
- The final configuration file ``client.conf`` should look like this one:
+ The final configuration file ``client.conf`` should look like this one:
- .. code-block:: bash
+ .. code-block:: bash
- client
- dev tun
- proto udp
- remote 1194
- resolv-retry infinite
- nobind
- user nobody
- group nobody
- persist-key
- persist-tun
- ca ca.crt
- remote-cert-tls server
- cipher AES-256-CBC
- verb 3
- redirect-gateway def1
- tls-version-min 1.2 # Lower boundary for TLS version
- tls-version-max 1.2 # Higher boundary for TLS version
-
- # nitrokey login
+ client
+ dev tun
+ proto udp
+ remote 1194
+ resolv-retry infinite
+ nobind
+ user nobody
+ group nobody
+ persist-key
+ persist-tun
+ ca ca.crt
+ remote-cert-tls server
+ cipher AES-256-CBC
+ verb 3
+ redirect-gateway def1
+ tls-version-min 1.2 # Lower boundary for TLS version
+ tls-version-max 1.2 # Higher boundary for TLS version
+
+ # nitrokey login
+
+ pkcs11-providers /usr/lib64/pkcs11/opensc-pkcs11.so
+ pkcs11-id 'pkcs11:model=pkcs11:model=PKCS%NNNN%20emulated;token=User%20PIN%20%28OpenPGP%20card%29;manufacturer=ZeitControl;serial=000NNNNNN;id=%03'
+ # pkcs11-pin-cache 300
+ # daemon
+ # auth-retry nointeract
+ # management-hold
+ # management-signal
+ # management 127.0.0.1 8888
+ # management-query-passwords
+ pkcs11-cert-private 1 # Prompt for PIN
+
+ # OR
+
+ # non_nitrokey login
+
+ # cert client.crt
+ # key client.key
+ # tls-auth ta.key 1
+
+
+ 4. Configure OpenVPN (Windows only)
+
+ In order to establish a handshake, you must configure OpenSSL included in OpenVPN.
+
+ Create the directory ``ssl`` in ``C:\Program Files\OpenVPN`` and create file ``openssl.cnf`` with the following content :
+
+ openssl_conf = default_conf
+
+ [ default_conf ]
+ ssl_conf = ssl_sect
+
+ [ ssl_sect ]
+ system_default = ssl_default_sect
+
+ [ ssl_default_sect ]
+ SignatureAlgorithms = RSA+SHA512:ECDSA+SHA512:RSA+SHA384:ECDSA+SHA384:RSA+SHA256:ECDSA+SHA256
+ MaxProtocol = TLSv1.2
+ MinProtocol = TLSv1.2
- pkcs11-providers /usr/lib64/pkcs11/opensc-pkcs11.so
- pkcs11-id 'pkcs11:model=pkcs11:model=PKCS%NNNN%20emulated;token=User%20PIN%20%28OpenPGP%20card%29;manufacturer=ZeitControl;serial=000NNNNNN;id=%03'
- # pkcs11-pin-cache 300
- # daemon
- # auth-retry nointeract
- # management-hold
- # management-signal
- # management 127.0.0.1 8888
- # management-query-passwords
- pkcs11-cert-private 1 # Prompt for PIN
-
- # OR
- # non_nitrokey login
+ With this modification, you will not have error as reported `here `__, `here `__ and `here `__
- # cert client.crt
- # key client.key
- # tls-auth ta.key 1
- 4. Known issues
+ 5. Known issues
There are some known issues related to OpenVPN login with OpenSC. Please consult these issues `here `__.
@@ -641,7 +669,7 @@ Client side configuration
.. warning::
- Unfortunately OpenVPN doesn’t seem to be able to establish a handshake and stops at an error as reported `here `__, `here `__ and `here `__
+ Unfortunately OpenVPN doesn’t seem to be able to establish a handshake on some operating systems and stops at an error as reported `here `__, `here