fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6. import java.io.ByteArrayOutputStream;
  7. import java.security.Key;
  8. import java.security.KeyFactory;
  9. import java.security.spec.PKCS8EncodedKeySpec;
  10. import java.security.spec.X509EncodedKeySpec;
  11. import javax.crypto.Cipher;
  12.  
  13.  
  14.  
  15. class Ideone
  16. {
  17. public static void main (String[] args) throws java.lang.Exception
  18. {
  19. // your code goes here
  20. System.out.println("start..");
  21.  
  22. }
  23. public static byte[] decode(byte[] bArr, String str) {
  24. Key generatePrivate = KeyFactory.getInstance("RSA").generatePrivate(new PKCS8EncodedKeySpec(C1442b.m7299a(str)));
  25. Cipher instance = Cipher.getInstance("RSA/ECB/PKCS1Padding");
  26. instance.init(2, generatePrivate);
  27. return m6587a(bArr, instance, 128);
  28.  
  29. }
  30. private static byte[] m6587a(byte[] bArr, Cipher cipher, int i) {
  31. ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
  32. int length = bArr.length;
  33. int i2 = 0;
  34. while (i2 < length) {
  35. int min = Math.min(i, length - i2);
  36. byte[] doFinal = cipher.doFinal(bArr, i2, min);
  37. byteArrayOutputStream.write(doFinal, 0, doFinal.length);
  38. i2 += min;
  39. }
  40. byte[] toByteArray = byteArrayOutputStream.toByteArray();
  41. byteArrayOutputStream.close();
  42. return toByteArray;
  43. }
  44.  
  45. public static byte[] m6588b(byte[] bArr, String str) {
  46. Key generatePublic = KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(C1442b.m7299a(str)));
  47. Cipher instance = Cipher.getInstance("RSA/ECB/PKCS1Padding");
  48. instance.init(1, generatePublic);
  49. return m6587a(bArr, instance, 117);
  50. }
  51.  
  52.  
  53.  
  54.  
  55. }
  56.  
  57.  
  58.  
  59.  
  60.  
  61. class C1442b {
  62. private static final byte[] f8981a = new byte[128];
  63. private static final char[] f8982b = new char[64];
  64.  
  65. static {
  66. int i;
  67. int i2 = 0;
  68. for (i = 0; i <128; i++) {
  69. f8981a[i] = (byte) -1;
  70. }
  71. for (i = 90; i >= 65; i--) {
  72. f8981a[i] = (byte) (i - 65);
  73. }
  74. for (i = 122; i >= 97; i--) {
  75. f8981a[i] = (byte) ((i - 97) + 26);
  76. }
  77. for (i = 57; i >= 48; i--) {
  78. f8981a[i] = (byte) ((i - 48) + 52);
  79. }
  80. f8981a[43] = (byte) 62;
  81. f8981a[47] = (byte) 63;
  82. for (i = 0; i <= 25; i++) {
  83. f8982b[i] = (char) (i + 65);
  84. }
  85. int i3 = 26;
  86. i = 0;
  87. while (i3 <= 51) {
  88. f8982b[i3] = (char) (i + 97);
  89. i3++;
  90. i++;
  91. }
  92. i = 52;
  93. while (i <= 61) {
  94. f8982b[i] = (char) (i2 + 48);
  95. i++;
  96. i2++;
  97. }
  98. f8982b[62] = '+';
  99. f8982b[63] = '/';
  100. }
  101.  
  102. public static String m7297a(byte[] bArr) {
  103. int i = 0;
  104. if (bArr == null) {
  105. return null;
  106. }
  107. int length = bArr.length * 8;
  108. if (length == 0) {
  109. return "";
  110. }
  111. int i2 = length % 24;
  112. int i3 = length / 24;
  113. char[] cArr = new char[((i2 != 0 ? i3 + 1 : i3) * 4)];
  114. int i4 = 0;
  115. int i5 = 0;
  116. while (i4 < i3) {
  117. length = i + 1;
  118. byte b = bArr[i];
  119. int i6 = length + 1;
  120. byte b2 = bArr[length];
  121. int i7 = i6 + 1;
  122. byte b3 = bArr[i6];
  123. byte b4 = (byte) (b2 & 15);
  124. byte b5 = (byte) (b & 3);
  125. if ((b & -128) == 0) {
  126. i6 = (byte) (b >> 2);
  127. } else {
  128. byte b6 = (byte) ((b >> 2) ^ 192);
  129. }
  130. if ((b2 & -128) == 0) {
  131. i = (byte) (b2 >> 4);
  132. } else {
  133. b = (byte) ((b2 >> 4) ^ 240);
  134. }
  135. length = (b3 & -128) == 0 ? (byte) (b3 >> 6) : (byte) ((b3 >> 6) ^ 252);
  136. int i8 = i5 + 1;
  137. cArr[i5] = f8982b[i6];
  138. i6 = i8 + 1;
  139. cArr[i8] = f8982b[i | (b5 << 4)];
  140. i5 = i6 + 1;
  141. cArr[i6] = f8982b[length | (b4 << 2)];
  142. i = i5 + 1;
  143. cArr[i5] = f8982b[b3 & 63];
  144. i4++;
  145. i5 = i;
  146. i = i7;
  147. }
  148. byte b7;
  149. byte b8;
  150. byte b19;
  151. if (i2 == 8) {
  152. b7 = bArr[i];
  153. b8 = (byte) (b7 & 3);
  154. i = i5 + 1;
  155. cArr[i5] = f8982b[(b7 & -128) == 0 ? (byte) (b7 >> 2) : (byte) ((b7 >> 2) ^ 192)];
  156. length = i + 1;
  157. cArr[i] = f8982b[b8 << 4];
  158. i3 = length + 1;
  159. cArr[length] = '=';
  160. cArr[i3] = '=';
  161. } else if (i2 == 16) {
  162. b7 = bArr[i];
  163. b19 = bArr[i + 1];
  164. byte b6 = (byte) (b19 & 15);
  165. byte b9 = (byte) (b7 & 3);
  166. if ((b7 & -128) == 0) {
  167. i3 = (byte) (b7 >> 2);
  168. } else {
  169. b8 = (byte) ((b7 >> 2) ^ 192);
  170. }
  171. length = (b19 & -128) == 0 ? (byte) (b19 >> 4) : (byte) ((b19 >> 4) ^ 240);
  172. i = i5 + 1;
  173. cArr[i5] = f8982b[i3];
  174. i3 = i + 1;
  175. cArr[i] = f8982b[length | (b9 << 4)];
  176. length = i3 + 1;
  177. cArr[i3] = f8982b[b6 << 2];
  178. cArr[length] = '=';
  179. }
  180. return new String(cArr);
  181. }
  182.  
  183. private static boolean m7298a(char c) {
  184. return c == '=';
  185. }
  186.  
  187. public static byte[] m7299a(String str) {
  188. if (str == null) {
  189. return null;
  190. }
  191. int i;
  192. int length;
  193. int i2;
  194. int i3;
  195. char[] toCharArray = str.toCharArray();
  196. if (toCharArray == null) {
  197. i = 0;
  198. } else {
  199. length = toCharArray.length;
  200. i2 = 0;
  201. i = 0;
  202. while (i2 < length) {
  203. char c = toCharArray[i2];
  204. i3 = (c == ' ' || c == '\r' || c == '\n' || c == '\t') ? 1 : 0;
  205. if (i3 == 0) {
  206. i3 = i + 1;
  207. toCharArray[i] = toCharArray[i2];
  208. } else {
  209. i3 = i;
  210. }
  211. i2++;
  212. i = i3;
  213. }
  214. }
  215. if (i % 4 != 0) {
  216. return null;
  217. }
  218. int i4 = i / 4;
  219. if (i4 == 0) {
  220. return new byte[0];
  221. }
  222. char c2;
  223. byte[] aaa = new byte[(i4 * 3)];
  224. i = 0;
  225. i2 = 0;
  226. length = 0;
  227. while (length < i4 - 1) {
  228. int i5 = i + 1;
  229. char c3 = toCharArray[i];
  230. if (C1442b.m7300b(c3)) {
  231. i = i5 + 1;
  232. c2 = toCharArray[i5];
  233. if (C1442b.m7300b(c2)) {
  234. int i6 = i + 1;
  235. char c4 = toCharArray[i];
  236. if (C1442b.m7300b(c4)) {
  237. i = i6 + 1;
  238. char c5 = toCharArray[i6];
  239. if (C1442b.m7300b(c5)) {
  240. byte b = f8981a[c3];
  241. byte b2 = f8981a[c2];
  242. byte b3 = f8981a[c4];
  243. byte b4 = f8981a[c5];
  244. int i7 = i2 + 1;
  245. aaa[i2] = (byte) ((b << 2) | (b2 >> 4));
  246. int i8 = i7 + 1;
  247. aaa[i7] = (byte) (((b2 & 15) << 4) | ((b3 >> 2) & 15));
  248. i2 = i8 + 1;
  249. aaa[i8] = (byte) ((b3 << 6) | b4);
  250. length++;
  251. }
  252. }
  253. }
  254. }
  255. return null;
  256. }
  257. i4 = i + 1;
  258. char c6 = toCharArray[i];
  259. if (C1442b.m7300b(c6)) {
  260. int i5 = i4 + 1;
  261. char c7 = toCharArray[i4];
  262. if (C1442b.m7300b(c7)) {
  263. byte b = f8981a[c6];
  264. byte b5 = f8981a[c7];
  265. i = i5 + 1;
  266. c2 = toCharArray[i5];
  267. c6 = toCharArray[i];
  268. if (C1442b.m7300b(c2) && C1442b.m7300b(c6)) {
  269. byte b6 = f8981a[c2];
  270. byte b7 = f8981a[c6];
  271. int i9 = i2 + 1;
  272. aaa[i2] = (byte) ((b << 2) | (b5 >> 4));
  273. i2 = i9 + 1;
  274. aaa[i9] = (byte) (((b5 & 15) << 4) | ((b6 >> 2) & 15));
  275. aaa[i2] = (byte) (b7 | (b6 << 6));
  276. return aaa;
  277. } else if (C1442b.m7298a(c2) && C1442b.m7298a(c6)) {
  278. if ((b5 & 15) != 0) {
  279. return null;
  280. }
  281. byte[] r1 = new byte[((length * 3) + 1)];
  282. System.arraycopy(aaa, 0, r1, 0, length * 3);
  283. r1[i2] = (byte) ((b << 2) | (b5 >> 4));
  284. return r1;
  285. } else if (C1442b.m7298a(c2) || !C1442b.m7298a(c6)) {
  286. return null;
  287. } else {
  288. byte b8 = f8981a[c2];
  289. if ((b8 & 3) != 0) {
  290. return null;
  291. }
  292. byte[] r1 = new byte[((length * 3) + 2)];
  293. System.arraycopy(aaa, 0, r1, 0, length * 3);
  294. i3 = i2 + 1;
  295. r1[i2] = (byte) ((b << 2) | (b5 >> 4));
  296. r1[i3] = (byte) (((b5 & 15) << 4) | ((b8 >> 2) & 15));
  297. return r1;
  298. }
  299. }
  300. }
  301. return null;
  302. }
  303.  
  304. private static boolean m7300b(char c) {
  305. return c < '€' && f8981a[c] != (byte) -1;
  306. }
  307. }
  308.  
  309.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:24: error: unreported exception NoSuchAlgorithmException; must be caught or declared to be thrown
        Key generatePrivate = KeyFactory.getInstance("RSA").generatePrivate(new PKCS8EncodedKeySpec(C1442b.m7299a(str)));
                                                    ^
