e217onr
|
#1
Оставлено
:
17 августа 2018 г. 10:17:16(UTC)
|

Статус: Участник
Группы: Участники
Зарегистрирован: 17.08.2018(UTC) Сообщений: 12
|
Пытаюсь реализовать функционал проверки подписи. В консоли постоянно возникает ошибка: Uncaught (in promise) message: «Встречено неверное значение тега ASN1. (0x8009310B)» requestid: 33 type: «error» Просмотрел уже множество тем на эту тему в интернете но так и не нашёл внятного ответа в чём может быть проблема. Что это вообще за ошибка и что она означает? В какую сторону копать?
|

|
|
|
|
|
Андрей Писарев
|
#2
Оставлено
:
17 августа 2018 г. 10:59:03(UTC)
|

Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,010


Сказал «Спасибо»: 457 раз Поблагодарили: 1912 раз в 1478 постах
|
Здравствуйте.
Можете приложить или прислать в ЛС файл подписи и документ, который подписывали?
Ошибка возникает только с этим файлом? Пробовали подписывать через тестовую страницу и проверять результат через свой код (а также код, который доступен в примерах к руководству)?
|
Техническую поддержку оказываем тут Наша база знаний
|

|
|
|
|
|
e217onr
|
#3
Оставлено
:
17 августа 2018 г. 13:22:59(UTC)
|

Статус: Участник
Группы: Участники
Зарегистрирован: 17.08.2018(UTC) Сообщений: 12
|
Автор: Андрей Писарев 
Здравствуйте.
Можете приложить или прислать в ЛС файл подписи и документ, который подписывали?
Ошибка возникает только с этим файлом? Пробовали подписывать через тестовую страницу и проверять результат через свой код (а также код, который доступен в примерах к руководству)?
Ошибка возникает со всеми файлами, поэтому не думаю что прикрепление файлов даст результат. Через тестовую страницу всё работает прекрасно. Думаю проблема в моём JS-коде. Пробовал использовать код с тестовой страницы и всячески его изменять, но итог всегда один — Ошибка 0x8009310B. Так же время от времени при изменении кода JS меняется число в параметре requestid ошибки.
|

|
|
|
|
|
Андрей Писарев
|
#4
Оставлено
:
17 августа 2018 г. 14:12:15(UTC)
|

Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,010


Сказал «Спасибо»: 457 раз Поблагодарили: 1912 раз в 1478 постах
|
По примерам из документации делаете примеры?
|
Техническую поддержку оказываем тут Наша база знаний
|

|
|
|
|
|
Андрей Писарев
|
#5
Оставлено
:
17 августа 2018 г. 14:13:43(UTC)
|

Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,010


Сказал «Спасибо»: 457 раз Поблагодарили: 1912 раз в 1478 постах
|
Пробовали подписать и проверить результат сразу? Что передаете при проверке — проверяли (какие данные указанызакодированы в base64, опции)?
|
Техническую поддержку оказываем тут Наша база знаний
|

|
|
|
|
|
e217onr
|
#6
Оставлено
:
20 августа 2018 г. 9:16:42(UTC)
|

Статус: Участник
Группы: Участники
Зарегистрирован: 17.08.2018(UTC) Сообщений: 12
|
Автор: Андрей Писарев 
По примерам из документации делаете примеры?
Примеры из документации не работают, т.к. там представлен код для синхронных запросов, а у меня используются асинхронные. При попытке использовать код из документации, получаю разные ошибки типа «CreateObject is not a function» и тд.
Автор: Андрей Писарев 
Пробовали подписать и проверить результат сразу? Что передаете при проверке — проверяли (какие данные указанызакодированы в base64, опции)?
Только что попробовал проверить подпись сразу после создания, получаю ту же ошибку, но с requestId = 44. Вот мой код функции для проверки подписи:
Код:
function Verify(sSignedMessage, dataToVerify) {
var oSignedData = cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
try {
oSignedData.ContentEncoding = CADESCOM_BASE64_TO_BINARY;
oSignedData.Content = dataToVerify;
oSignedData.then(function(data) {
data.VerifyCades(sSignedMessage, CADESCOM_CADES_BES, true);
});
} catch (err) {
alert("Не удалось проверить подпись. Ошибка: " + cadesplugin.getLastError(err));
return false;
}
return true;
}
где sSignedMessage — контент кодируемого документа в формате base64, а dataToVerify — готовая подпись этого контента. Что я делаю не так?
|

|
|
|
|
|
Андрей Писарев
|
#7
Оставлено
:
20 августа 2018 г. 13:55:11(UTC)
|

Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,010


Сказал «Спасибо»: 457 раз Поблагодарили: 1912 раз в 1478 постах
|
Цитата из примера:
Цитата:
Приведенный пример использует синхронную версию плагина. Также см. пример работы с асинхронными обьектами.
Создание подписи CADES_BES с использованием асинхронной версии
|
Техническую поддержку оказываем тут Наша база знаний
|

|
|
|
|
|
Андрей Писарев
|
#8
Оставлено
:
20 августа 2018 г. 13:59:06(UTC)
|

Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,010


Сказал «Спасибо»: 457 раз Поблагодарили: 1912 раз в 1478 постах
|
Также можно посмотреть работу на демо-странице и посмотреть функции из js-файлов.
Code.js
cadesplugin_api.js
…
|
Техническую поддержку оказываем тут Наша база знаний
|

|
|
|
|
|
e217onr
|
#9
Оставлено
:
20 августа 2018 г. 14:08:34(UTC)
|

Статус: Участник
Группы: Участники
Зарегистрирован: 17.08.2018(UTC) Сообщений: 12
|
Автор: Андрей Писарев 
Цитата из примера:
Цитата:
Приведенный пример использует синхронную версию плагина. Также см. пример работы с асинхронными обьектами.
Создание подписи CADES_BES с использованием асинхронной версии
Здесь пример создания подписи. Создание у меня работает. Нужна проверка.
|

