(String encryptedData,String sessionKey,String iv,String encodemode, String ivmode , String paddingmode ,String sSrcmode,String keyivmode)
| 127 | } |
| 128 | |
| 129 | public static String decryptKeyivmode(String encryptedData,String sessionKey,String iv,String encodemode, String ivmode , String paddingmode ,String sSrcmode,String keyivmode) throws Exception { |
| 130 | encryptedData = encryptedData.trim(); |
| 131 | // BurpExtender.stdout.println(encryptedData); |
| 132 | // BurpExtender.stdout.println(sessionKey); |
| 133 | // BurpExtender.stdout.println(iv); |
| 134 | // BurpExtender.stdout.println(encodemode); |
| 135 | // BurpExtender.stdout.println(ivmode); |
| 136 | // BurpExtender.stdout.println(paddingmode); |
| 137 | // BurpExtender.stdout.println(sSrcmode); |
| 138 | // BurpExtender.stdout.println(keyivmode); |
| 139 | // |
| 140 | //// encryptedData = URLDecoder.decode(encryptedData, "utf-8"); |
| 141 | // if (IndexautoDecoder.getRadioButton11State()) |
| 142 | // encryptedData = URLDecoder.decode(encryptedData, "utf-8"); |
| 143 | |
| 144 | Boolean zero = false; |
| 145 | if (paddingmode.equals("ZeroPadding")) { |
| 146 | paddingmode = "NoPadding"; |
| 147 | zero = true; |
| 148 | } |
| 149 | |
| 150 | if (encodemode.equals("null")) |
| 151 | return encryptedData; |
| 152 | else if (encodemode.equals("RSA")){ |
| 153 | try { |
| 154 | |
| 155 | return decrypt(encryptedData, iv); |
| 156 | |
| 157 | }catch (Exception e){ |
| 158 | return "RSA解密错误"; |
| 159 | } |
| 160 | } else if (encodemode.equals("SM2")){ |
| 161 | try { |
| 162 | SM2 sm2 = SmUtil.sm2(Base64.decodeBase64(iv), Base64.decodeBase64("MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEGjh3yHFUvIQNC0rz6Y5/2/nYS+6jtkfXqnzKVcjrL+h5nRBhWJ1T/xg1lhnTE367iaJ3xD31CDIf/wpVJj+IgQ==")); |
| 163 | |
| 164 | return StrUtil.utf8Str(sm2.decryptFromBcd(encryptedData, KeyType.PrivateKey)); |
| 165 | |
| 166 | }catch (Exception e){ |
| 167 | e.printStackTrace(); |
| 168 | return "SM2解密错误"; |
| 169 | } |
| 170 | } else if(encodemode.equals("SM4")){ // SM4 |
| 171 | try { |
| 172 | byte[] data = new byte[0]; |
| 173 | byte[] aseKey = new byte[0]; |
| 174 | byte[] ivData = new byte[0]; |
| 175 | |
| 176 | if (sSrcmode.equals("Base64") ) { |
| 177 | // System.out.println(URLDecoder.decode(encryptedData, "utf-8").replace(" ", "+")); |
| 178 | // System.out.println(base64ToHex(URLDecoder.decode(encryptedData, "utf-8").replace(" ", "+"))); |
| 179 | data = base64ToHex(URLDecoder.decode(encryptedData, "utf-8").replace(" ", "+")); |
| 180 | // System.out.println(Arrays.toString(data)); |
| 181 | } |
| 182 | if ( sSrcmode.equals("null") || sSrcmode.equals("Hex")) { |
| 183 | data = (URLDecoder.decode(encryptedData, "utf-8").replace(" ", "+")).getBytes(StandardCharsets.UTF_8); |
| 184 | } |
| 185 | |
| 186 | // if (sSrcmode.equals("Hex")) { |
no test coverage detected