diff options
author | Russ Housley <housley@vigilsec.com> | 2019-10-09 11:26:29 -0400 |
---|---|---|
committer | Ilya Etingof <etingof@gmail.com> | 2019-10-09 17:26:29 +0200 |
commit | 96d522c2f7e88f13fd17fdf344d0cf966fe57214 (patch) | |
tree | ed28beed5604ac845370a5fc0df9a34b271fd491 /pyasn1_modules | |
parent | e33d2ac356fa13ac1f5c5622d4c7bd00202161d2 (diff) | |
download | pyasn1-modules-96d522c2f7e88f13fd17fdf344d0cf966fe57214.tar.gz |
Add support for RFC 7773 (#78)
Diffstat (limited to 'pyasn1_modules')
-rw-r--r-- | pyasn1_modules/rfc7773.py | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/pyasn1_modules/rfc7773.py b/pyasn1_modules/rfc7773.py new file mode 100644 index 0000000..0fee2aa --- /dev/null +++ b/pyasn1_modules/rfc7773.py @@ -0,0 +1,52 @@ +# +# This file is part of pyasn1-modules software. +# +# Created by Russ Housley with some assistance from asn1ate v.0.6.0. +# +# Copyright (c) 2019, Vigil Security, LLC +# License: http://snmplabs.com/pyasn1/license.html +# +# Authentication Context Certificate Extension +# +# ASN.1 source from: +# https://www.rfc-editor.org/rfc/rfc7773.txt +# + +from pyasn1.type import char +from pyasn1.type import constraint +from pyasn1.type import namedtype +from pyasn1.type import univ + +from pyasn1_modules import rfc5280 + +MAX = float('inf') + + +# Authentication Context Extension + +e_legnamnden = univ.ObjectIdentifier('1.2.752.201') + +id_eleg_ce = e_legnamnden + (5, ) + +id_ce_authContext = id_eleg_ce + (1, ) + + +class AuthenticationContext(univ.Sequence): + componentType = namedtype.NamedTypes( + namedtype.NamedType('contextType', char.UTF8String()), + namedtype.OptionalNamedType('contextInfo', char.UTF8String()) + ) + +class AuthenticationContexts(univ.SequenceOf): + componentType = AuthenticationContext() + subtypeSpec=constraint.ValueSizeConstraint(1, MAX) + + +# Map of Certificate Extension OIDs to Extensions added to the +# ones that are in rfc5280.py + +_certificateExtensionsMapUpdate = { + id_ce_authContext: AuthenticationContexts(), +} + +rfc5280.certificateExtensionsMap.update(_certificateExtensionsMapUpdate) |