Статус: Сотрудник
Группы: Участники
Зарегистрирован: 24.04.2018(UTC) Сообщений: 24 Сказал(а) «Спасибо»: 2 раз Поблагодарили: 9 раз в 6 постах
|
Добрый день! В логах ошибок нет. Не могли бы вы приложить подпись (сделанную на OID-ах 2012-года) и сертификат в виде файлов (как лог)? К сожалению, не получается скачать их по вашим ссылкам. Спасибо.
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 24.05.2019(UTC) Сообщений: 8 Откуда: Москва Сказал(а) «Спасибо»: 1 раз
|
открытый ключ gorshkov.cer (3kb) загружен 7 раз(а).файлы электронной подписи signError.rar (133kb) загружен 8 раз(а).Отредактировано пользователем 1 августа 2019 г. 15:25:28(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 24.04.2018(UTC) Сообщений: 24 Сказал(а) «Спасибо»: 2 раз Поблагодарили: 9 раз в 6 постах
|
В присланной вами подписи по-прежнему содержатся алгоритмы 2001-года (хэширования и подписи). Что не соответствует ключу 2012 года. Проверьте еще раз ваш код и исправьте все OID-ы и алгоритм на правильные: Код:
public static byte[] createCMS(byte[] buffer, byte[] sign, Certificate cert, boolean detached) throws Exception {
ContentInfo all = new ContentInfo();
all.contentType = new Asn1ObjectIdentifier((new OID("1.2.840.113549.1.7.2")).value);
SignedData cms = new SignedData();
all.content = cms;
cms.version = new CMSVersion(1L);
cms.digestAlgorithms = new DigestAlgorithmIdentifiers(1);
DigestAlgorithmIdentifier a = new DigestAlgorithmIdentifier((new OID("1.2.643.7.1.1.2.2")).value);
a.parameters = new Asn1Null();
cms.digestAlgorithms.elements[0] = a;
if (detached) {
cms.encapContentInfo = new EncapsulatedContentInfo(new Asn1ObjectIdentifier((new OID("1.2.840.113549.1.7.1")).value), (Asn1OctetString)null);
} else {
cms.encapContentInfo = new EncapsulatedContentInfo(new Asn1ObjectIdentifier((new OID("1.2.840.113549.1.7.1")).value), new Asn1OctetString(buffer));
}
cms.certificates = new CertificateSet(1);
ru.CryptoPro.JCP.ASN.PKIX1Explicit88.Certificate certificate = new ru.CryptoPro.JCP.ASN.PKIX1Explicit88.Certificate();
Asn1BerDecodeBuffer decodeBuffer = new Asn1BerDecodeBuffer(cert.getEncoded());
certificate.decode(decodeBuffer);
cms.certificates.elements = new CertificateChoices[1];
cms.certificates.elements[0] = new CertificateChoices();
cms.certificates.elements[0].set_certificate(certificate);
cms.signerInfos = new SignerInfos(1);
cms.signerInfos.elements[0] = new SignerInfo();
cms.signerInfos.elements[0].version = new CMSVersion(1L);
cms.signerInfos.elements[0].sid = new SignerIdentifier();
byte[] encodedName = ((X509Certificate)cert).getIssuerX500Principal().getEncoded();
Asn1BerDecodeBuffer nameBuf = new Asn1BerDecodeBuffer(encodedName);
Name name = new Name();
name.decode(nameBuf);
CertificateSerialNumber num = new CertificateSerialNumber(((X509Certificate)cert).getSerialNumber());
cms.signerInfos.elements[0].sid.set_issuerAndSerialNumber(new IssuerAndSerialNumber(name, num));
cms.signerInfos.elements[0].digestAlgorithm = new DigestAlgorithmIdentifier((new OID("1.2.643.7.1.1.2.2")).value);
cms.signerInfos.elements[0].digestAlgorithm.parameters = new Asn1Null();
cms.signerInfos.elements[0].signatureAlgorithm = new SignatureAlgorithmIdentifier((new OID("1.2.643.7.1.1.1.1")).value);
cms.signerInfos.elements[0].signatureAlgorithm.parameters = new Asn1Null();
cms.signerInfos.elements[0].signature = new SignatureValue(sign);
Asn1BerEncodeBuffer asnBuf = new Asn1BerEncodeBuffer();
all.encode(asnBuf, true);
return asnBuf.getMsgCopy();
}
public static byte[] CMSSign(byte[] data, PrivateKey key, Certificate cert, boolean detached) throws Exception {
Signature signature = Signature.getInstance("GOST3411_2012_256withGOST3410_2012_256");
signature.initSign(key);
signature.update(data);
byte[] sign = signature.sign();
return createCMS(data, sign, cert, detached);
}
Если и после этого подпись не будет проверяться, пришлите еще раз, посмотрим.
|
1 пользователь поблагодарил Elvira Borodina за этот пост.
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 24.05.2019(UTC) Сообщений: 8 Откуда: Москва Сказал(а) «Спасибо»: 1 раз
|
Большой спасибо. Помогло. Есть еще вопрос. Можно как-то прописать OIDы, чтобы они поддерживали и старые и новые подписи? Отредактировано пользователем 7 августа 2019 г. 16:08:46(UTC)
| Причина: Не указана
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 09.08.2019(UTC) Сообщений: 3 Откуда: 111
|
Добрый день! Не подскажите, как настроить логирование криптографических операций на WAS, приложение работает на WAS, используется JCP 2.0, как нужно настроить logging.properties? Уже все перепробовал, ничего не помогает. Можно рабочий пример. Или какой handlers указывать, со стандартным не работает
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,910 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 685 раз в 646 постах
|
Здравствуйте.
Посмотрите документ Howto_set_gost_tls_WAS.doc в папке Doc\WebServerIntegration\IbmWAS\ дистрибутива JCP. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 09.08.2019(UTC) Сообщений: 3 Откуда: 111
|
Автор: Евгений Афанасьев Здравствуйте.
Посмотрите документ Howto_set_gost_tls_WAS.doc в папке Doc\WebServerIntegration\IbmWAS\ дистрибутива JCP. Смотрел, пытался настроить логирование через сферу, результата нет( может есть реальные примеры, то что в документации не отражает реальной действительности
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 24.04.2018(UTC) Сообщений: 24 Сказал(а) «Спасибо»: 2 раз Поблагодарили: 9 раз в 6 постах
|
Автор: Artem Frolov Есть еще вопрос. Можно как-то прописать OIDы, чтобы они поддерживали и старые и новые подписи?
Добрый день! Универсальных OID-ов не существует. Алгоритм подписи должен соответствовать алгоритму ключа, набор OID-ов тоже должен быть соответствующим.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 24.04.2018(UTC) Сообщений: 24 Сказал(а) «Спасибо»: 2 раз Поблагодарили: 9 раз в 6 постах
|
Автор: testerr Добрый день! Не подскажите, как настроить логирование криптографических операций на WAS, приложение работает на WAS, используется JCP 2.0, как нужно настроить logging.properties? Уже все перепробовал, ничего не помогает. Можно рабочий пример. Или какой handlers указывать, со стандартным не работает
Здравствуйте. Какую именно информацию вам нужно логировать? В штатном режиме используется уровень логирования INFO, который вывод в лог только основную информацию (и ошибки, если они происходят). Для более подробного логирования можно использовать уровни FINE или ALL. Но пользоваться или нужно только для анализа некой проблемы, поскольку с ними лог будет быстро расти. Для включения подробного лога попробуйте такой вариант logging.properties:
# Licensed Materials - Property of IBM # "Restricted Materials of IBM" # # IBM SDK, Java(tm) Technology Edition, v8 # (C) Copyright IBM Corp. 2000, 2014. All Rights Reserved # # US Government Users Restricted Rights - Use, duplication or disclosure # restricted by GSA ADP Schedule Contract with IBM Corp. # ======================================================================== # Default Logging Configuration File # # You can use a different file by specifying a filename # with the java.util.logging.config.file system property. # For example java -Djava.util.logging.config.file=myfile ############################################################
############################################################ # Global properties ############################################################
# "handlers" specifies a comma separated list of log Handler # classes. These handlers will be installed during VM startup. # Note that these classes must be on the system classpath. # By default we only configure a ConsoleHandler, which will only # show messages at the INFO and above levels. handlers= java.util.logging.ConsoleHandler, java.util.logging.FileHandler
# To also add the FileHandler, use the following line instead. #handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler
# Default global logging level. # This specifies which kinds of events are logged across # all loggers. For any given facility this global level # can be overriden by a facility specific level # Note that the ConsoleHandler also has a separate level # setting to limit messages printed to the console. .level= INFO
############################################################ # Handler specific properties. # Describes specific configuration info for Handlers. ############################################################
# default file output is in user's home directory. java.util.logging.FileHandler.level = FINE java.util.logging.FileHandler.pattern = %h/java%u.log java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
# Limit the message that are printed on the console to INFO and above. java.util.logging.ConsoleHandler.level = FINE java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
# Example to customize the SimpleFormatter output format # to print one-line log message like this: # <level>: <log message> [<date/time>] # # java.util.logging.SimpleFormatter.format=%4$s: %5$s [%1$tc]%n
############################################################ # Facility specific properties. # Provides extra control for each logger. ############################################################
# For example, set the com.xyz.foo logger to only log SEVERE # messages: com.xyz.foo.level = SEVERE ru.CryptoPro.JCP.tools.JCPLogger.level=FINE ru.CryptoPro.JCP.tools.JCPLogger.handlers=java.util.logging.ConsoleHandler, java.util.logging.FileHandler
ru.CryptoPro.ssl.SSLLogger.level=FINE ru.CryptoPro.ssl.SSLLogger.handlers=java.util.logging.ConsoleHandler, java.util.logging.FileHandler
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 09.08.2019(UTC) Сообщений: 3 Откуда: 111
|
Автор: Elvira Borodina Автор: testerr Добрый день! Не подскажите, как настроить логирование криптографических операций на WAS, приложение работает на WAS, используется JCP 2.0, как нужно настроить logging.properties? Уже все перепробовал, ничего не помогает. Можно рабочий пример. Или какой handlers указывать, со стандартным не работает
Здравствуйте. Какую именно информацию вам нужно логировать? В штатном режиме используется уровень логирования INFO, который вывод в лог только основную информацию (и ошибки, если они происходят). Для более подробного логирования можно использовать уровни FINE или ALL. Но пользоваться или нужно только для анализа некой проблемы, поскольку с ними лог будет быстро расти. Для включения подробного лога попробуйте такой вариант logging.properties:
# Licensed Materials - Property of IBM # "Restricted Materials of IBM" # # IBM SDK, Java(tm) Technology Edition, v8 # (C) Copyright IBM Corp. 2000, 2014. All Rights Reserved # # US Government Users Restricted Rights - Use, duplication or disclosure # restricted by GSA ADP Schedule Contract with IBM Corp. # ======================================================================== # Default Logging Configuration File # # You can use a different file by specifying a filename # with the java.util.logging.config.file system property. # For example java -Djava.util.logging.config.file=myfile ############################################################
############################################################ # Global properties ############################################################
# "handlers" specifies a comma separated list of log Handler # classes. These handlers will be installed during VM startup. # Note that these classes must be on the system classpath. # By default we only configure a ConsoleHandler, which will only # show messages at the INFO and above levels. handlers= java.util.logging.ConsoleHandler, java.util.logging.FileHandler
# To also add the FileHandler, use the following line instead. #handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler
# Default global logging level. # This specifies which kinds of events are logged across # all loggers. For any given facility this global level # can be overriden by a facility specific level # Note that the ConsoleHandler also has a separate level # setting to limit messages printed to the console. .level= INFO
############################################################ # Handler specific properties. # Describes specific configuration info for Handlers. ############################################################
# default file output is in user's home directory. java.util.logging.FileHandler.level = FINE java.util.logging.FileHandler.pattern = %h/java%u.log java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
# Limit the message that are printed on the console to INFO and above. java.util.logging.ConsoleHandler.level = FINE java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
# Example to customize the SimpleFormatter output format # to print one-line log message like this: # <level>: <log message> [<date/time>] # # java.util.logging.SimpleFormatter.format=%4$s: %5$s [%1$tc]%n
############################################################ # Facility specific properties. # Provides extra control for each logger. ############################################################
# For example, set the com.xyz.foo logger to only log SEVERE # messages: com.xyz.foo.level = SEVERE ru.CryptoPro.JCP.tools.JCPLogger.level=FINE ru.CryptoPro.JCP.tools.JCPLogger.handlers=java.util.logging.ConsoleHandler, java.util.logging.FileHandler
ru.CryptoPro.ssl.SSLLogger.level=FINE ru.CryptoPro.ssl.SSLLogger.handlers=java.util.logging.ConsoleHandler, java.util.logging.FileHandler
Нужен вызов всех криптографических операций. Данный лог должен писаться в SystemOut.log? Или куда - то еще. При вызове Панели Криптопро, запись в файл происходит, а вот при вызове из приложения нет. Вот лог в криптопро, хотя уровень логирования в сфере стоит all 0000016a JCPLogger I ru.CryptoPro.JCP.tools.Starter check Loading JCP 2.0.40035 0000016a JCPLogger I ru.CryptoPro.JCP.tools.Starter check JCP loaded. В логе вызов только однократный. Есть еще какие-то рекомендации ? Нельзя ли настроить вызов через log4j?
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close