Skip to content
Snippets Groups Projects
user avatar
Andreas Huber authored
57b2d661
History

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