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
149
venv/Lib/site-packages/pyasn1_modules/rfc8226.py
Normal file
149
venv/Lib/site-packages/pyasn1_modules/rfc8226.py
Normal file
|
@ -0,0 +1,149 @@
|
|||
# This file is being contributed to pyasn1-modules software.
|
||||
#
|
||||
# Created by Russ Housley with assistance from the asn1ate tool, with manual
|
||||
# changes to implement appropriate constraints and added comments.
|
||||
# Modified by Russ Housley to add maps for use with opentypes.
|
||||
#
|
||||
# Copyright (c) 2019, Vigil Security, LLC
|
||||
# License: http://snmplabs.com/pyasn1/license.html
|
||||
#
|
||||
# JWT Claim Constraints and TN Authorization List for certificate extensions.
|
||||
#
|
||||
# ASN.1 source from:
|
||||
# https://www.rfc-editor.org/rfc/rfc8226.txt (with errata corrected)
|
||||
|
||||
from pyasn1.type import char
|
||||
from pyasn1.type import constraint
|
||||
from pyasn1.type import namedtype
|
||||
from pyasn1.type import tag
|
||||
from pyasn1.type import univ
|
||||
|
||||
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)
|
||||
|
||||
|
||||
class JWTClaimName(char.IA5String):
|
||||
pass
|
||||
|
||||
|
||||
class JWTClaimNames(univ.SequenceOf):
|
||||
pass
|
||||
|
||||
JWTClaimNames.componentType = JWTClaimName()
|
||||
JWTClaimNames.sizeSpec = constraint.ValueSizeConstraint(1, MAX)
|
||||
|
||||
|
||||
class JWTClaimPermittedValues(univ.Sequence):
|
||||
pass
|
||||
|
||||
JWTClaimPermittedValues.componentType = namedtype.NamedTypes(
|
||||
namedtype.NamedType('claim', JWTClaimName()),
|
||||
namedtype.NamedType('permitted', univ.SequenceOf(
|
||||
componentType=char.UTF8String()).subtype(
|
||||
sizeSpec=constraint.ValueSizeConstraint(1, MAX)))
|
||||
)
|
||||
|
||||
|
||||
class JWTClaimPermittedValuesList(univ.SequenceOf):
|
||||
pass
|
||||
|
||||
JWTClaimPermittedValuesList.componentType = JWTClaimPermittedValues()
|
||||
JWTClaimPermittedValuesList.sizeSpec = constraint.ValueSizeConstraint(1, MAX)
|
||||
|
||||
|
||||
class JWTClaimConstraints(univ.Sequence):
|
||||
pass
|
||||
|
||||
JWTClaimConstraints.componentType = namedtype.NamedTypes(
|
||||
namedtype.OptionalNamedType('mustInclude',
|
||||
JWTClaimNames().subtype(explicitTag=tag.Tag(tag.tagClassContext,
|
||||
tag.tagFormatSimple, 0))),
|
||||
namedtype.OptionalNamedType('permittedValues',
|
||||
JWTClaimPermittedValuesList().subtype(explicitTag=tag.Tag(tag.tagClassContext,
|
||||
tag.tagFormatSimple, 1)))
|
||||
)
|
||||
|
||||
JWTClaimConstraints.subtypeSpec = constraint.ConstraintsUnion(
|
||||
constraint.WithComponentsConstraint(
|
||||
('mustInclude', constraint.ComponentPresentConstraint())),
|
||||
constraint.WithComponentsConstraint(
|
||||
('permittedValues', constraint.ComponentPresentConstraint()))
|
||||
)
|
||||
|
||||
|
||||
id_pe_JWTClaimConstraints = _OID(1, 3, 6, 1, 5, 5, 7, 1, 27)
|
||||
|
||||
|
||||
class ServiceProviderCode(char.IA5String):
|
||||
pass
|
||||
|
||||
|
||||
class TelephoneNumber(char.IA5String):
|
||||
pass
|
||||
|
||||
TelephoneNumber.subtypeSpec = constraint.ConstraintsIntersection(
|
||||
constraint.ValueSizeConstraint(1, 15),
|
||||
constraint.PermittedAlphabetConstraint(
|
||||
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '#', '*')
|
||||
)
|
||||
|
||||
|
||||
class TelephoneNumberRange(univ.Sequence):
|
||||
pass
|
||||
|
||||
TelephoneNumberRange.componentType = namedtype.NamedTypes(
|
||||
namedtype.NamedType('start', TelephoneNumber()),
|
||||
namedtype.NamedType('count',
|
||||
univ.Integer().subtype(subtypeSpec=constraint.ValueRangeConstraint(2, MAX)))
|
||||
)
|
||||
|
||||
|
||||
class TNEntry(univ.Choice):
|
||||
pass
|
||||
|
||||
TNEntry.componentType = namedtype.NamedTypes(
|
||||
namedtype.NamedType('spc',
|
||||
ServiceProviderCode().subtype(explicitTag=tag.Tag(tag.tagClassContext,
|
||||
tag.tagFormatSimple, 0))),
|
||||
namedtype.NamedType('range',
|
||||
TelephoneNumberRange().subtype(explicitTag=tag.Tag(tag.tagClassContext,
|
||||
tag.tagFormatConstructed, 1))),
|
||||
namedtype.NamedType('one',
|
||||
TelephoneNumber().subtype(explicitTag=tag.Tag(tag.tagClassContext,
|
||||
tag.tagFormatSimple, 2)))
|
||||
)
|
||||
|
||||
|
||||
class TNAuthorizationList(univ.SequenceOf):
|
||||
pass
|
||||
|
||||
TNAuthorizationList.componentType = TNEntry()
|
||||
TNAuthorizationList.sizeSpec = constraint.ValueSizeConstraint(1, MAX)
|
||||
|
||||
id_pe_TNAuthList = _OID(1, 3, 6, 1, 5, 5, 7, 1, 26)
|
||||
|
||||
|
||||
id_ad_stirTNList = _OID(1, 3, 6, 1, 5, 5, 7, 48, 14)
|
||||
|
||||
|
||||
# Map of Certificate Extension OIDs to Extensions added to the
|
||||
# ones that are in rfc5280.py
|
||||
|
||||
_certificateExtensionsMapUpdate = {
|
||||
id_pe_TNAuthList: TNAuthorizationList(),
|
||||
id_pe_JWTClaimConstraints: JWTClaimConstraints(),
|
||||
}
|
||||
|
||||
rfc5280.certificateExtensionsMap.update(_certificateExtensionsMapUpdate)
|
Loading…
Add table
Add a link
Reference in a new issue