добрый день,
при попытке подписать сертификат получаю ошибку приватного ключа, ниже привожу код, который используется и логи, сперва идет вызов storeCertFile, затем signDOcument:
Цитата:-(StoreCertResponse *)storeCertFile:(StoreCertFile*)input error:(FlutterError * *)error{
StoreCertResponse *response = [[StoreCertResponse alloc] init];
response.isError=[NSNumber numberWithBool:NO];
@try {
NSString *certPath = input.certFilePath;
NSString *password = input.password;
NSString *certThumbPrint = [[WLICryptoProvider sharedInstance] importCertFromPFXStore:certPath withPassword:password];
if(certThumbPrint){
response.certThumbPrint=certThumbPrint;
}else{
response.isError=[NSNumber numberWithBool:YES];
response.message=@"Сертификат не импортирован";
}
} @catch (NSException *exception) {
response.isError=[NSNumber numberWithBool:YES];
response.message=exception.reason;
}
return response;
}
-(DocumentSignResponse *)signDocument:(DocumentSignRequest*)input error:(FlutterError * *)error{
DocumentSignResponse *response = [[DocumentSignResponse alloc] init];
response.isError=[NSNumber numberWithBool:NO];
NSString *certContainer;
NSString *certSerial;
NSString *certPublicKey;
@try
{
certContainer = [[WLICryptoProvider sharedInstance] getInternalContainerName];
certSerial = nil;
certPublicKey = nil;
if (certContainer) {
certSerial= [[WLICryptoProvider sharedInstance] getCertSerialNumberFromContainer:certContainer];
certPublicKey = [[WLICryptoProvider sharedInstance] getPublicKeyInfoCertFromContainer:certContainer];
}
NSData *signature = [[WLICryptoProvider sharedInstance] signFile:input.docPath withCertFromContainer:certContainer];
if(signature){
response.signature=[FlutterStandardTypedData typedDataWithBytes:signature];
}else{
response.isError=[NSNumber numberWithBool:YES];
response.message=@"Подпись не удалась";
}
}
@catch(NSException *exception) {
response.isError=[NSNumber numberWithBool:YES];
response.message=[NSString stringWithFormat:@"%@ /%@", @"Подпись не удалась:", exception.reason];
}
return response;
}
получаю:
<csp>0x104b878c0:OpenContainer!OpenContainer kcar_open fail (0x80090016) (:1095)
<capi20>0x104b878c0:CryptAcquireContextA!failed: LastError = 0x80090016 (:810)
Last error before acquiring 0x00000000
Last error after acquiring 0x80090016
[cadesSignHash:withCertFromContainer:] MY cert store opened.
Last error after loading certificate 0x80090016
1.2.643.7.1.1.3.2
Last error before signing 0x80090016
CadesSignHash() failed
Last error after signing 0x80091007
<csp>0x104b878c0:OpenContainer!OpenContainer kcar_open fail (0x80090016) (:1095)
<capi20>0x104b878c0:CryptAcquireContextA!failed: LastError = 0x80090016 (:810)
Last error before acquire 0x80090016
Last error after acquire 0x80090016
Last error before loading cert 0x80090016
[detachedSign:withCertFromContainer:] MY cert store opened.
Last error after loading cert 0x80090016
[detachedSign:withCertFromContainer:] The signer's certificate was found.
Last error before signing 0x80090016
<capi20>0x104b878c0:CryptAcquireCertificatePrivateKey!() CertGetCertificateContextPropertyWithLock(CERT_KEY_PROV_INFO_PROP_ID) failed! (:294)
<capi20>0x104b878c0:CryptAcquireCertificatePrivateKey!(failed: LastError = 0x8009200b) (:312)
[detachedSign:withCertFromContainer:] CryptSignMessage failed.
Last error after signing 0x8009200b
Last error before signing 2 0x8009200b
<capi20>0x104b878c0:CryptAcquireCertificatePrivateKey!() CertGetCertificateContextPropertyWithLock(CERT_KEY_PROV_INFO_PROP_ID) failed! (:294)
<capi20>0x104b878c0:CryptAcquireCertificatePrivateKey!(failed: LastError = 0x8009200b) (:312)
[detachedSign:withCertFromContainer:] CryptSignMessage failed.
Last error after signing 2 0x8009200b
подскажите, с чем может быть связано, в какую сторону смотреть?