Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline fenw  
#1 Оставлено : 14 апреля 2021 г. 3:43:15(UTC)
fenw

Статус: Участник

Группы: Участники
Зарегистрирован: 17.06.2014(UTC)
Сообщений: 19
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 5 раз
Доброй ночи!
Пытаюсь получить свойства сертификата, на android работает


Код:

  var results : HashMap<Any, Any> = HashMap<Any, Any>();
  val ks = KeyStore.getInstance(JCSP.HD_STORE_NAME, JCSP.PROVIDER_NAME);
  ks.load(null, null);
  for (alias in ks.aliases()) {
                    val certificate = ks.getCertificate( alias )
                    if ( !( certificate is X509Certificate ) )
                    {
                        continue;
                    }
                    var certInfo = HashMap<String, String>()
                    println(certificate.getSerialNumber().toString())
                    println(certificate.getNotAfter())
    }


Для iOS без примера получается с трудом ( файл Sign из sdk смотрел ) - в консоли я вижу null для всех свойств, кроме pCertContext->pCertInfo->SignatureAlgorithm.pszObjId
В чем ошибка? Нужен decrypt?

Код:

(NSDictionary *)getCertificates {
    

    DWORD retValue =0;
    
    fprintf (stderr, "Last error before acquiring 0x%08x \n",retValue);
   
    if (!(hSystemStore = CertOpenStore(CERT_STORE_PROV_SYSTEM,0, NULL, CERT_SYSTEM_STORE_LOCAL_MACHINE, L"MY"))) {
        CleanUp();
        [self handleException:WLI_CRYPTO_CERT_OPEN_STORE_EXCEPTION_REASON];
        return nil;
    }

    retValue = CSP_GetLastError();
    fprintf (stderr, "Last error after open store 0x%08x \n",retValue);
    
    NSMutableDictionary * certificates = [[NSMutableDictionary alloc] init];

    while((pCertContext = CertEnumCertificatesInStore(hSystemStore,pCertContext)))
    {
      
        NSLog(@"[%@]-------Сert--------", NSStringFromSelector(_cmd));
        NSLog(@"[%@] %@",NSStringFromSelector(_cmd),[[NSString alloc] initWithData: [NSData dataWithBytes:pCertContext->pCertInfo->SerialNumber.pbData length:pCertContext->pCertInfo->SerialNumber.cbData] encoding:NSUTF8StringEncoding]);
        NSLog(@"[%@]------End cert-------", NSStringFromSelector(_cmd));
        }  
    }
    
    CleanUp();
    return nil;
}
Offline fenw  
#2 Оставлено : 15 апреля 2021 г. 15:00:52(UTC)
fenw

Статус: Участник

Группы: Участники
Зарегистрирован: 17.06.2014(UTC)
Сообщений: 19
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 5 раз
пока не взлетает, помогите, пожалуйста, разобраться
Offline fenw  
#3 Оставлено : 18 апреля 2021 г. 8:11:32(UTC)
fenw

Статус: Участник

Группы: Участники
Зарегистрирован: 17.06.2014(UTC)
Сообщений: 19
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 5 раз
Есть ли какой-то работающий пример чтения сертификатов и их свойств на iOS?
Offline Андрей Русев  
#4 Оставлено : 19 апреля 2021 г. 11:55:40(UTC)
Русев Андрей

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 1,260

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 443 раз в 322 постах
Здравствуйте.
Никакой специфики у iOS нет: тут всё как на Linux/macOS. Для получения полей CERT_INFO ничего дополнительного делать не надо (в вашем примере верно всё, кроме печати). Формат полей тут:
https://docs.microsoft.c...pt/ns-wincrypt-cert_info
Официальная техподдержка. Официальная база знаний.
thanks 1 пользователь поблагодарил Русев Андрей за этот пост.
fenw оставлено 22.04.2021(UTC)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.