blob: 51a9d5c5b1d8944c72222fc52998bed240afb09d [file] [log] [blame]
#
# This file is part of pyasn1-modules software.
#
# Created by Russ Housley.
#
# Copyright (c) 2019, Vigil Security, LLC
# License: http://snmplabs.com/pyasn1/license.html
#
# Cryptographic Message Syntax (CMS) Algorithms
#
# ASN.1 source from:
# https://www.rfc-editor.org/rfc/rfc3370.txt
#
from pyasn1.type import univ
from pyasn1_modules import rfc3279
from pyasn1_modules import rfc5280
from pyasn1_modules import rfc5751
from pyasn1_modules import rfc5753
from pyasn1_modules import rfc5990
from pyasn1_modules import rfc8018
# Imports from RFC 5280
AlgorithmIdentifier = rfc5280.AlgorithmIdentifier
# Imports from RFC 3279
dhpublicnumber = rfc3279.dhpublicnumber
dh_public_number = dhpublicnumber
DHPublicKey = rfc3279.DHPublicKey
DomainParameters = rfc3279.DomainParameters
DHDomainParameters = DomainParameters
Dss_Parms = rfc3279.Dss_Parms
Dss_Sig_Value = rfc3279.Dss_Sig_Value
md5 = rfc3279.md5
md5WithRSAEncryption = rfc3279.md5WithRSAEncryption
RSAPublicKey = rfc3279.RSAPublicKey
rsaEncryption = rfc3279.rsaEncryption
ValidationParms = rfc3279.ValidationParms
id_dsa = rfc3279.id_dsa
id_dsa_with_sha1 = rfc3279.id_dsa_with_sha1
id_sha1 = rfc3279.id_sha1
sha_1 = id_sha1
sha1WithRSAEncryption = rfc3279.sha1WithRSAEncryption
# Imports from RFC 5753
CBCParameter = rfc5753.CBCParameter
CBCParameter = rfc5753.IV
KeyWrapAlgorithm = rfc5753.KeyWrapAlgorithm
# Imports from RFC 5990
id_alg_CMS3DESwrap = rfc5990.id_alg_CMS3DESwrap
# Imports from RFC 8018
des_EDE3_CBC = rfc8018.des_EDE3_CBC
des_ede3_cbc = des_EDE3_CBC
rc2CBC = rfc8018.rc2CBC
rc2_cbc = rc2CBC
RC2_CBC_Parameter = rfc8018.RC2_CBC_Parameter
RC2CBCParameter = RC2_CBC_Parameter
PBKDF2_params = rfc8018.PBKDF2_params
id_PBKDF2 = rfc8018.id_PBKDF2
# The few things that are not already defined elsewhere
hMAC_SHA1 = univ.ObjectIdentifier('1.3.6.1.5.5.8.1.2')
id_alg_ESDH = univ.ObjectIdentifier('1.2.840.113549.1.9.16.3.5')
id_alg_SSDH = univ.ObjectIdentifier('1.2.840.113549.1.9.16.3.10')
id_alg_CMSRC2wrap = univ.ObjectIdentifier('1.2.840.113549.1.9.16.3.7')
class RC2ParameterVersion(univ.Integer):
pass
class RC2wrapParameter(RC2ParameterVersion):
pass
class Dss_Pub_Key(univ.Integer):
pass
# Update the Algorithm Identifier map in rfc5280.py.
_algorithmIdentifierMapUpdate = {
hMAC_SHA1: univ.Null(""),
id_alg_CMSRC2wrap: RC2wrapParameter(),
id_alg_ESDH: KeyWrapAlgorithm(),
id_alg_SSDH: KeyWrapAlgorithm(),
}
rfc5280.algorithmIdentifierMap.update(_algorithmIdentifierMapUpdate)
# Update the S/MIME Capabilities map in rfc5751.py.
_smimeCapabilityMapUpdate = {
id_alg_CMSRC2wrap: RC2wrapParameter(),
id_alg_ESDH: KeyWrapAlgorithm(),
id_alg_SSDH: KeyWrapAlgorithm(),
}
rfc5751.smimeCapabilityMap.update(_smimeCapabilityMapUpdate)