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

Уведомление

Icon
Error

3 Страницы123>
Опции
К последнему сообщению К первому непрочитанному
Offline Dreamir  
#1 Оставлено : 8 июля 2020 г. 10:57:39(UTC)
Dreamir

Статус: Участник

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

Добрый день. У меня есть задача создавать ЭЦП такую же как с использованием плагина CAdES Browser Plug-in.
Подскажите пожалуйста, есть ли репозиторий какой нибудь с готовым артефактом (или просто ссылка на артефакт), который можно подключить, настроить минимальными настройками (путь до сертификатов, алгоритм хеша и т.п.) и использовать в своём проекте?
Offline Санчир Момолдаев  
#2 Оставлено : 8 июля 2020 г. 17:41:30(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 51 раз
Поблагодарили: 64 раз в 63 постах
Добрый день!
По какому алгоритму? если ГОСТ, то вам нужно использовать КриптоПро JCP.
если собираетесь собирать без ide, то необходимо jar из JCP установить в локальный репозитарий maven и внести соответствующие изменения в pom
Техническую поддержку оказываем тут
Наша база знаний
Offline Dreamir  
#3 Оставлено : 12 июля 2020 г. 16:06:49(UTC)
Dreamir

Статус: Участник

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

Добрый день. Да, сертификат ГОСТ 34.11-2012. Скачал архив jcp-2.0.40035.zip
Какие jar'ники нужно использовать и можно пример метода создания ЭЦП на основе сертификата ГОСТ 34.11-2012?
Всё же просто должно быть на сколько я понимаю - на входе строка для подписи, на выходе ЭЦП? И где то в настройках надо указать путь до сертификата?
Offline Санчир Момолдаев  
#4 Оставлено : 12 июля 2020 г. 16:37:10(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 51 раз
Поблагодарили: 64 раз в 63 постах
криптография не просто одна функция.
ознакомьтесь с примерами в составе samples-source.jar из дистрибутива JCP
прочитайте про инфраструктуру открытых ключей, публичный и секретный ключ и т.д.

Отредактировано пользователем 12 июля 2020 г. 16:42:16(UTC)  | Причина: Не указана

Техническую поддержку оказываем тут
Наша база знаний
Offline Dreamir  
#5 Оставлено : 12 июля 2020 г. 16:55:52(UTC)
Dreamir

Статус: Участник

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

Я понимаю что это не одна функция. Я не прошу показать реализацию как работает создание и проверка подписи, мне как прикладнику это не интересно. В конечном итоге при всех настройках всё равно всё сводится к функции которая на входе принимает строку для создания ЭЦП, а на выходе ЭЦП. Я так понимаю что нет такой библиотеки, которая настраивается путями до сертификатов и ключей и другими какими то настройками которые нужны для работы и в конечном итоге из этой библиотеки используется 1 функция на входе строка, а на выходе ЭЦП? Если так - то думаю было бы очень хорошо для таких как я такую библиотеку сделать. Буду изучать что предложили.
Offline Санчир Момолдаев  
#6 Оставлено : 12 июля 2020 г. 17:24:32(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 51 раз
Поблагодарили: 64 раз в 63 постах
нужный вам класс CAdESSignature
смотрите как я и сказал samples-source.jar, javadocs, и эксплуатационную документацию ЖТЯИ...рук-во программиста
Техническую поддержку оказываем тут
Наша база знаний
Offline Dreamir  
#7 Оставлено : 12 июля 2020 г. 17:39:18(UTC)
Dreamir

Статус: Участник

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

Спасибо за ответ!

Отредактировано пользователем 12 июля 2020 г. 17:40:32(UTC)  | Причина: Не указана

Offline Dreamir  
#8 Оставлено : 16 июля 2020 г. 19:07:27(UTC)
Dreamir

Статус: Участник

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

Вопрос не к сотрудникам крипто про!
Есть у кого нибудь вменяемый пример? Чтобы Просто взять класс с 1 методом и нужными параметрами (пути до сертификатов), а на выходе ЭЦП в виде base64?
Просто у меня нет времени разбираться в этом всём. Всё должно быть просто.

Отредактировано пользователем 16 июля 2020 г. 19:14:09(UTC)  | Причина: Не указана

