diff options
Diffstat (limited to 'pyasn1_modules/rfc1155.py')
-rw-r--r-- | pyasn1_modules/rfc1155.py | 46 |
1 files changed, 30 insertions, 16 deletions
diff --git a/pyasn1_modules/rfc1155.py b/pyasn1_modules/rfc1155.py index ba0368f..f0e39ca 100644 --- a/pyasn1_modules/rfc1155.py +++ b/pyasn1_modules/rfc1155.py @@ -12,56 +12,69 @@ # Sample captures from: # http://wiki.wireshark.org/SampleCaptures/ # -from pyasn1.type import univ, namedtype, namedval, tag, constraint +from pyasn1.type import univ, namedtype, tag, constraint + class ObjectName(univ.ObjectIdentifier): pass + class SimpleSyntax(univ.Choice): componentType = namedtype.NamedTypes( namedtype.NamedType('number', univ.Integer()), namedtype.NamedType('string', univ.OctetString()), namedtype.NamedType('object', univ.ObjectIdentifier()), namedtype.NamedType('empty', univ.Null()) - ) + ) + class IpAddress(univ.OctetString): tagSet = univ.OctetString.tagSet.tagImplicitly( tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 0) - ) + ) subtypeSpec = univ.Integer.subtypeSpec + constraint.ValueSizeConstraint( 4, 4 - ) + ) + + class NetworkAddress(univ.Choice): componentType = namedtype.NamedTypes( namedtype.NamedType('internet', IpAddress()) - ) + ) + class Counter(univ.Integer): tagSet = univ.Integer.tagSet.tagImplicitly( tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 1) - ) + ) subtypeSpec = univ.Integer.subtypeSpec + constraint.ValueRangeConstraint( 0, 4294967295 - ) + ) + + class Gauge(univ.Integer): tagSet = univ.Integer.tagSet.tagImplicitly( tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 2) - ) + ) subtypeSpec = univ.Integer.subtypeSpec + constraint.ValueRangeConstraint( 0, 4294967295 - ) + ) + + class TimeTicks(univ.Integer): tagSet = univ.Integer.tagSet.tagImplicitly( tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 3) - ) + ) subtypeSpec = univ.Integer.subtypeSpec + constraint.ValueRangeConstraint( 0, 4294967295 - ) + ) + + class Opaque(univ.OctetString): tagSet = univ.OctetString.tagSet.tagImplicitly( tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 4) - ) - + ) + + class ApplicationSyntax(univ.Choice): componentType = namedtype.NamedTypes( namedtype.NamedType('address', NetworkAddress()), @@ -69,10 +82,11 @@ class ApplicationSyntax(univ.Choice): namedtype.NamedType('gauge', Gauge()), namedtype.NamedType('ticks', TimeTicks()), namedtype.NamedType('arbitrary', Opaque()) - ) - + ) + + class ObjectSyntax(univ.Choice): componentType = namedtype.NamedTypes( namedtype.NamedType('simple', SimpleSyntax()), namedtype.NamedType('application-wide', ApplicationSyntax()) - ) + ) |