app-starlock/star_lock/lib/blue/io_protocol/io_getPublicKey.dart

57 lines
1.3 KiB
Dart
Raw Normal View History

2023-08-08 09:42:35 +08:00
import 'dart:convert';
2023-08-09 15:42:26 +08:00
import 'dart:typed_data';
2023-08-08 09:42:35 +08:00
2023-08-09 15:42:26 +08:00
import '../../tools/storage.dart';
2023-08-08 09:42:35 +08:00
import '../io_tool/io_tool.dart';
import 'io_reply.dart';
import 'io_sender.dart';
import 'io_type.dart';
class GetPublicKeyCommand extends SenderProtocol {
String? lockID;
GetPublicKeyCommand({
this.lockID,
}) : super(CommandType.getLockPublicKey);
@override
List<int> messageDetail() {
List<int> data = [];
print("lockID${lockID!} lockID.utf8.encode${utf8.encode(lockID!)}");
2023-08-09 15:42:26 +08:00
int length = utf8.encode(lockID!).length;
2023-08-08 09:42:35 +08:00
data.addAll(utf8.encode(lockID!));
2023-08-09 15:42:26 +08:00
data = getFixedLengthList(data, 40 - length);
2023-08-08 09:42:35 +08:00
print("dataaaaaa:$data");
return data;
}
}
class GetPublicKeyReply extends Reply {
GetPublicKeyReply.parseData(CommandType commandType, List<int> dataDetail)
: super.parseData(commandType, dataDetail) {
2023-08-09 15:42:26 +08:00
var tokenData = dataDetail.sublist(1);
print('获取公钥:$tokenData');
2023-08-09 09:32:09 +08:00
switch(dataDetail[0]){
case 0x00:
//成功
2023-08-09 15:42:26 +08:00
var stringEncoded = base64.encode(tokenData);
print('获取公钥成功 publickey:$stringEncoded');
// 储存公钥
Storage.setData("bluePublicKey", stringEncoded);
2023-08-09 09:32:09 +08:00
break;
case 0x07:
//无权限
break;
case 0x0f:
//用户已存在
break;
default:
//失败
break;
}
2023-08-08 09:42:35 +08:00
}
}