def test_sample(): # Samples from X.690-0207 Name=asn1.TYPE(asn1.IMPLICIT(1,cls=asn1.APPLICATION_FLAG), asn1.SEQUENCE([('givenName', None, asn1.VisibleString, 0), ('initial', None, asn1.VisibleString, 0), ('familyName', None, asn1.VisibleString, 0)], seq_name = 'Name')) EmployeeNumber=asn1.TYPE(asn1.IMPLICIT(2,cls=asn1.APPLICATION_FLAG), asn1.INTEGER_class([],0,2147483647)) Date=asn1.TYPE(asn1.IMPLICIT(3,cls=asn1.APPLICATION_FLAG), asn1.VisibleString) ChildInformation=asn1.SEQUENCE([('name',None,Name,0),('dateOfBirth',asn1.EXPLICIT(0,cls=asn1.CONTEXT_FLAG),Date,0)], seq_name = 'ChildInformation') PersonnelRecord=asn1.TYPE(asn1.IMPLICIT(0,cls=asn1.APPLICATION_FLAG), asn1.SEQUENCE([ ('name',None,Name,0), ('title',None,asn1.TYPE(asn1.EXPLICIT(0,cls=asn1.CONTEXT_FLAG),asn1.VisibleString),0), ('number',None,EmployeeNumber,1), ('dateOfHire',None,asn1.TYPE(asn1.EXPLICIT(1,cls=asn1.CONTEXT_FLAG),Date),0), ('nameOfSpouse',None,asn1.TYPE(asn1.EXPLICIT(2,cls=asn1.CONTEXT_FLAG),Name),0), ('children',None,asn1.TYPE(asn1.EXPLICIT(3,cls=asn1.CONTEXT_FLAG),asn1.SEQUENCE_OF(ChildInformation)),0), ], seq_name = 'PersonnelRecord')) decoded = { 'name': { 'givenName': 'John', 'initial': 'P', 'familyName': 'Smith' }, 'title': 'Director', 'number': 51, 'dateOfHire': '19710917', 'nameOfSpouse': { 'givenName': 'Mary', 'initial': 'T', 'familyName': 'Smith' }, 'children': [ { 'name': { 'givenName': 'Ralph', 'initial': 'T', 'familyName': 'Smith' }, 'dateOfBirth': '19571111' }, { 'name': { 'givenName': 'Susan', 'initial': 'B', 'familyName': 'Jones' }, 'dateOfBirth': '19590717' }, ]} pdu = PersonnelRecord print "Encoded:" encoded = asn1.encode(pdu, decoded) print oo(encoded) print "Decoded:" redecoded = asn1.decode(pdu, encoded) print repr(redecoded) assert(redecoded == decoded) print "Re-encoded:" reencoded = asn1.encode(pdu, redecoded) print oo(reencoded) print "Original:" print oo(encoded) assert(encoded == reencoded)
# Auto-generated at Thu, 09 Sep 2010 13:15:00 +0000 # with the following command line: # ./py_output.py --implicit asn/tcap.asn import Yapasn1 as asn1 #module TCAPMessages None P_AbortCause = asn1.TYPE( asn1.IMPLICIT(10, cls=asn1.APPLICATION_FLAG), asn1.INTEGER_class([('unrecognizedMessageType', 0), ('unrecognizedTransactionID', 1), ('badlyFormattedTransactionPortion', 2), ('incorrectTransactionPortion', 3), ('resourceLimitation', 4)], 0, 127)) InvokeIdType = asn1.INTEGER_class([], -128, 127) ERROR = asn1.CHOICE([('localValue', None, asn1.INTEGER_class([], None, None)), ('globalValue', None, asn1.OBJECT_IDENTIFIER)]) ReturnResultProblem = asn1.INTEGER_class([('unrecognizedInvokeID', 0), ('returnResultUnexpected', 1), ('mistypedParameter', 2)], None, None) Parameter = asn1.ANY ReturnError = asn1.SEQUENCE([('invokeID', None, InvokeIdType, 0, None), ('errorCode', None, ERROR, 0, None), ('parameter', None, Parameter, 1, None)], seq_name='ReturnError') ReturnErrorProblem = asn1.INTEGER_class([('unrecognizedInvokeID', 0), ('returnErrorUnexpected', 1), ('unrecognizedError', 2), ('unexpectedError', 3), ('mistypedParameter', 4)], None, None) InvokeProblem = asn1.INTEGER_class([('duplicateInvokeID', 0), ('unrecognizedOperation', 1),
('dialogue-service-provider', None, asn1.TYPE( asn1.EXPLICIT(2, cls=asn1.CONTEXT_FLAG), asn1.INTEGER_class([('null', 0), ('no-reason-given', 1), ('no-common-dialogue-portion', 2)], None, None))) ]) Associate_result = asn1.INTEGER_class([('accepted', 0), ('reject-permanent', 1)], None, None) Release_request_reason = asn1.INTEGER_class([('normal', 0), ('urgent', 1), ('user-defined', 30)], None, None) Release_response_reason = asn1.INTEGER_class([('normal', 0), ('not-finished', 1), ('user-defined', 30)], None, None) AARQ_apdu = asn1.TYPE( asn1.IMPLICIT(0, cls=asn1.APPLICATION_FLAG), asn1.SEQUENCE( [('protocol-version', None, asn1.TYPE(asn1.IMPLICIT(0, cls=asn1.CONTEXT_FLAG), asn1.BITSTRING_class([('version1', 0)], None, None)), 1, 'version1'), ('application-context-name', None, asn1.TYPE(asn1.EXPLICIT(1, cls=asn1.CONTEXT_FLAG), asn1.OBJECT_IDENTIFIER), 0, None), ('user-information', None, asn1.TYPE(asn1.IMPLICIT(30, cls=asn1.CONTEXT_FLAG), asn1.SEQUENCE_OF(asn1.EXTERNAL)), 1, None)], seq_name='AARQ-apdu')) ABRT_source = asn1.INTEGER_class([('dialogue-service-user', 0), ('dialogue-service-provider', 1)], None, None)
# Auto-generated at Mon, 08 Oct 2012 15:05:58 +0000 # with the following command line: # ./py_output.py --explicit asn/RFC2578-SMIv2.asn import Yapasn1 as asn1 #module COMMUNITY-BASED-SNMPv2 None Opaque = asn1.TYPE(asn1.IMPLICIT(4, cls=asn1.APPLICATION_FLAG), asn1.OCTSTRING) TimeTicks = asn1.TYPE(asn1.IMPLICIT(3, cls=asn1.APPLICATION_FLAG), asn1.INTEGER_class([], 0, 4294967295)) NotificationName = asn1.OBJECT_IDENTIFIER IpAddress = asn1.TYPE(asn1.IMPLICIT(0, cls=asn1.APPLICATION_FLAG), asn1.OCTSTRING) Counter64 = asn1.TYPE(asn1.IMPLICIT(6, cls=asn1.APPLICATION_FLAG), asn1.INTEGER_class([], 0, 18446744073709551615)) Unsigned32 = asn1.TYPE(asn1.IMPLICIT(2, cls=asn1.APPLICATION_FLAG), asn1.INTEGER_class([], 0, 4294967295)) Gauge32 = asn1.TYPE(asn1.IMPLICIT(2, cls=asn1.APPLICATION_FLAG), asn1.INTEGER_class([], 0, 4294967295)) Integer32 = asn1.INTEGER_class([], -2147483648, 2147483647) ObjectName = asn1.OBJECT_IDENTIFIER SimpleSyntax = asn1.CHOICE([('integer-value', None, asn1.INTEGER_class([], -2147483648, 2147483647)), ('string-value', None, asn1.OCTSTRING), ('objectID-value', None, asn1.OBJECT_IDENTIFIER)]) Counter32 = asn1.TYPE(asn1.IMPLICIT(1, cls=asn1.APPLICATION_FLAG), asn1.INTEGER_class([], 0, 4294967295)) ApplicationSyntax = asn1.CHOICE([('ipAddress-value', None, IpAddress), ('counter-value', None, Counter32), ('timeticks-value', None, TimeTicks), ('arbitrary-value', None, Opaque), ('big-counter-value', None, Counter64), ('unsigned-integer-value', None, Unsigned32)])
# Auto-generated at Mon, 08 Oct 2012 15:04:21 +0000 # with the following command line: # ./py_output.py --explicit asn/RFC1157-SMI.asn import Yapasn1 as asn1 #module RFC1157-SNMP None Counter=asn1.TYPE(asn1.IMPLICIT(1,cls=asn1.APPLICATION_FLAG),asn1.INTEGER_class ([],0,4294967295)) ObjectName=asn1.OBJECT_IDENTIFIER Opaque=asn1.TYPE(asn1.IMPLICIT(4,cls=asn1.APPLICATION_FLAG),asn1.OCTSTRING) TimeTicks=asn1.TYPE(asn1.IMPLICIT(3,cls=asn1.APPLICATION_FLAG),asn1.INTEGER_class ([],0,4294967295)) SimpleSyntax=asn1.CHOICE ([('number',None,asn1.INTEGER_class ([],None,None)), ('string',None,asn1.OCTSTRING), ('object',None,asn1.OBJECT_IDENTIFIER), ('empty',None,asn1.NULL)]) Gauge=asn1.TYPE(asn1.IMPLICIT(2,cls=asn1.APPLICATION_FLAG),asn1.INTEGER_class ([],0,4294967295)) IpAddress=asn1.TYPE(asn1.IMPLICIT(0,cls=asn1.APPLICATION_FLAG),asn1.OCTSTRING) NetworkAddress=asn1.CHOICE ([('internet',None,IpAddress)]) ApplicationSyntax=asn1.CHOICE ([('address',None,NetworkAddress), ('counter',None,Counter), ('gauge',None,Gauge), ('ticks',None,TimeTicks), ('arbitrary',None,Opaque)]) ObjectSyntax=asn1.CHOICE ([('simple',None,SimpleSyntax), ('application-wide',None,ApplicationSyntax)]) VarBind=asn1.SEQUENCE ([('name',None,ObjectName,0,None), ('value',None,ObjectSyntax,0,None)], seq_name = 'VarBind') VarBindList=asn1.SEQUENCE_OF (VarBind) PDU=asn1.SEQUENCE ([('request-id',None,asn1.INTEGER_class ([],None,None),0,None), ('error-status',None,asn1.INTEGER_class ([('noError',0),('tooBig',1),('noSuchName',2),('badValue',3),('readOnly',4),('genErr',5)],None,None),0,None), ('error-index',None,asn1.INTEGER_class ([],None,None),0,None), ('variable-bindings',None,VarBindList,0,None)], seq_name = 'PDU') GetRequest_PDU=asn1.TYPE(asn1.IMPLICIT(0,cls=asn1.CONTEXT_FLAG),PDU)