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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline HrapovVeniamin  
#1 Оставлено : 29 декабря 2015 г. 13:51:18(UTC)
HrapovVeniamin

Статус: Новичок

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

В IE или Firefox такой код создает правильную подпись (взято из примера из текущего форума):

function CreateRequest() {
try {
var objPrivateKey = cadesplugin.CreateObject("X509Enrollment.CX509PrivateKey");
objPrivateKey.ProviderName = "Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider";
objPrivateKey.ProviderType = 75;

var AT_KEYEXCHANGE = 1;
objPrivateKey.KeySpec = AT_KEYEXCHANGE;

var ContextUser = 1;
var objRequest = cadesplugin.CreateObject("X509Enrollment.CX509CertificateRequestPkcs10");
objRequest.InitializeFromPrivateKey(ContextUser, objPrivateKey, "");

var objDn = cadesplugin.CreateObject("X509Enrollment.CX500DistinguishedName");
var XCN_CERT_NAME_STR_NONE = 0;
objDn.Encode("CN=Rutoken test user", XCN_CERT_NAME_STR_NONE);
objRequest.Subject = objDn;

// Enroll
var objEnroll = cadesplugin.CreateObject("X509Enrollment.CX509Enrollment");
objEnroll.InitializeFromRequest(objRequest);

var XCN_CRYPT_STRING_BASE64REQUESTHEADER = 3;
var pkcs10 = objEnroll.CreateRequest(XCN_CRYPT_STRING_BASE64REQUESTHEADER);

}
catch (err) {
alert("Ошибка при создании запроса: " + cadesplugin.GetErrorMessage(err));
return;
}

console.log(pkcs10) ;
}

Для хрома использую те же вызовы, но асинхронные:


function CreateRequestAsync() {
try {
cadesplugin.async_spawn(function*(arg) {
var objPrivateKey = yield cadesplugin.CreateObjectAsync("X509Enrollment.CX509PrivateKey");
objPrivateKey.ProviderName = "Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider";
objPrivateKey.ProviderType = 75;

var AT_KEYEXCHANGE = 1;
objPrivateKey.KeySpec = AT_KEYEXCHANGE;

var ContextUser = 1;
var objRequest = yield cadesplugin.CreateObjectAsync("X509Enrollment.CX509CertificateRequestPkcs10");
objRequest.InitializeFromPrivateKey(ContextUser, objPrivateKey, "");

var objDn = yield cadesplugin.CreateObjectAsync("X509Enrollment.CX500DistinguishedName");
var XCN_CERT_NAME_STR_NONE = 0;
objDn.Encode("CN=Rutoken test user", XCN_CERT_NAME_STR_NONE);
objRequest.Subject = objDn;

// Enroll
var objEnroll = yield cadesplugin.CreateObjectAsync("X509Enrollment.CX509Enrollment");
objEnroll.InitializeFromRequest(objRequest);

var XCN_CRYPT_STRING_BASE64REQUESTHEADER = 3;
var pkcs10 = yield objEnroll.CreateRequest(XCN_CRYPT_STRING_BASE64REQUESTHEADER);

console.log(pkcs10) ;
});
}
catch (err) {
alert("Ошибка при создании запроса: " + cadesplugin.GetErrorMessage(err));
return;
}


}

Но в случае хрома подпись получается такая (certutil):


PKCS10 Certificate Request:
Version: 1
Subject:
EMPTY
Name Hash(sha1): f944dcd635f9801f7ac90a407fbc479964dec024
Name Hash(md5): a46c3b54f2c9871cd81daf7a932499c0

Public Key Algorithm:
Algorithm ObjectId: 1.2.840.113549.1.1.1 RSA
Algorithm Parameters:
05 00
Public Key Length: 1024 bits
Public Key: UnusedBits = 0
0000 30 81 89 02 81 81 00 a4 8f 29 b3 1e fe 8c ed a3
0010 29 50 cf 9a 4d 0d 54 d3 e9 7c 19 9f b6 9f 18 99
0020 12 2e 02 9c b6 ae fb 28 88 fe da eb 82 b3 0e 5b
0030 a9 a6 c5 94 da 96 a7 63 69 97 07 28 ea 06 3c b9
0040 b1 e1 8c ea 5a ff 5f 2f 3a d9 74 1a df ca 99 e1
0050 71 f2 86 b3 1d 1f 86 f2 c8 b7 43 89 45 2d 24 2d
0060 32 82 5a 01 f1 fc 8a 0e 5e a3 d9 a5 4b 70 ef 2c
0070 d5 79 67 09 c9 fb ec a1 5a 0e 2d be fc 74 5e a6
0080 b6 ac ef 1c fa 54 21 02 03 01 00 01
Request Attributes: 1
1 attributes:

Attribute[0]: 1.2.840.113549.1.9.14 (Certificate Extensions)
Value[0][0], Length = 31
Unknown Attribute type
Certificate Extensions: 2
2.5.29.15: Flags = 1(Critical), Length = 4
Key Usage
Digital Signature (80)

2.5.29.14: Flags = 0, Length = 16
Subject Key Identifier
52 ba 9c e9 ea b7 cb cc b6 ec 01 b8 6a 7f e4 42 fc 4c 83 60

Signature Algorithm:
Algorithm ObjectId: 1.2.840.113549.1.1.5 sha1RSA
Algorithm Parameters:
05 00
Signature: UnusedBits=0
0000 52 23 d3 fb d8 ab 19 94 b8 b9 23 09 d0 33 40 c9
0010 84 30 4e 08 00 76 23 f2 01 88 0c 8e 5d e9 73 d9
0020 ca 9e ae 96 55 cd 3a b3 54 1e 3d 0a 90 a9 50 2d
0030 29 bb b0 89 a1 66 ad 6b 42 e0 0e 4e ba d3 fe 01
0040 87 9c b9 a2 a7 a0 81 15 9e 26 39 0f 35 73 5e 87
0050 08 84 89 14 4a f6 e9 36 af c8 f7 00 f8 1b a6 56
0060 72 48 0f 18 54 87 54 62 7d a7 3d 30 70 2d af 32
0070 1a 97 cc 0a 5c df 61 aa 98 65 0b ad 22 c7 25 0b
Signature matches Public Key
Key Id Hash(rfc-sha1): 76 47 d7 fe ee d9 0b 90 02 8d 15 40 6c 02 43 77 0a 55 91
9e
Key Id Hash(sha1): d5 e1 71 6c 19 e8 05 79 5d d2 7a 2c 00 2e 77 8a b3 df 20 bf
Subject Key Id (precomputed): 52 ba 9c e9 ea b7 cb cc b6 ec 01 b8 6a 7f e4 42 fc
4c 83 60
CertUtil: -dump command completed successfully.

В ней Subject - EMPTY, а алгоритмы RSA вместо Гост. Пытался изменять параметры, но результат все равно такой. Это ошибка или я что-то делаю не так?


RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.