ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Convert-BER-XS/XS.pm
(Generate patch)

Comparing Convert-BER-XS/XS.pm (file contents):
Revision 1.42 by root, Sun Apr 21 01:51:12 2019 UTC vs.
Revision 1.48 by root, Sun Apr 21 12:00:42 2019 UTC

8 8
9 my $ber = ber_decode $buf, $Convert::BER::XS::SNMP_PROFILE 9 my $ber = ber_decode $buf, $Convert::BER::XS::SNMP_PROFILE
10 or die "unable to decode SNMP message"; 10 or die "unable to decode SNMP message";
11 11
12 # The above results in a data structure consisting of 12 # The above results in a data structure consisting of
13 # (class, tag, flags, data) 13 # (class, tag, flags, data)
14 # tuples. Below is such a message, SNMPv1 trap 14 # tuples. Below is such a message, SNMPv1 trap
15 # with a Cisco mac change notification. 15 # with a Cisco mac change notification.
16 # Did you know that Cisco is in the news almost 16 # Did you know that Cisco is in the news almost
17 # every week because of some backdoor password 17 # every week because of some backdoor password
18 # or other extremely stupid security bug? 18 # or other extremely stupid security bug?
412use Exporter qw(import); 412use Exporter qw(import);
413 413
414our $VERSION; 414our $VERSION;
415 415
416BEGIN { 416BEGIN {
417 $VERSION = '1.0'; 417 $VERSION = 1.1;
418 XSLoader::load __PACKAGE__, $VERSION; 418 XSLoader::load __PACKAGE__, $VERSION;
419} 419}
420 420
421our %EXPORT_TAGS = ( 421our %EXPORT_TAGS = (
422 const_index => [qw( 422 const_index => [qw(
641 641
642Returns the BER type mapped to the given C<$class>/C<$tag> combination. 642Returns the BER type mapped to the given C<$class>/C<$tag> combination.
643 643
644=back 644=back
645 645
646=head2 BER TYPES 646=head2 BER Types
647 647
648This lists the predefined BER types - you can map any C<CLASS>/C<TAG> 648This lists the predefined BER types. BER types are formatters used
649combination to any C<BER_TYPE_*>. 649internally to format and encode BER values. You can assign any C<BER_TYPE>
650to any C<CLASS>/C<TAG> combination tgo change how that tag is decoded or
651encoded.
650 652
651=over 653=over
652 654
653=item C<BER_TYPE_BYTES> 655=item C<BER_TYPE_BYTES>
654 656
737 $SNMP_PROFILE->set (ASN_APPLICATION, SNMP_COUNTER64 , BER_TYPE_INT); 739 $SNMP_PROFILE->set (ASN_APPLICATION, SNMP_COUNTER64 , BER_TYPE_INT);
738 740
739=head2 LIMITATIONS/NOTES 741=head2 LIMITATIONS/NOTES
740 742
741This module can only en-/decode 64 bit signed and unsigned integers, and 743This module can only en-/decode 64 bit signed and unsigned integers, and
742only when your perl supports those. 744only when your perl supports those. So no UUID OIDs for now (unless you
745map the C<OBJECT IDENTIFIER> tag to something other than C<BER_TYPE_OID>).
743 746
744This module does not generally care about ranges, i.e. it will happily 747This module does not generally care about ranges, i.e. it will happily
745de-/encode 64 bit integers into an C<ASN_INTEGER> value, or a negative 748de-/encode 64 bit integers into an C<ASN_INTEGER> value, or a negative
746number into an C<SNMP_COUNTER64>. 749number into an C<SNMP_COUNTER64>.
747 750
748OBJECT IDENTIFIEERs cannot have unlimited length, although the limit is 751OBJECT IDENTIFIEERs cannot have unlimited length, although the limit is
749much larger than e.g. the one imposed by SNMP or other protocols,a nd is 752much larger than e.g. the one imposed by SNMP or other protocols, and is
750about 4kB. 753about 4kB.
751 754
752Indefinite length encoding is not supported. 755Indefinite length encoding is not supported.
753 756
754Constructed strings are decoded just fine, but there should be a way to 757Constructed strings are decoded just fine, but there should be a way to
755join them for convenience. 758join them for convenience.
756 759
757REAL values are not supported and will currently croak. 760REAL values are not supported and will currently croak.
758 761
759The encoder and decoder tend to accept more formats than should be 762The encoder and decoder tend to accept more formats than should be
760strictly supported. 763strictly supported - security sensitive applications are strongly advised
764to review the code first.
761 765
762This module has undergone little to no testing so far. 766This module has undergone little to no testing so far.
763 767
764=head2 ITHREADS SUPPORT 768=head2 ITHREADS SUPPORT
765 769

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines