PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 27 → Certificat, la propriété ..ValidePourSignature retourne Faux
Certificat, la propriété ..ValidePourSignature retourne Faux
Débuté par Christophe Navarro, 06 aoû. 2022 01:32 - Aucune réponse
Membre enregistré
89 messages
Popularité : +4 (4 votes)
Posté le 06 août 2022 - 01:32
Bonjour à tous,
je bute sur la validité d'un certificat, ca ne doit pas etre grand chose, peut etre pourriez vous m'aider :

j'intègre un webservice et celui-ci utilise un certificat.
il s'agit d'un .p12.
J'installe le .p12 sur windows en double cliquant dessus et en suivant les étapes trés simples du wizard (mot de passe ok, magasin de certificat automatique).
Dans windev, je charge le certificat avec CertificatCharge() dans un tableau de certificats, puis je parcours le résultat pour vérifier que le certificat est bien trouvé, et qu'il est valide pour signature (propriété ..ValidePourSignature).
Mais je me heurte à un soucis : ..ValidePourSignature me retourne faux
On a executé le meme programme sur le poste d'un autre dév qui a installé le meme certificat, et pour lui ..validepoursignature retourne vrai, on ne comprend pas pourquoi...

Je ne trouve pas d'infos pouvant m'aider à solutionner ce problème,
qq'un aurait-il une idée sur ce qui pourrait causer ce comportement sur mon poste ? la facon d'installer ou autre détail...
il s'agit d'un certificat émis par l'ASIP Santé (l'institution informatique du ministère de la santé)

mon code :

sNomFichierCerticatClient est une chaîne = fRepExe + fSep + "asip-p12-EL-TEST-ORG-AUTH_CLI-20220607-153606.p12"
sMotDePasseCertificatClient est une chaîne = "********"
//---------
<BLOC Chargement du certificat client du prescripteur>
SI PAS fFichierExiste(sNomFichierCerticatClient) ALORS
ErreurConstruit("Le fichier certificat <%1> n'existe pas",sNomFichierCerticatClient)
RETOUR
FIN
taCertificats est un tableau de Certificat = CertificatCharge(sNomFichierCerticatClient, sMotDePasseCertificatClient)
SI taCertificats..Occurrence = 0 ALORS
ErreurConstruit("Aucun certificat trouvé dans <%1>. %2",sNomFichierCerticatClient,ErreurInfo())
RETOUR
FIN
CertifPS est un Certificat dynamique
POUR n=1 _À_ taCertificats..Occurrence
SI taCertificats[n]..ValidePourSignature ALORS
CertifPS = taCertificats[n]
SORTIR
FIN
FIN
SI CertifPS=Null _OU_ PAS CertifPS..ValidePourSignature ALORS
ErreurConstruit("Aucun certificat trouvé valide pour signature dans <%1>. %2",sNomFichierCerticatClient,ErreurInfo())
RETOUR
FIN
<FIN>


Merci
Bon week end à tous

--
Christophe Navarro
Développeur freelance Windev, Webdev, Windev Mobile, MySql
http://www.krinasoft.fr
Perpignan