⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.144
Server IP:
157.245.143.252
Server:
Linux www 6.11.0-9-generic #9-Ubuntu SMP PREEMPT_DYNAMIC Mon Oct 14 13:19:59 UTC 2024 x86_64
Server Software:
nginx/1.26.0
PHP Version:
8.3.11
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
lib
/
python3
/
dist-packages
/
pyasn1_modules
/
View File Name :
rfc5751.py
# This file is being contributed to pyasn1-modules software. # # Created by Russ Housley with assistance from asn1ate v.0.6.0. # # Copyright (c) 2019, Vigil Security, LLC # License: http://snmplabs.com/pyasn1/license.html # # S/MIME Version 3.2 Message Specification # # ASN.1 source from: # https://www.rfc-editor.org/rfc/rfc5751.txt from pyasn1.type import namedtype from pyasn1.type import opentype from pyasn1.type import tag from pyasn1.type import univ from pyasn1_modules import rfc5652 from pyasn1_modules import rfc8018 def _OID(*components): output = [] for x in tuple(components): if isinstance(x, univ.ObjectIdentifier): output.extend(list(x)) else: output.append(int(x)) return univ.ObjectIdentifier(output) # Imports from RFC 5652 and RFC 8018 IssuerAndSerialNumber = rfc5652.IssuerAndSerialNumber RecipientKeyIdentifier = rfc5652.RecipientKeyIdentifier SubjectKeyIdentifier = rfc5652.SubjectKeyIdentifier rc2CBC = rfc8018.rc2CBC # S/MIME Capabilities Attribute smimeCapabilities = univ.ObjectIdentifier('1.2.840.113549.1.9.15') smimeCapabilityMap = { } class SMIMECapability(univ.Sequence): pass SMIMECapability.componentType = namedtype.NamedTypes( namedtype.NamedType('capabilityID', univ.ObjectIdentifier()), namedtype.OptionalNamedType('parameters', univ.Any(), openType=opentype.OpenType('capabilityID', smimeCapabilityMap)) ) class SMIMECapabilities(univ.SequenceOf): pass SMIMECapabilities.componentType = SMIMECapability() class SMIMECapabilitiesParametersForRC2CBC(univ.Integer): # which carries the RC2 Key Length (number of bits) pass # S/MIME Encryption Key Preference Attribute id_smime = univ.ObjectIdentifier('1.2.840.113549.1.9.16') id_aa = _OID(id_smime, 2) id_aa_encrypKeyPref = _OID(id_aa, 11) class SMIMEEncryptionKeyPreference(univ.Choice): pass SMIMEEncryptionKeyPreference.componentType = namedtype.NamedTypes( namedtype.NamedType('issuerAndSerialNumber', IssuerAndSerialNumber().subtype(implicitTag=tag.Tag( tag.tagClassContext, tag.tagFormatSimple, 0))), namedtype.NamedType('receipentKeyId', # Yes, 'receipentKeyId' is spelled incorrectly, but kept # this way for alignment with the ASN.1 module in the RFC. RecipientKeyIdentifier().subtype(implicitTag=tag.Tag( tag.tagClassContext, tag.tagFormatSimple, 1))), namedtype.NamedType('subjectAltKeyIdentifier', SubjectKeyIdentifier().subtype(implicitTag=tag.Tag( tag.tagClassContext, tag.tagFormatSimple, 2))) ) # The Prefer Binary Inside SMIMECapabilities attribute id_cap = _OID(id_smime, 11) id_cap_preferBinaryInside = _OID(id_cap, 1) # CMS Attribute Map _cmsAttributesMapUpdate = { smimeCapabilities: SMIMECapabilities(), id_aa_encrypKeyPref: SMIMEEncryptionKeyPreference(), } rfc5652.cmsAttributesMap.update(_cmsAttributesMapUpdate) # SMIMECapabilities Attribute Map # # Do not include OIDs in the dictionary when the parameters are absent. _smimeCapabilityMapUpdate = { rc2CBC: SMIMECapabilitiesParametersForRC2CBC(), } smimeCapabilityMap.update(_smimeCapabilityMapUpdate)