Скрепление сертификата OCSP в Android

Я несколько дней стучал головой о стену, пытаясь внедрить проверку OCSP в Android.

До сих пор в iOS было легко реализовать, но для Android каждая отдельная информация, с которой я столкнулась, просто не работает. Я использовал конечную точку API моего клиента и этот веб-сайт для запуска тестов для отзыва сертификатов, и до сих пор мне не повезло обнаружить отозванный сертификат внутри моего приложения для Android. Я использую OKHTTPClient. Вот метод, в котором я проверяю аннулирование сертификата

public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { assert (chain != null); if (chain == null) { throw new IllegalArgumentException( "checkServerTrusted: X509Certificate array is null"); } assert (chain.length > 0); if (!(chain.length > 0)) { throw new IllegalArgumentException( "checkServerTrusted: X509Certificate is empty"); } if (VERIFY_AUTHTYPE) { assert (null != authType && authType.equalsIgnoreCase(AUTH_TYPE)); if (!(null != authType && authType.equalsIgnoreCase(AUTH_TYPE))) { throw new CertificateException( "checkServerTrusted: AuthType is not " + AUTH_TYPE); } } if(chain[0]!=null){ try { X509Certificate issuerCert = chain[1]; X509Certificate c1 = chain[0]; TrustAnchor anchor = new TrustAnchor(issuerCert, null); Set anchors = Collections.singleton(anchor); CertificateFactory cf = CertificateFactory.getInstance("X.509"); List list = Arrays.asList(new Certificate[]{c1}); CertPath path = cf.generateCertPath(list); PKIXParameters params = new PKIXParameters(anchors); // Activate certificate revocation checking params.setRevocationEnabled(false); // Activate OCSP Security.setProperty("ocsp.enable", "true"); // Ensure that the ocsp.responderURL property is not set. if (Security.getProperty("ocsp.responderURL") != null) { throw new Exception("The ocsp.responderURL property must not be set"); } CertPathValidator validator = CertPathValidator.getInstance("PKIX"); PKIXCertPathValidatorResult result = (PKIXCertPathValidatorResult) validator .validate(path, params); System.out.println("VALID"); } catch (Exception e) { System.out.println("EXCEPTION " + e.getMessage()); e.printStackTrace(); } 

Вместо использования OkHttp попробуйте использовать Android в сборке HttpURLConnection или HttpsURLConnection в случае https: //

Intereting Posts
Исключение класса Cast при передаче массива Serializables из одной активности в другую Получить изображение с камеры в ImageView Android SoundPool: ошибка при создании AudioTrack Реализация пользовательского предложения для поисковой активности android Почему android теряют качество изображения при отображении png-файла? Android HTTP Сообщение на URL без параметров Android: Какова лучшая практика, используя глобальную строку или намерения с дополнительными данными? Определение регулярного выражения javascript для Android FindViewById () возвращает null, когда я вызываю его в onCreate () Написание переносимого Java-приложения с использованием JOGL и Android OpenGL Ошибка R.java Тест Android «уничтожает активность, чтобы сэкономить место» GetActivity возвращает null из фрагмента Как установить службы Google Play в виртуальную машину Genymotion (без поддержки перетаскивания)? Как получить индекс текста, выбранного в AutoCompleteTextView