diff --git a/pom.xml b/pom.xml index 5f49b1e..a069778 100644 --- a/pom.xml +++ b/pom.xml @@ -66,6 +66,27 @@ junit test - + + + + + + org.apache.maven.plugins + maven-source-plugin + 2.2.1 + + + attach-sources + verify + + jar-no-fork + + + + + + \ No newline at end of file diff --git a/src/main/java/au/com/xandar/crypto/CryptoPacketConverter.java b/src/main/java/au/com/xandar/crypto/CryptoPacketConverter.java index cb196c6..7032df7 100644 --- a/src/main/java/au/com/xandar/crypto/CryptoPacketConverter.java +++ b/src/main/java/au/com/xandar/crypto/CryptoPacketConverter.java @@ -14,6 +14,8 @@ import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.nio.charset.Charset; /** * Responsible for converting a CryptoPacket into a Base64 String and vice versa. @@ -44,7 +46,13 @@ public String convert(CryptoPacket cryptoPacket) throws CryptoException { } public CryptoPacket convert(String base64Payload) throws CryptoException { - final byte[] payloadBytes = base64.decode(base64Payload.getBytes()); + final byte[] payloadBytes; + try { + payloadBytes = base64.decode(base64Payload.getBytes("UTF-8")); + } catch (UnsupportedEncodingException e) { + // UTF-8 should always be supported. + throw new CryptoException("Could not decode Base64 String", e); + } final ByteArrayInputStream stream = new ByteArrayInputStream(payloadBytes); final byte[] encryptedData = readByteArray(stream);