2011-03-11 33 views
0

我需要在我的java應用程序中生成認證鏈,因爲在將privatekey存儲到密鑰存儲區時需要它嗎?有人能幫助我嗎?我不知道如何去做。生成認證鏈

我需要生成RSA密鑰對,然後將它存儲到密鑰庫。現在我的代碼如下所示:

public static void main(String[] args) 
{ 
      String issuerDN = null; 
      String addKeyName = "mynewkey"; 
    String delKeyName = null; 
    String password = "2222"; 
    boolean listStore = true; 
      boolean deleteKeysAftherWrap = false; 

    try 
    { 
     /* make sure that we have access to the eracom provider */ 
     Provider p = new ERACOMProvider(); 
     Security.addProvider(p); 

        int keySize = 1024; 
     KeyPair keyPair = null; 

     /* get the eracom keystore - access to the adapter */ 
     KeyStore keyStore = KeyStore.getInstance("CRYPTOKI", p.getName()); 

     /* LOAD the keystore from the adapter */ 
     keyStore.load(null, password.toCharArray()); 

     if (addKeyName != null) 
     { 
      /* This key cannot be added to the keystore if it already exists */ 
      if (keyStore.containsAlias(addKeyName)) 
      { 
       println(""); 
       println("Key name already exists"); 
       println(""); 
      } 

      KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA", p.getName()); 

          keyPairGenerator.initialize(keySize); 

          keyPair = keyPairGenerator.generateKeyPair(); 

          PublicKey pubKey = keyPair.getPublic(); 
          PrivateKey privKey = keyPair.getPrivate(); 

      keyStore.setKeyEntry("newpub", pubKey, null, null); 
          keyStore.setKeyEntry("newpriv", privKey, null, null}); 
     } 

生成密鑰,但它要求證書鏈存儲私鑰。 這就是現在的問題。我如何生成認證鏈,是否必須首先生成認證,如果是,那麼如何?

+0

你的問題太含糊。你打算做什麼?什麼樣的環境(JEE,桌面等)?到目前爲止你做了什麼? –

回答

0

不知道你想要達到什麼,但前段時間我用這個小應用程序(包括源代碼)將現有的私鑰插入到密鑰庫中。希望你會發現這個有用的:http://www.agentbob.info/agentbob/79-AB.html

+0

謝謝,但是當我將認證作爲一個文件allready創建時,這將工作。我需要以某種方式生成它.. – hs2d

+0

如果您嘗試生成自簽名證書,請使用apache。看下面的鏈接。 http://slacksite.com/apache/certificate.php – isurusndr