Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
rfc4108.py351 linesDownload Raw Back to pyasn1_modules
1#2# This file is part of pyasn1-modules software.3#4# Created by Russ Housley with assistance from asn1ate v.0.6.0.5# Modified by Russ Housley to add items from the verified errata.6# Modified by Russ Housley to add maps for use with opentypes.7#8# Copyright (c) 2019, Vigil Security, LLC9# License: http://snmplabs.com/pyasn1/license.html10#11# CMS Firmware Wrapper12#13# ASN.1 source from:14# https://www.rfc-editor.org/rfc/rfc4108.txt15# https://www.rfc-editor.org/errata_search.php?rfc=410816#17 18 19from pyasn1.type import univ, char, namedtype, namedval, tag, constraint, useful20 21from pyasn1_modules import rfc528022from pyasn1_modules import rfc565223 24MAX = float('inf')25 26 27class HardwareSerialEntry(univ.Choice):28    pass29 30HardwareSerialEntry.componentType = namedtype.NamedTypes(31    namedtype.NamedType('all', univ.Null()),32    namedtype.NamedType('single', univ.OctetString()),33    namedtype.NamedType('block', univ.Sequence(componentType=namedtype.NamedTypes(34        namedtype.NamedType('low', univ.OctetString()),35        namedtype.NamedType('high', univ.OctetString())36    ))37    )38)39 40 41class HardwareModules(univ.Sequence):42    pass43 44HardwareModules.componentType = namedtype.NamedTypes(45    namedtype.NamedType('hwType', univ.ObjectIdentifier()),46    namedtype.NamedType('hwSerialEntries', univ.SequenceOf(componentType=HardwareSerialEntry()))47)48 49 50class CommunityIdentifier(univ.Choice):51    pass52 53CommunityIdentifier.componentType = namedtype.NamedTypes(54    namedtype.NamedType('communityOID', univ.ObjectIdentifier()),55    namedtype.NamedType('hwModuleList', HardwareModules())56)57 58 59 60class PreferredPackageIdentifier(univ.Sequence):61    pass62 63PreferredPackageIdentifier.componentType = namedtype.NamedTypes(64    namedtype.NamedType('fwPkgID', univ.ObjectIdentifier()),65    namedtype.NamedType('verNum', univ.Integer().subtype(subtypeSpec=constraint.ValueRangeConstraint(0, MAX)))66)67 68 69class PreferredOrLegacyPackageIdentifier(univ.Choice):70    pass71 72PreferredOrLegacyPackageIdentifier.componentType = namedtype.NamedTypes(73    namedtype.NamedType('preferred', PreferredPackageIdentifier()),74    namedtype.NamedType('legacy', univ.OctetString())75)76 77 78class CurrentFWConfig(univ.Sequence):79    pass80 81CurrentFWConfig.componentType = namedtype.NamedTypes(82    namedtype.OptionalNamedType('fwPkgType', univ.Integer()),83    namedtype.NamedType('fwPkgName', PreferredOrLegacyPackageIdentifier())84)85 86 87class PreferredOrLegacyStalePackageIdentifier(univ.Choice):88    pass89 90PreferredOrLegacyStalePackageIdentifier.componentType = namedtype.NamedTypes(91    namedtype.NamedType('preferredStaleVerNum', univ.Integer().subtype(subtypeSpec=constraint.ValueRangeConstraint(0, MAX))),92    namedtype.NamedType('legacyStaleVersion', univ.OctetString())93)94 95 96class FirmwarePackageLoadErrorCode(univ.Enumerated):97    pass98 99FirmwarePackageLoadErrorCode.namedValues = namedval.NamedValues(100    ('decodeFailure', 1),101    ('badContentInfo', 2),102    ('badSignedData', 3),103    ('badEncapContent', 4),104    ('badCertificate', 5),105    ('badSignerInfo', 6),106    ('badSignedAttrs', 7),107    ('badUnsignedAttrs', 8),108    ('missingContent', 9),109    ('noTrustAnchor', 10),110    ('notAuthorized', 11),111    ('badDigestAlgorithm', 12),112    ('badSignatureAlgorithm', 13),113    ('unsupportedKeySize', 14),114    ('signatureFailure', 15),115    ('contentTypeMismatch', 16),116    ('badEncryptedData', 17),117    ('unprotectedAttrsPresent', 18),118    ('badEncryptContent', 19),119    ('badEncryptAlgorithm', 20),120    ('missingCiphertext', 21),121    ('noDecryptKey', 22),122    ('decryptFailure', 23),123    ('badCompressAlgorithm', 24),124    ('missingCompressedContent', 25),125    ('decompressFailure', 26),126    ('wrongHardware', 27),127    ('stalePackage', 28),128    ('notInCommunity', 29),129    ('unsupportedPackageType', 30),130    ('missingDependency', 31),131    ('wrongDependencyVersion', 32),132    ('insufficientMemory', 33),133    ('badFirmware', 34),134    ('unsupportedParameters', 35),135    ('breaksDependency', 36),136    ('otherError', 99)137)138 139 140class VendorLoadErrorCode(univ.Integer):141    pass142 143 144# Wrapped Firmware Key Unsigned Attribute and Object Identifier145 146id_aa_wrappedFirmwareKey = univ.ObjectIdentifier('1.2.840.113549.1.9.16.2.39')147 148class WrappedFirmwareKey(rfc5652.EnvelopedData):149    pass150 151 152# Firmware Package Information Signed Attribute and Object Identifier153 154id_aa_firmwarePackageInfo = univ.ObjectIdentifier('1.2.840.113549.1.9.16.2.42')155 156class FirmwarePackageInfo(univ.Sequence):157    pass158 159FirmwarePackageInfo.componentType = namedtype.NamedTypes(160    namedtype.OptionalNamedType('fwPkgType', univ.Integer()),161    namedtype.OptionalNamedType('dependencies', univ.SequenceOf(componentType=PreferredOrLegacyPackageIdentifier()))162)163 164FirmwarePackageInfo.sizeSpec = univ.Sequence.sizeSpec + constraint.ValueSizeConstraint(1, 2)165 166 167# Community Identifiers Signed Attribute and Object Identifier168 169id_aa_communityIdentifiers = univ.ObjectIdentifier('1.2.840.113549.1.9.16.2.40')170 171class CommunityIdentifiers(univ.SequenceOf):172    pass173 174CommunityIdentifiers.componentType = CommunityIdentifier()175 176 177# Implemented Compression Algorithms Signed Attribute and Object Identifier178 179id_aa_implCompressAlgs = univ.ObjectIdentifier('1.2.840.113549.1.9.16.2.43')180 181class ImplementedCompressAlgorithms(univ.SequenceOf):182    pass183 184ImplementedCompressAlgorithms.componentType = univ.ObjectIdentifier()185 186 187# Implemented Cryptographic Algorithms Signed Attribute and Object Identifier188 189id_aa_implCryptoAlgs = univ.ObjectIdentifier('1.2.840.113549.1.9.16.2.38')190 191class ImplementedCryptoAlgorithms(univ.SequenceOf):192    pass193 194ImplementedCryptoAlgorithms.componentType = univ.ObjectIdentifier()195 196 197# Decrypt Key Identifier Signed Attribute and Object Identifier198 199id_aa_decryptKeyID = univ.ObjectIdentifier('1.2.840.113549.1.9.16.2.37')200 201class DecryptKeyIdentifier(univ.OctetString):202    pass203 204 205# Target Hardware Identifier Signed Attribute and Object Identifier206 207id_aa_targetHardwareIDs = univ.ObjectIdentifier('1.2.840.113549.1.9.16.2.36')208 209class TargetHardwareIdentifiers(univ.SequenceOf):210    pass211 212TargetHardwareIdentifiers.componentType = univ.ObjectIdentifier()213 214 215# Firmware Package Identifier Signed Attribute and Object Identifier216 217id_aa_firmwarePackageID = univ.ObjectIdentifier('1.2.840.113549.1.9.16.2.35')218 219class FirmwarePackageIdentifier(univ.Sequence):220    pass221 222FirmwarePackageIdentifier.componentType = namedtype.NamedTypes(223    namedtype.NamedType('name', PreferredOrLegacyPackageIdentifier()),224    namedtype.OptionalNamedType('stale', PreferredOrLegacyStalePackageIdentifier())225)226 227 228# Firmware Package Message Digest Signed Attribute and Object Identifier229 230id_aa_fwPkgMessageDigest = univ.ObjectIdentifier('1.2.840.113549.1.9.16.2.41')231 232class FirmwarePackageMessageDigest(univ.Sequence):233    pass234 235FirmwarePackageMessageDigest.componentType = namedtype.NamedTypes(236    namedtype.NamedType('algorithm', rfc5280.AlgorithmIdentifier()),237    namedtype.NamedType('msgDigest', univ.OctetString())238)239 240 241# Firmware Package Load Error Report Content Type and Object Identifier242 243class FWErrorVersion(univ.Integer):244    pass245 246FWErrorVersion.namedValues = namedval.NamedValues(247    ('v1', 1)248)249 250 251id_ct_firmwareLoadError = univ.ObjectIdentifier('1.2.840.113549.1.9.16.1.18')252 253class FirmwarePackageLoadError(univ.Sequence):254    pass255 256FirmwarePackageLoadError.componentType = namedtype.NamedTypes(257    namedtype.DefaultedNamedType('version', FWErrorVersion().subtype(value='v1')),258    namedtype.NamedType('hwType', univ.ObjectIdentifier()),259    namedtype.NamedType('hwSerialNum', univ.OctetString()),260    namedtype.NamedType('errorCode', FirmwarePackageLoadErrorCode()),261    namedtype.OptionalNamedType('vendorErrorCode', VendorLoadErrorCode()),262    namedtype.OptionalNamedType('fwPkgName', PreferredOrLegacyPackageIdentifier()),263    namedtype.OptionalNamedType('config', univ.SequenceOf(componentType=CurrentFWConfig()).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1)))264)265 266 267# Firmware Package Load Receipt Content Type and Object Identifier268 269class FWReceiptVersion(univ.Integer):270    pass271 272FWReceiptVersion.namedValues = namedval.NamedValues(273    ('v1', 1)274)275 276 277id_ct_firmwareLoadReceipt = univ.ObjectIdentifier('1.2.840.113549.1.9.16.1.17')278 279class FirmwarePackageLoadReceipt(univ.Sequence):280    pass281 282FirmwarePackageLoadReceipt.componentType = namedtype.NamedTypes(283    namedtype.DefaultedNamedType('version', FWReceiptVersion().subtype(value='v1')),284    namedtype.NamedType('hwType', univ.ObjectIdentifier()),285    namedtype.NamedType('hwSerialNum', univ.OctetString()),286    namedtype.NamedType('fwPkgName', PreferredOrLegacyPackageIdentifier()),287    namedtype.OptionalNamedType('trustAnchorKeyID', univ.OctetString()),288    namedtype.OptionalNamedType('decryptKeyID', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1)))289)290 291 292# Firmware Package Content Type and Object Identifier293 294id_ct_firmwarePackage = univ.ObjectIdentifier('1.2.840.113549.1.9.16.1.16')295 296class FirmwarePkgData(univ.OctetString):297    pass298 299 300# Other Name syntax for Hardware Module Name301 302id_on_hardwareModuleName = univ.ObjectIdentifier('1.3.6.1.5.5.7.8.4')303 304class HardwareModuleName(univ.Sequence):305    pass306 307HardwareModuleName.componentType = namedtype.NamedTypes(308    namedtype.NamedType('hwType', univ.ObjectIdentifier()),309    namedtype.NamedType('hwSerialNum', univ.OctetString())310)311 312 313# Map of Attribute Type OIDs to Attributes is added to the314# ones that are in rfc5652.py315 316_cmsAttributesMapUpdate = {317    id_aa_wrappedFirmwareKey: WrappedFirmwareKey(),318    id_aa_firmwarePackageInfo: FirmwarePackageInfo(),319    id_aa_communityIdentifiers: CommunityIdentifiers(),320    id_aa_implCompressAlgs: ImplementedCompressAlgorithms(),321    id_aa_implCryptoAlgs: ImplementedCryptoAlgorithms(),322    id_aa_decryptKeyID: DecryptKeyIdentifier(),323    id_aa_targetHardwareIDs: TargetHardwareIdentifiers(),324    id_aa_firmwarePackageID: FirmwarePackageIdentifier(),325    id_aa_fwPkgMessageDigest: FirmwarePackageMessageDigest(),326}327 328rfc5652.cmsAttributesMap.update(_cmsAttributesMapUpdate)329 330 331# Map of Content Type OIDs to Content Types is added to the332# ones that are in rfc5652.py333 334_cmsContentTypesMapUpdate = {335    id_ct_firmwareLoadError: FirmwarePackageLoadError(),336    id_ct_firmwareLoadReceipt: FirmwarePackageLoadReceipt(),337    id_ct_firmwarePackage: FirmwarePkgData(),338}339 340rfc5652.cmsContentTypesMap.update(_cmsContentTypesMapUpdate)341 342 343# Map of Other Name OIDs to Other Name is added to the344# ones that are in rfc5280.py345 346_anotherNameMapUpdate = {347    id_on_hardwareModuleName: HardwareModuleName(),348}349 350rfc5280.anotherNameMap.update(_anotherNameMapUpdate)351 
codekingpro/portable-devtools · Team Ai