diff options
author | elie <elie> | 2012-04-11 16:53:20 +0000 |
---|---|---|
committer | elie <elie> | 2012-04-11 16:53:20 +0000 |
commit | e2e03fcbfc5ca47b247851313bbafb0b70b22570 (patch) | |
tree | 73419fb665e8b2685063f1492571c12950f0afa1 /pyasn1_modules/rfc3412.py | |
parent | 569b924c66742a7ccb19225a75f80c37b1a8e208 (diff) | |
download | pyasn1-modules-e2e03fcbfc5ca47b247851313bbafb0b70b22570.tar.gz |
initial revision
Diffstat (limited to 'pyasn1_modules/rfc3412.py')
-rw-r--r-- | pyasn1_modules/rfc3412.py | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/pyasn1_modules/rfc3412.py b/pyasn1_modules/rfc3412.py new file mode 100644 index 0000000..e80ce31 --- /dev/null +++ b/pyasn1_modules/rfc3412.py @@ -0,0 +1,38 @@ +# +# SNMPv3 message syntax +# +# ASN.1 source from: +# http://www.ietf.org/rfc/rfc3412.txt +# +from pyasn1.type import univ, namedtype, namedval, tag, constraint +from pyasn1_modules import rfc1905 + +class ScopedPDU(univ.Sequence): + componentType = namedtype.NamedTypes( + namedtype.NamedType('contextEngineId', univ.OctetString()), + namedtype.NamedType('contextName', univ.OctetString()), + namedtype.NamedType('data', rfc1905.PDUs()) + ) + +class ScopedPduData(univ.Choice): + componentType = namedtype.NamedTypes( + namedtype.NamedType('plaintext', ScopedPDU()), + namedtype.NamedType('encryptedPDU', univ.OctetString()), + ) + +class HeaderData(univ.Sequence): + componentType = namedtype.NamedTypes( + namedtype.NamedType('msgID', univ.Integer().subtype(subtypeSpec=constraint.ValueRangeConstraint(0, 2147483647))), + namedtype.NamedType('msgMaxSize', univ.Integer().subtype(subtypeSpec=constraint.ValueRangeConstraint(484, 2147483647))), + namedtype.NamedType('msgFlags', univ.OctetString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, 1))), + namedtype.NamedType('msgSecurityModel', univ.Integer().subtype(subtypeSpec=constraint.ValueRangeConstraint(1, 2147483647))) + ) + +class SNMPv3Message(univ.Sequence): + componentType = namedtype.NamedTypes( + namedtype.NamedType('msgVersion', univ.Integer().subtype(subtypeSpec=constraint.ValueRangeConstraint(0, 2147483647))), + namedtype.NamedType('msgGlobalData', HeaderData()), + namedtype.NamedType('msgSecurityParameters', univ.OctetString()), + namedtype.NamedType('msgData', ScopedPduData()) + ) + |