La whitelist ASCII de safe_name rejetait les noms copiés depuis Windows
contenant des espaces insécables (U+00A0) ou d'autres caractères Unicode,
d'où « nom invalide » sur des fichiers au format DN pourtant valides.
Passage à une blacklist : tout nom est accepté sauf séparateurs de chemin
(/, \), « . » / « .. », noms vides et caractères de contrôle — la
protection anti-traversal reste identique. Suppression de l'import re
devenu inutile.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
La whitelist safe_name rejetait « , » et « = », donc les fichiers nommés
d'après un DN (ex: « CN=gitlab.test.com, OU=..., O=Thales.p7b ») étaient
refusés. Ajout de , = + * ( ) à la liste autorisée (utile aussi pour les
certificats wildcard et multivalués). Protection anti-traversal inchangée
(/, \, .. et noms vides toujours bloqués).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Normalise le style (guillemets doubles, black/ruff)
- mise.toml : ajoute [tools], tâches dev/clean, port par défaut
- server.py : fallback PORT via variable d'environnement