Convert-BER-XS

 view release on metacpan or  search on metacpan

README  view on Meta::CPAN

        right):

              ASN_UNIVERSAL ASN_APPLICATION ASN_CONTEXT ASN_PRIVATE

        ASN tag values (some of which are aliases, such as "ASN_OID"). Their
        numerical value corresponds exactly to the numbers used in
        BER/X.690.

              ASN_BOOLEAN ASN_INTEGER ASN_BIT_STRING ASN_OCTET_STRING ASN_NULL ASN_OID
              ASN_OBJECT_IDENTIFIER ASN_OBJECT_DESCRIPTOR ASN_EXTERNAL ASN_REAL ASN_SEQUENCE ASN_ENUMERATED
              ASN_EMBEDDED_PDV ASN_UTF8_STRING ASN_RELATIVE_OID ASN_SET ASN_NUMERIC_STRING
              ASN_PRINTABLE_STRING ASN_TELETEX_STRING ASN_T61_STRING ASN_VIDEOTEX_STRING ASN_IA5_STRING
              ASN_ASCII_STRING ASN_UTC_TIME ASN_GENERALIZED_TIME ASN_GRAPHIC_STRING ASN_VISIBLE_STRING
              ASN_ISO646_STRING ASN_GENERAL_STRING ASN_UNIVERSAL_STRING ASN_CHARACTER_STRING ASN_BMP_STRING

    ":const_ber_type"
        The BER type constants, explained in the PROFILES section.

              BER_TYPE_BYTES BER_TYPE_UTF8 BER_TYPE_UCS2 BER_TYPE_UCS4 BER_TYPE_INT
              BER_TYPE_OID BER_TYPE_RELOID BER_TYPE_NULL BER_TYPE_BOOL BER_TYPE_REAL
              BER_TYPE_IPADDRESS BER_TYPE_CROAK

XS.pm  view on Meta::CPAN

exactly the two topmost bits from the identifier octet shifted 6 bits to
the right):

      ASN_UNIVERSAL ASN_APPLICATION ASN_CONTEXT ASN_PRIVATE

ASN tag values (some of which are aliases, such as C<ASN_OID>). Their
numerical value corresponds exactly to the numbers used in BER/X.690.

      ASN_BOOLEAN ASN_INTEGER ASN_BIT_STRING ASN_OCTET_STRING ASN_NULL ASN_OID
      ASN_OBJECT_IDENTIFIER ASN_OBJECT_DESCRIPTOR ASN_EXTERNAL ASN_REAL ASN_SEQUENCE ASN_ENUMERATED
      ASN_EMBEDDED_PDV ASN_UTF8_STRING ASN_RELATIVE_OID ASN_SET ASN_NUMERIC_STRING
      ASN_PRINTABLE_STRING ASN_TELETEX_STRING ASN_T61_STRING ASN_VIDEOTEX_STRING ASN_IA5_STRING
      ASN_ASCII_STRING ASN_UTC_TIME ASN_GENERALIZED_TIME ASN_GRAPHIC_STRING ASN_VISIBLE_STRING
      ASN_ISO646_STRING ASN_GENERAL_STRING ASN_UNIVERSAL_STRING ASN_CHARACTER_STRING ASN_BMP_STRING

=item C<:const_ber_type>

The BER type constants, explained in the PROFILES section.

      BER_TYPE_BYTES BER_TYPE_UTF8 BER_TYPE_UCS2 BER_TYPE_UCS4 BER_TYPE_INT
      BER_TYPE_OID BER_TYPE_RELOID BER_TYPE_NULL BER_TYPE_BOOL BER_TYPE_REAL

XS.pm  view on Meta::CPAN

