summaryrefslogtreecommitdiff
path: root/smcc/src/main/java/at/gv/egiz/smcc/util/SMCCHelper.java
diff options
context:
space:
mode:
authortzefferer <tzefferer@8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4>2010-11-16 17:28:00 +0000
committertzefferer <tzefferer@8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4>2010-11-16 17:28:00 +0000
commitdc1fbf4259cd7f997f782b3fdac37015564ab96f (patch)
tree012ff29d759b700ff09c1df80cc32d1b733364a1 /smcc/src/main/java/at/gv/egiz/smcc/util/SMCCHelper.java
parent822819186188f60026818eabb31a48ae505027d2 (diff)
downloadmocca-dc1fbf4259cd7f997f782b3fdac37015564ab96f.tar.gz
mocca-dc1fbf4259cd7f997f782b3fdac37015564ab96f.tar.bz2
mocca-dc1fbf4259cd7f997f782b3fdac37015564ab96f.zip
Refactoring of DNIe card integration
git-svn-id: https://joinup.ec.europa.eu/svn/mocca/trunk@836 8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4
Diffstat (limited to 'smcc/src/main/java/at/gv/egiz/smcc/util/SMCCHelper.java')
-rw-r--r--smcc/src/main/java/at/gv/egiz/smcc/util/SMCCHelper.java38
1 files changed, 38 insertions, 0 deletions
diff --git a/smcc/src/main/java/at/gv/egiz/smcc/util/SMCCHelper.java b/smcc/src/main/java/at/gv/egiz/smcc/util/SMCCHelper.java
index d9816746..fd58964d 100644
--- a/smcc/src/main/java/at/gv/egiz/smcc/util/SMCCHelper.java
+++ b/smcc/src/main/java/at/gv/egiz/smcc/util/SMCCHelper.java
@@ -16,10 +16,12 @@
*/
package at.gv.egiz.smcc.util;
+import java.math.BigInteger;
import java.util.Locale;
import java.util.Map;
import javax.smartcardio.Card;
+import javax.smartcardio.CardException;
import javax.smartcardio.CardTerminal;
import org.slf4j.Logger;
@@ -142,6 +144,42 @@ public class SMCCHelper {
return sb.toString();
}
+ public static byte[] toByteArray(int val) throws CardException {
+
+ String hexString = Integer.toHexString(val);
+
+ if (hexString.length() > 4) {
+ throw new CardException(
+ "Unexpected input length to toByteArray() utility method: "
+ + hexString.length());
+ }
+
+ byte high = 0x00;
+ byte low = 0x00;
+
+ if (hexString.length() <= 2) {
+
+ low = (byte) Integer.parseInt(hexString, 16);
+ } else {
+
+ low = (byte) Integer.parseInt(hexString.substring(hexString
+ .length() - 2), 16);
+ high = (byte) Integer.parseInt(hexString.substring(0, hexString
+ .length() - 2), 16);
+ }
+
+ return new byte[] { high, low };
+ }
+
+ public static BigInteger createUnsignedBigInteger(byte[] data) {
+
+ byte[] unsigned = new byte[data.length + 1];
+ unsigned[0] = (byte) 0x00;
+ System.arraycopy(data, 0, unsigned, 1, data.length);
+
+ return new BigInteger(unsigned);
+ }
+
public static boolean isUseSWCard() {
return useSWCard;
}