2013-05-20 60 views
2

我很難理解如何使用提供給我的私鑰和公鑰文件。如何使用BouncyCastle從文件中檢索公鑰/私鑰?

我有2個文件,public.pemprivate.pem。我試圖用BouncyCastle來獲取公鑰和私鑰。我寫了這個類,試圖提取鍵:

public class KeyReaders { 

    public static class PublicKeyReader { 

     public static byte[] get(String filename) 
       throws Exception { 

      FileReader f = new FileReader(filename); 

      PEMParser pp = new PEMParser(f); 
      SubjectPublicKeyInfo o = (SubjectPublicKeyInfo)pp.readObject(); 

      return o.parsePublicKey().getEncoded(); 
     } 
    } 

    public static class PrivateKeyReader { 

     public static byte[] get(String filename) 
       throws Exception { 

      FileReader f = new FileReader(filename); 

      PEMParser pp = new PEMParser(f); 
      PEMKeyPair o = (PEMKeyPair)pp.readObject(); 


      return o.getPrivateKeyInfo().getEncoded(); 
     } 
    } 
} 

我似乎無法弄清楚如何使用這些密鑰解碼文件。我有一個文件,test.txt,我不能使用私鑰解碼。我不是100%確定這是甚至在.PEM文件中讀取的適當方式。

那麼,如何在給定私鑰文件的情況下使用BouncyCastle解碼文本文件?

+0

立即將它們重新編碼爲「byte []」似乎是一個錯誤。任何加密API都可能需要您已解碼的PublicKey或PrivateKey。 – erickson

+0

我想弄清楚如何獲得基本公鑰和私鑰。 – meriley

回答

0

我假設您正在嘗試生成常規JCA密鑰對。你有沒有嘗試過使用JcaPEMKeyConverter類?它位於org.bouncycastle.openssl.jcajce包中。