our %EXPORT_TAGS = (
   const_index => [qw(
      BER_CLASS BER_TAG BER_FLAGS BER_DATA
   )],
   const_asn_class => [qw(
      ASN_UNIVERSAL ASN_APPLICATION ASN_CONTEXT ASN_PRIVATE
   )],
   const_asn_tag => [qw(
      ASN_BOOLEAN ASN_INTEGER ASN_BIT_STRING ASN_OCTET_STRING ASN_NULL ASN_OID ASN_OBJECT_IDENTIFIER
      ASN_OBJECT_DESCRIPTOR ASN_EXTERNAL ASN_REAL ASN_SEQUENCE ASN_ENUMERATED
      ASN_EMBEDDED_PDV ASN_UTF8_STRING ASN_RELATIVE_OID ASN_SET ASN_NUMERIC_STRING
      ASN_PRINTABLE_STRING ASN_TELETEX_STRING ASN_T61_STRING ASN_VIDEOTEX_STRING ASN_IA5_STRING
      ASN_ASCII_STRING ASN_UTC_TIME ASN_GENERALIZED_TIME ASN_GRAPHIC_STRING ASN_VISIBLE_STRING
      ASN_ISO646_STRING ASN_GENERAL_STRING ASN_UNIVERSAL_STRING ASN_CHARACTER_STRING ASN_BMP_STRING
   )],
   const_ber_type => [qw(
      BER_TYPE_BYTES BER_TYPE_UTF8 BER_TYPE_UCS2 BER_TYPE_UCS4 BER_TYPE_INT
      BER_TYPE_OID BER_TYPE_RELOID BER_TYPE_NULL BER_TYPE_BOOL BER_TYPE_REAL
      BER_TYPE_IPADDRESS BER_TYPE_CROAK
   )],
   const_snmp => [qw(

XS.xs  view on Meta::CPAN

  ASN_INTEGER           = 0x02,
  ASN_BIT_STRING        = 0x03,
  ASN_OCTET_STRING      = 0x04,
  ASN_NULL              = 0x05,
  ASN_OBJECT_IDENTIFIER = 0x06,
  ASN_OID               = 0x06,
  ASN_OBJECT_DESCRIPTOR = 0x07,
  ASN_EXTERNAL          = 0x08,
  ASN_REAL              = 0x09,
  ASN_ENUMERATED        = 0x0a,
  ASN_EMBEDDED_PDV      = 0x0b,
  ASN_UTF8_STRING       = 0x0c,
  ASN_RELATIVE_OID      = 0x0d,
  ASN_SEQUENCE          = 0x10,
  ASN_SET               = 0x11,
  ASN_NUMERIC_STRING    = 0x12,
  ASN_PRINTABLE_STRING  = 0x13,
  ASN_TELETEX_STRING    = 0x14,
  ASN_T61_STRING        = 0x14,
  ASN_VIDEOTEX_STRING   = 0x15,
  ASN_IA5_STRING        = 0x16,

XS.xs  view on Meta::CPAN

    const_iv (ASN_BIT_STRING)
    const_iv (ASN_OCTET_STRING)
    const_iv (ASN_NULL)
    const_iv (ASN_OBJECT_IDENTIFIER)
    const_iv (ASN_OBJECT_DESCRIPTOR)
    const_iv (ASN_OID)
    const_iv (ASN_EXTERNAL)
    const_iv (ASN_REAL)
    const_iv (ASN_SEQUENCE)
    const_iv (ASN_ENUMERATED)
    const_iv (ASN_EMBEDDED_PDV)
    const_iv (ASN_UTF8_STRING)
    const_iv (ASN_RELATIVE_OID)
    const_iv (ASN_SET)
    const_iv (ASN_NUMERIC_STRING)
    const_iv (ASN_PRINTABLE_STRING)
    const_iv (ASN_TELETEX_STRING)
    const_iv (ASN_T61_STRING)
    const_iv (ASN_VIDEOTEX_STRING)
    const_iv (ASN_IA5_STRING)
    const_iv (ASN_ASCII_STRING)

t/02_simple.t  view on Meta::CPAN

roundtrip "06022877", [ASN_UNIVERSAL, ASN_OID, 0, "1.0.119"];
roundtrip "06024f77", [ASN_UNIVERSAL, ASN_OID, 0, "1.39.119"];
roundtrip "06025077", [ASN_UNIVERSAL, ASN_OID, 0, "2.0.119"];
roundtrip "06027777", [ASN_UNIVERSAL, ASN_OID, 0, "2.39.119"];
roundtrip "06027877", [ASN_UNIVERSAL, ASN_OID, 0, "2.40.119"];
roundtrip "0603817877", [ASN_UNIVERSAL, ASN_OID, 0, "2.168.119"];
roundtrip "06028837", [ASN_UNIVERSAL, ASN_OID, 0, "2.999"];

roundtrip "0703353739", [ASN_UNIVERSAL, ASN_OBJECT_DESCRIPTOR, 0, "579"];
roundtrip "0a0177", [ASN_UNIVERSAL, ASN_ENUMERATED, 0, 0x77];
roundtrip "2b00", [ASN_UNIVERSAL, ASN_EMBEDDED_PDV, 1];
roundtrip "0c04c2a0c3bf", [ASN_UNIVERSAL, ASN_UTF8_STRING, 0, "\xa0\xff"];
roundtrip "3000", [ASN_UNIVERSAL, ASN_SEQUENCE, 1];
roundtrip "3100", [ASN_UNIVERSAL, ASN_SET, 1];
roundtrip "1603393334", [ASN_UNIVERSAL, ASN_ASCII_STRING, 0, "934"];

roundtrip "1c0400000031", [ASN_UNIVERSAL, ASN_UNIVERSAL_STRING, 0, "1"];
roundtrip "1c0411223344", [ASN_UNIVERSAL, ASN_UNIVERSAL_STRING, 0, chr 0x11223344];
fail "1c0111", "BER_TYPE_UCS has an invalid number of octets";
fail "1c021122", "BER_TYPE_UCS has an invalid number of octets";
fail "1c03112234", "BER_TYPE_UCS has an invalid number of octets";



( run in 1.194 second using v1.01-cache-2.11-cpan-71847e10f99 )