57 lines
1.3 KiB
Dart
57 lines
1.3 KiB
Dart
import 'dart:convert';
|
||
import 'dart:typed_data';
|
||
|
||
import '../../tools/storage.dart';
|
||
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!)}");
|
||
int length = utf8.encode(lockID!).length;
|
||
data.addAll(utf8.encode(lockID!));
|
||
data = getFixedLengthList(data, 40 - length);
|
||
print("dataaaaaa:$data");
|
||
return data;
|
||
}
|
||
}
|
||
|
||
class GetPublicKeyReply extends Reply {
|
||
GetPublicKeyReply.parseData(CommandType commandType, List<int> dataDetail)
|
||
: super.parseData(commandType, dataDetail) {
|
||
var tokenData = dataDetail.sublist(1);
|
||
print('获取公钥:$tokenData');
|
||
switch(dataDetail[0]){
|
||
case 0x00:
|
||
//成功
|
||
var stringEncoded = base64.encode(tokenData);
|
||
print('获取公钥成功 publickey:$stringEncoded');
|
||
// 储存公钥
|
||
Storage.setData("bluePublicKey", stringEncoded);
|
||
|
||
break;
|
||
case 0x07:
|
||
//无权限
|
||
|
||
break;
|
||
case 0x0f:
|
||
//用户已存在
|
||
|
||
break;
|
||
default:
|
||
//失败
|
||
|
||
break;
|
||
}
|
||
}
|
||
} |