|
|
|
|
|
e217onr
|
#10
Оставлено
:
20 августа 2018 г. 14:14:03(UTC)
|

Статус: Участник
Группы: Участники
Зарегистрирован: 17.08.2018(UTC) Сообщений: 12
|
Автор: Андрей Писарев 
Также можно посмотреть работу на демо-странице и посмотреть функции из js-файлов.
Code.js
cadesplugin_api.js
…
Собственно так и работает моя подпись файлов. Я взял эти 2 файла js-скриптов, закинул их в свой проект и настроил работу подписи исходя из этих файлов. Подпись работает великолепно, не работает именно ПРОВЕРКА подписи. Насчёт проверки очень мало написано в документации. Насчёт проверки асинхронными методами — вообще ни слова. Как мне в итоге проверить мою подпись?
|

|
|
|
|
|
Пользователи, просматривающие эту тему |
Guest
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Форум КриптоПро
»
Средства криптографической защиты информации
»
Другие продукты
»
Встречено неверное значение тега ASN1 при формировании запроса с помощью cryptcp
jobstos
|
#1
Оставлено
:
5 августа 2022 г. 12:39:22(UTC)
|

Статус: Новичок
Группы: Участники
Зарегистрирован: 17.01.2020(UTC) Сообщений: 5
|
Формирую запрос на сертификат с расширениями с помощью команды cryptcp -creatrqst -ext <расширение>. Аргументом -ext является путь к файлу с расширением. В документации сказано, что файл может быть как в DER, так и в BASE64. С DER все работает как положено, но с файлом в BASE64 получаю ошибку:
Код:
Утилита командной строки для подписи и шифрования файлов.
Ошибка: Встречено неверное значение тега ASN1.
e:trunktrunk_0cspsamplescpcryptenroll.cpp:581: 0x8009310B
[ErrorCode: 0x8009310b]
idkind.txt (1kb) загружен 1 раз(а). idKindBase64.txt (1kb) загружен 3 раз(а).
Файлы с расширениями приложил. Файл BASE64 получаю обычной конертацией в данную кодировку
|

|
|
|
|
|
Андрей Русев
|
#2
Оставлено
:
5 августа 2022 г. 17:22:16(UTC)
|

Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 16.04.2008(UTC) Сообщений: 1,136
Сказал(а) «Спасибо»: 12 раз Поблагодарили: 354 раз в 266 постах
|
BASE64 на самом деле никогда не поддерживался, в документации ошибка. А вам нужна поддержка именно BASE64 для файлов с расширениями?
|
Официальная техподдержка. Официальная база знаний.
|

|
|
|
|
|
jobstos
|
#3
Оставлено
:
9 августа 2022 г. 10:42:19(UTC)
|

Статус: Новичок
Группы: Участники
Зарегистрирован: 17.01.2020(UTC) Сообщений: 5
|
Да, хотелось использовать base64, необходимо, чтобы пользователь с помощью утилиты cryptcp генерировал запрос. Хотел предварительно дать команду на запись BASE64 в файл, чтобы пользователь мог не хранить и следовательно не ошибаться при прописывании путей до расширений
|

|
|
|
|
|
Андрей Русев
|
#4
Оставлено
:
9 августа 2022 г. 15:03:03(UTC)
|

Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 16.04.2008(UTC) Сообщений: 1,136
Сказал(а) «Спасибо»: 12 раз Поблагодарили: 354 раз в 266 постах
|
Так ведь в BASE64 тоже файл, так что задача «не ошибаться при прописывании путей до расширений» не будет решена.
|
Официальная техподдержка. Официальная база знаний.
|

|
|
|
|
|
jobstos
|
#5
Оставлено
:
10 августа 2022 г. 9:19:24(UTC)
|

Статус: Новичок
Группы: Участники
Зарегистрирован: 17.01.2020(UTC) Сообщений: 5
|
Да, файл. Только base64 можно предварительно записать в файл, который затем будет использоваться в следующей команде
|

