home *** CD-ROM | disk | FTP | other *** search
- public class JDPEncode {
- private static final char[] pem_array = new char[]{'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/'};
-
- private JDPEncode() {
- }
-
- public static final String base64Encode(String var0) {
- if (var0 == null) {
- return null;
- } else {
- byte[] var1 = new byte[var0.length()];
- var0.getBytes(0, var0.length(), var1, 0);
- return new String(base64Encode(var1), 0);
- }
- }
-
- public static final byte[] base64Encode(byte[] var0) {
- if (var0 == null) {
- return null;
- } else {
- byte[] var3 = new byte[(var0.length + 2) / 3 * 4];
- int var1 = 0;
- int var2 = 0;
-
- for(var2 = 0; var1 < var0.length - 2; var1 += 3) {
- var3[var2++] = (byte)(var0[var1] >>> 2 & 63);
- var3[var2++] = (byte)(var0[var1 + 1] >>> 4 & 15 | var0[var1] << 4 & 63);
- var3[var2++] = (byte)(var0[var1 + 2] >>> 6 & 3 | var0[var1 + 1] << 2 & 63);
- var3[var2++] = (byte)(var0[var1 + 2] & 63);
- }
-
- if (var1 < var0.length) {
- var3[var2++] = (byte)(var0[var1] >>> 2 & 63);
- if (var1 < var0.length - 1) {
- var3[var2++] = (byte)(var0[var1 + 1] >>> 4 & 15 | var0[var1] << 4 & 63);
- var3[var2++] = (byte)(var0[var1 + 1] << 2 & 63);
- } else {
- var3[var2++] = (byte)(var0[var1] << 4 & 63);
- }
- }
-
- for(var1 = 0; var1 < var2; ++var1) {
- if (var3[var1] < 26) {
- var3[var1] = (byte)(var3[var1] + 65);
- } else if (var3[var1] < 52) {
- var3[var1] = (byte)(var3[var1] + 97 - 26);
- } else if (var3[var1] < 62) {
- var3[var1] = (byte)(var3[var1] + 48 - 52);
- } else if (var3[var1] < 63) {
- var3[var1] = 43;
- } else {
- var3[var1] = 47;
- }
- }
-
- while(var1 < var3.length) {
- var3[var1] = 61;
- ++var1;
- }
-
- return var3;
- }
- }
-
- public static final String base64Decode(String var0) {
- if (var0 == null) {
- return null;
- } else {
- byte[] var1 = new byte[var0.length()];
- var0.getBytes(0, var0.length(), var1, 0);
- return new String(base64Decode(var1), 0);
- }
- }
-
- public static final byte[] base64Decode(byte[] var0) {
- int var3 = 0;
- byte var4 = -1;
- byte var5 = -1;
- byte var6 = -1;
- byte var7 = -1;
- byte[] var8 = new byte[var0.length / 4 * 3 - 1];
-
- for(int var9 = 0; var9 < var0.length - 4; var9 += 4) {
- int var1 = 0;
-
- do {
- if (var0[var9 + 0] == pem_array[var1]) {
- var4 = (byte)var1;
- }
-
- if (var0[var9 + 1] == pem_array[var1]) {
- var5 = (byte)var1;
- }
-
- if (var0[var9 + 2] == pem_array[var1]) {
- var6 = (byte)var1;
- }
-
- if (var0[var9 + 3] == pem_array[var1]) {
- var7 = (byte)var1;
- }
-
- ++var1;
- } while(var1 < 64);
-
- int var2 = 3;
- if (var0[var9 + 3] == 61) {
- var2 = var0[var9 + 2] == 61 ? 1 : 2;
- }
-
- switch (var2) {
- case 1:
- var8[var3++] = (byte)(var4 << 2 & 252 | var5 >>> 4 & 3);
- break;
- case 2:
- var8[var3++] = (byte)(var4 << 2 & 252 | var5 >>> 4 & 3);
- var8[var3++] = (byte)(var5 << 4 & 240 | var6 >>> 2 & 15);
- break;
- case 3:
- var8[var3++] = (byte)(var4 << 2 & 252 | var5 >>> 4 & 3);
- var8[var3++] = (byte)(var5 << 4 & 240 | var6 >>> 2 & 15);
- var8[var3++] = (byte)(var6 << 6 & 192 | var7 & 63);
- }
- }
-
- return var8;
- }
- }
-