Статус: Активный участник
Группы: Участники
Зарегистрирован: 17.11.2011(UTC) Сообщений: 35 Откуда: Екатеринбург
|
Добрый день. Подскажите пожалуйста как в асинхронном режиме cформировать объекты (пример): Код:
var objCSP = yield cadesplugin.CreateObjectAsync("X509Enrollment.CCspInformation");
var objCSPs = yield cadesplugin.CreateObjectAsync("X509Enrollment.CCspInformations");
var objPrivateKey = yield cadesplugin.CreateObjectAsync("X509Enrollment.CX509PrivateKey");
var objRequest = yield cadesplugin.CreateObjectAsync("X509Enrollment.CX509CertificateRequestPkcs10")
var objObjectIds = yield cadesplugin.CreateObjectAsync("X509Enrollment.CObjectIds");
var objObjectId = yield cadesplugin.CreateObjectAsync("X509Enrollment.CObjectId");
var objX509ExtensionEnhancedKeyUsage = yield cadesplugin.CreateObjectAsync("X509Enrollment.CX509ExtensionEnhancedKeyUsage");
var objExtensionTemplate = yield cadesplugin.CreateObjectAsync("X509Enrollment.CX509ExtensionTemplate");
var objDn = yield cadesplugin.CreateObjectAsync("X509Enrollment.CX500DistinguishedName");
var objEnroll = yield cadesplugin.CreateObjectAsync("X509Enrollment.CX509Enrollment");
var objExtensionKeyUsage = yield cadesplugin.CreateObjectAsync("X509Enrollment.CX509ExtensionKeyUsage");
при использовании NAPI работал такой вариант: Код:
var objCSP = cadesplugin.CreateObject("X509Enrollment.CCspInformation");
var objCSPs = cadesplugin.CreateObject("X509Enrollment.CCspInformations");
var objPrivateKey = cadesplugin.CreateObject("X509Enrollment.CX509PrivateKey");
var objRequest = cadesplugin.CreateObject("X509Enrollment.CX509CertificateRequestPkcs10")
var objObjectIds = cadesplugin.CreateObject("X509Enrollment.CObjectIds");
var objObjectId = cadesplugin.CreateObject("X509Enrollment.CObjectId");
var objX509ExtensionEnhancedKeyUsage = cadesplugin.CreateObject("X509Enrollment.CX509ExtensionEnhancedKeyUsage");
var objExtensionTemplate = cadesplugin.CreateObject("X509Enrollment.CX509ExtensionTemplate");
var objDn = cadesplugin.CreateObject("X509Enrollment.CX500DistinguishedName");
var objEnroll = cadesplugin.CreateObject("X509Enrollment.CX509Enrollment");
var objExtensionKeyUsage = cadesplugin.CreateObject("X509Enrollment.CX509ExtensionKeyUsage");
пытался сделать по аналогии, но ругается на вызов
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 24.11.2009(UTC) Сообщений: 965 Откуда: Crypto-Pro
Сказал(а) «Спасибо»: 3 раз Поблагодарили: 174 раз в 152 постах
|
А не могли бы вы уточнить на какой вызов ругается? |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 17.11.2011(UTC) Сообщений: 35 Откуда: Екатеринбург
|
Автор: cross А не могли бы вы уточнить на какой вызов ругается? Skrinshot.JPG (236kb) загружен 17 раз(а).в целом ругалось на саму формулировку каждой строки, я убрал yield. сейчас, строка Код:var objCSP = cadesplugin.CreateObjectAsync("X509Enrollment.CCspInformation");
возвращает Promise, не совсем понимаю, как затем вызвать функцию, Например Код:objCSP.InitializeFromName(providerName);
PS. весь код функции: Код:
function CreateRequest_Async(dn, eku, provider){
var providerName ="";
var providerType ="";
providerName = (provider == "КриптоПро CSP") ? "Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider":"Infotecs Cryptographic Service Provider";
providerType = (provider == "КриптоПро CSP") ? 75:2;
var objCSP = cadesplugin.CreateObjectAsync("X509Enrollment.CCspInformation");
var objCSPs = cadesplugin.CreateObjectAsync("X509Enrollment.CCspInformations");
var objPrivateKey = cadesplugin.CreateObjectAsync("X509Enrollment.CX509PrivateKey");
var objRequest = cadesplugin.CreateObjectAsync("X509Enrollment.CX509CertificateRequestPkcs10");
var objObjectIds = cadesplugin.CreateObjectAsync("X509Enrollment.CObjectIds");
var objObjectId = cadesplugin.CreateObjectAsync("X509Enrollment.CObjectId");
var objX509ExtensionEnhancedKeyUsage = cadesplugin.CreateObjectAsync("X509Enrollment.CX509ExtensionEnhancedKeyUsage");
var objExtensionTemplate = cadesplugin.CreateObjectAsync("X509Enrollment.CX509ExtensionTemplate");
var objDn = cadesplugin.CreateObjectAsync("X509Enrollment.CX500DistinguishedName");
var objEnroll = cadesplugin.CreateObjectAsync("X509Enrollment.CX509Enrollment");
var objExtensionKeyUsage = cadesplugin.CreateObjectAsync("X509Enrollment.CX509ExtensionKeyUsage");
objCSP.InitializeFromName(providerName);
objCSPs.Add(objCSP);
objPrivateKey.Length = 512;
objPrivateKey.KeySpec = 1;
// Политика экспорта ключа
objPrivateKey.ExportPolicy = 0;
objPrivateKey.Existing = false;
//
objPrivateKey.ContainerName = "test-name-for script";
// Наименование криптопровайдера
objPrivateKey.ProviderName = providerName;
// Тип криптопровайдера
objPrivateKey.ProviderType = 75;
objRequest.InitializeFromPrivateKey(1, objPrivateKey, "");
// Динамически формируем X509Enrollment.CObjectId и инициализируем по значению OID
eku.forEach(function(item, i, eku) {
var temp = cadesplugin.CreateObject("X509Enrollment.CObjectId");
temp.InitializeFromValue(item);
objObjectIds.Add(temp);
});
//Инициализация полей запроса
objX509ExtensionEnhancedKeyUsage.InitializeEncode(objObjectIds);
//Добавление в запрос полей сертификата
objRequest.X509Extensions.Add(objX509ExtensionEnhancedKeyUsage);
// XCN_CERT_NAME_STR_NONE = 0 XCN_CERT_NAME_STR_DISABLE_UTF8_DIR_STR_FLAG = 0x100000
objDn.Encode(dn, 0x100000);
objRequest.Subject = objDn;
// SMIME
objRequest.SmimeCapabilities = true;
// Электронная подпись, Неотрекаемость, Шифрование ключей, Шифрование данных (F0)
objExtensionKeyUsage.InitializeEncode(0x80|0x40|0x20|0x10);
// Добавление в запрос расширения Расширенное использование ключа
objRequest.X509Extensions.Add(objExtensionKeyUsage);
// Инициализаци объекта CX509Enrollment с использованием запроса CX509CertificateRequestPkcs10
objEnroll.InitializeFromRequest(objRequest);
// Формирование запроса
var pkcs10 = objEnroll.CreateRequest(3);
return pkcs10;
}
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 24.11.2009(UTC) Сообщений: 965 Откуда: Crypto-Pro
Сказал(а) «Спасибо»: 3 раз Поблагодарили: 174 раз в 152 постах
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close