fix:修复ios签名失败的问题

This commit is contained in:
liyi 2025-02-12 10:49:31 +08:00
parent 6c73250481
commit e6b90d9651
2 changed files with 36 additions and 11 deletions

View File

@ -11,6 +11,31 @@ import 'package:star_lock/talk/starChart/exception/start_chart_message_exception
class DoSign {
// sing
// Future<String> generateSign({
// required int currentTimestamp,
// required String privateKeyHex,
// }) async {
// String resultSign = '';
// try {
// // 1. 32
// Uint8List signData = encodeTimestampToLittleEndianBytes(currentTimestamp);
//
// // 2.
// List<int> privateKeyBytes = hexToBytes(privateKeyHex);
//
// // 3. PEM
// final pemPrivateKey =
// convertToPemPrivateKey(privateKeyBytes, isPKCS8: true);
// // 4.
// var result = await fastRsa.RSA
// .signPKCS1v15Bytes(signData, fastRsa.Hash.SHA256, pemPrivateKey);
// resultSign = hex.encode(result);
// } catch (e) {
// throw StartChartMessageException('❌--->上报信息生成签名时出现错误: $e');
// }
// return resultSign ?? '';
// }
Future<String> generateSign({
required int currentTimestamp,
required String privateKeyHex,
@ -20,20 +45,20 @@ class DoSign {
// 1. 32
Uint8List signData = encodeTimestampToLittleEndianBytes(currentTimestamp);
// 2.
List<int> privateKeyBytes = hexToBytes(privateKeyHex);
// 2.
final privateKey = loadPrivateKey(privateKeyHex);
// 3. PEM
final pemPrivateKey =
convertToPemPrivateKey(privateKeyBytes, isPKCS8: true);
// 4.
var result = await fastRsa.RSA
.signPKCS1v15Bytes(signData, fastRsa.Hash.SHA256, pemPrivateKey);
resultSign = hex.encode(result);
// 3. RSA
final signer = pc.RSASigner(pc.SHA256Digest(), '0609608648016503040201');
signer.init(true, pc.PrivateKeyParameter<pc.RSAPrivateKey>(privateKey));
// 4.
final signature = signer.generateSignature(signData);
resultSign = hex.encode(signature.bytes);
} catch (e) {
throw StartChartMessageException('❌--->上报信息生成签名时出现错误: $e');
}
return resultSign ?? '';
return resultSign;
}
// 32

View File

@ -187,7 +187,7 @@ dependencies:
#加密解密
encrypt: ^5.0.1
crypto: ^3.0.3
pointycastle: ^3.4.0
pointycastle: ^3.7.3 # 使用最新版本
date_format: ^2.0.7
# 下拉刷新