|
|
|
|
|
Пользователи, просматривающие эту тему |
Guest
|
Форум КриптоПро
»
Средства криптографической защиты информации
»
Другие продукты
»
Встречено неверное значение тега ASN1 при формировании запроса с помощью cryptcp
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
What am I doing wrong here? I keep getting error 0x8009310b (ASN1 bad tag value met) when creating a certificate context. I know the certificate I’m testing with is good. I exported it from the intermediate store using DER, Base-64 and P7B formats. All three scenarios fail.
int _tmain(int argc, _TCHAR* argv[])
{
const int MAX_CERT_FILE_SIZE=81920;
HANDLE certFileHandle;
DWORD certEncodedRead = 0L;
BYTE certData[MAX_CERT_FILE_SIZE] = {0};
PCCERT_CONTEXT pCertContext = NULL;
HCERTSTORE hSystemStore = NULL;
int exitCode = 0;
fprintf(stdout, "Importing X509 certificate file to root store: %s nn", argv[0]);
try {
// Create a handle to the certificate given in the command line argument
BeginTask("Creating certificate handle...");
certFileHandle = CreateFile(argv[0],
GENERIC_READ,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
if (INVALID_HANDLE_VALUE == certFileHandle){
throw "Could not create a handle to the specified certificate file.";
}
// Read the certificate file
NextTask("Reading certificate file into buffer...");
memset(certData, 0, MAX_CERT_FILE_SIZE);
BOOL result = ReadFile(certFileHandle,
certData,
MAX_CERT_FILE_SIZE,
&certEncodedRead,
NULL);
fprintf(stdout, "Read %d bytes from certificate file...", certEncodedRead);
if (!result) {
throw "Could not read the certificate file.";
}
// Create a certificate context from the buffer
NextTask("Creating certificate context...");
pCertContext = CertCreateCertificateContext(X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, certData, certEncodedRead);
if (!pCertContext){
throw "Could not create a certificate context.";
}
// Open the system certificate store
NextTask("Opening local machine certificate store...");
hSystemStore = CertOpenSystemStore(NULL, L"CA");
if (!hSystemStore){
throw "Could not open the local machine certificate store.";
}
// Add certificate context to store
NextTask("Adding certificate context to store...");
//CertAddCertificateContextToStore(hSystemStore,
// pCertContext,
// CERT_STORE_ADD_REPLACE_EXISTING,
// NULL);
} catch (ERRMSG msg) {
Result(false);
HandleError(msg);
exitCode = 1;
}
// Clean-up all resources
if (hSystemStore) {
NextTask("Closing certificate store...");
Result(CertCloseStore(hSystemStore, 0));
}
if (pCertContext) {
NextTask("Freeing certificate store...");
Result(CertFreeCertificateContext(pCertContext));
}
if (certFileHandle) {
NextTask("Closing certificate file...");
Result(CloseHandle(certFileHandle));
}
fprintf(stdout, "nnProgram complete-exiting with code %x", exitCode);
return exitCode;
}
[Edited to add console output]
Importing X509 certificate file to root store: DOD-CA-12.cer
Creating certificate handle...Success.
Reading certificate file into buffer...Read 41472 bytes from certificate file...Success.
Creating certificate context...Failed.
An error occurred while importing the X509 certificate.
Narrative: Could not create a certificate context.
GetLastError reported: 8009310b.
Success.
Closing certificate file...Success.
Program complete-exiting with code 1
К.Лихачёв
|
#1
Оставлено
:
17 января 2023 г. 16:09:27(UTC)
|

Статус: Новичок
Группы: Участники
Зарегистрирован: 17.01.2023(UTC) Сообщений: 6
 Откуда: Москва
|
Я новичок в данной теме!
Мне нужно создать открепленную подпись XML документа в формате XMLDSIG
Пытаюсь создать ЭЦП используя пример https://docs.cryptopro.r…/plugin-samples-sign-xml Подпись в плагине создается и верифицируется: Signature verified
Но потом при проверке другими средствами, например https://www.justsign.me/verifyqca/Verify/ выдается ошибка: Результат проверки: Подпись недействительна Дополнительная информация: Файл подписи имеет неверный формат. Убедитесь, что данные в файле имеют кодировку Base64 (с/без заголовками) или переданы бинарные данные. Ошибка: [Встречено неверное значение тега ASN1]. Код: [0x8009310b].
Причем не важно что я подписываю sContent из примера или реальный документ.
Подскажите: что я делаю не так?
|

|
|
|
|
|
Андрей *
|
#2
Оставлено
:
17 января 2023 г. 16:29:42(UTC)
|

Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,010


Сказал «Спасибо»: 457 раз Поблагодарили: 1912 раз в 1478 постах
|
Здравствуйте.
Без примера -не понятно.
В любом случае, есть демо-страница, проверяли?
Snimok ehkrana ot 2023-01-17 17-26-15.png (13kb) загружен 3 раз(а).
|
Техническую поддержку оказываем тут Наша база знаний
|

|
|
|
|
|
Андрей *
|
#3
Оставлено
:
17 января 2023 г. 16:32:14(UTC)
|

Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,010


Сказал «Спасибо»: 457 раз Поблагодарили: 1912 раз в 1478 постах
|
Автор: К.Лихачёв 
выдается ошибка: Результат проверки: Подпись недействительна Дополнительная информация: Файл подписи имеет неверный формат. Убедитесь, что данные в файле имеют кодировку Base64 (с/без заголовками) или переданы бинарные данные. Ошибка: [Встречено неверное значение тега ASN1]. Код: [0x8009310b].
Причем не важно что я подписываю sContent из примера или реальный документ.
Подскажите: что я делаю не так?
вероятно, указан не тот тип подписи при проверке?
Цитата:
Подпись XML документов (XML Digital Signature) — правильно Подпись в формате CMS — неправильно
|
Техническую поддержку оказываем тут Наша база знаний
|

|
|
|
|
|
К.Лихачёв
|
#4
Оставлено
:
17 января 2023 г. 17:07:55(UTC)
|

Статус: Новичок
Группы: Участники
Зарегистрирован: 17.01.2023(UTC) Сообщений: 6
 Откуда: Москва
|
Автор: Андрей * 
Здравствуйте.
Без примера -не понятно.
В любом случае, есть демо-страница, проверяли?
Snimok ehkrana ot 2023-01-17 17-26-15.png (13kb) загружен 3 раз(а).
Код:
var CAPICOM_CURRENT_USER_STORE = 2;
var CAPICOM_MY_STORE = "My";
var CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED = 2;
var CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME = 1;
var CADESCOM_XML_SIGNATURE_TYPE_ENVELOPED = 0;
var CADESCOM_XML_SIGNATURE_TYPE_ENVELOPING = 1;
var CADESCOM_BASE64_TO_BINARY = 1;
var XmlDsigGost3411Url2012256 = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256";
var XmlDsigGost3410Url2012256 = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256";
function CP_SignCreate(CertName) {
cadesplugin.async_spawn(function* (args) {
var oCertName = document.getElementById(CertName);
var sCertName = oCertName.value; // Здесь следует заполнить SubjectName сертификата
if ("" === sCertName) {
alert("Введите имя сертификата (CN).");
return;
}
// Ищем сертификат для подписи
var oStore = yield cadesplugin.CreateObjectAsync("CAdESCOM.Store");
yield oStore.Open(CAPICOM_CURRENT_USER_STORE, CAPICOM_MY_STORE,
CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);
var oStoreCerts = yield oStore.Certificates;
var oCertificates = yield oStoreCerts.Find(
CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME, sCertName);
var certsCount = yield oCertificates.Count;
if (certsCount === 0) {
alert("Certificate not found: " + sCertName);
return;
}
var oCertificate = yield oCertificates.Item(1);
yield oStore.Close();
var dataToSign = document.getElementById(CP_counter_name("DataToSignTxtBox")).value;
// Создаем объект CAdESCOM.CPSigner
var oSigner = yield cadesplugin.CreateObjectAsync("CAdESCOM.CPSigner");
yield oSigner.propset_Certificate(oCertificate);
yield oSigner.propset_CheckCertificate(true);
// Создаем объект CAdESCOM.SignedXML
var oSignedXML = yield cadesplugin.CreateObjectAsync("CAdESCOM.SignedXML");
yield oSignedXML.propset_Content(dataToSign);
// Указываем тип подписи - в данном случае вложенная
yield oSignedXML.propset_SignatureType(CADESCOM_XML_SIGNATURE_TYPE_ENVELOPED);
// Указываем алгоритм подписи
yield oSignedXML.propset_SignatureMethod(XmlDsigGost3410Url2012256);
// Указываем алгоритм хэширования
yield oSignedXML.propset_DigestMethod(XmlDsigGost3411Url2012256);
var sSignedMessage = "";
try {
sSignedMessage = yield oSignedXML.Sign(oSigner);
} catch (err) {
alert("Failed to create signature. Error: " + cadesplugin.getLastError(err));
return;
}
//alert(sSignedMessage);
document.getElementById(CP_counter_name("SignatureTxtBox")).innerHTML = sSignedMessage;
// Создаем объект CAdESCOM.SignedXML
var oSignedXML2 = yield cadesplugin.CreateObjectAsync("CAdESCOM.SignedXML");
try {
yield oSignedXML2.Verify(sSignedMessage);
CP_end_sign(); alert("Signature verified");
} catch (err) {
alert("Failed to verify signature. Error: " + cadesplugin.getLastError(err));
return;
}
});
}
Код почти без изменений из примера.
Вот результат подписи
var dataToSign = «<?xml version=»1.0″ encoding=»UTF-8″?>n» + «<!— n» + » Original XML doc file for sign example. n» + «—>n» + «<Envelope xmlns=»urn:envelope»>n» + » <Data>n» + » Hello, World!n» + » </Data>n» + » <Node xml:id=»nodeID»>n» + » Hello, Node!n» + » </Node>n» + » n» + «</Envelope>»;
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCEtLSAKIE9y aWdpbmFsIFhNTCBkb2MgZmlsZSBmb3Igc2lnbiBleGFtcGxlLiAKLS0+CjxFbnZl bG9wZSB4bWxucz0idXJuOmVudmVsb3BlIj4KICA8RGF0YT4KICAgSGVsbG8sIFdv cmxkIQogIDwvRGF0YT4KICA8Tm9kZSB4bWw6aWQ9Im5vZGVJRCI+CiAgIEhlbGxv LCBOb2RlIQogIDwvTm9kZT4KIAo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3 LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIiBJZD0iU2lnbmF0dXJlMS1hYzg5NzY5 MTQtZWRkMC1jNTdhLTMyODgtY2Y3OWRlNTkwNzYiPgo8U2lnbmVkSW5mbz4KPENh bm9uaWNhbGl6YXRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9y Zy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz4KPFNpZ25hdHVyZU1ldGhvZCBBbGdv cml0aG09InVybjppZXRmOnBhcmFtczp4bWw6bnM6Y3B4bWxzZWM6YWxnb3JpdGht czpnb3N0cjM0MTAyMDEyLWdvc3RyMzQxMTIwMTItMjU2Ii8+CjxSZWZlcmVuY2Ug VVJJPSIiPgo8VHJhbnNmb3Jtcz4KPFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6 Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNlbnZlbG9wZWQtc2lnbmF0dXJl Ii8+CjxUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAx LzEwL3htbC1leGMtYzE0biMiLz4KPC9UcmFuc2Zvcm1zPgo8RGlnZXN0TWV0aG9k IEFsZ29yaXRobT0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpjcHhtbHNlYzphbGdv cml0aG1zOmdvc3RyMzQxMTIwMTItMjU2Ii8+CjxEaWdlc3RWYWx1ZT5rcFJWUGdh VEJ0YktoSVNjU1dDRGxJaFZiWWZhSmVmTE1wZXR1WHlHSU9rPTwvRGlnZXN0VmFs dWU+CjwvUmVmZXJlbmNlPgo8L1NpZ25lZEluZm8+CjxTaWduYXR1cmVWYWx1ZT4y Wm0rVWVtdzM2REpRR0wrUHFMM0pOVFlNQVBxRURNUHVPNlNZMmdUdkhodzZVNUQy U011ZmowUmRFMFlxdVI4CmYzK3phd2REeGpodk5FTDk5NEEyN1E9PTwvU2lnbmF0 dXJlVmFsdWU+CjxLZXlJbmZvPgo8WDUwOURhdGE+CjxYNTA5Q2VydGlmaWNhdGU+ TUlJSlZUQ0NDUUtnQXdJQkFnSVJCRnFUS1FGZnIrSzNSRnhtUUNTalFNNHdDZ1lJ S29VREJ3RUJBd0l3Z2dGVwpNUlV3RXdZRktvVURaQVFTQ2pjM01UY3hNRGM1T1RF eElEQWVCZ2txaGtpRzl3MEJDUUVXRVdsdVptOUFZM0o1CmNIUnZjSEp2TG5KMU1S Z3dGZ1lGS29VRFpBRVNEVEV3TXpjM01EQXdPRFUwTkRReEN6QUpCZ05WQkFZVEFs SlYKTVJnd0ZnWURWUVFJREE4M055RFFuTkMrMFlIUXV0Q3kwTEF4RlRBVEJnTlZC QWNNRE5DYzBMN1JnZEM2MExMUQpzREV2TUMwR0ExVUVDUXdtMFlQUXV5NGcwS0hS ZzlHSjBaSFFzdEdCMExyUXVOQzVJTkN5MExEUXV5RFF0QzRnCk1UZ3hKVEFqQmdO VkJBb01ITkNlMEo3UW5pQWkwSnJRb05DWTBKL1FvdENlTGRDZjBLRFFuaUl4YXpC cEJnTlYKQkFNTVl0Q2kwTFhSZ2RHQzBMN1FzdEdMMExrZzBML1F2dEMwMFlmUXVO QzkwTFhRdmRDOTBZdlF1U0RRbzlDbQpJTkNlMEo3UW5pQWkwSnJRb05DWTBKL1Fv dENlTGRDZjBLRFFuaUlnMEpQUW50Q2gwS0lnTWpBeE1pQW8wS1BRCnBpQXlMakFw TUI0WERUSXlNVEl3TWpFM05UTXlOMW9YRFRJek1ETXdNakU0TURNeU4xb3dnZ0dG TVJ3d0dnWUoKS29aSWh2Y05BUWtCRmcxdGEzbEFhMjl0ZFhNdWJtVjBNUmN3RlFZ RktvVURaQVFTRERBd056Y3lNVGM1TXpnNQpOVEVZTUJZR0JTcUZBMlFCRWcweE1U TTNOelEyTXprNU9EQXhNVEF3TGdZRFZRUU1EQ2ZRazlDMTBMM1F0ZEdBCjBMRFF1 OUdNMEwzUmk5QzVJTkMwMExqUmdOQzEwTHJSZ3RDKzBZQXhIREFhQmdOVkJBb01F OUNlMEo3UW5pQWkKMEpyUXZ0QzgwWVBSZ1NJeFZ6QlZCZ05WQkFrTVR0Qy8wWUF0 MExRZzBKZlFzTkN5MEw3UXROQ3dJTkNoMExYUgpnTkMvSU5DNElOQ2MwTDdRdTlD KzBZSXNJTkMwTGlBeE1Dd2cwTC9RdnRDOExpQllXRmhKV0N3ZzBMclF2dEM4Ckxp QXlNekVWTUJNR0ExVUVCd3dNMEp6UXZ0R0IwTHJRc3RDd01Rc3dDUVlEVlFRR0V3 SlNWVEV5TURBR0ExVUUKS2d3cDBKclF2dEM5MFlIUmd0Q3cwTDNSZ3RDNDBMMGcw SkRRdTlDMTBMclJnZEMxMExYUXN0QzQwWWN4R3pBWgpCZ05WQkFRTUV0Q1QwWURR dGRHSDBMalJpTkM2MExqUXZURVVNQklHQTFVRUF3d0xTMjl0ZFhOZmRHVnpkREV3 ClpqQWZCZ2dxaFFNSEFRRUJBVEFUQmdjcWhRTUNBaVFBQmdncWhRTUhBUUVDQWdO REFBUkFpbGZTTEd6ZzYyOWMKdU9iVnloQngxaTVnQUNKdnNiQ1ZoQ2FjeXBOVVNh ejQrcmJ3cWRZZUhkYnBCMW1XcWg4UUxGTEF4UkwrL3RLbApZTVNNdnprWmQ2T0NC Vzh3Z2dWck1BNEdBMVVkRHdFQi93UUVBd0lFOERBZkJna3JCZ0VFQVlJM0ZRY0VF akFRCkJnZ3FoUU1DQWk0QUNBSUJBUUlCQURBZEJnTlZIUTRFRmdRVVU2MU1PTTBL MEI4V2QwbUJIaW5zTWpFZ0dpd3cKSmdZRFZSMGxCQjh3SFFZSUt3WUJCUVVIQXdR R0NDc0dBUVVGQndNQ0JnY3FoUU1DQWlJR01ESUdDU3NHQVFRQgpnamNWQ2dRbE1D TXdDZ1lJS3dZQkJRVUhBd1F3Q2dZSUt3WUJCUVVIQXdJd0NRWUhLb1VEQWdJaUJq Q0JxQVlJCkt3WUJCUVVIQVFFRWdac3dnWmd3T1FZSUt3WUJCUVVITUFHR0xXaDBk SEE2THk5MFpYTjBZMkV5TURFeUxtTnkKZVhCMGIzQnlieTV5ZFM5dlkzTndNaTl2 WTNOd0xuTnlaakJiQmdnckJnRUZCUWN3QW9aUGFIUjBjRG92TDNSbApjM1JqWVRJ d01USXVZM0o1Y0hSdmNISnZMbkoxTDJGcFlTODRNMk15WW1Oak9XWTJNRFF5TVda aE0yWmpaV1UzCk5XRmxOREUwWmpGbVlqbGtOek16T1RabUxtTnlkREFkQmdOVkhT QUVGakFVTUFnR0JpcUZBMlJ4QWpBSUJnWXEKaFFOa2NRRXdLd1lEVlIwUUJDUXdJ b0FQTWpBeU1qRXlNREl4TnpVek1qWmFnUTh5TURJek1ETXdNakUzTlRNeQpObG93 Z2dHUUJnVXFoUU5rY0FTQ0FZVXdnZ0dCREZQUW9kQ2EwSmZRbUNBaTBKclJnTkM0 MEwvUmd0QyswSi9SCmdOQytJRU5UVUNJZzBMTFF0ZEdBMFlIUXVOR1BJRFF1TUNC U05DQW8wTGpSZ2RDLzBMN1F1OUM5MExYUXZkQzQKMExVZ01pMUNZWE5sS1F5Qmg5 Q2YwSkRRbWlEQ3E5Q2owTFRRdnRHQjBZTFF2dEN5MExYUmdOR1AwWTdSaWRDNAow TGtnMFliUXRkQzkwWUxSZ0NEQ3E5Q2EwWURRdU5DLzBZTFF2dENmMFlEUXZpRFFv OUNtd3JzZzBMTFF0ZEdBCjBZSFF1TkM0SURJdU1NSzdJQ2pRc3RDdzBZRFF1TkN3 MEwzUmdpRFF1TkdCMEwvUXZ0QzcwTDNRdGRDOTBMalIKanlBNUtReFAwS0hRdGRH QTBZTFF1TkdFMExqUXV0Q3cwWUlnMFlIUXZ0QyswWUxRc3RDMTBZTFJnZEdDMExM UQp1TkdQSU9LRWxpRFFvZENrTHpFeU5DMHpPVGN4SU5DKzBZSWdNVFV1TURFdU1q QXlNUXhQMEtIUXRkR0EwWUxRCnVOR0UwTGpRdXRDdzBZSWcwWUhRdnRDKzBZTFFz dEMxMFlMUmdkR0MwTExRdU5HUElPS0VsaURRb2RDa0x6RXkKT0MwME1qY3lJTkMr MFlJZ01UTXVNRGN1TWpBeU1qQXNCZ1VxaFFOa2J3UWpEQ0hRb2RDYTBKZlFtQ0Fp MEpyUgpnTkM0MEwvUmd0QyswSi9SZ05DK0lFTlRVQ0l3WUFZRFZSMGZCRmt3VnpC Vm9GT2dVWVpQYUhSMGNEb3ZMM1JsCmMzUmpZVEl3TVRJdVkzSjVjSFJ2Y0hKdkxu SjFMMk5rY0M4NE0yTXlZbU5qT1dZMk1EUXlNV1poTTJaalpXVTMKTldGbE5ERTBa akZtWWpsa056TXpPVFptTG1OeWJEQU1CZ1VxaFFOa2NnUURBZ0VDTUlJQmtnWURW UjBqQklJQgppVENDQVlXQUZJUEN2TW4yQkNINlA4N25XdVFVOGZ1ZGN6bHZvWUlC V0tTQ0FWUXdnZ0ZRTVFzd0NRWURWUVFHCkV3SlNWVEVWTUJNR0JTcUZBMlFFRWdv M056RTNNVEEzT1RreE1TQXdIZ1lKS29aSWh2Y05BUWtCRmhGcGJtWnYKUUdOeWVY QjBiM0J5Ynk1eWRURVlNQllHQlNxRkEyUUJFZzB4TURNM056QXdNRGcxTkRRME1S Z3dGZ1lEVlFRSQpEQTgzTnlEUW5OQyswWUhRdXRDeTBMQXhGVEFUQmdOVkJBY01E TkNjMEw3UmdkQzYwTExRc0RFdk1DMEdBMVVFCkNRd20wWVBRdXk0ZzBLSFJnOUdK MFpIUXN0R0IwTHJRdU5DNUlOQ3kwTERRdXlEUXRDNGdNVGd4SlRBakJnTlYKQkFv TUhOQ2UwSjdRbmlBaTBKclFvTkNZMEovUW90Q2VMZENmMEtEUW5pSXhaVEJqQmdO VkJBTU1YTkNpMExYUgpnZEdDMEw3UXN0R0wwTGtnMExQUXZ0QzcwTDdRc3RDOTBM N1F1U0RRbzlDbUlOQ2UwSjdRbmlBaTBKclFvTkNZCjBKL1FvdENlTGRDZjBLRFFu aUlnMEpQUW50Q2gwS0lnTWpBeE1pQW8wS1BRcGlBeUxqQXBnaEVFaURiVEFDV3YK OXE1UGxNVWtPVitaMFRBS0JnZ3FoUU1IQVFFREFnTkJBSE5tVHppcnZEVmpSOFRT d0hOc3diUlMwbmZaaGY1ZAowWkszTHArOWxtNC8wRjNHdzJUNTVvQmdQRDFUekJI U2cwRXh0Rk5ESlU0TzdjZlNmdHRNTDJ3PTwvWDUwOUNlcnRpZmljYXRlPgo8L1g1 MDlEYXRhPgo8L0tleUluZm8+CjwvU2lnbmF0dXJlPjwvRW52ZWxvcGU+Cg==
|

|
|
|
|
|
Андрей *
|
#5
Оставлено
:
17 января 2023 г. 17:13:58(UTC)
|

Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,010


Сказал «Спасибо»: 457 раз Поблагодарили: 1912 раз в 1478 постах
|
результат подписи — в base64, необходимо перед отправкой в сервис проверки — декодировать, получить XMDSIG файл, тогда будет проверяться успешно.
|
Техническую поддержку оказываем тут Наша база знаний
|

|
|
|
|
|
К.Лихачёв
|
#6
Оставлено
:
17 января 2023 г. 17:16:51(UTC)
|

Статус: Новичок
Группы: Участники
Зарегистрирован: 17.01.2023(UTC) Сообщений: 6
 Откуда: Москва
|
Автор: Андрей * 
Автор: К.Лихачёв 
выдается ошибка: Результат проверки: Подпись недействительна Дополнительная информация: Файл подписи имеет неверный формат. Убедитесь, что данные в файле имеют кодировку Base64 (с/без заголовками) или переданы бинарные данные. Ошибка: [Встречено неверное значение тега ASN1]. Код: [0x8009310b].
Причем не важно что я подписываю sContent из примера или реальный документ.
Подскажите: что я делаю не так?
вероятно, указан не тот тип подписи при проверке?
Цитата:
Подпись XML документов (XML Digital Signature) — правильно Подпись в формате CMS — неправильно
При проверке https://www.justsign.me/verifyqca/Verify/ не указывается тип подписи.
Что такое подпись CMS? Где это указано неправильно?
|

|
|
|
|
|
К.Лихачёв
|
#7
Оставлено
:
17 января 2023 г. 17:20:30(UTC)
|

Статус: Новичок
Группы: Участники
Зарегистрирован: 17.01.2023(UTC) Сообщений: 6
 Откуда: Москва
|
Автор: Андрей * 
результат подписи — в base64, необходимо перед отправкой в сервис проверки — декодировать, получить XMDSIG файл, тогда будет проверяться успешно.
Декодировал. Результат не изменился!
<?xml version=»1.0″ encoding=»UTF-8″?> <!— Original XML doc file for sign example. —> <Envelope xmlns=»urn:envelope»> <Data> Hello, World! </Data> <Node xml:id=»nodeID»> Hello, Node! </Node>
<Signature xmlns=»http://www.w3.org/2000/09/xmldsig#» Id=»Signature1-ac8976914-edd0-c57a-3288-cf79de59076″> <SignedInfo> <CanonicalizationMethod Algorithm=»http://www.w3.org/2001/10/xml-exc-c14n#»/> <SignatureMethod Algorithm=»urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256″/> <Reference URI=»»> <Transforms> <Transform Algorithm=»http://www.w3.org/2000/09/xmldsig#enveloped-signature»/> <Transform Algorithm=»http://www.w3.org/2001/10/xml-exc-c14n#»/> </Transforms> <DigestMethod Algorithm=»urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256″/> <DigestValue>kpRVPgaTBtbKhIScSWCDlIhVbYfaJefLMpetuXyGIOk=</DigestValue> </Reference> </SignedInfo> <SignatureValue>2Zm+Uemw36DJQGL+PqL3JNTYMAPqEDMPuO6SY2gTvHhw6U5D2SMufj0RdE0YquR8 f3+zawdDxjhvNEL994A27Q==</SignatureValue> <KeyInfo> <X509Data> <X509Certificate>MIIJVTCCCQKgAwIBAgIRBFqTKQFfr+K3RFxmQCSjQM4wCgYIKoUDBwEBAwIwggFW MRUwEwYFKoUDZAQSCjc3MTcxMDc5OTExIDAeBgkqhkiG9w0BCQEWEWluZm9AY3J5 cHRvcHJvLnJ1MRgwFgYFKoUDZAESDTEwMzc3MDAwODU0NDQxCzAJBgNVBAYTAlJV MRgwFgYDVQQIDA83NyDQnNC+0YHQutCy0LAxFTATBgNVBAcMDNCc0L7RgdC60LLQ sDEvMC0GA1UECQwm0YPQuy4g0KHRg9GJ0ZHQstGB0LrQuNC5INCy0LDQuyDQtC4g MTgxJTAjBgNVBAoMHNCe0J7QniAi0JrQoNCY0J/QotCeLdCf0KDQniIxazBpBgNV BAMMYtCi0LXRgdGC0L7QstGL0Lkg0L/QvtC00YfQuNC90LXQvdC90YvQuSDQo9Cm INCe0J7QniAi0JrQoNCY0J/QotCeLdCf0KDQniIg0JPQntCh0KIgMjAxMiAo0KPQ piAyLjApMB4XDTIyMTIwMjE3NTMyN1oXDTIzMDMwMjE4MDMyN1owggGFMRwwGgYJ KoZIhvcNAQkBFg1ta3lAa29tdXMubmV0MRcwFQYFKoUDZAQSDDAwNzcyMTc5Mzg5 NTEYMBYGBSqFA2QBEg0xMTM3NzQ2Mzk5ODAxMTAwLgYDVQQMDCfQk9C10L3QtdGA 0LDQu9GM0L3Ri9C5INC00LjRgNC10LrRgtC+0YAxHDAaBgNVBAoME9Ce0J7QniAi 0JrQvtC80YPRgSIxVzBVBgNVBAkMTtC/0YAt0LQg0JfQsNCy0L7QtNCwINCh0LXR gNC/INC4INCc0L7Qu9C+0YIsINC0LiAxMCwg0L/QvtC8LiBYWFhJWCwg0LrQvtC8 LiAyMzEVMBMGA1UEBwwM0JzQvtGB0LrQstCwMQswCQYDVQQGEwJSVTEyMDAGA1UE Kgwp0JrQvtC90YHRgtCw0L3RgtC40L0g0JDQu9C10LrRgdC10LXQstC40YcxGzAZ BgNVBAQMEtCT0YDQtdGH0LjRiNC60LjQvTEUMBIGA1UEAwwLS29tdXNfdGVzdDEw ZjAfBggqhQMHAQEBATATBgcqhQMCAiQABggqhQMHAQECAgNDAARAilfSLGzg629c uObVyhBx1i5gACJvsbCVhCacypNUSaz4+rbwqdYeHdbpB1mWqh8QLFLAxRL+/tKl YMSMvzkZd6OCBW8wggVrMA4GA1UdDwEB/wQEAwIE8DAfBgkrBgEEAYI3FQcEEjAQ BggqhQMCAi4ACAIBAQIBADAdBgNVHQ4EFgQUU61MOM0K0B8Wd0mBHinsMjEgGiww JgYDVR0lBB8wHQYIKwYBBQUHAwQGCCsGAQUFBwMCBgcqhQMCAiIGMDIGCSsGAQQB gjcVCgQlMCMwCgYIKwYBBQUHAwQwCgYIKwYBBQUHAwIwCQYHKoUDAgIiBjCBqAYI KwYBBQUHAQEEgZswgZgwOQYIKwYBBQUHMAGGLWh0dHA6Ly90ZXN0Y2EyMDEyLmNy eXB0b3Byby5ydS9vY3NwMi9vY3NwLnNyZjBbBggrBgEFBQcwAoZPaHR0cDovL3Rl c3RjYTIwMTIuY3J5cHRvcHJvLnJ1L2FpYS84M2MyYmNjOWY2MDQyMWZhM2ZjZWU3 NWFlNDE0ZjFmYjlkNzMzOTZmLmNydDAdBgNVHSAEFjAUMAgGBiqFA2RxAjAIBgYq hQNkcQEwKwYDVR0QBCQwIoAPMjAyMjEyMDIxNzUzMjZagQ8yMDIzMDMwMjE3NTMy NlowggGQBgUqhQNkcASCAYUwggGBDFPQodCa0JfQmCAi0JrRgNC40L/RgtC+0J/R gNC+IENTUCIg0LLQtdGA0YHQuNGPIDQuMCBSNCAo0LjRgdC/0L7Qu9C90LXQvdC4 0LUgMi1CYXNlKQyBh9Cf0JDQmiDCq9Cj0LTQvtGB0YLQvtCy0LXRgNGP0Y7RidC4 0Lkg0YbQtdC90YLRgCDCq9Ca0YDQuNC/0YLQvtCf0YDQviDQo9Cmwrsg0LLQtdGA 0YHQuNC4IDIuMMK7ICjQstCw0YDQuNCw0L3RgiDQuNGB0L/QvtC70L3QtdC90LjR jyA5KQxP0KHQtdGA0YLQuNGE0LjQutCw0YIg0YHQvtC+0YLQstC10YLRgdGC0LLQ uNGPIOKEliDQodCkLzEyNC0zOTcxINC+0YIgMTUuMDEuMjAyMQxP0KHQtdGA0YLQ uNGE0LjQutCw0YIg0YHQvtC+0YLQstC10YLRgdGC0LLQuNGPIOKEliDQodCkLzEy OC00MjcyINC+0YIgMTMuMDcuMjAyMjAsBgUqhQNkbwQjDCHQodCa0JfQmCAi0JrR gNC40L/RgtC+0J/RgNC+IENTUCIwYAYDVR0fBFkwVzBVoFOgUYZPaHR0cDovL3Rl c3RjYTIwMTIuY3J5cHRvcHJvLnJ1L2NkcC84M2MyYmNjOWY2MDQyMWZhM2ZjZWU3 NWFlNDE0ZjFmYjlkNzMzOTZmLmNybDAMBgUqhQNkcgQDAgECMIIBkgYDVR0jBIIB iTCCAYWAFIPCvMn2BCH6P87nWuQU8fudczlvoYIBWKSCAVQwggFQMQswCQYDVQQG EwJSVTEVMBMGBSqFA2QEEgo3NzE3MTA3OTkxMSAwHgYJKoZIhvcNAQkBFhFpbmZv QGNyeXB0b3Byby5ydTEYMBYGBSqFA2QBEg0xMDM3NzAwMDg1NDQ0MRgwFgYDVQQI DA83NyDQnNC+0YHQutCy0LAxFTATBgNVBAcMDNCc0L7RgdC60LLQsDEvMC0GA1UE CQwm0YPQuy4g0KHRg9GJ0ZHQstGB0LrQuNC5INCy0LDQuyDQtC4gMTgxJTAjBgNV BAoMHNCe0J7QniAi0JrQoNCY0J/QotCeLdCf0KDQniIxZTBjBgNVBAMMXNCi0LXR gdGC0L7QstGL0Lkg0LPQvtC70L7QstC90L7QuSDQo9CmINCe0J7QniAi0JrQoNCY 0J/QotCeLdCf0KDQniIg0JPQntCh0KIgMjAxMiAo0KPQpiAyLjApghEEiDbTACWv 9q5PlMUkOV+Z0TAKBggqhQMHAQEDAgNBAHNmTzirvDVjR8TSwHNswbRS0nfZhf5d 0ZK3Lp+9lm4/0F3Gw2T55oBgPD1TzBHSg0ExtFNDJU4O7cfSfttML2w=</X509Certificate> </X509Data> </KeyInfo> </Signature></Envelope>
|

|
|
|
|
|
Андрей *
|
#8
Оставлено
:
17 января 2023 г. 17:32:48(UTC)
|

Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,010


Сказал «Спасибо»: 457 раз Поблагодарили: 1912 раз в 1478 постах
|
как не изменился?
Почему у меня показывает, что подпись корректна математически?
Snimok ehkrana ot 2023-01-17 18-28-52.png (26kb) загружен 6 раз(а).
|
Техническую поддержку оказываем тут Наша база знаний
|

|
|
|
|
|
Андрей *
|
#9
Оставлено
:
17 января 2023 г. 17:40:43(UTC)
|

Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,010


Сказал «Спасибо»: 457 раз Поблагодарили: 1912 раз в 1478 постах
|
Автор: К.Лихачёв 
При проверке https://www.justsign.me/verifyqca/Verify/ не указывается тип подписи.
Что такое подпись CMS? Где это указано неправильно?
Snimok ehkrana ot 2023-01-17 18-33-31.png (48kb) загружен 2 раз(а).
Выше текстовая строка с xml — не содержит нескольких пробелов, которые есть в результате от плагина (если декодировать из base64) и сравнить.
changes.png (40kb) загружен 3 раз(а).
|
Техническую поддержку оказываем тут Наша база знаний
|

|
|
|
|
|
Андрей *
|
#10
Оставлено
:
17 января 2023 г. 17:50:08(UTC)
|

Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,010


Сказал «Спасибо»: 457 раз Поблагодарили: 1912 раз в 1478 постах
|
декодированные данные из сообщения #4 в файле:
file.xml (5kb) загружен 0 раз(а).
успешно проверяется.
Доверия к тестовому корневому нет на стороне сервиса.
|
Техническую поддержку оказываем тут Наша база знаний
|

|
|
|
|
|
Пользователи, просматривающие эту тему |
Guest
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Windows Server 2008, редакция web, service pack 2
На последней стадии установки ssl-сертификата, через «запрос установки сертификата…» получаю ошибку:
CertEnroll::CX509Enrollment::p_InstallResponse: Встречено неверное значение тега ASN1. 0x8009310b
(ASN: 267)
С чем это может быть связано? До этого на сервере уже устанавливались два других сертификата, в обоих случаях успешно, порядок установки не менялся.
Возможно, вам также будет интересно:
Ошибка электронной подписи 80091007 электронная подпись не совпадает
Ошибка электронной подписи 8007065в
Ошибка эпик геймс лаунчер su pqr1603
Ошибка эпик геймс ваша учетная запись временно заблокирована
Ошибка эпик геймс we have detected that
Понравилась статья? Поделить с друзьями: