Ich habe RSA öffentlichen und privaten Schlüssel in zwei verschiedenen Dateien. Das habe ich bisher gemacht.verschlüsseln AES-Schlüssel mit RSA öffentlichen Schlüsseldatei in Java
public SecretKey getAESkey() throws Exception, NoSuchAlgorithmException{
KeyGenerator generator = KeyGenerator.getInstance("AES");
generator.init(128);
SecretKey sKey = generator.generateKey();
return sKey; // will be passed to encryptSecretKey method
}
public byte[] encryptSecretKey (SecretKey sKey)
{
Cipher cipher = null;
byte[] key = null;
try
{
// initialize the cipher with the user's public key
cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
cipher.init(Cipher.ENCRYPT_MODE, keyHolder.keyPair.getPublic());
key = cipher.doFinal(sKey.getEncoded());
}
catch(Exception e)
{
e.printStackTrace();
}
return key;
}
Ich habe es falsch gemacht. Ich habe ein Objekt (keyHolder) erstellt, das den öffentlichen und den privaten Schlüssel enthält. Und ich versuche, Zugang zu seinem öffentlichen Schlüssel zu haben, indem ich getPublic() Methode aufrufe. Stattdessen möchte ich direkt auf meine öffentliche Schlüsseldatei zugreifen und ihren Byte-Stream lesen, um meinen AES-Schlüssel zu verschlüsseln. Wie mache ich das?