Как аутентифицировать моего собственного провайдера (только для целей тестирования) - PullRequest
0 голосов
/ 05 апреля 2010

Теперь я написал нового провайдера (провайдера ESMJCE), и я также написал простое приложение для его тестирования, но у меня есть некоторые исключения, подобные этому

java.lang.SecurityException: JCE cannot authenticate the provider ESMJCE
at javax.crypto.Cipher.getInstance(DashoA13*..)
at javax.crypto.Cipher.getInstance(DashoA13*..)
at testprovider.main(testprovider.java:27)
Caused by: java.util.jar.JarException: Cannot parse file:/C:/Program%20Files/Java/jre1.6.0_02/lib/ext/abc.jar
at javax.crypto.SunJCE_c.a(DashoA13*..)
at javax.crypto.SunJCE_b.b(DashoA13*..)
at javax.crypto.SunJCE_b.a(DashoA13*..)
... 3 more

А вот и мой исходный код

import java.security.Provider;
import java.security.Security;
import javax.crypto.Cipher;
import esm.jce.provider.ESMProvider;

public class testprovider {

/
@param args
/
public static void main(String[] args) {
  // TODO Auto-generated method stub
  ESMProvider esmprovider = new esm.jce.provider.ESMProvider();

  Security.insertProviderAt(esmprovider,2);

  Provider[] temp = Security.getProviders();
  for (int i= 0; i<temp.length; i++){
    System.out.println("Providers: " temp[i].getName());
  }
  try{
    Cipher cipher = Cipher.getInstance("DES", "ESMJCE");
    System.out.println("Cipher: " cipher);
    int blockSize= cipher.getBlockSize();
    System.out.println("blockSize= " + blockSize);
  }catch (Exception e){
    e.printStackTrace();
  } 
}
}

Пожалуйста, помогите мне решить эту проблему

Спасибо

Ответы [ 2 ]

1 голос
/ 21 июня 2013

на самом деле вы можете обойти требование получения сертификата Sun-root и подписать провайдера самостоятельно: Проблема проверки подписи провайдера криптографии Java HotSpot . И конечно посмотрите сюда раньше: http://download.oracle.com/javase/6/docs/technotes/guides/security/crypto/HowToImplAProvider.html#Step61

0 голосов
/ 29 июля 2012

Нет, вы не можете аутентифицировать его, если не напишите свою собственную JVM. В противном случае попросите поставщика JVM (Oracle) подписать ваши Jars.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...