Download - Svetlin Nakov
Download - Svetlin Nakov
Download - Svetlin Nakov
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
public static void verifyCertificate(X509Certificate aCertificate,<br />
X509Certificate[] aTrustedCertificates)<br />
throws GeneralSecurityException {<br />
// First check certificate validity period<br />
aCertificate.checkValidity();<br />
// Check if the certificate is signed by some of the given trusted certificates<br />
for (int i=0; i it is invalid<br />
throw new CertificateValidationException(<br />
"Can not find trusted parent certificate.");<br />
Методът приключва нормално ако сертификатът е валиден или завършва с<br />
изключение, съдържащо причината за неуспех на верификацията.<br />
2.1.3. Верификация на сертификационни вериги с Java<br />
Класовете за проверка и построяване на сертификационни вериги се<br />
намират в Java Certification Path API. Тази спецификация дефинира класовете<br />
java.security.cert.CertPathValidator, който служи за верификация на<br />
дадена сертификационна верига и java.security.cert. CertPathBuilder,<br />
който служи за построяване на сертификационна верига по зададено<br />
множество от доверени Root-сертификати и зададено множество от сертификати,<br />
които могат да се използват за междинни звена в сертификационната<br />
верига [Mullan, 2003].<br />
Нека преди да разгледаме как се построяват и верифицират сертификационни<br />
вериги да дадем описание на най-важните класове от Java<br />
Certification Path API.<br />
java.security.cert.CertPath<br />
Класът java.security.cert.CertPath представлява сертификационна верига<br />
(наредена последователност от сертификати).<br />
По конвенция една правилно построена сертификационна верига започва от<br />
някакъв клиентски сертификат, следван нула или повече сертификата на<br />
междинни сертификационни органи и завършва с Root-сертификат на някой<br />
сертификационен орган от първо ниво, като при това всеки от сертификатите<br />
във веригата е издаден и подписан от следващия след него.<br />
Класът CertPath е предназначен да съхранява такива правилно построени<br />
сертификационни вериги, но може да съхранява и просто съвкупности от<br />
сертификати без те да изграждат някаква сертификационна верига.<br />
55