2010-08-10 6 views
2

J'ai une application avec l'architecture client-serveur.Divers PEM à DER en perl

client (programme C):

  1. génèrent diverses DER données codées
  2. convertir DER à PEM (PEM_write_bio de l'aide OpenSSL) avec divers tête PEM
  3. envoyer PEM au serveur

serveur (script Perl):

  1. reçoivent des données PEM
  2. convertir PEM der
  3. ....

Ma question est de savoir comment convertir différentes données PEM à DER/BER (données binaires) en perl?

Répondre

4

Vous pouvez vous-même retirer les étiquettes PEM et effectuer un décodage du bloc Base64 à l'intérieur en utilisant MIME::Base64.

doit être aussi simple que

$derBlob = decode_base64($base64Blob); 
2

Un exemple en fonction de la réponse acceptée:

#!/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__ 
Questions connexes