def testStr(self): assert str(univ.ObjectIdentifier((1, 3, 6))) == '1.3.6', 'str() fails'
def testEdge2(self): assert encoder.encode( univ.ObjectIdentifier((1, 39)) ) == ints2octs((6, 1, 79))
def testEdge4(self): # 10010000|10000000|10000000|10000000|01001111 assert encoder.encode( univ.ObjectIdentifier((2, 0xffffffff)) ) == ints2octs((6, 5, 0x90, 0x80, 0x80, 0x80, 0x4F))
class FieldID(univ.Sequence): componentType = namedtype.NamedTypes( namedtype.NamedType('fieldType', univ.ObjectIdentifier()), namedtype.NamedType('parameters', univ.Any()) )
class EcpkParameters(univ.Choice): componentType = namedtype.NamedTypes( namedtype.NamedType('ecParameters', ECParameters()), namedtype.NamedType('namedCurve', univ.ObjectIdentifier()), namedtype.NamedType('implicitlyCA', univ.Null()) )
class HeaderFields(univ.SequenceOf): componentType = HeaderField() subtypeSpec = constraint.ValueSizeConstraint(1, MAX) class SecureHeaderFields(univ.Set): componentType = namedtype.NamedTypes( namedtype.NamedType('canonAlgorithm', Algorithm()), namedtype.NamedType('secHeaderFields', HeaderFields())) id_aa = univ.ObjectIdentifier(( 1, 2, 840, 113549, 1, 9, 16, 2, )) id_aa_secureHeaderFieldsIdentifier = id_aa + (55, ) # Update the CMS Attribute Attributes Map _cmsAttributesMapUpdate = { id_aa_secureHeaderFieldsIdentifier: SecureHeaderFields(), } cmsAttributesMap.update(_cmsAttributesMapUpdate)
def nextCmd(self, authData, transportTarget, *varNames, **kwargs): def __cbFun(sendRequestHandle, errorIndication, errorStatus, errorIndex, varBindTable, cbCtx): (self, varBindHead, varBindTotalTable, appReturn) = cbCtx if (ignoreNonIncreasingOid or \ hasattr(self, 'ignoreNonIncreasingOid') and \ self.ignoreNonIncreasingOid ) and \ errorIndication and \ isinstance(errorIndication, errind.OidNotIncreasing): errorIndication = None if errorStatus or errorIndication: appReturn['errorIndication'] = errorIndication if errorStatus == 2: # Hide SNMPv1 noSuchName error which leaks in here # from SNMPv1 Agent through internal pysnmp proxy. appReturn['errorStatus'] = errorStatus.clone(0) appReturn['errorIndex'] = errorIndex.clone(0) else: appReturn['errorStatus'] = errorStatus appReturn['errorIndex'] = errorIndex appReturn['varBindTable'] = varBindTotalTable return else: if maxRows and len(varBindTotalTable) >= maxRows or \ hasattr(self, 'maxRows') and self.maxRows and \ len(varBindTotalTable) >= self.maxRows: appReturn['errorIndication'] = errorIndication appReturn['errorStatus'] = errorStatus appReturn['errorIndex'] = errorIndex if hasattr(self, 'maxRows'): appReturn['varBindTable'] = varBindTotalTable[:self.maxRows] else: appReturn['varBindTable'] = varBindTotalTable[:maxRows] return varBindTableRow = varBindTable and varBindTable[-1] or varBindTable for idx in range(len(varBindTableRow)): name, val = varBindTableRow[idx] # XXX extra rows if not isinstance(val, univ.Null): if lexicographicMode or \ hasattr(self, 'lexicographicMode') and \ self.lexicographicMode: # obsolete if varBindHead[idx] <= name: break else: if varBindHead[idx].isPrefixOf(name): break else: appReturn['errorIndication'] = errorIndication appReturn['errorStatus'] = errorStatus appReturn['errorIndex'] = errorIndex appReturn['varBindTable'] = varBindTotalTable return varBindTotalTable.extend(varBindTable) return 1 # continue table retrieval lookupNames = kwargs.get('lookupNames', False) lookupValues = kwargs.get('lookupValues', False) contextEngineId = kwargs.get('contextEngineId') contextName = kwargs.get('contextName', null) lexicographicMode = kwargs.get('lexicographicMode', False) maxRows = kwargs.get('maxRows', 0) ignoreNonIncreasingOid = kwargs.get('ignoreNonIncreasingOid', False) varBindHead = [ univ.ObjectIdentifier(x[0]) for x in self.__asynCmdGen.makeReadVarBinds(varNames) ] appReturn = {} self.__asynCmdGen.nextCmd( authData, transportTarget, varNames, (__cbFun, (self, varBindHead, [], appReturn)), lookupNames, lookupValues, contextEngineId, contextName ) self.snmpEngine.transportDispatcher.runDispatcher() return ( appReturn['errorIndication'], appReturn['errorStatus'], appReturn['errorIndex'], appReturn['varBindTable'] )
def testPrefix(self): o = univ.ObjectIdentifier('1.3.6') assert o.isPrefixOf((1, 3, 6)), 'isPrefixOf() fails' assert o.isPrefixOf((1, 3, 6, 1)), 'isPrefixOf() fails' assert not o.isPrefixOf((1, 3)), 'isPrefixOf() fails'
def testInput1(self): assert univ.ObjectIdentifier('1.3.6') == (1, 3, 6), 'prettyIn() fails'
def testRadd(self): assert (1, ) + univ.ObjectIdentifier( (3, 6)) == (1, 3, 6), '__radd__() fails'
def testLen(self): assert len(univ.ObjectIdentifier((1, 3))) == 2, '__len__() fails'
def testAdd(self): assert univ.ObjectIdentifier( (1, 3)) + (6, ) == (1, 3, 6), '__add__() fails'
def testEq(self): assert univ.ObjectIdentifier((1, 3, 6)) == (1, 3, 6), '__cmp__() fails'
def testRepr(self): assert eval(repr(univ.ObjectIdentifier('1.3.6')), {'ObjectIdentifier': univ.ObjectIdentifier }) == univ.ObjectIdentifier('1.3.6'), 'repr() fails'
import rfc3161ng __all__ = ( 'RemoteTimestamper', 'check_timestamp', 'get_hash_oid', 'TimestampingError', 'get_timestamp', 'make_timestamp_request', 'encode_timestamp_request', 'encode_timestamp_response', 'decode_timestamp_request', 'decode_timestamp_response', ) id_attribute_messageDigest = univ.ObjectIdentifier( (1, 2, 840, 113549, 1, 9, 4)) def get_hash_oid(hashname): return rfc3161ng.__dict__['id_' + hashname] def get_hash_from_oid(oid): h = rfc3161ng.oid_to_hash.get(oid) if h is None: raise ValueError('unsupported hash algorithm', oid) return h def get_hash_class_from_oid(oid): h = get_hash_from_oid(oid)
def testInput2(self): assert univ.ObjectIdentifier( (1, 3, 6)) == (1, 3, 6), 'prettyIn() fails'
from pyasn1.type import univ from pyasn1_alt_modules import rfc5652 from pyasn1_alt_modules import opentypemap cmsAttributesMap = opentypemap.get('cmsAttributesMap') MAX = float('inf') # Imports from RFC 5652 Attribute = rfc5652.Attribute # Asymmetric Decrypt Key Identifier Attribute id_aa_asymmDecryptKeyID = univ.ObjectIdentifier('1.2.840.113549.1.9.16.2.54') class AsymmetricDecryptKeyIdentifier(univ.OctetString): pass aa_asymmDecryptKeyID = Attribute() aa_asymmDecryptKeyID['attrType'] = id_aa_asymmDecryptKeyID aa_asymmDecryptKeyID['attrValues'][0] = AsymmetricDecryptKeyIdentifier() # CSR Attributes class AttrOrOID(univ.Choice): pass
def testInput3(self): assert univ.ObjectIdentifier(univ.ObjectIdentifier('1.3') + (6, )) == (1, 3, 6), 'prettyIn() fails'
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()))
def testTag(self): assert univ.ObjectIdentifier().getTagSet() == tag.TagSet( (), tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 0x06))
def bulkCmd(self, authData, transportTarget, nonRepeaters, maxRepetitions, *varNames, **kwargs): def __cbFun(sendRequestHandle, errorIndication, errorStatus, errorIndex, varBindTable, cbCtx): (self, varBindHead, varBindTotalTable, appReturn) = cbCtx if (ignoreNonIncreasingOid or \ hasattr(self, 'ignoreNonIncreasingOid') and \ self.ignoreNonIncreasingOid ) and \ errorIndication and \ isinstance(errorIndication, errind.OidNotIncreasing): errorIndication = None if errorStatus or errorIndication: appReturn['errorIndication'] = errorIndication appReturn['errorStatus'] = errorStatus appReturn['errorIndex'] = errorIndex appReturn['varBindTable'] = varBindTable return else: while varBindTable: if len(varBindTable[-1]) != len(varBindHead): # Fix possibly non-rectangular table del varBindTable[-1] else: break varBindTotalTable.extend(varBindTable) # XXX out of table # rows possible if maxRows and len(varBindTotalTable) >= maxRows or \ hasattr(self, 'maxRows') and self.maxRows and \ len(varBindTotalTable) >= self.maxRows: # obsolete appReturn['errorIndication'] = errorIndication appReturn['errorStatus'] = errorStatus appReturn['errorIndex'] = errorIndex if hasattr(self, 'maxRows'): appReturn['varBindTable'] = varBindTotalTable[:self.maxRows] else: appReturn['varBindTable'] = varBindTotalTable[:maxRows] return varBindTableRow = varBindTable and varBindTable[-1] or varBindTable for idx in range(len(varBindTableRow)): name, val = varBindTableRow[idx] if not isinstance(val, univ.Null): if lexicographicMode or \ hasattr(self, 'lexicographicMode') and \ self.lexicographicMode: # obsolete if varBindHead[idx] <= name: break else: if varBindHead[idx].isPrefixOf(name): break else: appReturn['errorIndication'] = errorIndication appReturn['errorStatus'] = errorStatus appReturn['errorIndex'] = errorIndex appReturn['varBindTable'] = varBindTotalTable return return 1 # continue table retrieval lookupNames = kwargs.get('lookupNames', False) lookupValues = kwargs.get('lookupValues', False) contextEngineId = kwargs.get('contextEngineId') contextName = kwargs.get('contextName', null) lexicographicMode = kwargs.get('lexicographicMode', False) maxRows = kwargs.get('maxRows', 0) ignoreNonIncreasingOid = kwargs.get('ignoreNonIncreasingOid', False) varBindHead = [ univ.ObjectIdentifier(x[0]) for x in self.__asynCmdGen.makeReadVarBinds(varNames) ] appReturn = {} self.__asynCmdGen.bulkCmd( authData, transportTarget, nonRepeaters, maxRepetitions, varNames, (__cbFun, (self, varBindHead, [], appReturn)), lookupNames, lookupValues, contextEngineId, contextName ) self.snmpEngine.transportDispatcher.runDispatcher() return ( appReturn['errorIndication'], appReturn['errorStatus'], appReturn['errorIndex'], appReturn['varBindTable'] )
('privilegeWithdrawn', 9), ('aACompromise', 10) ) # end of directory Authentication Framework (X.509) module # This should be in PKIX Certificate Extensions module class GeneralName(univ.OctetString): pass # end of PKIX Certificate Extensions module id_kp_OCSPSigning = univ.ObjectIdentifier((1, 3, 6, 1, 5, 5, 7, 3, 9)) id_pkix_ocsp = univ.ObjectIdentifier((1, 3, 6, 1, 5, 5, 7, 48, 1)) id_pkix_ocsp_basic = univ.ObjectIdentifier((1, 3, 6, 1, 5, 5, 7, 48, 1, 1)) id_pkix_ocsp_nonce = univ.ObjectIdentifier((1, 3, 6, 1, 5, 5, 7, 48, 1, 2)) id_pkix_ocsp_crl = univ.ObjectIdentifier((1, 3, 6, 1, 5, 5, 7, 48, 1, 3)) id_pkix_ocsp_response = univ.ObjectIdentifier((1, 3, 6, 1, 5, 5, 7, 48, 1, 4)) id_pkix_ocsp_nocheck = univ.ObjectIdentifier((1, 3, 6, 1, 5, 5, 7, 48, 1, 5)) id_pkix_ocsp_archive_cutoff = univ.ObjectIdentifier((1, 3, 6, 1, 5, 5, 7, 48, 1, 6)) id_pkix_ocsp_service_locator = univ.ObjectIdentifier((1, 3, 6, 1, 5, 5, 7, 48, 1, 7)) class AcceptableResponses(univ.SequenceOf): componentType = univ.ObjectIdentifier() class ArchiveCutoff(useful.GeneralizedTime):
class Characteristic_two(univ.Sequence): componentType = namedtype.NamedTypes( namedtype.NamedType('m', univ.Integer()), namedtype.NamedType('basis', univ.ObjectIdentifier()), namedtype.NamedType('parameters', univ.Any()) )
class ResponseBytes(univ.Sequence): componentType = namedtype.NamedTypes( namedtype.NamedType('responseType', univ.ObjectIdentifier()), namedtype.NamedType('response', univ.OctetString()) )
def testOne(self): assert encoder.encode( univ.ObjectIdentifier((1, 3, 6, 0, 0xffffe)) ) == ints2octs((6, 6, 43, 6, 0, 191, 255, 126))
class AcceptableResponses(univ.SequenceOf): componentType = univ.ObjectIdentifier()
def testEdge3(self): # 01111111 assert encoder.encode( univ.ObjectIdentifier((2, 40)) ) == ints2octs((6, 1, 120))
# https://www.rfc-editor.org/rfc/rfc8419.txt # https://www.rfc-editor.org/errata/eid5869 from pyasn1.type import univ from pyasn1_alt_modules import rfc5280 from pyasn1_alt_modules import opentypemap algorithmIdentifierMap = opentypemap.get('algorithmIdentifierMap') class ShakeOutputLen(univ.Integer): pass id_Ed25519 = univ.ObjectIdentifier('1.3.101.112') sigAlg_Ed25519 = rfc5280.AlgorithmIdentifier() sigAlg_Ed25519['algorithm'] = id_Ed25519 # sigAlg_Ed25519['parameters'] is absent id_Ed448 = univ.ObjectIdentifier('1.3.101.113') sigAlg_Ed448 = rfc5280.AlgorithmIdentifier() sigAlg_Ed448['algorithm'] = id_Ed448 # sigAlg_Ed448['parameters'] is absent hashAlgs = univ.ObjectIdentifier('2.16.840.1.101.3.4.2') id_sha512 = hashAlgs + (3, )
def testEdge5(self): # 01111111 assert encoder.encode( univ.ObjectIdentifier((2, 47)) ) == ints2octs((6, 1, 0x7F))
def test_invalid_usage(self): self.assertRaises(ValueError, self.ext.get_usage, univ.ObjectIdentifier('1.2.3.4')) self.assertRaises(ValueError, self.ext.set_usage, True, univ.ObjectIdentifier('1.2.3.4'))