Статус: Активный участник
Группы: Участники
Зарегистрирован: 31.05.2016(UTC) Сообщений: 33  Сказал(а) «Спасибо»: 4 раз Поблагодарили: 2 раз в 2 постах
|
Добрый день. Возможно ли с помощью Browser plugin создание запроса на обновление сертификата в формате PKCS7? Для дальнейшей передачи его по SOAP в УЦ? Удается создавать запрос в формате PKCS10, но метод CertRequestSoapPort.SubmitRequest принимает PKCS7.
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 31.05.2016(UTC) Сообщений: 33  Сказал(а) «Спасибо»: 4 раз Поблагодарили: 2 раз в 2 постах
|
Немного продвинулся. Создаю запрос на сертификат pkcs10, далее подписываю его сертификатом, выданным тестовым УЦ крипто про 1.5 Правильно ли я понимаю, что при этом получается pkcs7? Вот код Создание pkcs10 Код:
try {
console.debug("Create request for cert");
var objPrivateKey = Plugin.createObject("X509Enrollment.CX509PrivateKey");
objPrivateKey.ProviderName = "Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider";
objPrivateKey.ProviderType = 75;
console.debug("CX509PrivateKey : OK");
var AT_KEYEXCHANGE = 1;
objPrivateKey.KeySpec = AT_KEYEXCHANGE;
var ContextUser = 1;
var objRequest = Plugin.createObject("X509Enrollment.CX509CertificateRequestPkcs10");
objRequest.InitializeFromPrivateKey(ContextUser, objPrivateKey, "");
console.debug("CX509CertificateRequestPkcs10 : OK");
var objDn = Plugin.createObject("X509Enrollment.CX500DistinguishedName");
var XCN_CERT_NAME_STR_NONE = 0;
objDn.Encode("CN=ZME123", XCN_CERT_NAME_STR_NONE);
objRequest.Subject = objDn;
console.debug("CX500DistinguishedName : OK");
var objEnroll = Plugin.createObject("X509Enrollment.CX509Enrollment");
objEnroll.InitializeFromRequest(objRequest);
var XCN_CRYPT_STRING_BASE64REQUESTHEADER = 3;
var pkcs10 = objEnroll.CreateRequest(XCN_CRYPT_STRING_BASE64REQUESTHEADER);
console.debug("CX509Enrollment : OK");
}
catch (err) {
console.debug("Ошибка при создании запроса: " + err);
return;
}
Далее подписываю Код:
var oStore = Plugin.createObject("CAPICOM.Store");
oStore.Open(CAPICOM_CURRENT_USER_STORE, CAPICOM_MY_STORE, CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);
var oCertificates = oStore.Certificates.Find(CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME, "ZME123");
if (oCertificates.Count == 0) {
alert("Certificate not found: " + "ZME123");
return;
}
var oCertificate = oCertificates.Item(1);
console.debug("Certificate : OK");
var oSigner = Plugin.createObject("CAdESCOM.CPSigner");
console.debug("CAdESCOM.CPSigner : OK");
oSigner.Certificate = oCertificate;
var oSignedData = Plugin.createObject("CAdESCOM.CadesSignedData");
console.debug("CAdESCOM.CadesSignedData : OK");
oSignedData.ContentEncoding = CADESCOM_BASE64_TO_BINARY;
var content = pkcs10 ;
oSignedData.Content = content;
try {
var sSignedMessage = oSignedData.SignCades(oSigner, CADESCOM_CADES_BES, true);
} catch (err) {
alert("Failed to create signature. Error: " +err);
return;
}
Такую проверку проходит Код:
var oSignedData = Plugin.createObject("CAdESCOM.CadesSignedData");
try {
oSignedData.ContentEncoding = CADESCOM_BASE64_TO_BINARY;
oSignedData.Content = content;
oSignedData.VerifyCades(sSignedMessage, CADESCOM_CADES_BES, true);
alert("Sign OK ");
} catch (err) {
alert("Failed to verify signature. Error: " + err);
}
Содержимое sSignedMessage передаю в метод соап CertRequestSoapPort.submitRequest(sSignedMessage, ""); Ошибка -2146889721 Неправильное значение хеша. Тоже самое здесь https://www.cryptopro.ru/certsrv/certrqxt.aspПомогите разобраться.
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close