Bonjour tout le monde, et merci d'avance à mes futurs sauveurs,
Je reçois par mail d'ENEDIS des fichiers cryptés contenant des fichiers XML détaillant nos consommations électriques au pas de 10 minutes.
Je ne sais pas pourquoi ENEDIS a prévu de chiffrer ces données alors qu'il aurait été plus simple de les télécharger directement déchiffrées à partir de leur site, mais passons.
Ils ont mis en place toute une documentation nous expliquant comment faire pour décrypter ces fichiers (
https://www.enedis.fr/sites/default/fil ... F_107E.pdf). Sauf qu'après lecture on se gratte autant la tête qu'au début, car ils ne livrent pas un exécutif qui nous mâche le travail. Ils détaillent une solution en JAVA, mais dans mon environnement professionnel c'est interdit. Alors que le PHP en local ne l'est pas (et j'espère être autorisé à héberger le script sur les serveurs de mon employeur, comme cela n'importe qui dans le service pourra décrypter ces archives dans le futur).
Au sein de PHP il y a une fonction qui fait tout cela très bien normalement :
https://www.php.net/manual/fr/function. ... ecrypt.php
Mais je n'ai pas les connaissances pour faire fonctionner le script.
En donnée entrante, j'ai mon archive 7z adressée par mail.
On doit alors lire l'IV dans les 16 premiers octets du fichier.
Le mot de passe m'a été communiqué par ENEDIS, et je peux l'écrire en dur dans le script, car il ne changera pas.
J'ai besoin d'avoir un script qui de demande où se trouve le fichier, le décrypte, et le sauvegarde dans le même répertoire.
Avec mes humbles compétences j'ai commencé à balancer tout cela dans le script suivant, mais c'est un échec cuisant

Si vous pensez pouvoir me sortir de ce mauvais pas je suis preneur. Déjà, a aucun moment le script ne me demande où est le fichier...
<?php
// Extrait les 16 premiers octets du fichier pour lire l’IV
$iv = file_get_contents($path, FALSE, NULL, 0, 16);
// mot de passe
$passphrase = ‘a-preciser-en-dur-plus-tard’ ;
// décrypte le fichier dans le même répertoire et y ajoute le suffixe ‘ .dec ‘
openssl_decrypt ($path, ‘aes-256-cbc’, $passphrase, $options = 0, $iv = var_dump($iv), OPENSSL_RAW_DATA, $aad = "" , $path . ‘.dec’)
?>
Merci de vos contributions !