aboutsummaryrefslogtreecommitdiff
path: root/pyasn1_modules
diff options
context:
space:
mode:
authorRuss Housley <housley@vigilsec.com>2019-07-17 02:11:39 -0400
committerIlya Etingof <etingof@gmail.com>2019-07-17 08:11:39 +0200
commit06f5be85d5229cffeb24f9ae622df665d7ae506b (patch)
tree0d84dc3e62e1bb65c6ccf82c3f75ce7b79f61f1f /pyasn1_modules
parente391feaffc72dd8ba3f9d5ec3d7bb93ce425fc9b (diff)
downloadpyasn1-modules-06f5be85d5229cffeb24f9ae622df665d7ae506b.tar.gz
Add support for opentype for RFC 2986 (#52)
Diffstat (limited to 'pyasn1_modules')
-rw-r--r--pyasn1_modules/rfc2986.py86
1 files changed, 18 insertions, 68 deletions
diff --git a/pyasn1_modules/rfc2986.py b/pyasn1_modules/rfc2986.py
index 18a9715..c3ccf04 100644
--- a/pyasn1_modules/rfc2986.py
+++ b/pyasn1_modules/rfc2986.py
@@ -3,118 +3,68 @@
# This file is part of pyasn1-modules software.
#
# Created by Joel Johnson with asn1ate tool.
+# Modified by Russ Housley to add support for opentypes by importing
+# definitions from rfc5280 so that the same maps are used.
+#
# Copyright (c) 2005-2019, Ilya Etingof <etingof@gmail.com>
# License: http://snmplabs.com/pyasn1/license.html
#
# PKCS #10: Certification Request Syntax Specification
#
# ASN.1 source from:
-# http://www.ietf.org/rfc/rfc2986.txt
+# https://www.rfc-editor.org/rfc/rfc2986.txt
#
-from pyasn1.type import constraint
from pyasn1.type import namedtype
-from pyasn1.type import opentype
from pyasn1.type import tag
from pyasn1.type import univ
+from pyasn1_modules import rfc5280
+
MAX = float('inf')
-class AttributeType(univ.ObjectIdentifier):
- pass
+AttributeType = rfc5280.AttributeType
+AttributeValue = rfc5280.AttributeValue
-class AttributeValue(univ.Any):
- pass
+AttributeTypeAndValue = rfc5280.AttributeTypeAndValue
+Attribute = rfc5280.Attribute
-certificateAttributesMap = {}
+RelativeDistinguishedName = rfc5280.RelativeDistinguishedName
+RDNSequence = rfc5280.RDNSequence
-class AttributeTypeAndValue(univ.Sequence):
- componentType = namedtype.NamedTypes(
- namedtype.NamedType('type', AttributeType()),
- namedtype.NamedType(
- 'value', AttributeValue(),
- openType=opentype.OpenType('type', certificateAttributesMap)
- )
- )
+Name = rfc5280.Name
+AlgorithmIdentifier = rfc5280.AlgorithmIdentifier
-class Attribute(univ.Sequence):
- componentType = namedtype.NamedTypes(
- namedtype.NamedType('type', AttributeType()),
- namedtype.NamedType('values',
- univ.SetOf(componentType=AttributeValue()),
- openType=opentype.OpenType('type', certificateAttributesMap))
- )
+SubjectPublicKeyInfo = rfc5280.SubjectPublicKeyInfo
class Attributes(univ.SetOf):
pass
-
Attributes.componentType = Attribute()
-class RelativeDistinguishedName(univ.SetOf):
- pass
-
-
-RelativeDistinguishedName.componentType = AttributeTypeAndValue()
-RelativeDistinguishedName.subtypeSpec = constraint.ValueSizeConstraint(1, MAX)
-
-
-class RDNSequence(univ.SequenceOf):
- pass
-
-
-RDNSequence.componentType = RelativeDistinguishedName()
-
-
-class Name(univ.Choice):
- pass
-
-
-Name.componentType = namedtype.NamedTypes(
- namedtype.NamedType('rdnSequence', RDNSequence())
-)
-
-
-class AlgorithmIdentifier(univ.Sequence):
- componentType = namedtype.NamedTypes(
- namedtype.NamedType('algorithm', univ.ObjectIdentifier()),
- namedtype.OptionalNamedType('parameters', univ.Any())
- )
-
-
-class SubjectPublicKeyInfo(univ.Sequence):
- pass
-
-
-SubjectPublicKeyInfo.componentType = namedtype.NamedTypes(
- namedtype.NamedType('algorithm', AlgorithmIdentifier()),
- namedtype.NamedType('subjectPublicKey', univ.BitString())
-)
-
-
class CertificationRequestInfo(univ.Sequence):
pass
-
CertificationRequestInfo.componentType = namedtype.NamedTypes(
namedtype.NamedType('version', univ.Integer()),
namedtype.NamedType('subject', Name()),
namedtype.NamedType('subjectPKInfo', SubjectPublicKeyInfo()),
namedtype.NamedType('attributes',
- Attributes().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0)))
+ Attributes().subtype(implicitTag=tag.Tag(
+ tag.tagClassContext, tag.tagFormatSimple, 0))
+ )
)
class CertificationRequest(univ.Sequence):
pass
-
CertificationRequest.componentType = namedtype.NamedTypes(
namedtype.NamedType('certificationRequestInfo', CertificationRequestInfo()),
namedtype.NamedType('signatureAlgorithm', AlgorithmIdentifier()),