From 4c21165f8dee41df2e457fb82395584a8612fbbb Mon Sep 17 00:00:00 2001 From: free will <2647778488@qq.com> Date: Fri, 23 Jul 2021 15:08:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=9D=E8=AF=95=E4=BA=86=E5=90=84=E7=A7=8D?= =?UTF-8?q?=E6=96=B9=E6=B3=95=EF=BC=8C=E6=B2=A1=E6=9C=89=E8=A7=A3=E5=86=B3?= =?UTF-8?q?=E5=AE=89=E5=8D=93=E4=B8=8Ejre=E7=9A=84javax.encrypto=E5=86=B2?= =?UTF-8?q?=E7=AA=81=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=8C=E4=B8=8B=E5=91=A8?= =?UTF-8?q?=E5=87=86=E5=A4=87=E8=BF=94=E7=92=9E=E5=BD=92=E7=9C=9F=EF=BC=8C?= =?UTF-8?q?=E4=B8=8D=E4=BD=BF=E7=94=A8sm4=E8=80=8C=E9=87=8D=E6=96=B0?= =?UTF-8?q?=E4=BD=BF=E7=94=A8aes=E8=BF=9B=E8=A1=8C=E5=AF=B9=E7=A7=B0?= =?UTF-8?q?=E5=8A=A0=E5=AF=86=E9=80=9A=E4=BF=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 15 +- app/libs/vpnjce-1.0.jar | Bin 0 -> 113046 bytes .../services/MINVpnConnection.java | 35 +++-- .../min_vpn_client/utils/IPPackageUtil.java | 2 + .../utils/SM2HelperForConnection.java | 2 +- .../utils/SM3HelperForConnection.java | 29 ++++ .../utils/SM4HelperForConnection.java | 38 +++++ .../utils/gmutil/sm4/VPN_SM4.java | 140 ++++++++++++++++++ 8 files changed, 245 insertions(+), 16 deletions(-) create mode 100644 app/libs/vpnjce-1.0.jar create mode 100644 app/src/main/java/com/pkusz/min_vpn_client/utils/SM3HelperForConnection.java create mode 100644 app/src/main/java/com/pkusz/min_vpn_client/utils/gmutil/sm4/VPN_SM4.java diff --git a/app/build.gradle b/app/build.gradle index 31ce05a..699a4eb 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -34,7 +34,7 @@ android { } compileSdkVersion 30 - buildToolsVersion "30.0.3" + buildToolsVersion '30.0.3' sourceSets.main.jniLibs.srcDirs = ['libs'] @@ -75,8 +75,17 @@ android { } dependencies { - implementation files('libs\\gmhelper.jar') - implementation files('libs\\BaiduLBS_Android.jar') + implementation files('libs/gmhelper.jar') + implementation files('libs/BaiduLBS_Android.jar') + implementation files('libs/vpnjce-1.0.jar') + + // 在依赖中添加对jre的依赖,以尝试解决android.jar中原生javax与java中的javax的冲突问题 + //noinspection GradlePath +// implementation files('C:/MyEnv/Java/jdk1.8.0_301/jre/lib/rt.jar') +// compileOnly files('C:/MyEnv/Java/jdk1.8.0_301/jre/lib/rt.jar') +// implementation files('C:/MyEnv/Java/jdk1.8.0_301/jre/lib/jce.jar') +// compileOnly files('C:/MyEnv/Java/jdk1.8.0_301/jre/lib/jce.jar') +// implementation files('libs\\jce.jar') // testImplementation 'junit:junit:4.+' androidTestImplementation 'androidx.test.ext:junit:1.1.2' diff --git a/app/libs/vpnjce-1.0.jar b/app/libs/vpnjce-1.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..7fd84c87d05ddeb9208680eaffb8d0c78108b13f GIT binary patch literal 113046 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

c!T=U2#wXZzOCGMMYC87J+c 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 mPackages; - // todo: ?? + // 服务器给客户端的tun网卡分配的IP地址 private String allocatedAddress; // 待决Intent、回调函数(建立连接成功;建立连接失败;长时间不操作的超时回调) @@ -127,8 +125,11 @@ public class MINVpnConnection implements Runnable{ mServerPort=serverPort; mSharedSecret=sharedSecret; mSharedSecretString=new String(mSharedSecret); -// mEncryptedAESSeed= RSACryptoForConnection.encrypt5(mSharedSecretString); - mEncryptedAESSeed= SM2HelperForConnection.encrypt(mSharedSecretString); + mEncryptedAESSeed= SM2HelperForConnection.encryptWithSM2(mSharedSecretString); + realSecret= SM3HelperForConnection.getSM3Hash16(mSharedSecret); + + // 测试sm4 + SM4HelperForConnection.encryptWithSM4(realSecret, "sss".getBytes()); // 代理地址(?) if(!TextUtils.isEmpty(proxyHostName)) { @@ -218,7 +219,12 @@ public class MINVpnConnection implements Runnable{ byte[] ipPackageData = new byte[readLen]; System.arraycopy(buff1.array(), 0, ipPackageData, 0, readLen); System.out.println("mSharedSecretString length: "+mSharedSecretString.length()); - byte[] encrytedIPPackage = SM4HelperForConnection.encryptWithSM4(mSharedSecretString, ipPackageData); + System.out.println("realSecret length: "+realSecret.length); + byte[] encrytedIPPackage = SM4HelperForConnection.encryptWithSM4(realSecret, ipPackageData); + if(encrytedIPPackage==null){ + System.out.println("sm4加密错误!!!"); + return; + } System.out.println("encryptedIPPackage len: " + encrytedIPPackage.length); System.out.println("buff2 position: " + buff2.position()); buff2.put(encrytedIPPackage); @@ -243,7 +249,12 @@ public class MINVpnConnection implements Runnable{ // face.registerIdentifier(new Identifier(this.localPrefix),5000,helper); // 2. 接收服务器返回的数据包,放入buf2 - CPacket interest = face.receiveCPacket(-1); + CPacket interest; + try { + interest = face.receiveCPacket(0); + }catch (Exception e){ + continue; + } System.out.println("recv interest packet, name : " + interest.getSrcIdentifier().toString()); System.out.println("兴趣包中装的数据长度 : " + interest.payload.getValue().length); int dataLen = interest.payload.getValue().length; @@ -256,7 +267,7 @@ public class MINVpnConnection implements Runnable{ System.arraycopy(buf2.array(), 0, decrpytedIPPackage, 0, buf2.position()); ByteBuffer buf3 = ByteBuffer.allocate(5000); // buf3.put(Objects.requireNonNull(AESHelperForConnection.decryptWithAES(mSharedSecretString, decrpytedIPPackage))); - buf3.put(Objects.requireNonNull(SM4HelperForConnection.decryptWithSM4(mSharedSecretString, decrpytedIPPackage))); + buf3.put(Objects.requireNonNull(SM4HelperForConnection.decryptWithSM4(realSecret, decrpytedIPPackage))); int decryptedDataLen = buf3.position(); byte firstByte = buf3.get(0); if (firstByte == 0) { @@ -270,7 +281,7 @@ public class MINVpnConnection implements Runnable{ System.out.println("transfer data error: outputStream.write error"); } } - } catch (SecurityException | LogicFaceException e) { + } catch (SecurityException e) { e.printStackTrace(); System.out.println("transfer data error: recvFromServerAndReadThread.start error"); } diff --git a/app/src/main/java/com/pkusz/min_vpn_client/utils/IPPackageUtil.java b/app/src/main/java/com/pkusz/min_vpn_client/utils/IPPackageUtil.java index a866bee..bbe3875 100644 --- a/app/src/main/java/com/pkusz/min_vpn_client/utils/IPPackageUtil.java +++ b/app/src/main/java/com/pkusz/min_vpn_client/utils/IPPackageUtil.java @@ -22,4 +22,6 @@ public class IPPackageUtil { return null; } + + } diff --git a/app/src/main/java/com/pkusz/min_vpn_client/utils/SM2HelperForConnection.java b/app/src/main/java/com/pkusz/min_vpn_client/utils/SM2HelperForConnection.java index 5d1b38c..92f4d6e 100644 --- a/app/src/main/java/com/pkusz/min_vpn_client/utils/SM2HelperForConnection.java +++ b/app/src/main/java/com/pkusz/min_vpn_client/utils/SM2HelperForConnection.java @@ -24,7 +24,7 @@ public class SM2HelperForConnection { // return enRes; // } - public static byte[] encrypt(String data){ + public static byte[] encryptWithSM2(String data){ byte[] enRes; try { enRes = BC_KeyManager.sm2encrypt(pubkey_ForNewVPN.getBytes(StandardCharsets.UTF_8), diff --git a/app/src/main/java/com/pkusz/min_vpn_client/utils/SM3HelperForConnection.java b/app/src/main/java/com/pkusz/min_vpn_client/utils/SM3HelperForConnection.java new file mode 100644 index 0000000..9283019 --- /dev/null +++ b/app/src/main/java/com/pkusz/min_vpn_client/utils/SM3HelperForConnection.java @@ -0,0 +1,29 @@ +package com.pkusz.min_vpn_client.utils; +/* + * @Author: Wang Feng + * @Description: + * @Version: 1.0.0 + * @Date: 10:07 2021/7/22 + * @Copyright: MIN-Group;国家重大科技基础设施——未来网络北大实验室;深圳市信息论与未来网络重点实验室 + */ + +import org.zz.gmhelper.SM3Util; + +import java.util.Arrays; + +public class SM3HelperForConnection { + /** + * 将传入参数使用sm3做哈希,然后返回前16个字节 + * @param randBytes + * @return + */ + public static byte[] getSM3Hash16(byte[] randBytes){ + System.out.println("sm3哈希之前的密钥:"+new String(randBytes)); + byte[] hashRes=SM3Util.hash(randBytes); + byte[] res=new byte[16]; + System.arraycopy(hashRes,0,res,0,16); + System.out.println("sm3哈希得到的密钥:"+res.length+" , "+new String(res)); + System.out.println("sm3哈希得到的密钥:"+Arrays.toString(res)); + return res; + } +} diff --git a/app/src/main/java/com/pkusz/min_vpn_client/utils/SM4HelperForConnection.java b/app/src/main/java/com/pkusz/min_vpn_client/utils/SM4HelperForConnection.java index fc767db..d672b91 100644 --- a/app/src/main/java/com/pkusz/min_vpn_client/utils/SM4HelperForConnection.java +++ b/app/src/main/java/com/pkusz/min_vpn_client/utils/SM4HelperForConnection.java @@ -9,10 +9,15 @@ package com.pkusz.min_vpn_client.utils; import android.annotation.SuppressLint; +import com.pkusz.min_vpn_client.utils.gmutil.sm4.VPN_SM4; + +import org.zz.gmhelper.SM4Util; + import java.nio.charset.StandardCharsets; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.security.NoSuchProviderException; +import java.util.Arrays; import java.util.Random; import javax.crypto.BadPaddingException; @@ -20,6 +25,7 @@ import javax.crypto.IllegalBlockSizeException; import javax.crypto.NoSuchPaddingException; import VMSConnection.Security.BC_KeyManager; +import VMSConnection.Security.SM4.BC_SM4; public class SM4HelperForConnection { public static byte[] encryptWithSM4(String secret,byte[] rawText){ @@ -40,6 +46,38 @@ public class SM4HelperForConnection { } } + public static byte[] encryptWithSM4(byte[] secretkey, byte[] origData) { +// try { +// return VPN_SM4.encrypt_ECB_Padding(secretkey, origData); +// } catch (Exception e){ +// e.printStackTrace(); +// return null; +// } + try { + return SM4Util.encrypt_ECB_Padding(secretkey,origData); + } catch (InvalidKeyException | NoSuchAlgorithmException | NoSuchProviderException | NoSuchPaddingException | IllegalBlockSizeException | BadPaddingException e) { + e.printStackTrace(); + return null; + } + } + + public static byte[] decryptWithSM4(byte[] secretkey, byte[] crypted){ +// System.out.println("sec: " + secretkey); +// System.out.println("cry: " + Arrays.toString(crypted)); +// try { +// return VPN_SM4.decrypt_ECB_Padding(secretkey, crypted); +// } catch (Exception e){ +// e.printStackTrace(); +// return null; +// } + try { + return SM4Util.decrypt_ECB_Padding(secretkey,crypted); + } catch (IllegalBlockSizeException | BadPaddingException | InvalidKeyException | NoSuchAlgorithmException | NoSuchProviderException | NoSuchPaddingException e) { + e.printStackTrace(); + return null; + } + } + /** * 获取长度为16字节的随机种子/随机密钥 * @return diff --git a/app/src/main/java/com/pkusz/min_vpn_client/utils/gmutil/sm4/VPN_SM4.java b/app/src/main/java/com/pkusz/min_vpn_client/utils/gmutil/sm4/VPN_SM4.java new file mode 100644 index 0000000..dd4c69c --- /dev/null +++ b/app/src/main/java/com/pkusz/min_vpn_client/utils/gmutil/sm4/VPN_SM4.java @@ -0,0 +1,140 @@ +package com.pkusz.min_vpn_client.utils.gmutil.sm4; + +import org.bouncycastle.jce.provider.BouncyCastleProvider; + +import javax.vpncrypto.*; +import javax.vpncrypto.spec.IvParameterSpec; +import javax.vpncrypto.spec.SecretKeySpec; +import java.security.*; + +/* + * @Author: hongyu guo + * @Description: sm4算法 + * 解尝试解决报错:Provider BC does not provide SM4/ECB/PKCS5Padding + * + * @Version: 1.0.0 + * @Date: 16:26 2021/03/04 + * @Copyright: MIN-Group;国家重大科技基础设施——未来网络北大实验室;深圳市信息论与未来网络重点实验室 + */ +public class VPN_SM4 { + static { + Security.addProvider(new BouncyCastleProvider()); + } + public static final String ALGORITHM_NAME = "SM4"; + public static final String ALGORITHM_NAME_ECB_PADDING = "SM4/ECB/PKCS5Padding"; + public static final String ALGORITHM_NAME_ECB_NOPADDING = "SM4/ECB/NoPadding"; + public static final String ALGORITHM_NAME_CBC_PADDING = "SM4/CBC/PKCS5Padding"; + public static final String ALGORITHM_NAME_CBC_NOPADDING = "SM4/CBC/NoPadding"; + + /** + * SM4算法目前只支持128位(即密钥16字节) + */ + public static final int DEFAULT_KEY_SIZE = 128; + + /** + * 生成16字节的sm4 key + * @param + * @return byte[] + * @throws NoSuchAlgorithmException + * @author hongyu guo + * @date 2021/3/15 + **/ + public static byte[] generateKey() throws NoSuchAlgorithmException, NoSuchProviderException { + return generateKey(DEFAULT_KEY_SIZE); + } + + public static byte[] generateKey(int keySize) throws NoSuchAlgorithmException, NoSuchProviderException { + KeyGenerator kg = KeyGenerator.getInstance(ALGORITHM_NAME, BouncyCastleProvider.PROVIDER_NAME); + kg.init(keySize, new SecureRandom()); + return kg.generateKey().getEncoded(); + } + + public static byte[] encrypt_ECB_Padding(byte[] key, byte[] data) + throws InvalidKeyException, NoSuchAlgorithmException, NoSuchProviderException, + NoSuchPaddingException, IllegalBlockSizeException, BadPaddingException { + Cipher cipher = generateECBCipher(ALGORITHM_NAME_ECB_PADDING, Cipher.ENCRYPT_MODE, key); + return cipher.doFinal(data); + } + + public static byte[] decrypt_ECB_Padding(byte[] key, byte[] cipherText) + throws IllegalBlockSizeException, BadPaddingException, InvalidKeyException, + NoSuchAlgorithmException, NoSuchProviderException, NoSuchPaddingException { + Cipher cipher = generateECBCipher(ALGORITHM_NAME_ECB_PADDING, Cipher.DECRYPT_MODE, key); + return cipher.doFinal(cipherText); + } + + public static byte[] encrypt_ECB_NoPadding(byte[] key, byte[] data) + throws InvalidKeyException, NoSuchAlgorithmException, NoSuchProviderException, + NoSuchPaddingException, IllegalBlockSizeException, BadPaddingException { + Cipher cipher = generateECBCipher(ALGORITHM_NAME_ECB_NOPADDING, Cipher.ENCRYPT_MODE, key); + return cipher.doFinal(data); + } + + public static byte[] decrypt_ECB_NoPadding(byte[] key, byte[] cipherText) + throws IllegalBlockSizeException, BadPaddingException, InvalidKeyException, + NoSuchAlgorithmException, NoSuchProviderException, NoSuchPaddingException { + Cipher cipher = generateECBCipher(ALGORITHM_NAME_ECB_NOPADDING, Cipher.DECRYPT_MODE, key); + return cipher.doFinal(cipherText); + } + + public static byte[] encrypt_CBC_Padding(byte[] key, byte[] iv, byte[] data) + throws InvalidKeyException, NoSuchAlgorithmException, NoSuchProviderException, + NoSuchPaddingException, IllegalBlockSizeException, BadPaddingException, + InvalidAlgorithmParameterException { + Cipher cipher = generateCBCCipher(ALGORITHM_NAME_CBC_PADDING, Cipher.ENCRYPT_MODE, key, iv); + return cipher.doFinal(data); + } + + public static byte[] decrypt_CBC_Padding(byte[] key, byte[] iv, byte[] cipherText) + throws IllegalBlockSizeException, BadPaddingException, InvalidKeyException, + NoSuchAlgorithmException, NoSuchProviderException, NoSuchPaddingException, + InvalidAlgorithmParameterException { + Cipher cipher = generateCBCCipher(ALGORITHM_NAME_CBC_PADDING, Cipher.DECRYPT_MODE, key, iv); + return cipher.doFinal(cipherText); + } + + public static byte[] encrypt_CBC_NoPadding(byte[] key, byte[] iv, byte[] data) + throws InvalidKeyException, NoSuchAlgorithmException, NoSuchProviderException, + NoSuchPaddingException, IllegalBlockSizeException, BadPaddingException, + InvalidAlgorithmParameterException { + Cipher cipher = generateCBCCipher(ALGORITHM_NAME_CBC_NOPADDING, Cipher.ENCRYPT_MODE, key, iv); + return cipher.doFinal(data); + } + + public static byte[] decrypt_CBC_NoPadding(byte[] key, byte[] iv, byte[] cipherText) + throws IllegalBlockSizeException, BadPaddingException, InvalidKeyException, + NoSuchAlgorithmException, NoSuchProviderException, NoSuchPaddingException, + InvalidAlgorithmParameterException { + Cipher cipher = generateCBCCipher(ALGORITHM_NAME_CBC_NOPADDING, Cipher.DECRYPT_MODE, key, iv); + return cipher.doFinal(cipherText); + } + + private static Cipher generateECBCipher(String algorithmName, int mode, byte[] key) + throws NoSuchAlgorithmException, NoSuchProviderException, NoSuchPaddingException, + InvalidKeyException { + Cipher cipher = null; + try { + cipher = Cipher.getInstance(algorithmName, BouncyCastleProvider.PROVIDER_NAME); + } catch (Exception e) { + e.printStackTrace(); + } + Key sm4Key = new SecretKeySpec(key, ALGORITHM_NAME); + cipher.init(mode, sm4Key); + return cipher; + } + + private static Cipher generateCBCCipher(String algorithmName, int mode, byte[] key, byte[] iv) + throws InvalidKeyException, InvalidAlgorithmParameterException, NoSuchAlgorithmException, + NoSuchProviderException, NoSuchPaddingException { + Cipher cipher = null; + try { + cipher = Cipher.getInstance(algorithmName, BouncyCastleProvider.PROVIDER_NAME); + } catch (Exception e) { + e.printStackTrace(); + } + Key sm4Key = new SecretKeySpec(key, ALGORITHM_NAME); + IvParameterSpec ivParameterSpec = new IvParameterSpec(iv); + cipher.init(mode, sm4Key, ivParameterSpec); + return cipher; + } +}