FIT-Connect Tools
Ablage für Tools und Dokumentation rund um FIT-Connect
Zur Verwaltung von Abhängigkeiten wird Poetry verwendet, dass vor der Nutzung der Skripte installiert werden muss.
Nach der Installation von Poetry können die nötigen Abhängigkeiten wie folgt installiert werden:
$ poetry install
pkcs12ToJwk.py
Beantragte Zertifikate aus der DOI-CA liegen zunächst als p12-Keystore (PKCS12) vor. Um die darin enthaltenen Zertifikate für die Hinterlegung im Self-Service-Portal/Zustelldienst nutzbar zu machen, müssen aus diesem Keystore entsprechende JSON Web Keys abgeleitet werden. Das Passwort für den Keystore wird aus der Umgebungsvariable "PKCS12_CONTAINER_PASS" gelesen. Sollte diese nicht gesetzt sein wird nach einem manuellen input gefragt.
Verwendung:
$ poetry run python ./pkcs12ToJwk.py -i "path/to/p12_file" -o "path/to/output_dir" --environment prod
Beispielaufruf:
$ poetry run python pkcs12ToJwk.py -i "Certificates/GRP_FITKO_Testzertifikat_FIT-Connect.p12" --environment prod
Please enter the password for p12 keystore: ****************
Info: KeyUsage: Digital Signature, Non Repudiation, Key Encipherment
🔒 Wrote JWK representation of encryption public key (key_use=wrapKey) to publicKey_encryption.jwk.json
🔒 Wrote JWK representation of signature validation public key (key_use=verify) to publicKey_signature_verification.jwk.json
Please upload these keys when creating a destination in the self service portal.
🔒 Wrote JWK representation of decryption private key (key_use=unwrapKey) to privateKey_decryption.jwk.json
🔒 Wrote JWK representation of signing private key (key_use=sign) to privateKey_signing.jwk.json
These keys can be used to sign and decrypt in your client application.
Die nun erzeugten Dateien publicKey_encryption.jwk.json
(öffentlicher Verschlüsselungschlüssel) und publicKey_signature_verification.jwk.json
(öffenticher Signaturschlüssel) müssen anschließend im Self-Service-Portal hochgeladen werden.
Die Dateien privateKey_decryption.jwk.json
(geheimer Entschlüsselungsschlüssel) und privateKey_signing.jwk.json
(geheimer Signaturschlüssel) können in der an FIT-Connect angebundenen Software zur Entschlüsselung von Einreichungen und zur Signatur von Security-Event-Tokens genutzt werden.
createSelfSignedJwks.py
In der Testumgebung können zu Testzwecken selbst-signierte Zertifikate genutzt werden. Das Script createSelfSignedJwks.py
erstellt zu diesem Zweck JSON Web Keys ohne dass ein Zertifikat aus der Verwaltungs-PKI benötigt wird.
Eine Erläuterung zum Skript createSelfSignedJwks.py
findet sich unter https://docs.fitko.de/fit-connect/docs/details/jwk-creation.
Development
Adding license information
The reuse
tool is somewhat smart about filetypes but its nevertheless useful to check the resulting
comments / .license files for sanity.
pipx install reuse
reuse addheader -c "FIT-Connect contributors" -y 2022 -l EUPL-1.2 -y $(date '+%Y') FILENAME