#!/usr/bin/perl -w use Data::Dumper; use Getopt::Std; use Convert::ASN1 qw(:io :debug); getopts('s:D', \%opts); if (!defined($opts{'s'})) { print STDERR "Missing ASN.1 Specification file!\n"; HELP_MESSAGE(); exit 1; } $specfile = $opts{'s'}; $DEBUG = $opts{'D'}; $asn = Convert::ASN1->new(encoding=>'DER'); $r = $asn->prepare_file($specfile); #print Dumper($r); if (!defined($r)) { print "ERROR: " . $asn->error . "\n"; } $securityModeError = $asn->find("ATCmessageheader"); $pdu = $securityModeError->encode( msgidentificationnumber => 1, msgreferencenumber =>1, timestamp =>{timehours=>12, timeminutes=>07, timeseconds=>50} ); print "Encode : pdu ". Dumper($pdu), "\n"; print "Decode: pdu ". Dumper($securityModeError->decode($pdu)). "\n";