Error constructing mac java lang securityexception jce cannot authenticate the provider kalkan

25 сентября 2022 года была обновлена программа NCA Layer.

25 сентября 2022 года была обновлена программа NCA Layer.

После обновления у пользователей может возникать следующая ошибка: error constructing MAC: java.lang.SecurityException: JCE cannot authenticate the provider KALKAN.

В телеграмм-канале НУЦ РК опубликована следующая информация: 

Қол қою кезінде қиындықтар туындаған жағдайда (төмендегі сурет) ҚР ҰКО сайтынан NCALayer жаңартылған нұсқасын жүктеу арқылы NCALayer бағдарламасын қайта орнату қажет. (
https://pki.gov.kz/ncalayer/)                                                       

При возникновении проблем с подписанием (рисунок ниже)  необходимо переустановить NCALayer, скачав обновленную версию NCALayer с сайта НУЦ РК по ссылке:
https://pki.gov.kz/ncalayer/

Источник:
телеграмм-канал НУЦ РК

Комментировать материалы сайта могут зарегистрированные пользователи.

Вход с помощью STSL

Вам помог наш сайт?

Тогда и мы с радостью примем Вашу помощь
Перечислите любую сумму на Билайн-номер +7-777-398-41-00


Каждое перечисление поможет форуму!

Новые сообщения:

Кто что читает?
Necytij
07 фев 2023, 18:33


Льготное автокредитование в Казахстане
Кайрат-F2
06 фев 2023, 11:10


[01.02.2023 обновлена] Шаблоны форм на 2023 год для ИС СОНО
Кайрат-F2
01 фев 2023, 17:50


[01.02.2023 обновлена] Шаблоны форм на 2022 год для ИС СОНО
Кайрат-F2
01 фев 2023, 17:48


[01.02.2023 обновлена] Шаблоны форм на 2021 год для ИС СОНО
Кайрат-F2
01 фев 2023, 17:48


[01.02.2023 обновлена] Шаблоны форм на 2020 год для ИС СОНО
Кайрат-F2
01 фев 2023, 17:47


Работа сайта и форума bb.f2.kz
Кайрат-F2
01 фев 2023, 15:19


[01.02.2023 обновлена] Правила заполнения налоговых форм на 2019 год
Кайрат-F2
01 фев 2023, 00:16


[01.02.2023 обновлена] Правила заполнения налоговых форм на 2018 год
Кайрат-F2
01 фев 2023, 00:16


[Новость] Предельные цены на нефтепродукты в Казахстане
Кайрат-F2
31 янв 2023, 17:51


[30.01.2023 обновлена] Правила заполнения налоговых форм на 2017 год
Кайрат-F2
30 янв 2023, 15:36


Девальвация или инфляция в Казахстане?
Кайрат-F2
28 янв 2023, 10:13


Угрозы неожиданно низкой инфляции при сокращении спроса
Кайрат-F2
28 янв 2023, 10:09


[Новость] Хорошие новости и хорошие инициативы
Кайрат-F2
27 янв 2023, 22:37


Аргентина, Бразилия и Договор Тлателолько
Кайрат-F2
25 янв 2023, 17:57


[Новость] Форма 701.01 2018 год [Расчёт текущих платежей]
daur
20 янв 2023, 11:30


[Подшивка полезных тем] Отчеты:внутренние, статистические, финансовые
daur
19 янв 2023, 16:35


[Новость] www.esf.gov.kz — Портал по выписке электронных счетов-фактур
Кайрат-F2
16 янв 2023, 22:36


Работа налоговых серверов в 1 квартале 2023 года
Кайрат-F2
15 янв 2023, 18:50


Я и моя машина, наши железные друзья
Кайрат-F2
13 янв 2023, 21:01


Проблемы образования.
Кайрат-F2
13 янв 2023, 20:57


[21.12.2022 обновлена] Версия ИС СОНО 4.0.33 [15.12.2022]
daur
08 янв 2023, 13:38


Новогодняя тема
Necytij
31 дек 2022, 19:54


AKMedia Browser 21.5.2 [ЭСФ, обновление форм СОНО, Кабинет]
daur
24 дек 2022, 22:54


[23.12.2022 обновлена] AKMedia Browser 22.12.23[ЭСФ, обновление форм СОНО, Кабинет]
Кайрат-F2
23 дек 2022, 20:00


Фильм «Откочевники мертвой степи» Досыма Сатпаева
Кайрат-F2
22 дек 2022, 18:05


For JBoss AS7 bouncy castle needs to be deployed as a server module. This replaces the server/default/lib mechanism of earlier versions (as mentioned in Gergely Bacso’s answer).

JBoss AS7 uses jdk1.6+. When using JBoss AS7 with jdk1.6 we need to make sure we are using bcprov-jdk16.

Create a Jboss module (a folder $JBOSS_HOME/modules/org/bouncycastle/main).
Put the bouncy castle jars that you want to be globally available in it, along with a module.xml file that looks like this:

<module xmlns="urn:jboss:module:1.1" name="org.bouncycastle">
    <resources>
        <resource-root path="bcprov-jdk16-1.46.jar"/>
    </resources>
    <dependencies>
        <module name="javax.api" slot="main" export="true"/>
    </dependencies>
</module>

Once you have setup the module you need to make it available to your deployments. There are two ways:

1. Globally via standalone.xml

In $JBOSS_HOME/standalone/configuration/standalone.xml replace

<subsystem xmlns="urn:jboss:domain:ee:1.0"/>

with

<subsystem xmlns="urn:jboss:domain:ee:1.0">
    <global-modules>
        <module name="org.bouncycastle" slot="main"/>
    </global-modules>
</subsystem>

The jar libraries will now be available across all applications (and this will «emulate» adding to the classpath as was possible in jboss 4,5,6 etc)

2. For a specific deployment (preferred)

Add a module dependency entry to the ear’s META-INF/jboss-deployment-structure.xml file, under the section, eg:

<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.1">
    <deployment>
        <dependencies>
            <module name="org.bouncycastle" slot="main" export="true" />
        </dependencies>
    </deployment>
</jboss-deployment-structure>

Works also for me using maven.

<plugins>
  <plugin>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
    <requiresUnpack>
     <dependency>
       <groupId>org.bouncycastle</groupId>
       <artifactId>bcprov-jdk15on</artifactId>
     </dependency>
   </requiresUnpack>
   </configuration>
 </plugin>
<plugins>

With one exception, when instantiating several times the bouncy castle provider using new BouncyCastleProvider(), in different context, still an exception come up. Changing to "BC" solve the issue.
Example:

public static void main(String[] args) {
    Security.addProvider(new BouncyCastleProvider());
    
    try {
      
      MessageDigest md = MessageDigest.getInstance("SHA-256", new BouncyCastleProvider()); 
      byte[] iv = SecureRandom.getInstanceStrong().generateSeed(16);
      byte[] keyBytes = md.digest("test".getBytes());
      SecretKey key = new SecretKeySpec(keyBytes, "AES"); 
      
      Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding", new BouncyCastleProvider());
      cipher.init(Cipher.ENCRYPT_MODE, key, new IvParameterSpec(iv));
      
      
      KeyStore pkcs12KeyStore = KeyStore.getInstance("PKCS12", new BouncyCastleProvider());
      pkcs12KeyStore.load(new ByteArrayInputStream(Base64.decode(teststore)), "hoaghoag".toCharArray());
    } catch (Exception e) {
      e.printStackTrace();
    }
    SpringApplication.run(BcprovidertestApplication.class, args);
  }

ends up in:

"C:developJavaOraclejdk-17.0.2binjava.exe" -jar .bcprovidertest-0.0.1-SNAPSHOT.jar
java.io.IOException: error constructing MAC: java.lang.SecurityException: JCE cannot authenticate the provider BC
        at org.bouncycastle.jcajce.provider.keystore.pkcs12.PKCS12KeyStoreSpi.engineLoad(Unknown Source)
        at org.bouncycastle.jcajce.provider.keystore.util.AdaptingKeyStoreSpi.engineLoad(Unknown Source)
        at java.base/java.security.KeyStore.load(KeyStore.java:1473)
        at mis.bcprovidertest.BcprovidertestApplication.main(BcprovidertestApplication.java:53)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
        at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49)
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:108)
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
        at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88)

  .   ____          _            __ _ _
 /\ / ___'_ __ _ _(_)_ __  __ _    
( ( )___ | '_ | '_| | '_ / _` |    
 \/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |___, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v2.6.9)

2022-07-01 15:25:13.136  INFO 7724 --- [           main] m.b.BcprovidertestApplication            : Starting BcprovidertestApplication v0.0.1-SNAPSHOT using Java 17.0.2 on HO1500307 with PID 7724 (C:developeclipseeclipse2018workspacebcprovidertesttargetbcprovidertest-0.0.1-SNAPSHOT.jar started by m.scholl in C:developeclipseeclipse2018workspacebcprovidertesttarget)
2022-07-01 15:25:13.139  INFO 7724 --- [           main] m.b.BcprovidertestApplication            : No active profile set, falling back to 1 default profile: "default"
2022-07-01 15:25:13.652  INFO 7724 --- [           main] m.b.BcprovidertestApplication            : Started BcprovidertestApplication in 0.933 seconds (JVM running for 2.704)

changing to the following code, everything works fine:

public static void main(String[] args) {
    Security.addProvider(new BouncyCastleProvider());
    
    try {

      MessageDigest md = MessageDigest.getInstance("SHA-256", "BC"); 
      byte[] iv = SecureRandom.getInstanceStrong().generateSeed(16);
      byte[] keyBytes = md.digest("test".getBytes());
      SecretKey key = new SecretKeySpec(keyBytes, "AES"); 

      Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding", "BC");
      cipher.init(Cipher.ENCRYPT_MODE, key, new IvParameterSpec(iv));
      
      KeyStore pkcs12KeyStore = KeyStore.getInstance("PKCS12", "BC");
      pkcs12KeyStore.load(new ByteArrayInputStream(Base64.decode(teststore)), "hoaghoag".toCharArray());
    } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }

    SpringApplication.run(BcprovidertestApplication.class, args);
  }

IOException: error constructing MAC: java.lang.SecurityException: JCE cannot authenticate the provider BC this problem, Google basically modify the jdk: https://open.unionpay.com/cmweb/support/faq/mchlist?id=259 . But I changed it can not be, in the test environment found no report this error, check, the test environment with jdk1.8, my local use is 1.6, the local jdk to 1.8 will not report the error

Similar Posts:

  • java.security.NoSuchProviderException: no such provider: BC [Two Method]
  • How to Solve PHP error “Zend”_ mm_ heap corrupted”
  • Multiple JDK switch and solution of could not find java.dll exception in win10 environment
  • [Solved] javax.net.ssl.SSLException: java.lang.RuntimeException: Could not generate DH keypair
  • [Solved] Dubbo Error: No provider available for the service xxx from registry localhost:9090
  • [Solved] ARM/developmentstudio-2020.1 Error: Error: C9511E: Unable to determine the current toolkit. Check that ARM_TOOL_VARIANT is set correctly.
  • The problem of JUnit test report class not found in maven
  • Microsoft. Ace. OLEDB. 12.0 error reporting solution
  • Openstack build virtual machine Error: No valid host was found. There are not enough hosts available
  • Error reported in the celery log of the project: redis.exceptions.connectionerror failed to connect with redis

Good Day for all

I’m trying to develop a JCE Provider but I’ve had a problem while getting a Cipher instance. I can instantiate a signature object but when I try getting a Cipher instance I receive the following exception

Exception in thread «main» java.lang.SecurityException: JCE cannot authenticate the provider ProviderTeste
at javax.crypto.Cipher.getInstance(DashoA12275)
at javax.crypto.Cipher.getInstance(DashoA12275)
at providerteste.Teste.main(Teste.java:22)
Caused by: java.lang.SecurityException: Cannot verify jar:file:/C:/Desenvolvimento/workspace/ProviderTeste/bin/!/
at javax.crypto.SunJCE_d.b(DashoA12275)
at javax.crypto.SunJCE_d.a(DashoA12275)
at javax.crypto.SunJCE_d.a(DashoA12275)
at javax.crypto.SunJCE_b.b(DashoA12275)
at javax.crypto.SunJCE_b.a(DashoA12275)
… 3 more
Caused by: java.security.PrivilegedActionException: java.util.zip.ZipException: Acesso negado
at java.security.AccessController.doPrivileged(Native Method)
… 8 more
Caused by: java.util.zip.ZipException: Acesso negado
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:203)
at java.util.jar.JarFile.<init>(JarFile.java:132)
at java.util.jar.JarFile.<init>(JarFile.java:70)
at sun.net.www.protocol.jar.URLJarFile.<init>(URLJarFile.java:56)
at sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.java:41)
at sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:63)
at sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:102)
at sun.net.www.protocol.jar.JarURLConnection.getJarFile(JarURLConnection.java:69)
at javax.crypto.SunJCE_e.run(DashoA12275)
… 9 more

Thanks in advance

Я создаю свинг-приложение в Java, которое использует некоторую технику шифрования. Но
javax.crypto.KeyGenerator.getInstance(«AES», «BC») выдает исключение:

java.security.NoSuchProviderException: JCE cannot authenticate the provider BC
        at javax.crypto.SunJCE_b.a(DashoA13*..)
        at javax.crypto.KeyGenerator.getInstance(DashoA13*..)

Так в чем проблема?

4b9b3361

Ответ 1

Чтобы развернуть комментарий от GregS, все JAR-провайдеры JCE должны быть подписаны, прежде чем им будет доверена ваша среда выполнения Java.

BouncyCastle покорно поставляет подписанные JAR, которые будут работать без проблем. Однако, если вы извлекаете файлы классов из этого JAR или перекомпилируете исходный код, он удаляет подпись и заставляет Java отклонять код.

См. этот связанный вопрос SO: Как подписать пользовательский поставщик безопасности JCE

Ответ 2

  1. редактировать jrelibsecurityjava.security
  2. добавить security.provider.10=org.bouncycastle.jce.provider.BouncyCastleProvider
  3. скопировать bc*.jar в jrelibext

Ответ 3

Для тех, кто находит эту проблему, но на самом деле использует SpongyCastle, может быть интересно узнать, что на Android нет такого сигнатурного теста, и для ваших тестов вы можете использовать SpongyCastle через openJDK-8, поскольку это не волнует не подписи.

Для справки, при использовании SpongyCastle ошибка читается:

java.lang.SecurityException: JCE cannot authenticate the provider SC

Дополнительная информация в эта проблема

Ответ 4

Мы страдали от одной и той же проблемы в течение нескольких недель и перепробовали многие из предложенных шагов, но безрезультатно. Предоставляем наше решение ниже, чтобы другие не страдали, как мы!

Мы пытались использовать bcprov-ext-jdk15on-162.jar, добавленный в classpath, включенный в каталоги lib JBoss, связанный с WAR, помеченный как предоставленный и добавленный в каталоги JBoss/lib, но безуспешно.

В конце мы попробовали разные версии bouncycastle и нашли менее свежую версию, подпись которой может быть проверена нашим конкретным jarsigner версии Java (1.5X).

