Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
rfc3279.py261 linesDownload Raw Back to pyasn1_modules
1#2# This file is part of pyasn1-modules.3#4# Copyright (c) 2017, Danielle Madeley <danielle@madeley.id.au>5# License: http://snmplabs.com/pyasn1/license.html6#7# Modified by Russ Housley to add maps for use with opentypes.8#9# Algorithms and Identifiers for Internet X.509 Certificates and CRLs10#11# Derived from RFC 3279:12# https://www.rfc-editor.org/rfc/rfc3279.txt13#14from pyasn1.type import namedtype15from pyasn1.type import namedval16from pyasn1.type import univ17 18from pyasn1_modules import rfc528019 20 21def _OID(*components):22    output = []23    for x in tuple(components):24        if isinstance(x, univ.ObjectIdentifier):25            output.extend(list(x))26        else:27            output.append(int(x))28 29    return univ.ObjectIdentifier(output)30 31 32md2 = _OID(1, 2, 840, 113549, 2, 2)33md5 = _OID(1, 2, 840, 113549, 2, 5)34id_sha1 = _OID(1, 3, 14, 3, 2, 26)35id_dsa = _OID(1, 2, 840, 10040, 4, 1)36 37 38class DSAPublicKey(univ.Integer):39    pass40 41 42class Dss_Parms(univ.Sequence):43    componentType = namedtype.NamedTypes(44        namedtype.NamedType('p', univ.Integer()),45        namedtype.NamedType('q', univ.Integer()),46        namedtype.NamedType('g', univ.Integer())47    )48 49 50id_dsa_with_sha1 = _OID(1, 2, 840, 10040, 4, 3)51 52 53class Dss_Sig_Value(univ.Sequence):54    componentType = namedtype.NamedTypes(55        namedtype.NamedType('r', univ.Integer()),56        namedtype.NamedType('s', univ.Integer())57    )58 59 60pkcs_1 = _OID(1, 2, 840, 113549, 1, 1)61rsaEncryption = _OID(pkcs_1, 1)62md2WithRSAEncryption = _OID(pkcs_1, 2)63md5WithRSAEncryption = _OID(pkcs_1, 4)64sha1WithRSAEncryption = _OID(pkcs_1, 5)65 66 67class RSAPublicKey(univ.Sequence):68    componentType = namedtype.NamedTypes(69        namedtype.NamedType('modulus', univ.Integer()),70        namedtype.NamedType('publicExponent', univ.Integer())71    )72 73 74dhpublicnumber = _OID(1, 2, 840, 10046, 2, 1)75 76 77class DHPublicKey(univ.Integer):78    pass79 80 81class ValidationParms(univ.Sequence):82    componentType = namedtype.NamedTypes(83        namedtype.NamedType('seed', univ.BitString()),84        namedtype.NamedType('pgenCounter', univ.Integer())85    )86 87 88class DomainParameters(univ.Sequence):89    componentType = namedtype.NamedTypes(90        namedtype.NamedType('p', univ.Integer()),91        namedtype.NamedType('g', univ.Integer()),92        namedtype.NamedType('q', univ.Integer()),93        namedtype.OptionalNamedType('j', univ.Integer()),94        namedtype.OptionalNamedType('validationParms', ValidationParms())95    )96 97 98id_keyExchangeAlgorithm = _OID(2, 16, 840, 1, 101, 2, 1, 1, 22)99 100 101class KEA_Parms_Id(univ.OctetString):102    pass103 104 105ansi_X9_62 = _OID(1, 2, 840, 10045)106 107 108class FieldID(univ.Sequence):109    componentType = namedtype.NamedTypes(110        namedtype.NamedType('fieldType', univ.ObjectIdentifier()),111        namedtype.NamedType('parameters', univ.Any())112    )113 114 115id_ecSigType = _OID(ansi_X9_62, 4)116ecdsa_with_SHA1 = _OID(id_ecSigType, 1)117 118 119class ECDSA_Sig_Value(univ.Sequence):120    componentType = namedtype.NamedTypes(121        namedtype.NamedType('r', univ.Integer()),122        namedtype.NamedType('s', univ.Integer())123    )124 125 126id_fieldType = _OID(ansi_X9_62, 1)127prime_field = _OID(id_fieldType, 1)128 129 130class Prime_p(univ.Integer):131    pass132 133 134characteristic_two_field = _OID(id_fieldType, 2)135 136 137class Characteristic_two(univ.Sequence):138    componentType = namedtype.NamedTypes(139        namedtype.NamedType('m', univ.Integer()),140        namedtype.NamedType('basis', univ.ObjectIdentifier()),141        namedtype.NamedType('parameters', univ.Any())142    )143 144 145id_characteristic_two_basis = _OID(characteristic_two_field, 3)146gnBasis = _OID(id_characteristic_two_basis, 1)147tpBasis = _OID(id_characteristic_two_basis, 2)148 149 150class Trinomial(univ.Integer):151    pass152 153 154ppBasis = _OID(id_characteristic_two_basis, 3)155 156 157class Pentanomial(univ.Sequence):158    componentType = namedtype.NamedTypes(159        namedtype.NamedType('k1', univ.Integer()),160        namedtype.NamedType('k2', univ.Integer()),161        namedtype.NamedType('k3', univ.Integer())162    )163 164 165class FieldElement(univ.OctetString):166    pass167 168 169class ECPoint(univ.OctetString):170    pass171 172 173class Curve(univ.Sequence):174    componentType = namedtype.NamedTypes(175        namedtype.NamedType('a', FieldElement()),176        namedtype.NamedType('b', FieldElement()),177        namedtype.OptionalNamedType('seed', univ.BitString())178    )179 180 181class ECPVer(univ.Integer):182    namedValues = namedval.NamedValues(183        ('ecpVer1', 1)184    )185 186 187class ECParameters(univ.Sequence):188    componentType = namedtype.NamedTypes(189        namedtype.NamedType('version', ECPVer()),190        namedtype.NamedType('fieldID', FieldID()),191        namedtype.NamedType('curve', Curve()),192        namedtype.NamedType('base', ECPoint()),193        namedtype.NamedType('order', univ.Integer()),194        namedtype.OptionalNamedType('cofactor', univ.Integer())195    )196 197 198class EcpkParameters(univ.Choice):199    componentType = namedtype.NamedTypes(200        namedtype.NamedType('ecParameters', ECParameters()),201        namedtype.NamedType('namedCurve', univ.ObjectIdentifier()),202        namedtype.NamedType('implicitlyCA', univ.Null())203    )204 205 206id_publicKeyType = _OID(ansi_X9_62, 2)207id_ecPublicKey = _OID(id_publicKeyType, 1)208 209ellipticCurve = _OID(ansi_X9_62, 3)210 211c_TwoCurve = _OID(ellipticCurve, 0)212c2pnb163v1 = _OID(c_TwoCurve, 1)213c2pnb163v2 = _OID(c_TwoCurve, 2)214c2pnb163v3 = _OID(c_TwoCurve, 3)215c2pnb176w1 = _OID(c_TwoCurve, 4)216c2tnb191v1 = _OID(c_TwoCurve, 5)217c2tnb191v2 = _OID(c_TwoCurve, 6)218c2tnb191v3 = _OID(c_TwoCurve, 7)219c2onb191v4 = _OID(c_TwoCurve, 8)220c2onb191v5 = _OID(c_TwoCurve, 9)221c2pnb208w1 = _OID(c_TwoCurve, 10)222c2tnb239v1 = _OID(c_TwoCurve, 11)223c2tnb239v2 = _OID(c_TwoCurve, 12)224c2tnb239v3 = _OID(c_TwoCurve, 13)225c2onb239v4 = _OID(c_TwoCurve, 14)226c2onb239v5 = _OID(c_TwoCurve, 15)227c2pnb272w1 = _OID(c_TwoCurve, 16)228c2pnb304w1 = _OID(c_TwoCurve, 17)229c2tnb359v1 = _OID(c_TwoCurve, 18)230c2pnb368w1 = _OID(c_TwoCurve, 19)231c2tnb431r1 = _OID(c_TwoCurve, 20)232 233primeCurve = _OID(ellipticCurve, 1)234prime192v1 = _OID(primeCurve, 1)235prime192v2 = _OID(primeCurve, 2)236prime192v3 = _OID(primeCurve, 3)237prime239v1 = _OID(primeCurve, 4)238prime239v2 = _OID(primeCurve, 5)239prime239v3 = _OID(primeCurve, 6)240prime256v1 = _OID(primeCurve, 7)241 242 243# Map of Algorithm Identifier OIDs to Parameters added to the244# ones in rfc5280.py.  Do not add OIDs with absent paramaters.245 246_algorithmIdentifierMapUpdate = {247    md2: univ.Null(""),248    md5: univ.Null(""),249    id_sha1: univ.Null(""),250    id_dsa: Dss_Parms(),251    rsaEncryption: univ.Null(""),252    md2WithRSAEncryption: univ.Null(""),253    md5WithRSAEncryption: univ.Null(""),254    sha1WithRSAEncryption: univ.Null(""),255    dhpublicnumber: DomainParameters(),256    id_keyExchangeAlgorithm: KEA_Parms_Id(),257    id_ecPublicKey: EcpkParameters(),258}259 260rfc5280.algorithmIdentifierMap.update(_algorithmIdentifierMapUpdate)261 
codekingpro/portable-devtools · Team Ai