home /
connvers /
src /
main /
java /
avividi /
connvers /
crypto /
EncryptedMessageEncoder.java
EncryptedMessageEncoder.java
package avividi.connvers.crypto;
import avividi.connvers.protocol.BasicMessageEncoder;
import avividi.connvers.protocol.Message;
import avividi.connvers.protocol.MessageEncoder;
import avividi.connvers.protocol.ValidationException;
public class EncryptedMessageEncoder implements MessageEncoder {
private final Encrypter encrypter;
private final BasicMessageEncoder encoder = new BasicMessageEncoder();
public EncryptedMessageEncoder(String key) {
encrypter = new Encrypter();
encrypter.setKey(key);
}
public EncryptedMessageEncoder() {
encrypter = new Encrypter();
encrypter.generateKey();
}
@Override
public String encode(Message message) {
return "connvenc1-" + encrypter.encrypt(encoder.encode(message));
}
@Override
public Message decode(String raw) throws ValidationException {
String portion = raw.substring("connvenc1-".length());
return encoder.decode(encrypter.decrypt(portion));
}
}