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

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline dima_vor  
#1 Оставлено : 27 апреля 2013 г. 7:57:48(UTC)
dima_vor

Статус: Активный участник

Группы: Участники
Зарегистрирован: 08.08.2012(UTC)
Сообщений: 70
Откуда: Казань

Сказал(а) «Спасибо»: 6 раз
Здесь изложена абстрактно моя проблема.
http://www.cryptopro.ru/....aspx?g=posts&t=6021

У меня вопрос немного другой.
Есть ли класс в CERTENROLLLib, который позволяет в запрос на сертификат добавлять SubjectSignTool, IssuerSignTool?
Моя задача издать квалифицированный сертификат.

Спасибо за внимание.
Offline dima_vor  
#2 Оставлено : 30 апреля 2013 г. 12:02:58(UTC)
dima_vor

Статус: Активный участник

Группы: Участники
Зарегистрирован: 08.08.2012(UTC)
Сообщений: 70
Откуда: Казань

Сказал(а) «Спасибо»: 6 раз
За конкретную помощь в вопросе - обещаю денежное вознаграждение.
На фрилансе не нашел, где задать этот вопрос.
Помогите. Вопрос срочен.

Объясню более подробнее.
Основной язык C#. Пишу запрос на квалифицированный сертификат.
Использую следующую dll(библиотеку-сборку) -
Assembly Interop.CERTENROLLLib.dll, v1.0.0.0

Делаю запрос формата PKCS#10

CX509CertificateRequestPkcs10 objPkcs10 = new CX509CertificateRequestPkcs10();
CX509PrivateKey objPrivateKey = new CX509PrivateKey();
CCspInformation objCSP = new CCspInformation();
CCspInformations objCSPs = new CCspInformations();
CX500DistinguishedName objDN = new CX500DistinguishedName();
CX509Enrollment objEnroll = new CX509Enrollment();
CObjectIds objObjectIds = new CObjectIds();
CObjectId objObjectId1 = new CObjectId();
CObjectId objObjectId2 = new CObjectId();
CX509ExtensionKeyUsage objExtensionKeyUsage = new CX509ExtensionKeyUsage();
CX509ExtensionEnhancedKeyUsage objX509ExtensionEnhancedKeyUsage = new CX509ExtensionEnhancedKeyUsage();
string strRequest;

Thread t = new Thread(new ParameterizedThreadStart(FindWindowAndInsertPass));
ThreadParams tp = new ThreadParams();
tp.password = password;
tp.isRequest = true;
t.Start(tp);

