首页 > 解决方案 > Flutter:解析私钥时出错:未处理的异常:“ASN1Exception”的实例

问题描述

我试图从我的私钥文件中读取,它可以成功读取文件,当它“解析”时出现问题,似乎无法识别私钥文件中每一行的类型。

我曾经从包含私钥的文件中读取的代码:

import 'package:flutter/services.dart' show rootBundle;
import 'package:pointycastle/asymmetric/api.dart';

final privatePem = await rootBundle.loadString('assets/keys/privateKey.pem');
final privateKey = RSAKeyParser().parse(privatePem) as RSAPrivateKey;

私钥文件如下所示:

-----BEGIN RSA PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABlwAAAAdzc2gtcn
NhAAAAAwEAAQAAAYEAuLH+NlYudg5/RMZ8j12ax0IXezsTvLJ+wzoPan2SJe+/YXBipWN7
16vu42gqt9JpD8uvEoE/BHPZuotW1Yh6hRS8U5SGldMJLFhBFG6PZZJf+f1Sn81YnChXGG
...(I skiped the key otherwise it will be too long)
1OWee05wTrCIZzeOt3G+jm1uxjxJAleD7l1e9KbNTSh0VfGJqJSpVS12lyj+xci256lZGp
idJwcxMgJQZ/1NAAAAEHFpc2h1LmxpdUB1dHQuZnIBAg==
-----END RSA PRIVATE KEY-----

它显示的错误:

flutter: Status Code: 200
[VERBOSE-2:ui_dart_state.cc(209)] Unhandled Exception: Instance of 'ASN1Exception'
#0      ASN1Parser._doPrimitive (package:asn1lib/asn1parser.dart:114:9)
#1      ASN1Parser.nextObject (package:asn1lib/asn1parser.dart:51:13)
#2      ASN1Sequence._decodeSeq (package:asn1lib/asn1sequence.dart:73:27)
#3      new ASN1Sequence.fromBytes (package:asn1lib/asn1sequence.dart:23:5)
#4      ASN1Parser.nextObject (package:asn1lib/asn1parser.dart:54:26)
#5      ASN1Sequence._decodeSeq (package:asn1lib/asn1sequence.dart:73:27)
#6      new ASN1Sequence.fromBytes (package:asn1lib/asn1sequence.dart:23:5)
#7      ASN1Parser.nextObject (package:asn1lib/asn1parser.dart:54:26)
#8      ASN1Sequence._decodeSeq (package:asn1lib/asn1sequence.dart:73:27)
#9      new ASN1Sequence.fromBytes (package:asn1lib/asn1sequence.dart:23:5)
#10     ASN1Parser.nextObject (package:asn1lib/asn1parser.dart:54:26)
#11     ASN1Sequence._decodeSeq (package:asn1lib/asn1sequence.dart:73:27)
#12     new ASN1Sequence.fromBytes (package:asn1lib/asn1sequence.dart:23:5)
#13     ASN1Parser.nextObject (package:asn1lib/asn1parser.dart:54:26)
#14     ASN1Sequence._decodeSeq (package:asn1lib/asn1sequence.dart:73:27)
#15     new ASN1Sequence.fromBytes (package:asn1lib/asn1sequence.dart:23:5)
#16     ASN1Parser.nextObject (package:asn1lib/asn1parser.dart:54:26)
#17     ASN1Sequence._decodeSeq (package:asn1lib/asn1sequence.dart:73:27)
#18     new ASN1Sequence.fromBytes (package:asn1lib/asn1sequence.dart:23:5)
#19     ASN1Parser.nextObject (package:asn1lib/asn1parser.dart:54:26)
#20     ASN1Sequence._decodeSeq (package:asn1lib/asn1sequence.dart:73:27)
#21     new ASN1Sequence.fromBytes (package:asn1lib/asn1sequence.dart:23:5)
#22     ASN1Parser.nextObject (package:asn1lib/asn1parser.dart:54:26)
#23     RSAKeyParser._parseSequence (package:encrypt/src/algorithms/rsa.dart:244:23)
#24     RSAKeyParser.parse (package:encrypt/src/algorithms/rsa.dart:208:28)
#25     OAuth.getTransferState (package:scambio/fintech_oauth.dart:147:39)
<asynchronous suspension>
#26     InitiatePaymentState.getState (package:scambio/initiate_payment.dart:243:23)
<asynchronous suspension>
#27     InitiatePaymentState.changeData (package:scambio/initiate_payment.dart:312:25)
<asynchronous suspension>

关于如何解决问题的任何意见?提前致谢!

标签: androidflutterdartrsaprivate-key

解决方案


推荐阅读