Я хочу расширить алгоритм проверки сертификата или модульно его, чтобы я мог выбрать, какие проверки я могу пропустить.Я не хочу изобретать велосипед, поэтому я надеялся, что смогу унаследовать от реализации PKIX в Java Sun.
Однако я не могу найти исходный код.Очевидно это класс двигателя, и валидатор получается с getInstance("PKIX")
.Закрытия, которые я нашел, были PKIXValidator
в $JAVA_HOME\lib\src.zip\java.base\sun\security\validator\PKIXValidator
.
Я чувствую, что это неправильный файл, поскольку сам класс имеет следующий метод:
private X509Certificate[] doValidate(X509Certificate[] chain,
PKIXBuilderParameters params) throws CertificateException {
CertPathValidator validator = CertPathValidator.getInstance("PKIX");
CertPath path = factory.generateCertPath(Arrays.asList(chain));
certPathLength = chain.length;
PKIXCertPathValidatorResult result =
(PKIXCertPathValidatorResult)validator.validate(path, params);
return toArray(path, result.getTrustAnchor());
}
Поскольку этот класс не реализует метод validate()
, я предполагаю, что есть другой файл, который фактически проверяет сертификат.И я имею в виду не только подпись, я имею в виду KeyUsage, Extensions, правильный Issuer / Subject, весь пакет.
Итак, подведем итог.Я ищу реализации для проверки правильности KeyUsage, Subject и Issuer, Critical Extensions и т. Д.