【问题标题】:[Flutter]: How to get public key PEM string from the x509 certificate PEM string[Flutter]:如何从 x509 证书 PEM 字符串中获取公钥 PEM 字符串
【发布时间】:2022-01-20 13:20:48
【问题描述】:

我需要从 x509 证书 PEM 字符串中提取 PEM 公钥字符串的方法。 现在我正在使用basic_utils 包,它可以从给定的 PEM 字符串生成 x509Certificate 对象。 此 x509Certificate 对象具有 publicKeyData 字段,该字段具有 bytes 字段,将公钥字节表示为字符串。 但是我不能使用这个bytes 来生成有效的 PEM 公钥字符串。

所以问题是 - 我如何从证书中提取公钥作为 PEM 字符串?

谢谢

【问题讨论】:

    标签: flutter dart x509certificate x509


    【解决方案1】:

    对于 RSA 公钥:

    import 'package:convert/convert.dart';
    import 'package:basic_utils/basic_utils.dart';
    
    final bytes = hex.decode(cert.publicKeyData.bytes!);
    final key = CryptoUtils.rsaPublicKeyFromDERBytes(Uint8List.fromList(bytes));
    final pem = CryptoUtils.encodeRSAPublicKeyToPemPkcs1(key);
    

    编码器的Pkcs1 版本将使用BEGIN RSA PUBLIC KEY 将PEM 括起来,而非pkcs1 版本将使用BEGIN PUBLIC KEY

    【讨论】:

    • 哇,谢谢。我试试
    猜你喜欢
    • 2016-12-28
    • 1970-01-01
    • 2011-03-19
    • 2011-10-16
    • 2021-12-22
    • 1970-01-01
    • 2017-02-07
    • 1970-01-01
    • 2018-01-04
    相关资源
    最近更新 更多