home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 7: Programming / CDAT7.iso / Share / Java / JDesignerPro / Jdp3_0.exe / data1.cab / Program_Files / JDPEncode.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-04-09  |  1.7 KB  |  129 lines

  1. public class JDPEncode {
  2.    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', '+', '/'};
  3.  
  4.    private JDPEncode() {
  5.    }
  6.  
  7.    public static final String base64Encode(String var0) {
  8.       if (var0 == null) {
  9.          return null;
  10.       } else {
  11.          byte[] var1 = new byte[var0.length()];
  12.          var0.getBytes(0, var0.length(), var1, 0);
  13.          return new String(base64Encode(var1), 0);
  14.       }
  15.    }
  16.  
  17.    public static final byte[] base64Encode(byte[] var0) {
  18.       if (var0 == null) {
  19.          return null;
  20.       } else {
  21.          byte[] var3 = new byte[(var0.length + 2) / 3 * 4];
  22.          int var1 = 0;
  23.          int var2 = 0;
  24.  
  25.          for(var2 = 0; var1 < var0.length - 2; var1 += 3) {
  26.             var3[var2++] = (byte)(var0[var1] >>> 2 & 63);
  27.             var3[var2++] = (byte)(var0[var1 + 1] >>> 4 & 15 | var0[var1] << 4 & 63);
  28.             var3[var2++] = (byte)(var0[var1 + 2] >>> 6 & 3 | var0[var1 + 1] << 2 & 63);
  29.             var3[var2++] = (byte)(var0[var1 + 2] & 63);
  30.          }
  31.  
  32.          if (var1 < var0.length) {
  33.             var3[var2++] = (byte)(var0[var1] >>> 2 & 63);
  34.             if (var1 < var0.length - 1) {
  35.                var3[var2++] = (byte)(var0[var1 + 1] >>> 4 & 15 | var0[var1] << 4 & 63);
  36.                var3[var2++] = (byte)(var0[var1 + 1] << 2 & 63);
  37.             } else {
  38.                var3[var2++] = (byte)(var0[var1] << 4 & 63);
  39.             }
  40.          }
  41.  
  42.          for(var1 = 0; var1 < var2; ++var1) {
  43.             if (var3[var1] < 26) {
  44.                var3[var1] = (byte)(var3[var1] + 65);
  45.             } else if (var3[var1] < 52) {
  46.                var3[var1] = (byte)(var3[var1] + 97 - 26);
  47.             } else if (var3[var1] < 62) {
  48.                var3[var1] = (byte)(var3[var1] + 48 - 52);
  49.             } else if (var3[var1] < 63) {
  50.                var3[var1] = 43;
  51.             } else {
  52.                var3[var1] = 47;
  53.             }
  54.          }
  55.  
  56.          while(var1 < var3.length) {
  57.             var3[var1] = 61;
  58.             ++var1;
  59.          }
  60.  
  61.          return var3;
  62.       }
  63.    }
  64.  
  65.    public static final String base64Decode(String var0) {
  66.       if (var0 == null) {
  67.          return null;
  68.       } else {
  69.          byte[] var1 = new byte[var0.length()];
  70.          var0.getBytes(0, var0.length(), var1, 0);
  71.          return new String(base64Decode(var1), 0);
  72.       }
  73.    }
  74.  
  75.    public static final byte[] base64Decode(byte[] var0) {
  76.       int var3 = 0;
  77.       byte var4 = -1;
  78.       byte var5 = -1;
  79.       byte var6 = -1;
  80.       byte var7 = -1;
  81.       byte[] var8 = new byte[var0.length / 4 * 3 - 1];
  82.  
  83.       for(int var9 = 0; var9 < var0.length - 4; var9 += 4) {
  84.          int var1 = 0;
  85.  
  86.          do {
  87.             if (var0[var9 + 0] == pem_array[var1]) {
  88.                var4 = (byte)var1;
  89.             }
  90.  
  91.             if (var0[var9 + 1] == pem_array[var1]) {
  92.                var5 = (byte)var1;
  93.             }
  94.  
  95.             if (var0[var9 + 2] == pem_array[var1]) {
  96.                var6 = (byte)var1;
  97.             }
  98.  
  99.             if (var0[var9 + 3] == pem_array[var1]) {
  100.                var7 = (byte)var1;
  101.             }
  102.  
  103.             ++var1;
  104.          } while(var1 < 64);
  105.  
  106.          int var2 = 3;
  107.          if (var0[var9 + 3] == 61) {
  108.             var2 = var0[var9 + 2] == 61 ? 1 : 2;
  109.          }
  110.  
  111.          switch (var2) {
  112.             case 1:
  113.                var8[var3++] = (byte)(var4 << 2 & 252 | var5 >>> 4 & 3);
  114.                break;
  115.             case 2:
  116.                var8[var3++] = (byte)(var4 << 2 & 252 | var5 >>> 4 & 3);
  117.                var8[var3++] = (byte)(var5 << 4 & 240 | var6 >>> 2 & 15);
  118.                break;
  119.             case 3:
  120.                var8[var3++] = (byte)(var4 << 2 & 252 | var5 >>> 4 & 3);
  121.                var8[var3++] = (byte)(var5 << 4 & 240 | var6 >>> 2 & 15);
  122.                var8[var3++] = (byte)(var6 << 6 & 192 | var7 & 63);
  123.          }
  124.       }
  125.  
  126.       return var8;
  127.    }
  128. }
  129.