0

今、私は新しいプロバイダー (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();
  } 
}
}

この問題の解決を手伝ってください

ありがとう

4

2 に答える 2

1

実際には、Sun をルートとする証明書の要件をバイパスして、独自のプロバイダーに署名することができます: Java HotSpot Cryptographic Provider signature validation issue。そしてもちろん、前にここを見てください:http://download.oracle.com/javase/6/docs/technotes/guides/security/crypto/HowToImplAProvider.html#Step61

于 2013-06-20T20:56:40.517 に答える
0

いいえ、独自の JVM を作成しない限り、認証できません。それ以外の場合は、JVM プロバイダー (Oracle) に Jar への署名を依頼してください。

于 2012-07-29T19:28:01.903 に答える