Bonjour,
Dans une application de signature de fichier j'accède au magasin de certificat Windows a l'aide du provider SunMSCAPI. L'utilisation de ce KeyStore me permet de récupérer les certificat ainsi installer afin de l'utiliser pour signer. Chose que je réalise a l'aide du code suivant :
Or voila, Lundi, un client m'appel pour me dire que mon appli comporter une erreur, et après différent test il s'avère que le problème vient du fait que les 2 certificats (cryptographiques) qui sont installés, possèdent le même alias (chose qui s'explique en raison du renouvellement du certificat après expiration du premier certificat, auprès de la même autorité de certification). Mais voila, le problème et que mon bout de code précédent me récupère toujours le même certificat, le périmé bien entendu.... (d'où le problème me direz vous....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 try{ this.aliasPerso = new Vector<Certificate>(); //vecteur de certificat valide this.allPerso = new Vector<Certificate>(); //vecteur contenant tous les certificat du magasin KeyStore ksPerso = KeyStore.getInstance("Windows-MY"); ksPerso.load(null, null) ; Enumeration en2 = ksPerso.aliases() ; while (en2.hasMoreElements()) { Object alias = en2.nextElement(); ksentry = ksPerso.getCertificate((String)alias); allPerso.add(ksentry); if(ksentry.isValid()){ aliasPerso.add(ksentry); } } } catch(Exception e){ e.printStackTrace(); }) Donc, comme vous devez vous en douter maintenant, la question est : Comment récupéré le bon certificat valide, sans devoir désinstaller le certificat périmé du magasin Windows ?
Cordialement
Partager