perl中的各种PEM到DER

时间:2010-08-10 13:24:19

标签: perl openssl

我有客户端 - 服务器架构的应用程序。

客户(C程序):

  1. 生成各种DER编码数据
  2. 使用各种PEM标题将DER转换为PEM(使用openssl的PEM_write_bio)
  3. 将PEM发送到服务器
  4. server(Perl脚本):

    1. 接收PEM数据
    2. 将PEM转换为DER
    3. ....
    4. 我的问题是如何在Perl中将各种PEM数据转换为DER / BER(二进制数据)?

2 个答案:

答案 0 :(得分:5)

您可以自己剥离PEM标记,并使用MIME::Base64对Base64块进行解码。

应该像

一样简单
$derBlob = decode_base64($base64Blob);

答案 1 :(得分:3)

基于接受的答案的示例:

#!/usr/bin/perl

use strict;
use warnings;
use MIME::Base64;

my $certPath = 'cert.pem';

open my $fh, '<', $certPath or die(sprintf('Could not open %s file: %s', $certPath, $!));
my $derBlob = do { local $/; decode_base64(<$fh> =~ s/^-.*?\n//gmr); };
close($fh);
print $derBlob;

1;
__END__