Я пытаюсь получить сертификат контакта Microsoft Exchange. Он был установлен в Outlook путем его импорта на вкладке сертификата.
Он доступен с помощью PidTagUserX509Certificate на EWS, см. https://docs.microsoft.com/en-us/openspecs/exchange_server_protocols/ms-oxoabk/e4de26c4-9bcb-4da2-99c6-5f67aebc221a, но я должен признать, что не понимаю, как с этим обращаться объект, как описано в документации.
Я пытаюсь base64-декодировать извлеченные данные, а затем использую X509 CertificateFactory для чтения сертификата.
byte[] bytes = Base64.decode(certificateValue, Base64.DEFAULT);
CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509");
ByteArrayInputStream is = new ByteArrayInputStream(bytes);
X509Certificate certificate = (X509Certificate) certificateFactory.generateCertificate(is);
Это приводит к исключительному анализу: ошибка: 0c0000be: процедуры кодирования ASN.1: OPENSSL_internal: WRONG_TAG
Мой код работает на Android, но проблема должна быть универсальной.
Данные base64 можно найти здесь: https://pastebin.com/dCnMtjn4
Есть идеи, как мне получить сертификат?