Updated DB_Helper by adding firebase methods.
This commit is contained in:
parent
485cc3bbba
commit
c82121d036
1810 changed files with 537281 additions and 1 deletions
260
venv/Lib/site-packages/pyasn1_modules/rfc8018.py
Normal file
260
venv/Lib/site-packages/pyasn1_modules/rfc8018.py
Normal file
|
@ -0,0 +1,260 @@
|
|||
#
|
||||
# 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
|
||||
#
|
||||
# PKCS #5: Password-Based Cryptography Specification, Version 2.1
|
||||
#
|
||||
# ASN.1 source from:
|
||||
# https://www.rfc-editor.org/rfc/rfc8018.txt
|
||||
#
|
||||
|
||||
from pyasn1.type import constraint
|
||||
from pyasn1.type import namedtype
|
||||
from pyasn1.type import namedval
|
||||
from pyasn1.type import univ
|
||||
|
||||
from pyasn1_modules import rfc3565
|
||||
from pyasn1_modules import rfc5280
|
||||
|
||||
MAX = float('inf')
|
||||
|
||||
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)
|
||||
|
||||
|
||||
# Import from RFC 3565
|
||||
|
||||
AES_IV = rfc3565.AES_IV
|
||||
|
||||
|
||||
# Import from RFC 5280
|
||||
|
||||
AlgorithmIdentifier = rfc5280.AlgorithmIdentifier
|
||||
|
||||
|
||||
# Basic object identifiers
|
||||
|
||||
nistAlgorithms = _OID(2, 16, 840, 1, 101, 3, 4)
|
||||
|
||||
aes = _OID(nistAlgorithms, 1)
|
||||
|
||||
oiw = _OID(1, 3, 14)
|
||||
|
||||
rsadsi = _OID(1, 2, 840, 113549)
|
||||
|
||||
pkcs = _OID(rsadsi, 1)
|
||||
|
||||
digestAlgorithm = _OID(rsadsi, 2)
|
||||
|
||||
encryptionAlgorithm = _OID(rsadsi, 3)
|
||||
|
||||
pkcs_5 = _OID(pkcs, 5)
|
||||
|
||||
|
||||
|
||||
# HMAC object identifiers
|
||||
|
||||
id_hmacWithSHA1 = _OID(digestAlgorithm, 7)
|
||||
|
||||
id_hmacWithSHA224 = _OID(digestAlgorithm, 8)
|
||||
|
||||
id_hmacWithSHA256 = _OID(digestAlgorithm, 9)
|
||||
|
||||
id_hmacWithSHA384 = _OID(digestAlgorithm, 10)
|
||||
|
||||
id_hmacWithSHA512 = _OID(digestAlgorithm, 11)
|
||||
|
||||
id_hmacWithSHA512_224 = _OID(digestAlgorithm, 12)
|
||||
|
||||
id_hmacWithSHA512_256 = _OID(digestAlgorithm, 13)
|
||||
|
||||
|
||||
# PBES1 object identifiers
|
||||
|
||||
pbeWithMD2AndDES_CBC = _OID(pkcs_5, 1)
|
||||
|
||||
pbeWithMD2AndRC2_CBC = _OID(pkcs_5, 4)
|
||||
|
||||
pbeWithMD5AndDES_CBC = _OID(pkcs_5, 3)
|
||||
|
||||
pbeWithMD5AndRC2_CBC = _OID(pkcs_5, 6)
|
||||
|
||||
pbeWithSHA1AndDES_CBC = _OID(pkcs_5, 10)
|
||||
|
||||
pbeWithSHA1AndRC2_CBC = _OID(pkcs_5, 11)
|
||||
|
||||
|
||||
# Supporting techniques object identifiers
|
||||
|
||||
desCBC = _OID(oiw, 3, 2, 7)
|
||||
|
||||
des_EDE3_CBC = _OID(encryptionAlgorithm, 7)
|
||||
|
||||
rc2CBC = _OID(encryptionAlgorithm, 2)
|
||||
|
||||
rc5_CBC_PAD = _OID(encryptionAlgorithm, 9)
|
||||
|
||||
aes128_CBC_PAD = _OID(aes, 2)
|
||||
|
||||
aes192_CBC_PAD = _OID(aes, 22)
|
||||
|
||||
aes256_CBC_PAD = _OID(aes, 42)
|
||||
|
||||
|
||||
# PBES1
|
||||
|
||||
class PBEParameter(univ.Sequence):
|
||||
pass
|
||||
|
||||
PBEParameter.componentType = namedtype.NamedTypes(
|
||||
namedtype.NamedType('salt', univ.OctetString().subtype(
|
||||
subtypeSpec=constraint.ValueSizeConstraint(8, 8))),
|
||||
namedtype.NamedType('iterationCount', univ.Integer())
|
||||
)
|
||||
|
||||
|
||||
# PBES2
|
||||
|
||||
id_PBES2 = _OID(pkcs_5, 13)
|
||||
|
||||
|
||||
class PBES2_params(univ.Sequence):
|
||||
pass
|
||||
|
||||
PBES2_params.componentType = namedtype.NamedTypes(
|
||||
namedtype.NamedType('keyDerivationFunc', AlgorithmIdentifier()),
|
||||
namedtype.NamedType('encryptionScheme', AlgorithmIdentifier())
|
||||
)
|
||||
|
||||
|
||||
# PBMAC1
|
||||
|
||||
id_PBMAC1 = _OID(pkcs_5, 14)
|
||||
|
||||
|
||||
class PBMAC1_params(univ.Sequence):
|
||||
pass
|
||||
|
||||
PBMAC1_params.componentType = namedtype.NamedTypes(
|
||||
namedtype.NamedType('keyDerivationFunc', AlgorithmIdentifier()),
|
||||
namedtype.NamedType('messageAuthScheme', AlgorithmIdentifier())
|
||||
)
|
||||
|
||||
|
||||
# PBKDF2
|
||||
|
||||
id_PBKDF2 = _OID(pkcs_5, 12)
|
||||
|
||||
|
||||
algid_hmacWithSHA1 = AlgorithmIdentifier()
|
||||
algid_hmacWithSHA1['algorithm'] = id_hmacWithSHA1
|
||||
algid_hmacWithSHA1['parameters'] = univ.Null("")
|
||||
|
||||
|
||||
class PBKDF2_params(univ.Sequence):
|
||||
pass
|
||||
|
||||
PBKDF2_params.componentType = namedtype.NamedTypes(
|
||||
namedtype.NamedType('salt', univ.Choice(componentType=namedtype.NamedTypes(
|
||||
namedtype.NamedType('specified', univ.OctetString()),
|
||||
namedtype.NamedType('otherSource', AlgorithmIdentifier())
|
||||
))),
|
||||
namedtype.NamedType('iterationCount', univ.Integer().subtype(
|
||||
subtypeSpec=constraint.ValueRangeConstraint(1, MAX))),
|
||||
namedtype.OptionalNamedType('keyLength', univ.Integer().subtype(
|
||||
subtypeSpec=constraint.ValueRangeConstraint(1, MAX))),
|
||||
namedtype.DefaultedNamedType('prf', algid_hmacWithSHA1)
|
||||
)
|
||||
|
||||
|
||||
# RC2 CBC algorithm parameter
|
||||
|
||||
class RC2_CBC_Parameter(univ.Sequence):
|
||||
pass
|
||||
|
||||
RC2_CBC_Parameter.componentType = namedtype.NamedTypes(
|
||||
namedtype.OptionalNamedType('rc2ParameterVersion', univ.Integer()),
|
||||
namedtype.NamedType('iv', univ.OctetString().subtype(
|
||||
subtypeSpec=constraint.ValueSizeConstraint(8, 8)))
|
||||
)
|
||||
|
||||
|
||||
# RC5 CBC algorithm parameter
|
||||
|
||||
class RC5_CBC_Parameters(univ.Sequence):
|
||||
pass
|
||||
|
||||
RC5_CBC_Parameters.componentType = namedtype.NamedTypes(
|
||||
namedtype.NamedType('version',
|
||||
univ.Integer(namedValues=namedval.NamedValues(('v1_0', 16))).subtype(
|
||||
subtypeSpec=constraint.SingleValueConstraint(16))),
|
||||
namedtype.NamedType('rounds',
|
||||
univ.Integer().subtype(subtypeSpec=constraint.ValueRangeConstraint(8, 127))),
|
||||
namedtype.NamedType('blockSizeInBits',
|
||||
univ.Integer().subtype(subtypeSpec=constraint.SingleValueConstraint(64, 128))),
|
||||
namedtype.OptionalNamedType('iv', univ.OctetString())
|
||||
)
|
||||
|
||||
|
||||
# Initialization Vector for AES: OCTET STRING (SIZE(16))
|
||||
|
||||
class AES_IV(univ.OctetString):
|
||||
pass
|
||||
|
||||
AES_IV.subtypeSpec = constraint.ValueSizeConstraint(16, 16)
|
||||
|
||||
|
||||
# Initialization Vector for DES: OCTET STRING (SIZE(8))
|
||||
|
||||
class DES_IV(univ.OctetString):
|
||||
pass
|
||||
|
||||
DES_IV.subtypeSpec = constraint.ValueSizeConstraint(8, 8)
|
||||
|
||||
|
||||
# Update the Algorithm Identifier map
|
||||
|
||||
_algorithmIdentifierMapUpdate = {
|
||||
# PBKDF2-PRFs
|
||||
id_hmacWithSHA1: univ.Null(),
|
||||
id_hmacWithSHA224: univ.Null(),
|
||||
id_hmacWithSHA256: univ.Null(),
|
||||
id_hmacWithSHA384: univ.Null(),
|
||||
id_hmacWithSHA512: univ.Null(),
|
||||
id_hmacWithSHA512_224: univ.Null(),
|
||||
id_hmacWithSHA512_256: univ.Null(),
|
||||
# PBES1Algorithms
|
||||
pbeWithMD2AndDES_CBC: PBEParameter(),
|
||||
pbeWithMD2AndRC2_CBC: PBEParameter(),
|
||||
pbeWithMD5AndDES_CBC: PBEParameter(),
|
||||
pbeWithMD5AndRC2_CBC: PBEParameter(),
|
||||
pbeWithSHA1AndDES_CBC: PBEParameter(),
|
||||
pbeWithSHA1AndRC2_CBC: PBEParameter(),
|
||||
# PBES2Algorithms
|
||||
id_PBES2: PBES2_params(),
|
||||
# PBES2-KDFs
|
||||
id_PBKDF2: PBKDF2_params(),
|
||||
# PBMAC1Algorithms
|
||||
id_PBMAC1: PBMAC1_params(),
|
||||
# SupportingAlgorithms
|
||||
desCBC: DES_IV(),
|
||||
des_EDE3_CBC: DES_IV(),
|
||||
rc2CBC: RC2_CBC_Parameter(),
|
||||
rc5_CBC_PAD: RC5_CBC_Parameters(),
|
||||
aes128_CBC_PAD: AES_IV(),
|
||||
aes192_CBC_PAD: AES_IV(),
|
||||
aes256_CBC_PAD: AES_IV(),
|
||||
}
|
||||
|
||||
rfc5280.algorithmIdentifierMap.update(_algorithmIdentifierMapUpdate)
|
Loading…
Add table
Add a link
Reference in a new issue