Offline Dreamir  
#9 Оставлено : 19 июля 2020 г. 14:31:13(UTC)
Dreamir

Статус: Участник

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

Открыл пример. Запускаю:

public static void main(String[] arts) {
SignExample.signExample(new Container2012_256(), true);
}

Получил:

123.jpg (83kb) загружен 17 раз(а).

Что не так? JCP криво установилось?
Offline Евгений Афанасьев  
#10 Оставлено : 20 июля 2020 г. 10:32:56(UTC)
Евгений Афанасьев

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

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,190
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 14 раз
Поблагодарили: 515 раз в 494 постах
Здравствуйте.
Не найден класс. Проверьте, есть ли он в составе примера или classpath.
Offline Dreamir  
#11 Оставлено : 7 августа 2020 г. 16:34:46(UTC)
Dreamir

Статус: Участник

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

Добрый день. Осилил пример подписания.
Теперь если использовать провайдер JCP то ошибок нет (лог прикреплён), а вот при использовании JCSP есть ошибки при выполнении (лог так же прикреплён).
На сколько понял что использовать JCSP при наличии лицензии на CSP можно бесплатно - поэтому задача использовать этот провайдер (поправьте если ошибаюсь).
Подскажите пожалуйста что надо сделать чтобы заработало подписание с использованием JCSP?
JCSP s oshibkojj.txt (126kb) загружен 4 раз(а). JCP bez oshibki.txt (633kb) загружен 2 раз(а).
Offline Dreamir  
#12 Оставлено : 9 августа 2020 г. 15:46:23(UTC)
Dreamir

Статус: Участник

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

Взял пример с другой темы по созданию CADES BES подписи

Строка для подписания:
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTE2Ij8+DQo8V2l0aGRyYXdBcHBsaWNhdGlvblJlcXVlc3QgeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSI+DQogIDxBcHBsaWNhdGlvbklkPjEwODA0Mjk5MjwvQXBwbGljYXRpb25JZD4NCiAgPE9yZ2FuaXphdGlvbklkPjYwNjgyNTwvT3JnYW5pemF0aW9uSWQ+DQogIDxCdXNpbmVzc09wZXJhdG9ySWQ+NDwvQnVzaW5lc3NPcGVyYXRvcklkPg0KPC9XaXRoZHJhd0FwcGxpY2F0aW9uUmVxdWVzdD4=

