diff options
Diffstat (limited to 'pyasn1_modules/rfc1902.py')
-rw-r--r-- | pyasn1_modules/rfc1902.py | 86 |
1 files changed, 51 insertions, 35 deletions
diff --git a/pyasn1_modules/rfc1902.py b/pyasn1_modules/rfc1902.py index eb4f9e4..f49820e 100644 --- a/pyasn1_modules/rfc1902.py +++ b/pyasn1_modules/rfc1902.py @@ -9,86 +9,102 @@ # ASN.1 source from: # http://www.ietf.org/rfc/rfc1902.txt # -from pyasn1.type import univ, namedtype, namedval, tag, constraint +from pyasn1.type import univ, namedtype, tag, constraint + class Integer(univ.Integer): - subtypeSpec = univ.Integer.subtypeSpec+constraint.ValueRangeConstraint( + subtypeSpec = univ.Integer.subtypeSpec + constraint.ValueRangeConstraint( -2147483648, 2147483647 - ) + ) + class Integer32(univ.Integer): - subtypeSpec = univ.Integer.subtypeSpec+constraint.ValueRangeConstraint( + subtypeSpec = univ.Integer.subtypeSpec + constraint.ValueRangeConstraint( -2147483648, 2147483647 - ) - + ) + + class OctetString(univ.OctetString): - subtypeSpec = univ.Integer.subtypeSpec+constraint.ValueSizeConstraint( + subtypeSpec = univ.Integer.subtypeSpec + constraint.ValueSizeConstraint( 0, 65535 - ) + ) + class IpAddress(univ.OctetString): tagSet = univ.OctetString.tagSet.tagImplicitly( tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 0x00) - ) - subtypeSpec = univ.OctetString.subtypeSpec+constraint.ValueSizeConstraint( + ) + subtypeSpec = univ.OctetString.subtypeSpec + constraint.ValueSizeConstraint( 4, 4 - ) + ) + class Counter32(univ.Integer): tagSet = univ.Integer.tagSet.tagImplicitly( tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 0x01) - ) - subtypeSpec = univ.Integer.subtypeSpec+constraint.ValueRangeConstraint( + ) + subtypeSpec = univ.Integer.subtypeSpec + constraint.ValueRangeConstraint( 0, 4294967295 - ) + ) + class Gauge32(univ.Integer): tagSet = univ.Integer.tagSet.tagImplicitly( tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 0x02) - ) - subtypeSpec = univ.Integer.subtypeSpec+constraint.ValueRangeConstraint( + ) + subtypeSpec = univ.Integer.subtypeSpec + constraint.ValueRangeConstraint( 0, 4294967295 - ) + ) + class Unsigned32(univ.Integer): tagSet = univ.Integer.tagSet.tagImplicitly( tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 0x02) - ) - subtypeSpec = univ.Integer.subtypeSpec+constraint.ValueRangeConstraint( + ) + subtypeSpec = univ.Integer.subtypeSpec + constraint.ValueRangeConstraint( 0, 4294967295 - ) + ) + class TimeTicks(univ.Integer): tagSet = univ.Integer.tagSet.tagImplicitly( tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 0x03) - ) - subtypeSpec = univ.Integer.subtypeSpec+constraint.ValueRangeConstraint( + ) + subtypeSpec = univ.Integer.subtypeSpec + constraint.ValueRangeConstraint( 0, 4294967295 - ) + ) + class Opaque(univ.OctetString): tagSet = univ.OctetString.tagSet.tagImplicitly( tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 0x04) - ) + ) + class Counter64(univ.Integer): tagSet = univ.Integer.tagSet.tagImplicitly( tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 0x06) - ) - subtypeSpec = univ.Integer.subtypeSpec+constraint.ValueRangeConstraint( + ) + subtypeSpec = univ.Integer.subtypeSpec + constraint.ValueRangeConstraint( 0, 18446744073709551615 - ) + ) + + +class Bits(univ.OctetString): + pass -class Bits(univ.OctetString): pass -class ObjectName(univ.ObjectIdentifier): pass +class ObjectName(univ.ObjectIdentifier): + pass + class SimpleSyntax(univ.Choice): componentType = namedtype.NamedTypes( namedtype.NamedType('integer-value', Integer()), namedtype.NamedType('string-value', OctetString()), namedtype.NamedType('objectID-value', univ.ObjectIdentifier()) - ) + ) + class ApplicationSyntax(univ.Choice): componentType = namedtype.NamedTypes( @@ -97,14 +113,14 @@ class ApplicationSyntax(univ.Choice): namedtype.NamedType('timeticks-value', TimeTicks()), namedtype.NamedType('arbitrary-value', Opaque()), namedtype.NamedType('big-counter-value', Counter64()), -# This conflicts with Counter32 -# namedtype.NamedType('unsigned-integer-value', Unsigned32()), + # This conflicts with Counter32 + # namedtype.NamedType('unsigned-integer-value', Unsigned32()), namedtype.NamedType('gauge32-value', Gauge32()) - ) # BITS misplaced? + ) # BITS misplaced? + class ObjectSyntax(univ.Choice): componentType = namedtype.NamedTypes( namedtype.NamedType('simple', SimpleSyntax()), namedtype.NamedType('application-wide', ApplicationSyntax()) - ) - + ) |