Ранее реализовали импорт контейнера сертификата .pfx по примерам в android, теперь перешли к реализации импорта в ios, но столкнулись с проблемой,
непонятно как это реализуется тут, примеров не нашли. Получилось считать контейнер следующим образом:
RCT_EXPORT_METHOD(importPFXContainer: (NSString *) path
pasword: (NSString *) password
resolver:(RCTPromiseResolveBlock)resolve
rejecter:(RCTPromiseRejectBlock)reject) {
CRYPT_DATA_BLOB blob = readPFXContainer(path);
LPCWSTR pass = convertNSString(password);
HCERTSTORE pfxStore = PFXImportCertStore(&blob, pass, PKCS12_IMPORT_SILENT);
if (!pfxStore) {
reject(@"Error code", @"Error message", nil);
return;
}
PCCERT_CONTEXT pCertContext = 0;
// PCCERT_CHAIN_CONTEXT pChainContext;
while(0 != (pCertContext = CertEnumCertificatesInStore(pfxStore, pCertContext))) {
// CertFindChainInStore
// HCERTSTORE hdStore = CertOpenSystemStoreA(0, "HDIMAGE");
}
resolve(@TRUE);
}
CRYPT_DATA_BLOB readPFXContainer(NSString *filePath) {
NSData *fileData = [NSData dataWithContentsOfFile:filePath];
CRYPT_DATA_BLOB blob;
blob.cbData = (DWORD)[fileData length];
blob.pbData = (BYTE*)malloc (blob.cbData);
[fileData getBytes:blob.pbData length:blob.cbData];
return blob;
}
LPCWSTR convertNSString(NSString *text) {
return (LPCWSTR)[text cStringUsingEncoding:NSUTF16LittleEndianStringEncoding];
}
Можно получить пример как дальше сохранить сертификат с ключом в системный контейнер?
Нужно ли при этом так же сохранять цепочку сертификатов как в версии android?
Отредактировано пользователем 14 октября 2021 г. 12:19:45(UTC)
| Причина: Не указана