Пример возвращает подпись такую:
MIAGCSqGSIb3DQEHAqCAMIACAQExDjAMBggqhQMHAQECAgUAMIAGCSqGSIb3DQEHAQAAMYIE9TCCBPECAQEwggH/MIIB6DEbMBkGCSqGSIb3DQEJARYMY2FAc2VydHVtLnJ1MRgwFgYFKoUDZAESDTExMTY2NzMwMDg1MzkxGjAYBggqhQMDgQMBARIMMDA2NjczMjQwMzI4MQswCQYDVQQGEwJSVTEzMDEGA1UECAwqNjYg0KHQstC10YDQtNC70L7QstGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMMSEwHwYDVQQHDBjQldC60LDRgtC10YDQuNC90LHRg9GA0LMxUjBQBgNVBAkMSdGD0LvQuNGG0LAg0KPQu9GM0Y/QvdC+0LLRgdC60LDRjywg0LQuIDEzLCDQu9C40YLQtdGAINCQLCDQvtGE0LjRgSAyMDkg0JExbDBqBgNVBAoMY9Ce0LHRidC10YHRgtCy0L4g0YEg0L7Qs9GA0LDQvdC40YfQtdC90L3QvtC5INC+0YLQstC10YLRgdGC0LLQtdC90L3QvtGB0YLRjNGOICLQodC10YDRgtGD0Lwt0J/RgNC+IjFsMGoGA1UEAwxj0J7QsdGJ0LXRgdGC0LLQviDRgSDQvtCz0YDQsNC90LjRh9C10L3QvdC+0Lkg0L7RgtCy0LXRgtGB0YLQstC10L3QvdC+0YHRgtGM0Y4gItCh0LXRgNGC0YPQvC3Qn9GA0L4iAhEBnx+KAOarwIJF5Vr4B2h/4TAMBggqhQMHAQECAgUAoIICizAvBgkqhkiG9w0BCQQxIgQg//96sHqecM/DG2//A2UjENUFNNZzdZRx8MBAN74GSzcwggJWBgsqhkiG9w0BCRACLzGCAkUwggJBMIICPTCCAjkwCgYIKoUDBwEBAgIEIItQ8zzkk7Sb7kDu84JFNcxzBDGlV9BZ4jPmtH1aCJeVMIICBzCCAfCkggHsMIIB6DEbMBkGCSqGSIb3DQEJARYMY2FAc2VydHVtLnJ1MRgwFgYFKoUDZAESDTExMTY2NzMwMDg1MzkxGjAYBggqhQMDgQMBARIMMDA2NjczMjQwMzI4MQswCQYDVQQGEwJSVTEzMDEGA1UECAwqNjYg0KHQstC10YDQtNC70L7QstGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMMSEwHwYDVQQHDBjQldC60LDRgtC10YDQuNC90LHRg9GA0LMxUjBQBgNVBAkMSdGD0LvQuNGG0LAg0KPQu9GM0Y/QvdC+0LLRgdC60LDRjywg0LQuIDEzLCDQu9C40YLQtdGAINCQLCDQvtGE0LjRgSAyMDkg0JExbDBqBgNVBAoMY9Ce0LHRidC10YHRgtCy0L4g0YEg0L7Qs9GA0LDQvdC40YfQtdC90L3QvtC5INC+0YLQstC10YLRgdGC0LLQtdC90L3QvtGB0YLRjNGOICLQodC10YDRgtGD0Lwt0J/RgNC+IjFsMGoGA1UEAwxj0J7QsdGJ0LXRgdGC0LLQviDRgSDQvtCz0YDQsNC90LjRh9C10L3QvdC+0Lkg0L7RgtCy0LXRgtGB0YLQstC10L3QvdC+0YHRgtGM0Y4gItCh0LXRgNGC0YPQvC3Qn9GA0L4iAhEBnx+KAOarwIJF5Vr4B2h/4TAKBggqhQMHAQEGAQRAlCzZASw3Dw8AUdzfQQTlcAIikR6zvT50kJVNCAKu8TA9PikMY0S0Ffptqi5sBwcu0a4FVAM8eO4qOtnH2G0rCQAAAAAAAA==

Плагин для chrome возвращает подписанную строку такую:
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


Пример приложения:

Код:

public class SignerData {

    final static private String cer_story = "HDImageStore";
    final static private String cer_alias = "pfx-48b009ef-52ba-1818-780c-26931a3c5cfe";
    final static private String cer_pass_str = "12345678";
    final static private char[] cer_pass = cer_pass_str.toCharArray();

    static public String signed(String data) throws IOException, KeyStoreException, NoSuchAlgorithmException, CertificateException, UnrecoverableKeyException, CAdESException, InvalidKeyException, SignatureException {
        final byte src[] = data.getBytes();

        KeyStore keyStore = KeyStore.getInstance( cer_story );
        keyStore.load( null, null );
        PrivateKey privateKey = (PrivateKey) keyStore.getKey( cer_alias, cer_pass );
        X509Certificate cert = (X509Certificate) keyStore.getCertificate( cer_alias );
        //List<Certificate> chain = Arrays.asList( keyStore.getCertificateChain( cer_alias ) );
        List<X509Certificate> chain = Arrays.asList( cert );


        CAdESSignature cadesSignature = new CAdESSignature( true);
        // Создаем подписанта CAdES-BES.
        //cadesSignature.addSigner("HDImageStore", privateKey, chain, CAdESType.CAdES_BES, null, false);
        // String var1, String var2, String var3, PrivateKey var4, List var5, Integer var6, String var7, boolean var8)
        cadesSignature.addSigner( "JCP", "1.2.643.7.1.1.2.2", "1.2.643.7.1.1.6.1", privateKey, chain, CAdESType.CAdES_BES, null, true);
        // Будущая подпись в виде массива.
        ByteArrayOutputStream signatureStream = new ByteArrayOutputStream();
        // Подготовка контекста.
        cadesSignature.open( signatureStream );
        // Хеширование.
        cadesSignature.update( src );
        // Создание подписи с выводом в signatureStream.
        cadesSignature.close();
        signatureStream.close();
        // Получаем подпись в виде массива.
        byte[] cadesCms = signatureStream.toByteArray();
        return Base64.getEncoder().encodeToString(cadesCms);
    }
}


