… | |
… | |
28 | [ ASN_APPLICATION, ASN_TIMETICKS, 0, 1817903850 ], # SNMP TimeTicks |
28 | [ ASN_APPLICATION, ASN_TIMETICKS, 0, 1817903850 ], # SNMP TimeTicks |
29 | [ ASN_UNIVERSAL, ASN_SEQUENCE, 1, # the varbindlist |
29 | [ ASN_UNIVERSAL, ASN_SEQUENCE, 1, # the varbindlist |
30 | [ |
30 | [ |
31 | [ ASN_UNIVERSAL, ASN_SEQUENCE, 1, # a single varbind, "key value" pair |
31 | [ ASN_UNIVERSAL, ASN_SEQUENCE, 1, # a single varbind, "key value" pair |
32 | [ |
32 | [ |
33 | [ ASN_UNIVERSAL, ASN_OBJECT_IDENTIFIER, 0, "1.3.6.1.4.1.9.9.215.1.1.8.1.2.1" ], # the oid |
33 | [ ASN_UNIVERSAL, ASN_OBJECT_IDENTIFIER, 0, "1.3.6.1.4.1.9.9.215.1.1.8.1.2.1" ], |
34 | [ ASN_UNIVERSAL, ASN_OCTET_STRING, 0, "...data..." # the value |
34 | [ ASN_UNIVERSAL, ASN_OCTET_STRING, 0, "...data..." # the value |
35 | ] |
35 | ] |
36 | ] |
36 | ] |
37 | ], |
37 | ], |
38 | ... |
38 | ... |
… | |
… | |
120 | I<DATA> member, and you may re-assign the array itself, e.g.: |
120 | I<DATA> member, and you may re-assign the array itself, e.g.: |
121 | |
121 | |
122 | $ber = ber_decode $binbuf; |
122 | $ber = ber_decode $binbuf; |
123 | |
123 | |
124 | # the following is NOT legal: |
124 | # the following is NOT legal: |
125 | $ber->[BER_CLASS] = ASN_PRIVATE; # ERROR, readonly(!) |
125 | $ber->[BER_CLASS] = ASN_PRIVATE; # ERROR, CLASS/TAG/CONSTRUCTED are READ ONLY(!) |
126 | |
126 | |
127 | # but all of the following are fine: |
127 | # but all of the following are fine: |
128 | $ber->[BER_DATA] = "string"; |
128 | $ber->[BER_DATA] = "string"; |
129 | $ber->[BER_DATA] = [ASN_UNIVERSAL, ASN_INTEGER32, 0, 123]; |
129 | $ber->[BER_DATA] = [ASN_UNIVERSAL, ASN_INTEGER32, 0, 123]; |
130 | @$ber = (ASN_APPLICATION, SNMP_TIMETICKS, 1000); |
130 | @$ber = (ASN_APPLICATION, SNMP_TIMETICKS, 0, 1000); |
131 | |
131 | |
132 | I<CLASS> is something like a namespace for I<TAG>s - there is the |
132 | I<CLASS> is something like a namespace for I<TAG>s - there is the |
133 | C<ASN_UNIVERSAL> namespace which defines tags common to all ASN.1 |
133 | C<ASN_UNIVERSAL> namespace which defines tags common to all ASN.1 |
134 | implementations, the C<ASN_APPLICATION> namespace which defines tags for |
134 | implementations, the C<ASN_APPLICATION> namespace which defines tags for |
135 | specific applications (for example, the SNMP C<Unsigned32> type is in this |
135 | specific applications (for example, the SNMP C<Unsigned32> type is in this |