Re: Работа с функциями библиотеки rtPKCS11ECP
CryptoCore.createPkcs10(devices[0], keyId, subj, extensions, true)
И 1.2.643.100.111 добавится с нужным значением.
Вы не авторизованы. Пожалуйста, войдите или зарегистрируйтесь.
Форум Рутокен → Техническая поддержка разработчиков → Работа с функциями библиотеки rtPKCS11ECP
Страницы Назад 1 2 3 4 5 6 7 … 10 Далее
Чтобы отправить ответ, нужно авторизоваться или зарегистрироваться
CryptoCore.createPkcs10(devices[0], keyId, subj, extensions, true)
И 1.2.643.100.111 добавится с нужным значением.
Некоторые поля в запросе, например:
OBJECT_IDENTIFIER : 'CN (2.5.4.3)'
BMPString :
Тест
имеют тип BMPString, а должны иметь UTF8String.
Как быть?
и еще вопрос
при создании запроса, ни в какую не хочет воспринимать поле 1.2.840.113549.1.9.2 (UnstructuredName)
пишет что "2:Bad parameters"
???
и возвращаюсь к возможности кодирования значений расширений
например нужно добавить такое расширение:
OBJECT_IDENTIFIER : 'Имя шаблона сертификата (1.3.6.1.4.1.311.20.2)'
OCTET_STRING :
UTF8String :
Название шаблона
а добавляется вот так:
OBJECT_IDENTIFIER : 'Имя шаблона сертификата (1.3.6.1.4.1.311.20.2)'
OCTET_STRING :
D09DD0B0D0B7D0B2D0B0D0BDD0B8D0B520D188D0B0D0B1D0BBD0BED0BDD0B0
что посоветуете?
и еще просьба, скиньте на почту свежие обертки для C# 64 и 32.
очень прошу ТП ответить!
спасибо
Да, это не совсем правильно. Завтра утром пришлем вам новые версии
Да, это не совсем правильно. Завтра утром пришлем вам новые версии
День добрый!
Сегодня пришлете?
Вечер добрый
новая сборка помогла с типом полей BMPString -> UTF8String.
спасибо
но остался вопрос по поводу поля UnstructuredName (1.2.840.113549.1.9.2).
при его добавлении к сабжу ошибка "2:Bad parameters"
если быть точнее, то
subj.Add(new StringMap() { { "rdn", "1.2.840.113549.1.9.2" }, { "value", "KPP=123401001" } });
не дает формировать запрос.
и остался вопрос, как кодировать значения расширений!!!!
например нужно добавить такое расширение:
OBJECT_IDENTIFIER : 'Имя шаблона сертификата (1.3.6.1.4.1.311.20.2)'
OCTET_STRING :
UTF8String :
Название шаблона
а добавляется вот так:
OBJECT_IDENTIFIER : 'Имя шаблона сертификата (1.3.6.1.4.1.311.20.2)'
OCTET_STRING :
D09DD0B0D0B7D0B2D0B0D0BDD0B8D0B520D188D0B0D0B1D0BBD0BED0BDD0B0
опять же повторюсь, при работе с етокенами, есть возможность делать так
{"1.3.6.1.4.1.311.20.2", "ASN1:UTF8String:SHABLON"} и получается:
SEQUENCE :
OBJECT_IDENTIFIER : 'Имя шаблона сертификата (1.3.6.1.4.1.311.20.2)'
OCTET_STRING :
UTF8String : 'SHABLON'
как это сделать в вашей обертке?
очень нужны ваши ответы!
добавлю еще один вопрос-проблему!
логинюсь на токен и пытаюсь записать сертификат
string x509base64 = System.Convert.ToBase64String(userCertificate, System.Base64FormattingOptions.None);
uint CKA_CERTIFICATE_CATEGORY = 1;
Crypto.importCertificate(dv, x509base64, CKA_CERTIFICATE_CATEGORY);
пишет ошибку: 1103:error:0906D06C:PEM routines:func(109):reason(108)
эту проблему решил сам, оказывается нужно было так подсовывать сертификат:
string x509base64 = System.Convert.ToBase64String(userCertificate, System.Base64FormattingOptions.InsertLineBreaks);
x509base64 = "-----BEGIN CERTIFICATE-----"+ Environment.NewLine + x509base64 + Environment.NewLine + "-----END CERTIFICATE-----";
очень нужно решение проблемы с UnstructuredName!!!!
плиз хелп!
Для UTF8.
public class HexadecimalEncoding
{
public static string ConvertStringToHex(String input, System.Text.Encoding encoding)
{
Byte[] stringBytes = encoding.GetBytes(input);
StringBuilder sbBytes = new StringBuilder(stringBytes.Length * 2);
foreach (byte b in stringBytes)
{
sbBytes.AppendFormat("{0:X2}", b);
}
return sbBytes.ToString();
}
public static string ConvertHexToString(String hexInput, System.Text.Encoding encoding)
{
int numberChars = hexInput.Length;
byte[] bytes = new byte[numberChars / 2];
for (int i = 0; i < numberChars; i += 2)
{
bytes[i / 2] = Convert.ToByte(hexInput.Substring(i, 2), 16);
}
return encoding.GetString(bytes);
}
}
string ASN1EncodeToOCTETUTF8(string data)
{
int utfsize = Encoding.UTF8.GetBytes(data).Length;
string one = Convert.ToInt32(utfsize + 2).ToString("x");
if (one.Length == 1)
one = "0" + one;
string two = Convert.ToInt32(Encoding.UTF8.GetBytes(data).Length).ToString("x");
if (two.Length == 1)
two = "0" + two;
string str = /*"04" + one +*/
"0c" + two + HexadecimalEncoding.ConvertStringToHex(data, Encoding.UTF8);
string Hexadec = HexadecimalEncoding.ConvertHexToString(str, Encoding.UTF8);
return HexadecimalEncoding.ConvertHexToString(str, Encoding.UTF8);
}
Ну и результат ASN1EncodeToOCTETUTF8 надо передавать в расширение.
большое спасибо с UTF8!!!
осталось решить проблему с UnstructuredName
почему его наличие в сабдже для запроса, выдает ошибку?
subj.Add(new StringMap() { { "rdn", "1.2.840.113549.1.9.2" }, { "value", "KPP=123401001" } });
ошибка "2:Bad parameters"
без него все отлично! но UnstructuredName нужен в сертификате!
спасибо
Не умеет библиотека пока произвольные поля в DN добавлять.
Думаю, она научится этому в ближайшие дни.
Выслали Вам версию с unstructuredName
Выслали Вам версию с unstructuredName
все получилось!
огромное спасибо за помощь!
Последний вопрос все еще открыт.
помогите плиз! или я что-то не то спрашиваю?
прошу прощения вопрос затерялся в дебрях... скоро ответим :)
Добрый день!
setKeyLabel(); устанавливает значение поля CKA_LABEL для ключа (CKO_PRIVATE_KEY, например).
Панель управления Рутокен в свою очередь отображает значение поля CKA_LABEL сертификата (CKO_CERTIFICATE). Штатной возможности изменить CKA_LABEL сертификата нет.
День добрый.
Пользуюсь вашей оберткой для C# для работы с рутокен эцп для егаис.
Появилась новая проблема.
ПО УТМ для егаис не хочет работать с ключами из ГОСТ части рутокен эцп, по причине некорректного CKA_ID.
Что за проблема не известно! Да и влиять на идентификтор ключевой пары нет возможности. В обертке не реализована эта возможность.
Срочно нужна помощь.
Страницы Назад 1 2 3 4 5 6 7 … 10 Далее
Чтобы отправить ответ, нужно авторизоваться или зарегистрироваться
Форум Рутокен → Техническая поддержка разработчиков → Работа с функциями библиотеки rtPKCS11ECP