Index: third_party/gsutil/third_party/pyasn1-modules/pyasn1_modules/rfc1902.py |
diff --git a/third_party/gsutil/third_party/pyasn1-modules/pyasn1_modules/rfc1902.py b/third_party/gsutil/third_party/pyasn1-modules/pyasn1_modules/rfc1902.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..df0b0c3dca0e6f20e59c37113c7bdc957b300b5a |
--- /dev/null |
+++ b/third_party/gsutil/third_party/pyasn1-modules/pyasn1_modules/rfc1902.py |
@@ -0,0 +1,105 @@ |
+# |
+# SNMPv2c message syntax |
+# |
+# ASN.1 source from: |
+# http://www.ietf.org/rfc/rfc1902.txt |
+# |
+from pyasn1.type import univ, namedtype, namedval, tag, constraint |
+ |
+class Integer(univ.Integer): |
+ subtypeSpec = univ.Integer.subtypeSpec+constraint.ValueRangeConstraint( |
+ -2147483648, 2147483647 |
+ ) |
+ |
+class Integer32(univ.Integer): |
+ subtypeSpec = univ.Integer.subtypeSpec+constraint.ValueRangeConstraint( |
+ -2147483648, 2147483647 |
+ ) |
+ |
+class OctetString(univ.OctetString): |
+ 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( |
+ 4, 4 |
+ ) |
+ |
+class Counter32(univ.Integer): |
+ tagSet = univ.Integer.tagSet.tagImplicitly( |
+ tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 0x01) |
+ ) |
+ 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( |
+ 0, 4294967295 |
+ ) |
+ |
+class Unsigned32(univ.Integer): |
+ tagSet = univ.Integer.tagSet.tagImplicitly( |
+ tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 0x02) |
+ ) |
+ 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( |
+ 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( |
+ 0, 18446744073709551615 |
+ ) |
+ |
+class Bits(univ.OctetString): 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( |
+ namedtype.NamedType('ipAddress-value', IpAddress()), |
+ namedtype.NamedType('counter-value', Counter32()), |
+ 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()), |
+ namedtype.NamedType('gauge32-value', Gauge32()) |
+ ) # BITS misplaced? |
+ |
+class ObjectSyntax(univ.Choice): |
+ componentType = namedtype.NamedTypes( |
+ namedtype.NamedType('simple', SimpleSyntax()), |
+ namedtype.NamedType('application-wide', ApplicationSyntax()) |
+ ) |
+ |