Способ проверки того, применяются ли ограничения, задокументирован в методе Cipher.getMaxAllowedKeyLength
:
Если установлены файлы политики ограниченной юрисдикции JCE,
blockquote>Integer.MAX_VALUE
будет возвращен.Это означает, что если возвращается какое-либо значение, отличное от (или даже более низкое)
Integer.MAX_VALUE
, которые применяются ограничения.Еще больше информации в JavaDoc метода ниже:
/** * Determines if cryptography restrictions apply. * Restrictions apply if the value of {@link Cipher#getMaxAllowedKeyLength(String)} returns a value smaller than {@link Integer#MAX_VALUE} if there are any restrictions according to the JavaDoc of the method. * This method is used with the transform
"AES/CBC/PKCS5Padding"
as this is an often used algorithm that is an implementation requirement for Java SE. * * @returntrue
if restrictions apply,false
otherwise */ public static boolean restrictedCryptography() { try { return Cipher.getMaxAllowedKeyLength("AES/CBC/PKCS5Padding") < Integer.MAX_VALUE; } catch (final NoSuchAlgorithmException e) { throw new IllegalStateException("The transform \"AES/CBC/PKCS5Padding\" is not available (the availability of this algorithm is mandatory for Java SE implementations)", e); } }Обратите внимание, что с Java 9 по умолчанию установлены неограниченные криптополитические политики (с теми, на которые влияют правила импорта / экспорта, которые должны установить ограниченные криптографические политики ). Таким образом, этот код будет в основном требоваться для обратной совместимости и / или другого времени выполнения.
К сожалению, я не думаю, что есть приложение SNMP для Log4j2. Во всяком случае я лично использую следующий open source appender. Вы можете найти его на github.com/DushmanthaBandaranayake/log4j2-snmp-appender .