Java Tutorial/Security/PublicKey

Материал из Java эксперт
Версия от 05:01, 1 июня 2010; Admin (обсуждение | вклад) (1 версия)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Certificate and PublicKey

import java.io.FileInputStream;
import java.security.PublicKey;
import java.security.cert.Certificate;
import java.security.cert.CertificateFactory;
public class MainClass {
  public static void main(String args[]) throws Exception {
    Certificate[] certpath = new Certificate[args.length - 1];
    CertificateFactory cf = CertificateFactory.getInstance("X.509");
    int i;
    for (i = 0; i < args.length - 1; i++) {
      FileInputStream in = new FileInputStream(args[i]);
      certpath[i] = cf.generateCertificate(in);
    }
    FileInputStream in = new FileInputStream(args[i]);
    Certificate trust = cf.generateCertificate(in);
    boolean pass = false;
    String reason = "";
    for (i = 0; i < certpath.length; i++) {
      try {
        PublicKey pbk;
        if (i == certpath.length - 1) {
          pbk = trust.getPublicKey();
        } else {
          pbk = certpath[i + 1].getPublicKey();
        }
        certpath[i].verify(pbk);
        pass = true;
      } catch (Exception e) {
        pass = false;
        reason += i + "  " + e.toString();
        break;
      }
    }
    System.out.println(pass);
  }
}