Несмотря на то, что подпись jar проверяется нашей версией Java, когда .jar упакован в WAR, подпись каким-то образом была признана недействительной JBoss.

В конце концов, решением для нас было:

1. Add bouncycastle jar to JBoss classpath
2. Add 'org.bouncycastle.jce.provider.BouncyCastleProvider' to 'java.security' providers
3. Mark bouncycastle in your WAR as a 'provided' dependency

Как только у нас была версия .jar на нашем пути к классам, и мы были уверены, что наша WAR не упаковывала ее, мы были золотыми.

Эта проблема тесно связана с любой версией Java/JBoss, которую вы используете. Так что, если это решение не работает для вас, я бы посоветовал протестировать разные версии bouncycastle с помощью

jarsigner -verify <bouncycastle.jar>

Ответ 5

Для меня проблема была в том, что bcprov-ext-jdk16.jar был sbt assembly.

[warn] Merging 'META-INF/license/LICENSE.bouncycastle.txt' with strategy 'discard'
..
[warn] Merging 'META-INF/maven/org.jasypt/jasypt/pom.properties' with strategy 'discard'
[warn] Merging 'META-INF/maven/org.jasypt/jasypt/pom.xml' with strategy 'discard'
..

В итоге я использовал bouncycastle.jar из -classpath как -classpath ниже,

java -Denvironment=dev -cp chat-server.jar:/Users/prayagupd/.ivy2/cache/org.bouncycastle/bcprov-ext-jdk16/jars/bcprov-ext-jdk16-1.46.jar com.chat.server.ChatServer

То, что также работает, помещает bouncycastle.jar в $JAVA_HOME/jre/lib/ext ,

cp /Users/prayagupd/.ivy2/cache/org.bouncycastle/bcprov-ext-jdk16/jars/bcprov-ext-jdk16-1.46.jar $JAVA_HOME/jre/lib/ext/

$ ls -l $JAVA_HOME/jre/lib/ext/
total 55208
-rw-r--r--  1 root  wheel   1887089 May  7 21:22 bcprov-ext-jdk16-1.46.jar
-rw-rw-r--  1 root  wheel   3860502 Sep  5  2017 cldrdata.jar
-rw-rw-r--  1 root  wheel      8286 Sep  5  2017 dnsns.jar
-rw-rw-r--  1 root  wheel     44516 Sep  5  2017 jaccess.jar
-rwxrwxr-x  1 root  wheel  18610276 Sep  5  2017 jfxrt.jar
-rw-rw-r--  1 root  wheel   1179093 Sep  5  2017 localedata.jar
-rw-rw-r--  1 root  wheel      1269 Sep  5  2017 meta-index
-rw-rw-r--  1 root  wheel   2022735 Sep  5  2017 nashorn.jar
-rw-rw-r--  1 root  wheel     41672 Sep  5  2017 sunec.jar
-rw-rw-r--  1 root  wheel    274148 Sep  5  2017 sunjce_provider.jar
-rw-rw-r--  1 root  wheel    248726 Sep  5  2017 sunpkcs11.jar
-rw-rw-r--  1 root  wheel     68924 Sep  5  2017 zipfs.jar

Ответ 6

К вашему сведению: вместо изменения java.security и копирования jar в jrelibext, следующие шаги также решили мою проблему.

  1. добавьте Security.addProvider (новый org.bouncycastle.jce.provider.BouncyCastleProvider()) в своем классе.
  2. добавить предоставленную область видимости в bcprov. *. jar зависимость в pom.xml.
  3. поместите bcprov. *. jar в вашу конкретную папку (например:lib), а затем отошлите его при запуске проекта.

Понравилась статья? Поделить с друзьями:
  • Error connecting to graphical console error opening spice console spiceclientgtk missing
  • Error connecting to googleapiclient что это
  • Error connecting to ftp server denied you to change to the given directory
  • Error constructing cesiumwidget
  • Error connecting to ftp access denied 530