Main.java:24: error: unreported exception InvalidKeySpecException; must be caught or declared to be thrown
        Key generatePrivate = KeyFactory.getInstance("RSA").generatePrivate(new PKCS8EncodedKeySpec(C1442b.m7299a(str)));
                                                                           ^
Main.java:25: error: unreported exception NoSuchAlgorithmException; must be caught or declared to be thrown
        Cipher instance = Cipher.getInstance("RSA/ECB/PKCS1Padding");
                                            ^
Main.java:26: error: unreported exception InvalidKeyException; must be caught or declared to be thrown
        instance.init(2, generatePrivate);
                     ^
Main.java:36: error: unreported exception IllegalBlockSizeException; must be caught or declared to be thrown
            byte[] doFinal = cipher.doFinal(bArr, i2, min);
                                           ^
Main.java:41: error: unreported exception IOException; must be caught or declared to be thrown
        byteArrayOutputStream.close();
                                   ^
Main.java:46: error: unreported exception NoSuchAlgorithmException; must be caught or declared to be thrown
        Key generatePublic = KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(C1442b.m7299a(str)));
                                                   ^
Main.java:46: error: unreported exception InvalidKeySpecException; must be caught or declared to be thrown
        Key generatePublic = KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(C1442b.m7299a(str)));
                                                                         ^
Main.java:47: error: unreported exception NoSuchAlgorithmException; must be caught or declared to be thrown
        Cipher instance = Cipher.getInstance("RSA/ECB/PKCS1Padding");
                                            ^
Main.java:48: error: unreported exception InvalidKeyException; must be caught or declared to be thrown
        instance.init(1, generatePublic);
                     ^
10 errors
stdout
Standard output is empty