2010-08-10 3 views
2

У меня есть приложение с архитектурой клиент-сервер.Различные PEM для DER в perl

клиент (программа С):

  1. генерировать различные DER кодированных данных
  2. конвертировать DER в PEM (с использованием OpenSSL в PEM_write_bio) с заголовком различные PEM
  3. отправить ПЭМ на сервер

сервер (сценарий на Perl):

  1. получить данные ПОМ
  2. конвертировать PEM в DER
  3. ....

Мой вопрос заключается в том, чтобы преобразовать различные данные PEM в DER/BER (двоичные данные) в Perl?

ответ

4

Вы можете снять метки PEM самостоятельно и выполнить декодирование блока Base64 внутри, используя MIME::Base64.

Должно быть так просто, как

$derBlob = decode_base64($base64Blob); 
2

Пример на основе принятого ответа:

#!/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__ 
Смежные вопросы