Hi Leute,
ich bin möchte Objekte mithilfe von RSA ver-/entschlüsseln.
Eine
ist ein normales, serialisierbares Objekt, und eine
und enthält einen
. Das Serialisieren des Objektes selbst klappt und ich bekomme circa 500 Bytes raus, aber sobald ich es durch den
geschrieben habe bekomme ich 0 bytes.
Hab ich da was vergessen?
Vielen Dank
ich bin möchte Objekte mithilfe von RSA ver-/entschlüsseln.
Eine
Code:
Message
Code:
EncryptedMessage extends Message
Code:
byte[]
Code:
CipherOutputStream
Hab ich da was vergessen?
Java:
/**
*
*/
private static final String ALGORITHM = "RSA";
/**
* @param pubkey
* @param m
* @return
*/
public EncryptedMessage encrypt(PublicKey pubkey, Message m) {
try {
Cipher cipher = Cipher.getInstance(ALGORITHM);
cipher.init(Cipher.ENCRYPT_MODE, pubkey);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
CipherOutputStream cos = new CipherOutputStream(bos, cipher);
ObjectOutputStream oos = new ObjectOutputStream(cos);
oos.writeObject(m);
oos.flush();
byte[] encryptedBytes = bos.toByteArray();
return new EncryptedMessage(encryptedBytes);
} catch (Exception ex) {
ex.printStackTrace();
}
return null;
}
/**
* @param privkey
* @param m
* @return
*/
public Message decrypt(PrivateKey privkey, EncryptedMessage m) {
if (m.getContent() != null && m.getContent().length > 0) {
try {
Cipher cipher = Cipher.getInstance(ALGORITHM);
cipher.init(Cipher.DECRYPT_MODE, privkey);
ByteArrayInputStream bin = new ByteArrayInputStream(
m.getContent());
CipherInputStream cin = new CipherInputStream(bin, cipher);
ObjectInputStream in = new ObjectInputStream(cin);
return (Message) in.readObject();
} catch (Exception ex) {
ex.printStackTrace();
}
}
return null;
}
}
Vielen Dank