2010-09-22 12 views

Répondre

0

J'ai eu le même problème avant. Vous voyez, le certificat a un champ Issuer, qui a l'objet de l'émetteur.
Vous pouvez comparer cela, ou/et vous pouvez tester la signature. Seule l'autorité de certification peut vérifier la signature du certificat.
Quelque chose comme ceci:

//load all the ca certificates and get their public keys 
caCertificate.getIssuerDN().equals(caCertificate[i].getSubjectDN()); 
// OR/AND 

try { 
    verifySignature(certificate, 
     caCertificate[i].getPublicKey()); 
    //issuer found 
} 
catch (Exception e) { 
    // not the issuer 
} 

Je n'ai pas testé le code, mais vous a eu l'idée.

EDIT:

Il y a quelques classes en java qui sont spécialement conçus pour la validation d'une chaîne. l'un d'eux est la classe CertPathBuilder. Je suis toujours en train de faire des recherches sur la façon de l'utiliser. Je crée toujours avec les mauvais paramètres, je suppose ...

EDIT 2:

J'utilise quelque chose qui a été inspiré par this.

bonne chance