diff options
author | Russ Housley <housley@vigilsec.com> | 2019-10-02 16:41:03 -0400 |
---|---|---|
committer | Ilya Etingof <etingof@gmail.com> | 2019-10-02 22:41:03 +0200 |
commit | 6b3ecead6ee42ce57986ac00d4e6639337aed7ba (patch) | |
tree | 4a17953e198bea4c167bbc1fcb08be6a783d0f6e /pyasn1_modules | |
parent | fd7d16fdde4f47727f70944df8bf5e8f4701d1f4 (diff) | |
download | platform_external_python_pyasn1-modules-6b3ecead6ee42ce57986ac00d4e6639337aed7ba.tar.gz platform_external_python_pyasn1-modules-6b3ecead6ee42ce57986ac00d4e6639337aed7ba.tar.bz2 platform_external_python_pyasn1-modules-6b3ecead6ee42ce57986ac00d4e6639337aed7ba.zip |
Add support for RFC 8398 (#69)
Diffstat (limited to 'pyasn1_modules')
-rw-r--r-- | pyasn1_modules/rfc8398.py | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/pyasn1_modules/rfc8398.py b/pyasn1_modules/rfc8398.py new file mode 100644 index 0000000..151b632 --- /dev/null +++ b/pyasn1_modules/rfc8398.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 +# +# Internationalized Email Addresses in X.509 Certificates +# +# ASN.1 source from: +# https://www.rfc-editor.org/rfc/rfc8398.txt +# https://www.rfc-editor.org/errata/eid5418 +# + +from pyasn1.type import char +from pyasn1.type import constraint +from pyasn1.type import univ + +from pyasn1_modules import rfc5280 + +MAX = float('inf') + + +# SmtpUTF8Mailbox contains Mailbox as specified in Section 3.3 of RFC 6531 + +id_pkix = rfc5280.id_pkix + +id_on = id_pkix + (8, ) + +id_on_SmtpUTF8Mailbox = id_on + (9, ) + + +class SmtpUTF8Mailbox(char.UTF8String): + pass + +SmtpUTF8Mailbox.subtypeSpec = constraint.ValueSizeConstraint(1, MAX) + + +on_SmtpUTF8Mailbox = rfc5280.AnotherName() +on_SmtpUTF8Mailbox['type-id'] = id_on_SmtpUTF8Mailbox +on_SmtpUTF8Mailbox['value'] = SmtpUTF8Mailbox() + + +# Map of Other Name OIDs to Other Name is added to the +# ones that are in rfc5280.py + +_anotherNameMapUpdate = { + id_on_SmtpUTF8Mailbox: SmtpUTF8Mailbox(), +} + +rfc5280.anotherNameMap.update(_anotherNameMapUpdate) |