测试登录成功,测试注册失败,失败原因大概率是因为服务器返回的证书没有进行解析和保存到本地,后面准备将这个项目代码合并到min-lib里,以更方便地调用min-lib的security模块(直接使用jar包进行调用时会报一些错)

This commit is contained in:
free will committed 2021-07-12 21:29:06 +08:00
1 parent 7cd3b8c6f8
commit 307ea50cd9
4 files changed
+67 -14

No files matched your search

+7 -7
View File
@@ -29,14 +29,14 @@ public class BaseStruct {
Field f=fields[i];
f.setAccessible(true);
// 将属性值的名字的属性值的值放入jsonObject
if(f.getType()==(byte[].class)){
// byte[]需要编码base64
byte[] rawS=(byte[])(f.get(this));
String encodeS=Base64Helper.BlockChain_Base64Encode(rawS);
jsonObject.put(f.getName(),encodeS);
}else {
// if(f.getType()==(byte[].class)){
// // byte[]需要编码base64
// byte[] rawS=(byte[])(f.get(this));
// String encodeS=Base64Helper.BlockChain_Base64Encode(rawS);
// jsonObject.put(f.getName(),encodeS);
// }else {
jsonObject.put(f.getName(), f.get(this));
}
// }
}
return jsonObject.toJSONString();
}
+4
View File
@@ -2,11 +2,14 @@ package TCPNet;
import TCPNet.Message.BaseStruct;
import Security.BC_KeyManager;
import Utils.Base64Helper;
import com.alibaba.fastjson.JSONObject;
import org.bouncycastle.crypto.InvalidCipherTextException;
import javax.crypto.BadPaddingException;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import java.lang.reflect.Field;
import java.nio.charset.StandardCharsets;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
@@ -21,6 +24,7 @@ import java.util.Random;
* @Date: 20:50 2021/6/24
* @Copyright: MIN-Group;国家重大科技基础设施——未来网络北大实验室;深圳市信息论与未来网络重点实验室
*/
class SSL_SetupMessage extends BaseStruct {
public String Pubkey;
public String Secretkey;
+1 -1
View File
@@ -12,7 +12,7 @@ import java.nio.charset.StandardCharsets;
* @Copyright: MIN-Group;国家重大科技基础设施——未来网络北大实验室;深圳市信息论与未来网络重点实验室
*/
public class TestTCPClient {
public static String ip="121.15.171.82";
public static String ip="192.168.43.31";
public static Integer port=12345;
public static Integer sslPort=54321;
public static String serverKey="04e067d23d3fd3ba4ead731b78346cde1084a83" +
+55 -6
View File
@@ -1,6 +1,11 @@
import Model.LoginWithSignRequest;
import Security.BC_KeyManager;
import TCPNet.Message.NetworkResponse;
import Model.RegisterWithSignRequest;
import Utils.Base64Helper;
import org.bouncycastle.crypto.CryptoException;
import java.nio.charset.StandardCharsets;
/*
* @Author: Wang Feng
@@ -11,18 +16,62 @@ import Utils.Base64Helper;
*/
public class TestAPI {
public static void main(String[] args){
String pubkey="0430faa210c22db991d7bafcbc1f1682a6dbbbee1fa3838edc1be78de699df8aecaf0845bb1ff38e91394a41aae4f70cae" +
"1abdd06c4428fc9fa5f0386d57036295";
String baseSig="MEUCIQDvxeEX0JIATriXelXQLaecuEHti+dUebygANDyw7n0zQIgPMZhv5xEXs8td+Na8c9V1zRF5nUz+wurLi0iS4SBKFE=";
byte[] sig= Base64Helper.BlockChain_Base64Decode_GoLanUn(baseSig);
RegisterWithSignRequest request=new RegisterWithSignRequest(1,"/wefree","password",
"13294184003","1234","2642222222@qq.com","dev","",
// String pubkey="0430faa210c22db991d7bafcbc1f1682a6dbbbee1fa3838edc1be78de699df8aecaf0845bb1ff38e91394a41aae4f70cae" +
// "1abdd06c4428fc9fa5f0386d57036295";
// String baseSig="MEUCIQDvxeEX0JIATriXelXQLaecuEHti+dUebygANDyw7n0zQIgPMZhv5xEXs8td+Na8c9V1zRF5nUz+wurLi0iS4SBKFE=";
// byte[] sig= Base64Helper.BlockChain_Base64Decode_GoLanUn(baseSig);
// byte[] sig=baseSig.getBytes(StandardCharsets.UTF_8);
String username="wefree2";
String email="25255@qq.com";
// 模拟客户端生成自己的公钥私钥
BC_KeyManager bc_keyManager=new BC_KeyManager();
bc_keyManager.GenKeyPair();
String pubkey=bc_keyManager.GetPubkey();
byte[] sig;
try {
sig = bc_keyManager.Sign(username.getBytes(StandardCharsets.UTF_8))
.getBytes(StandardCharsets.UTF_8);
} catch (CryptoException e) {
e.printStackTrace();
return;
}
// 构造注册请求包 13294184003
RegisterWithSignRequest request=new RegisterWithSignRequest(1,username,"password",
"15239970973","1234",email,"dev","",
pubkey,0,0,"1625142358",sig);
try {
System.out.println("login request: "+request.toJson());
} catch (IllegalAccessException e) {
e.printStackTrace();
}
BC_API bc_api=new BC_API();
// bc_api.ip="192.168.43.31";
bc_api.ip="121.15.171.91";
// 注册
NetworkResponse networkResponse=bc_api.register(request);
try {
System.out.println("注册应答: "+networkResponse.toJson());
} catch (IllegalAccessException e) {
e.printStackTrace();
}
System.out.println(networkResponse.Code);
// 构造登录请求包
LoginWithSignRequest loginWithSignRequest=new LoginWithSignRequest(username,
"password",new String(networkResponse.Data),sig);
// 登录
NetworkResponse networkResponse2=bc_api.login(loginWithSignRequest);
try {
System.out.println("登录应答: "+networkResponse2.toJson());
} catch (IllegalAccessException e) {
e.printStackTrace();
}
System.out.println(networkResponse2.Code);
// BC_API bc_api=new BC_API();
// String register_info="{\"ID\":0,\"Name\":\"/wefree\",\"Password\":\"password\",\"Phone\":\"13294184003\"," +
// "\"Invitation\":\"1234\",\"Email\":\"22915639348@qq.com\",\"DeviceInfo\":\"deviceInfo\",\"Certificate\":\"\"," +