try
{
objPrivateKey.ContainerName = containerName;
objPrivateKey.ProviderName = Win32.VPN_DEF_PROV;
objPrivateKey.KeySpec = X509KeySpec.XCN_AT_KEYEXCHANGE;
objPrivateKey.KeyUsage = X509PrivateKeyUsageFlags.XCN_NCRYPT_ALLOW_ALL_USAGES;
objPrivateKey.Pin = password;
objPrivateKey.Silent = false;
objPrivateKey.Open();

objPkcs10.InitializeFromPrivateKey(X509CertificateEnrollmentContext.ContextUser, objPrivateKey, "");

objExtensionKeyUsage.InitializeEncode(
CERTENROLLLib.X509KeyUsageFlags.XCN_CERT_DIGITAL_SIGNATURE_KEY_USAGE |
CERTENROLLLib.X509KeyUsageFlags.XCN_CERT_NON_REPUDIATION_KEY_USAGE |
CERTENROLLLib.X509KeyUsageFlags.XCN_CERT_KEY_ENCIPHERMENT_KEY_USAGE |
CERTENROLLLib.X509KeyUsageFlags.XCN_CERT_DATA_ENCIPHERMENT_KEY_USAGE
);
objPkcs10.X509Extensions.Add((CX509Extension)objExtensionKeyUsage);

#region CERTIFICATE POLICY
var clientAuthenticationOid1 = new CObjectId();
clientAuthenticationOid1.InitializeFromValue("1.2.643.100.113.1");

var clientAuthenticationOid2 = new CObjectId();
clientAuthenticationOid2.InitializeFromValue("1.2.643.100.113.2");

var policy = new CCertificatePolicy();
policy.Initialize(clientAuthenticationOid1);
var policy2 = new CCertificatePolicy();
policy2.Initialize(clientAuthenticationOid2);


var policies = new CCertificatePolicies();
policies.Add(policy);
policies.Add(policy2);

var ecp = new CX509ExtensionCertificatePolicies();
ecp.InitializeEncode(policies);

objPkcs10.X509Extensions.Add((CX509Extension)ecp);
#endregion
//====== вот здесь должно быть ==== КАК ЕГО ДОБАВИТЬ
// некритичное дополнение issuerSignTool типа IssuerSignToo (Объектный идентификатор типа IssuerSignTool имеет вид 1.2.643.100.112)
// некритичное дополнение subjectSignTool (объектный идентификатор которого имеет вид 1.2.643.100.111.)

objObjectId1.InitializeFromValue("1.3.6.1.5.5.7.3.2");
objObjectIds.Add(objObjectId1);
objObjectId2.InitializeFromValue("1.3.6.1.5.5.7.3.4");
objObjectIds.Add(objObjectId2);
objX509ExtensionEnhancedKeyUsage.InitializeEncode(objObjectIds);
objPkcs10.X509Extensions.Add((CX509Extension)objX509ExtensionEnhancedKeyUsage);

objDN.Encode(File.ReadAllText(reqPath, Encoding.Default), X500NameFlags.XCN_CERT_X500_NAME_STR);
objPkcs10.Subject = objDN;

objEnroll.InitializeFromRequest(objPkcs10);
//strRequest = objEnroll.CreateRequest(EncodingType.XCN_CRYPT_STRING_BASE64REQUESTHEADER);
strRequest = objEnroll.CreateRequest(EncodingType.XCN_CRYPT_STRING_BASE64REQUESTHEADER);
File.WriteAllText(reqPath.Replace(".txt", ".p10"), strRequest);

вот это место в коде надо исправить.
//====== вот здесь должно быть ==== КАК ЕГО ДОБАВИТЬ
// некритичное дополнение issuerSignTool типа IssuerSignToo (Объектный идентификатор типа IssuerSignTool имеет вид 1.2.643.100.112)
// некритичное дополнение subjectSignTool (объектный идентификатор которого имеет вид 1.2.643.100.111.)

ОПЛАТУ ГАРАНТИРУЮ!

Отредактировано пользователем 30 апреля 2013 г. 12:09:39(UTC)  | Причина: дополнение

Offline Kirill Sobolev  
#3 Оставлено : 30 апреля 2013 г. 12:36:53(UTC)
Кирилл Соболев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 25.12.2007(UTC)
Сообщений: 1,733
Мужчина
Откуда: КРИПТО-ПРО

Поблагодарили: 177 раз в 168 постах
Цитата:
некритичное дополнение issuerSignTool типа IssuerSignToo (Объектный идентификатор типа IssuerSignTool имеет вид 1.2.643.100.112)
некритичное дополнение subjectSignTool (объектный идентификатор которого имеет вид 1.2.643.100.111.)

есть закодированное значение subjectSignTool?
а issuerSignTool вообще кладет издатель
Техническую поддержку оказываем тут
Наша база знаний
Offline dima_vor  
#4 Оставлено : 6 мая 2013 г. 7:53:34(UTC)
dima_vor

Статус: Активный участник

Группы: Участники
Зарегистрирован: 08.08.2012(UTC)
Сообщений: 70
Откуда: Казань

Сказал(а) «Спасибо»: 6 раз
CObjectId objSubjectSignTool = new CObjectId();
objSubjectSignTool.InitializeFromValue("1.2.643.100.111");
var extSubjectSignTool = new CX509Extension();

extSubjectSignTool.Initialize(objSubjectSignTool, EncodingType.XCN_CRYPT_STRING_ANY,
"Domen-KC2");
objPkcs10.X509Extensions.Add(extSubjectSignTool);

Я вот так добавлял. Но кодировка не отображает ничего хорошего в сертификате.
Offline Kirill Sobolev  
#5 Оставлено : 6 мая 2013 г. 8:42:49(UTC)
Кирилл Соболев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 25.12.2007(UTC)
Сообщений: 1,733
Мужчина
Откуда: КРИПТО-ПРО

Поблагодарили: 177 раз в 168 постах
Цитата:
Но кодировка не отображает ничего хорошего в сертификате.

Какой CSP используете? Выложите сертификат.
Техническую поддержку оказываем тут
Наша база знаний
Offline dima_vor  
#6 Оставлено : 6 мая 2013 г. 9:26:59(UTC)
dima_vor

Статус: Активный участник

Группы: Участники
Зарегистрирован: 08.08.2012(UTC)
Сообщений: 70
Откуда: Казань

Сказал(а) «Спасибо»: 6 раз
VipNet CSP.

Выкладываю сертификат - в base64
-----BEGIN CERTIFICATE-----
MIIGrjCCBlugAwIBAgIQAc5KIY6ZmJAAAAAAF7gADDAKBgYqhQMCAgMFADCCAWox
KjAoBgNVBAkMIdGD0LsuINCc0L7RgdC60L7QstGB0LrQsNGPLCDQtC4xNTEYMBYG
BSqFA2QBEg0xMTAxNjkwMDYyMDg4MRowGAYIKoUDA4EDAQESDDAwMTY1NTIwMjc2
MTELMAkGA1UEBhMCUlUxFTATBgNVBAcMDNCa0LDQt9Cw0L3RjDEbMBkGA1UECAwS
0KLQsNGC0LDRgNGB0YLQsNC9MSMwIQYJKoZIhvcNAQkBFhRhZG1pbkBzcXVhcmV0
cmFkZS5ydTEfMB0GA1UECgwW0KHQutCw0LnQvdC10YLQstC+0YDQujFEMEIGA1UE
Cww70KPQtNC+0YHRgtC+0LLQtdGA0Y/RjtGJ0LjQuSDQuCDQutC70Y7Rh9C10LLQ
vtC5INGG0LXQvdGC0YAxIzAhBgNVBAwMGtCQ0LTQvNC40L3QuNGB0YLRgNCw0YLQ
vtGAMRQwEgYDVQQDDAtTcXVhcmV0cmFkZTAeFw0xMzA1MDYwNjE4NDJaFw0xNDA1
MDYwNjE4NDJaMIIByjEWMBQGBSqFA2QDEgswNjA5ODEwOTQ2NzEbMBkGBSqFA2Rv
DBDQlNC+0LzQtdC9LdCa0KEyMScwJQYJKoZIhvcNAQkBFhhzdXBwb3J0QHNreW5l
dC1rYXphbi5jb20xGjAYBggqhQMDgQMBARIMMDAxNjU1MjAyNzYxMRgwFgYFKoUD
ZAESDTExMDE2OTAwNjIwODgxLzAtBgNVHR8MJmh0dHA6Ly9zcXVhcmV0cmFkZS5y
dS9wdWJzZXJ2L3Jvb3QuY3JsMQkwBwYDVQQLDAAxKDAmBgNVBAoMH9Ce0J7QniAi
0KHQutCw0LnQvdC10YLQstC+0YDQuiIxITAfBgNVBAkMGNCc0L7RgdC60L7QstGB
0LrQsNGPLCAxNTEVMBMGA1UEBwwM0JrQsNC30LDQvdGMMTMwMQYDVQQIDCoxNiDR
gNC10YHQv9GD0LHQu9C40LrQsCDQotCw0YLQsNGA0YHRgtCw0L0xCzAJBgNVBAYT
AlJVMTcwNQYDVQQDDC7QpdGD0LfRj9GI0LXQsiDQotC40LzRg9GAINCg0YPRgdGC
0LXQvNC+0LLQuNGHMRkwFwYDVQQMDBDQtNC40YDQtdC60YLQvtGAMGMwHAYGKoUD
AgITMBIGByqFAwICJAAGByqFAwICHgEDQwAEQOhyzhAaway99VQcrczQLWXrHLN/
L3KTydYOHHSkIXZ2JbF6WElR3v4k2FZfSFHp9i/MRfImrCJWunP61cNxVdGBCQAx
N0I4MDAwMqOCAmgwggJkMA4GA1UdDwEB/wQEAwIE8DAdBgNVHSAEFjAUMAgGBiqF
A2RxATAIBgYqhQNkcQIwGwYFKoUDZG8EEhQEPgQ8BDUEPQQtABoEIQQyADAbBgUq
hQNkcAQSEgQtAC8ARABTAEEALQAxADcAMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggr
BgEFBQcDBDAdBgNVHQ4EFgQU8TaF+NPd+CPXOr6dpPgEBx4+E0UwDAYDVR0TAQH/
BAIwADCCAasGA1UdIwSCAaIwggGegBQrVSZitQOAPudMaEJWNidf1me0AaGCAXKk
ggFuMIIBajEqMCgGA1UECQwh0YPQuy4g0JzQvtGB0LrQvtCy0YHQutCw0Y8sINC0
LjE1MRgwFgYFKoUDZAESDTExMDE2OTAwNjIwODgxGjAYBggqhQMDgQMBARIMMDAx
NjU1MjAyNzYxMQswCQYDVQQGEwJSVTEVMBMGA1UEBwwM0JrQsNC30LDQvdGMMRsw
GQYDVQQIDBLQotCw0YLQsNGA0YHRgtCw0L0xIzAhBgkqhkiG9w0BCQEWFGFkbWlu
QHNxdWFyZXRyYWRlLnJ1MR8wHQYDVQQKDBbQodC60LDQudC90LXRgtCy0L7RgNC6
MUQwQgYDVQQLDDvQo9C00L7RgdGC0L7QstC10YDRj9GO0YnQuNC5INC4INC60LvR
jtGH0LXQstC+0Lkg0YbQtdC90YLRgDEjMCEGA1UEDAwa0JDQtNC80LjQvdC40YHR
gtGA0LDRgtC+0YAxFDASBgNVBAMMC1NxdWFyZXRyYWRlghABzkAN9T73IAAAAAMX
uAACMAoGBiqFAwICAwUAA0EAFW7iszte2NwvtsN2Tob1MeGht9zgEHPf61fGK7pc
MwtwCc79cKgYYG6/I3qYSeBFUb06lwnMnjOZqO0pi157BA==

-----END CERTIFICATE-----


Вот так например при просмотре в сертификате SubjectSignTool ( кодировал строку Домен-КС2 )
14 04 3e 04 3c 04 35 04 ..>.<.5.
3d 04 2d 00 1a 04 21 04 =.-...!.
32 00 2.

Отредактировано пользователем 6 мая 2013 г. 9:28:48(UTC)  | Причина: adding

Offline Kirill Sobolev  
#7 Оставлено : 6 мая 2013 г. 9:45:42(UTC)
Кирилл Соболев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 25.12.2007(UTC)
Сообщений: 1,733
Мужчина
Откуда: КРИПТО-ПРО

Поблагодарили: 177 раз в 168 постах
Цитата:
Вот так например при просмотре в сертификате SubjectSignTool ( кодировал строку Домен-КС2 )
14 04 3e 04 3c 04 35 04 ..>.<.5.
3d 04 2d 00 1a 04 21 04 =.-...!.
32 00 2.

Неправильно закодировано.
В требованиях из 795 приказа
Цитата:
Для указания в квалифицированном сертификате наименования используемого владельцем квалифицированного сертификата средства ЭП должно использоваться некритичное дополнение subjectSignTool типа UTF8String SIZE(1..200)
Техническую поддержку оказываем тут
Наша база знаний
Offline dima_vor  
#8 Оставлено : 6 мая 2013 г. 10:12:13(UTC)
dima_vor

Статус: Активный участник

Группы: Участники
Зарегистрирован: 08.08.2012(UTC)
Сообщений: 70
Откуда: Казань

Сказал(а) «Спасибо»: 6 раз
А как правильно? Вот в этом и вопрос. Знаю, что UTF8String.

А вот не подскажете. Может я не правильно что то другое кодирую.
Offline Юрий  
#9 Оставлено : 6 мая 2013 г. 10:21:26(UTC)
Юрий

Статус: Активный участник

Группы: Участники
Зарегистрирован: 22.01.2008(UTC)
Сообщений: 671
Мужчина
Российская Федерация
Откуда: Йошкар-Ола

Сказал «Спасибо»: 3 раз
Поблагодарили: 93 раз в 67 постах
Автор: Kirill Sobolev Перейти к цитате
Цитата:
Вот так например при просмотре в сертификате SubjectSignTool ( кодировал строку Домен-КС2 )
14 04 3e 04 3c 04 35 04 ..>.<.5.
3d 04 2d 00 1a 04 21 04 =.-...!.
32 00 2.

Неправильно закодировано.
В требованиях из 795 приказа
Цитата:
Для указания в квалифицированном сертификате наименования используемого владельцем квалифицированного сертификата средства ЭП должно использоваться некритичное дополнение subjectSignTool типа UTF8String SIZE(1..200)

О, кстати! Я достаточно давно задал вопрос, но до сих пор ответа не получил.

Вопрос вот такой:
Кстати посмотрел квалифицированный сертификат УЦ КриптоПРО и возник вопрос:
Какими указаниями руководствовались разработчики когда кодировали расширения "1.2.643.100.111" и "1.2.643.100.111" в виде значений с типом "OCTET STRING"?
С уважением,
Юрий Строжевский
Offline Kirill Sobolev  
#10 Оставлено : 6 мая 2013 г. 13:26:34(UTC)
Кирилл Соболев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 25.12.2007(UTC)
Сообщений: 1,733
Мужчина
Откуда: КРИПТО-ПРО

Поблагодарили: 177 раз в 168 постах
Цитата:
А как правильно? Вот в этом и вопрос. Знаю, что UTF8String.

Вы же сами и отвечаете - да, правильно UTF8String.
Цитата:
Кстати посмотрел квалифицированный сертификат УЦ КриптоПРО и возник вопрос:
Какими указаниями руководствовались разработчики когда кодировали расширения "1.2.643.100.111" и "1.2.643.100.111" в виде значений с типом "OCTET STRING"?

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