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);