Вызов:
SignerData.signed( "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTE2Ij8+DQo8V2l0aGRyYXdBcHBsaWNhdGlvblJlcXVlc3QgeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSI+DQogIDxBcHBsaWNhdGlvbklkPjEwODA0Mjk5MjwvQXBwbGljYXRpb25JZD4NCiAgPE9yZ2FuaXphdGlvbklkPjYwNjgyNTwvT3JnYW5pemF0aW9uSWQ+DQogIDxCdXNpbmVzc09wZXJhdG9ySWQ+NDwvQnVzaW5lc3NPcGVyYXRvcklkPg0KPC9XaXRoZHJhd0FwcGxpY2F0aW9uUmVxdWVzdD4=" );

Результат подписи разный. Подскажите что необходимо сделать?
Offline Андрей *  
#13 Оставлено : 9 августа 2020 г. 17:01:19(UTC)
Андрей *

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

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

Сказал «Спасибо»: 346 раз
Поблагодарили: 1386 раз в 1070 постах
Здравствуйте.

1. Вызов:
Цитата:
SignerData.signed( "PD94...


Будет подписаны байты из base64-строки (хеш данных = FFFF7AB07A9E70CFC31B6FFF03652310D50534D673759471F0C04037BE064B37), а не исходный XML (хеш данных = CD272CB22CC99C966A4DAE22F7A6EA78826D609F918FC9A3E5B660C1726053D0).

2. Плагин добавляет в CMS еще сертификат подписанта, а подпись из вышеуказанного примера - не содержит сертификат (не все приложения смогут проверять без включенного сертификата в CMS, только те, кто умеет искать в других источниках (файл\хранилище))


check sign.png (87kb) загружен 17 раз(а).



Техническую поддержку оказываем тут
Наша база знаний
Offline Dreamir  
#14 Оставлено : 9 августа 2020 г. 19:35:42(UTC)
Dreamir

Статус: Участник

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

Автор: Андрей * Перейти к цитате
Здравствуйте.

1. Вызов:
Цитата:
SignerData.signed( "PD94...


Будет подписаны байты из base64-строки (хеш данных = FFFF7AB07A9E70CFC31B6FFF03652310D50534D673759471F0C04037BE064B37), а не исходный XML (хеш данных = CD272CB22CC99C966A4DAE22F7A6EA78826D609F918FC9A3E5B660C1726053D0).

2. Плагин добавляет в CMS еще сертификат подписанта, а подпись из вышеуказанного примера - не содержит сертификат (не все приложения смогут проверять без включенного сертификата в CMS, только те, кто умеет искать в других источниках (файл\хранилище))


check sign.png (87kb) загружен 17 раз(а).





Подскажите где взять приложение для проверки подписи?

По 1му пункту понял - надо подписывать не base64 строку а исходную (просто увидел в плагине метод cryptoProvider.signBase64 принимает base64 поэтому и сделал в таком же формате)
По 2му пункту - как сделать такую же подпись что и в плагине?

Отредактировано пользователем 9 августа 2020 г. 19:50:06(UTC)  | Причина: Не указана

Offline Санчир Момолдаев  
#15 Оставлено : 10 августа 2020 г. 8:07:10(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 51 раз
Поблагодарили: 64 раз в 63 постах
Добрый день!
по 2п. см тут
по 1п.
cryptcp из состава дистрибутива,
КриптоАРМ
КриптоПро SVS
программа коллеги

Отредактировано пользователем 10 августа 2020 г. 8:07:58(UTC)  | Причина: Не указана

Техническую поддержку оказываем тут
Наша база знаний
Offline Евгений Афанасьев  
#16 Оставлено : 10 августа 2020 г. 12:47:37(UTC)
Евгений Афанасьев

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

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,190
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 14 раз
Поблагодарили: 515 раз в 494 постах
Здравствуйте.
Как добавить сертификаты в подпись с помощью CAdES.jar есть в javadoc/CAdES-javadoc.jar в описании класса CAdESSignature, один из методов addSigner принимает последним параметром addCertificateChain и добавляют построенную цепочку в подпись: https://www.cryptopro.ru...&m=117788#post117788
Есть также setCertificateStore для добавления любых сертификатов в подпись.
Чтобы задействовать JCSP, надо сделать его провайдером по умолчанию (на вкладке "Алгоритмы" панели управления) задать его в addSigner или с помощью CAdESConfig.setDefaultProvider() и другими способами (-Dru.CryptoPro.defaultProv=JCSP), об этом есть в рук-ве программиста (JCSP) и в примерах samples-sources.jar/CAdES. Ключи из хранилища KeyStore тоже должны быть открыты с помощью JCSP (HDIMAGE и т.п.).

Отредактировано пользователем 11 августа 2020 г. 13:41:23(UTC)  | Причина: Не указана

Offline Dreamir  
#17 Оставлено : 11 августа 2020 г. 13:12:06(UTC)
Dreamir

Статус: Участник

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

Автор: Андрей * Перейти к цитате
Здравствуйте.

1. Вызов:
Цитата:
SignerData.signed( "PD94...


Будет подписаны байты из base64-строки (хеш данных = FFFF7AB07A9E70CFC31B6FFF03652310D50534D673759471F0C04037BE064B37), а не исходный XML (хеш данных = CD272CB22CC99C966A4DAE22F7A6EA78826D609F918FC9A3E5B660C1726053D0).

2. Плагин добавляет в CMS еще сертификат подписанта, а подпись из вышеуказанного примера - не содержит сертификат (не все приложения смогут проверять без включенного сертификата в CMS, только те, кто умеет искать в других источниках (файл\хранилище))


check sign.png (87kb) загружен 17 раз(а).





Подскажите пожалуйста как вы подготовили примеры файлов для проверки в приложении на валидность подписей из base64 строк которые я скинул?
Offline Андрей *  
#18 Оставлено : 11 августа 2020 г. 13:44:28(UTC)
Андрей *

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

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

Сказал «Спасибо»: 346 раз
Поблагодарили: 1386 раз в 1070 постах
Автор: Dreamir Перейти к цитате
Автор: Андрей * Перейти к цитате
Здравствуйте.

1. Вызов:
Цитата:
SignerData.signed( "PD94...


Будет подписаны байты из base64-строки (хеш данных = FFFF7AB07A9E70CFC31B6FFF03652310D50534D673759471F0C04037BE064B37), а не исходный XML (хеш данных = CD272CB22CC99C966A4DAE22F7A6EA78826D609F918FC9A3E5B660C1726053D0).

2. Плагин добавляет в CMS еще сертификат подписанта, а подпись из вышеуказанного примера - не содержит сертификат (не все приложения смогут проверять без включенного сертификата в CMS, только те, кто умеет искать в других источниках (файл\хранилище))


check sign.png (87kb) загружен 17 раз(а).





Подскажите пожалуйста как вы подготовили примеры файлов для проверки в приложении на валидность подписей из base64 строк которые я скинул?


сохранил base64 в файлы, проверил через утилиту
Техническую поддержку оказываем тут
Наша база знаний
Offline Dreamir  
#19 Оставлено : 26 августа 2020 г. 15:19:05(UTC)
Dreamir

Статус: Участник

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

Добрый день.
Создаю подпись при помощи JCP так же как и плагин. Но сервер не принимает её, к сожалению почему я не смогу узнать.
Подскажите в чём разница между подписями (pl.txt - подпись созданная плагином, app.txt - java приложением)
pl.txt (11kb) загружен 2 раз(а). app.txt (11kb) загружен 2 раз(а).
Offline Андрей *  
#20 Оставлено : 26 августа 2020 г. 15:34:55(UTC)
Андрей *

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

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

Сказал «Спасибо»: 346 раз
Поблагодарили: 1386 раз в 1070 постах
Здравствуйте.

В app.txt - не CMS.

Snimok ehkrana ot 2020-08-26 16-34-23.png (85kb) загружен 7 раз(а).
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
3 Страницы123>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.