aboutsummaryrefslogtreecommitdiff
path: root/rpkid/rpki
diff options
context:
space:
mode:
Diffstat (limited to 'rpkid/rpki')
-rw-r--r--rpkid/rpki/POW/__init__.py17
-rw-r--r--rpkid/rpki/POW/_der.py2294
-rw-r--r--rpkid/rpki/POW/_objects.py6880
-rw-r--r--rpkid/rpki/POW/_oids.py8636
-rw-r--r--rpkid/rpki/POW/_simpledb.py55
-rw-r--r--rpkid/rpki/POW/pkix.py2087
-rw-r--r--rpkid/rpki/adns.py21
-rw-r--r--rpkid/rpki/async.py196
-rw-r--r--rpkid/rpki/config.py27
-rw-r--r--rpkid/rpki/csv_utils.py14
-rw-r--r--rpkid/rpki/exceptions.py2
-rw-r--r--rpkid/rpki/ghostbuster.py26
-rw-r--r--rpkid/rpki/gui/app/forms.py10
-rwxr-xr-xrpkid/rpki/gui/app/range_list.py90
-rw-r--r--rpkid/rpki/gui/app/views.py2
-rw-r--r--rpkid/rpki/gui/cacheview/models.py1
-rw-r--r--rpkid/rpki/gui/cacheview/views.py8
-rw-r--r--rpkid/rpki/gui/models.py22
-rw-r--r--rpkid/rpki/http.py33
-rw-r--r--rpkid/rpki/ipaddrs.py4
-rw-r--r--rpkid/rpki/irdb/__init__.py5
-rw-r--r--rpkid/rpki/irdb/models.py48
-rw-r--r--rpkid/rpki/irdb/router.py95
-rw-r--r--rpkid/rpki/irdb/zookeeper.py563
-rw-r--r--rpkid/rpki/irdbd.py11
-rw-r--r--rpkid/rpki/left_right.py607
-rw-r--r--rpkid/rpki/log.py57
-rw-r--r--rpkid/rpki/manifest.py54
-rw-r--r--rpkid/rpki/mysql_import.py6
-rw-r--r--rpkid/rpki/oids.py42
-rw-r--r--rpkid/rpki/old_irdbd.py16
-rw-r--r--rpkid/rpki/pubd.py2
-rw-r--r--rpkid/rpki/publication.py37
-rw-r--r--rpkid/rpki/rcynic.py101
-rw-r--r--rpkid/rpki/relaxng.py8
-rw-r--r--rpkid/rpki/resource_set.py348
-rw-r--r--rpkid/rpki/roa.py76
-rw-r--r--rpkid/rpki/rootd.py27
-rw-r--r--rpkid/rpki/rpkic.py45
-rw-r--r--rpkid/rpki/rpkid.py265
-rw-r--r--rpkid/rpki/rpkid_tasks.py574
-rw-r--r--rpkid/rpki/sql.py80
-rw-r--r--rpkid/rpki/sundial.py103
-rw-r--r--rpkid/rpki/up_down.py16
-rw-r--r--rpkid/rpki/x509.py876
-rw-r--r--rpkid/rpki/xml_utils.py6
46 files changed, 2537 insertions, 21956 deletions
diff --git a/rpkid/rpki/POW/__init__.py b/rpkid/rpki/POW/__init__.py
index b150bbf1..d3796245 100644
--- a/rpkid/rpki/POW/__init__.py
+++ b/rpkid/rpki/POW/__init__.py
@@ -1,16 +1,7 @@
from _POW import *
-from _POW import _docset
-## @mainpage
-##
-## Python OpenSSL Wrappers (POW) is an old (but well-written)
-## interface between Python and OpenSSL (ok, you could have guessed
-## that from the name). Sadly, it appears to have fallen by the
-## wayside, and M2Crypto is getting a lot more attention these days.
-##
-## POW ships with a submodule, POW.pkix, which includes a wonderful
-## set of pure-Python routines for dealing with ASN.1 encodings of
-## X.509v3 certificates, extensions, and related data. I haven't
-## found anything as good anywhere else. This code deserves to be
-## salvaged and put to work.
+# Set callback to let POW construct rpki.sundial.datetime objects
+from rpki.sundial import datetime as sundial_datetime
+customDatetime(sundial_datetime)
+del sundial_datetime
diff --git a/rpkid/rpki/POW/_der.py b/rpkid/rpki/POW/_der.py
deleted file mode 100644
index c7f58411..00000000
--- a/rpkid/rpki/POW/_der.py
+++ /dev/null
@@ -1,2294 +0,0 @@
-#*****************************************************************************#
-#* *#
-#* Copyright (c) 2002, Peter Shannon *#
-#* All rights reserved. *#
-#* *#
-#* Redistribution and use in source and binary forms, with or without *#
-#* modification, are permitted provided that the following conditions *#
-#* are met: *#
-#* *#
-#* * Redistributions of source code must retain the above *#
-#* copyright notice, this list of conditions and the following *#
-#* disclaimer. *#
-#* *#
-#* * Redistributions in binary form must reproduce the above *#
-#* copyright notice, this list of conditions and the following *#
-#* disclaimer in the documentation and/or other materials *#
-#* provided with the distribution. *#
-#* *#
-#* * The name of the contributors may be used to endorse or promote *#
-#* products derived from this software without specific prior *#
-#* written permission. *#
-#* *#
-#* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS *#
-#* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT *#
-#* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS *#
-#* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS *#
-#* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, *#
-#* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT *#
-#* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, *#
-#* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY *#
-#* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT *#
-#* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE *#
-#* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *#
-#* *#
-#*****************************************************************************#
-
-import exceptions, types, copy, string, time, base64, traceback, cStringIO
-
-DEBUG = 0
-
-# CLASS
-CLASS_UNIVERSAL = 0x00
-CLASS_APPLICATION = 0x40
-CLASS_CONTEXT = 0x80
-CLASS_PRIVATE = 0xC0
-
-# FORM
-FORM_PRIMITIVE = 0x00
-FORM_CONSTRUCTED = 0x20
-
-# TAG
-TAG_BOOLEAN = 0x01
-TAG_INTEGER = 0x02
-TAG_BITSTRING = 0x03
-TAG_OCTETSTRING = 0x04
-TAG_NULL = 0x05
-TAG_OID = 0x06
-TAG_OBJDESCRIPTOR = 0x07
-TAG_EXTERNAL = 0x08
-TAG_REAL = 0x09
-TAG_ENUMERATED = 0x0A
-TAG_EMBEDDED_PDV = 0x0B
-TAG_UTF8STRING = 0x0C
-TAG_SEQUENCE = 0x10
-TAG_SET = 0x11
-TAG_NUMERICSTRING = 0x12
-TAG_PRINTABLESTRING = 0x13
-TAG_T61STRING = 0x14
-TAG_VIDEOTEXSTRING = 0x15
-TAG_IA5STRING = 0x16
-TAG_UTCTIME = 0x17
-TAG_GENERALIZEDTIME = 0x18
-TAG_GRAPHICSTRING = 0x19
-TAG_VISIBLESTRING = 0x1A
-TAG_GENERALSTRING = 0x1B
-TAG_UNIVERSALSTRING = 0x1C
-TAG_BMPSTRING = 0x1E
-
-_fragments = []
-
-def _docset():
- return _fragments
-
-def _addFragment(frag):
- global _fragments
- _fragments.append(frag)
-
-
-_addFragment('''
-<moduleDescription>
- <header>
- <name>POW.pkix</name>
- <author>Peter Shannon</author>
- </header>
- <body>
- <para>
- This module is a solution to reading and writing X509v3 written
- purely in Python. It does use limited facilities from POW for
- signing and verifying but these could be replaced easily. It is
- an abstract module and to use it successfully RFC3280 should be
- referred to as well as the sourcecode where necessary. The correct
- use of many extensions often not clear from the definitions alone.
- Do refer to the RFC for details.
- </para>
- <para>
- Each constructed objects defined in the RFC is built from primitives
- defined by the ASN1 recommedations. Not all ASN1 primitive are available but all those
- required for X509v3 should be. The implementation is more or less
- complete for DER encoding the only caveat, aside from a few
- missing objects, is the behaviour of <classname>SET</classname> objects
- and <classname>SET OF</classname> objects. The order the objects are
- written in should be determined at runtime by sorting their tags but this
- library does not do this. For X509 it isn't really necessary
- since all the <classname>Set</classname> objects are simple and the
- order they are written in is defined by the object's constructor.
- </para>
- <para>
- Every documented object in this module supports the functions documented for
- <classname>_GeneralObject</classname>. In general the function
- will only be documented in descendant classes if the class changes
- the behaviour significantly from its ancestor. This would
- normally be <classname>_GeneralObject</classname> or
- <classname>Sequence</classname>.
- </para>
- </body>
-</moduleDescription>
-''')
-
-class DerError(Exception):
- def __init__(self, msg):
- if not isinstance(msg, types.StringType):
- raise Exception, 'argunment should be a string'
- self.msg = msg
-
- def __repr__(self):
- return self.msg
-
- __str__ = __repr__
-
-class _Tag(object):
- def __init__(self):
- self.tagclass = 0
- self.tagform = 0
- self.tagnumber = 0
-
- def __repr__(self):
- return '(%s, %s, %s)' % (self.tagclass, self.tagform, self.tagnumber)
-
- def write(self, file):
- if self.tagnumber < 31:
- file.write( chr(self.tagclass | self.tagform | self.tagnumber) )
- else:
- val = copy.deepcopy(self.tagnumber)
- bytes = []
- while val:
- byte = val & 0x7F
- bytes.append(byte | 0x80)
- val = val >> 7
- bytes[0] = bytes[0] ^ 0x80
- bytes.append( self.tagclass | self.tagform | 0x1F )
- bytes.reverse()
- file.write( string.join(map(chr, bytes), '') )
-
- def read(self, file):
- octet1 = ord( file.read(1) )
- self.tagclass = octet1 & 0xC0
- self.tagform = octet1 & 0x20
- value = octet1 & 0x1F
- if value < 31:
- self.tagnumber = value
- else:
- total = 0
- byte = 0x80
- while byte & 0x80:
- byte = ord( file.read(1) )
- if byte & 0x80:
- total = (total << 7) | byte ^ 0x80
- else:
- total = (total << 7) | byte
- self.tagnumber = total
-
-class _Length(object):
- def __init__(self):
- self.length = 0
-
- def __repr__(self):
- return '(%s)' % self.length
-
- def write(self, file):
- if self.length < 128:
- file.write( chr(self.length) )
- else:
- val = copy.deepcopy(self.length)
- bytes = []
- while val:
- byte = val & 0xFF
- bytes.append(byte)
- val = val >> 8
- lengthOfLength = len(bytes)
- if lengthOfLength > 126:
- raise DerError, 'object is too long!'
- bytes.append(lengthOfLength)
- bytes.reverse()
- bytes[0] = bytes[0] ^ 0x80
- file.write( string.join(map(chr, bytes), '') )
-
- def read(self, file):
- octet1 = ord( file.read(1) )
- if octet1 < 128:
- self.length = octet1
- else:
- total = 0
- byte = 0
- for i in range(octet1 ^ 0x80):
- byte = ord( file.read(1) )
- total = (total << 8) | byte
- self.length = total
-
-class _TlvIo(_Tag, _Length):
- def __init__(self, file):
- self.file = file
- self.offset = None
- self.valueOffset = None
-
- def __repr__(self):
- return '<TAG:%s Length:%s>' % (_Tag.__repr__(self), _Length.__repr__(self))
-
- def __nonzero__(self):
- pos = self.file.tell()
- self.file.seek(0,2)
- if self.file.tell():
- self.file.seek(pos)
- return 1
- else:
- return 0
-
- def read(self):
- self.offset = self.file.tell()
- _Tag.read( self, self.file )
- _Length.read( self, self.file )
- self.valueOffset = self.file.tell()
- self.file.seek( self.length, 1 )
-
- def readValue(self):
- self.file.seek( self.valueOffset )
- return self.file.read( self.length )
-
- def write(self, val):
- _Tag.write( self, self.file )
- self.length = len(val)
- _Length.write( self, self.file )
- self.file.write(val)
-
-def _decodeBoolean(val):
- 'der encoded value not including tag or length'
- if not isinstance(val, types.StringType):
- raise DerError, 'argument should be a string'
- if ord(val) == 0xFF:
- return 1
- elif ord(val) == 0x00:
- return 0
- else:
- raise DerError, 'boolean should be encode as all 1s or all 0s'
-
-def _encodeBoolean(val):
- 'anything we can test for truth'
- if val:
- return chr(0xFF)
- else:
- return chr(0x00)
-
-def _decodeInteger(val):
- 'der encoded value not including tag or length'
- if not isinstance(val, types.StringType):
- raise DerError, 'argument should be a string'
- total = 0L
- if ord(val[0]) & 0x80:
- val = map( lambda x : ord(x) ^ 0xFF, val )
- for byte in val:
- total = (total << 8) | byte
- total = -(total+1)
- else:
- for byte in val:
- total = (total << 8) | ord(byte)
- return total
-
-def _encodeInteger(val):
- 'python integer'
- if not isinstance(val, types.IntType) and not isinstance(val, types.LongType):
- raise DerError, 'argument should be an integer'
- if val == 0:
- return chr(0x00)
- else:
- val2 = copy.deepcopy(val)
- if val2 < 0:
- val2 = -(val2+1)
- bytes = []
- byte = 0
- while val2:
- byte = val2 & 0xFF
- bytes.append(byte)
- val2 = val2 >> 8
- # if we have no used up the last byte to represent the value we need
- # to add one more on to show if this is negative of positive. Also,
- # due to adding 1 and inverting -1 would be 0 or if 0 is the encoding
- # value, so bytes would empty and this would lead to and empty value
- # and this would not be working properly. Adding this null byte
- # fixes this, since it is inverted to -1 and preserved for 0.
- if byte & 0x80 or not bytes:
- bytes.append(0x00)
- if val < 0:
- bytes = map( lambda x : x ^ 0xFF, bytes )
- bytes.reverse()
-
- return string.join(map(chr, bytes), '')
-
-def _decodeBitString(val):
- 'der encoded value not including tag or length'
- if not isinstance(val, types.StringType):
- raise DerError, 'argument should be a string'
- bitmasks = [0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01]
- unused = ord( val[0] )
- bits = []
- for byte in val[1:]:
- for j in range(8):
- if ord(byte) & bitmasks[j]:
- bits.append(1)
- else:
- bits.append(0)
- if unused == 0:
- return tuple(bits)
- else:
- return tuple(bits[:-unused])
-
-def _encodeBitString(val):
- 'list of true/false objects ie [0,1,1,0,1,1]'
- if not (isinstance(val, types.ListType) or isinstance(val, types.TupleType)):
- raise DerError, 'argument should be a list or tuple'
- bitmasks = [0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01]
- bytes = []
- fits, leftover = divmod(len(val), 8)
- nobytes = fits
- if leftover > 0:
- nobytes = nobytes + 1
- if leftover:
- unused = 8 - leftover
- else:
- unused = 0
- bytes.append(unused)
- for i in range(nobytes):
- byte = 0
- for j in range(8):
- offset = j + i*8
- if offset < len(val):
- if val[offset]:
- byte = byte | bitmasks[j]
- bytes.append(byte)
-
- return string.join(map(chr, bytes), '')
-
-def _decodeOid(val):
- 'der encoded value not including tag or length'
- if not isinstance(val, types.StringType):
- raise DerError, 'argument should be a string'
- arc12 = ord( val[0] )
- arc1, arc2 = divmod(arc12, 40)
- oids = [arc1,arc2]
-
- total = 0
- for byte in val[1:]:
- val = ord(byte)
- if val & 0x80:
- total = (total << 7) | (val ^ 0x80)
- else:
- total = (total << 7) | val
- oids.append(total)
- total = 0
-
- return tuple(oids)
-
-def _encodeOid(val):
- 'list of intgers'
- if not (isinstance(val, types.ListType) or isinstance(val, types.TupleType)):
- raise DerError, 'argument should be a list or tuple'
- oids = []
- oids.append( chr(40 * val[0] + val[1]) )
- for val in val[2:]:
- if val == 0:
- oids.append( chr(0) )
- else:
- bytes = []
- while val:
- val, rem = divmod(val, 128)
- bytes.append(rem | 0x80)
- bytes[0] = bytes[0] ^ 0x80
- bytes.reverse()
- oids.append( string.join(map(chr, bytes), '') )
-
- return string.join(oids, '')
-
-def _decodeSequence(val):
- 'der encoded value not including tag or length'
- if not isinstance(val, types.StringType):
- raise DerError, 'argument should be a string'
- buf = cStringIO.StringIO(val)
- buflen = len(val)
- tvls = []
- while buf.tell() < buflen:
- t = _TlvIo(buf)
- t.read()
- tvls.append(t)
- return tuple(tvls)
-
-def _encodeSequence(val):
- 'list of GenerlObjects'
- if not (isinstance(val, types.ListType) or isinstance(val, types.TupleType)):
- raise DerError, 'argument should be a list or tuple'
- buf = cStringIO.StringIO()
- for obj in val:
- if obj or isinstance(obj, _GeneralObject):
- obj.write(buf)
- elif not obj.optional:
- raise DerError, 'object not set which should be: %s' % obj
-
- return buf.getvalue()
-
-_addFragment('''
-<class>
- <header>
- <name>_GeneralObject</name>
- </header>
- <body>
- <para>
- <classname>_GeneralObject</classname> is the basis for all DER objects,
- primitive or constructed. It defines the basic behaviour of an
- object which is serialised using the tag, length and value
- approach of DER. It is unlikely you would ever want to
- instantiate one of these directly but I include a description
- since many primatives don't override much of
- <classname>_GeneralObject</classname>'s functions.
- </para>
- </body>
-</class>
-''')
-
-class _GeneralObject(object):
-
- _addFragment('''
- <constructor>
- <header>
- <memberof>_GeneralObject</memberof>
- <parameter>normclass</parameter>
- <parameter>normform</parameter>
- <parameter>normnumber</parameter>
- <parameter>encRoutine</parameter>
- <parameter>decRoutine</parameter>
- <parameter>optional=0</parameter>
- <parameter>default=''</parameter>
- </header>
- <body>
- <para>
- <parameter>normclass</parameter> is the class of the object,
- ei: universal, application, context or private.
- <parameter>normform</parameter> is the form of the object, ei
- primitive or constructed. <parameter>normnumber</parameter> is
- the tag number of the object.
- <parameter>encRoutine</parameter> is a function which takes a
- value and encodes it according the appropriate DER rules.
- <parameter>decRoutine</parameter> is a function which reads a
- string value and returns a value which is more useful in
- Python. <parameter>optional</parameter> is a boolean
- indicating if this object is optional. The final parameter,
- <parameter>default</parameter> is the base 64 encoded DER
- value, which should be used as the default in leu of a value to
- read or incase it is unset.
- </para>
- </body>
- </constructor>
- ''')
-
- def __init__(self, normclass, normform, normnumber, encRoutine, decRoutine, optional=0, default=''):
- if not isinstance(normclass, types.IntType):
- raise DerError, 'nomrclass argument should be an integer : %s' % normclass
- if not isinstance(normform, types.IntType):
- raise DerError, 'normform argument should be an integer : %s' % normform
- if not isinstance(normnumber, types.IntType):
- raise DerError, 'normnumber argument should be an integer : %s' % normnumber
- if not isinstance(encRoutine, types.FunctionType):
- raise DerError, 'encRoutine argument should be an function : %s' % encRoutine
- if not isinstance(decRoutine, types.FunctionType):
- raise DerError, 'decRoutine argument should be an function : %s' % decRoutine
- if not isinstance(optional, types.IntType):
- raise DerError, 'optional argument should be an integer : %s' % optional
- if not isinstance(default, types.StringType):
- raise DerError, 'default argument should be an String : %s' % default
- self.normclass = normclass
- self.normform = normform
- self.normnumber = normnumber
- self.encRoutine = encRoutine
- self.decRoutine = decRoutine
- self.value = None
- self.optional = optional
- self.default = default
- self.reset()
-
- def _ioSafe(self):
- 'is it safe to write this object'
- if self.optional or self._isSet():
- return 1
- else:
- return 0
-
- def _isSet(self):
- 'are the values of this object set or not'
- if self.value is not None:
- return 1
- else:
- return 0
-
- _addFragment('''
- <method>
- <header>
- <memberof>_GeneralObject</memberof>
- <name>reset</name>
- </header>
- <body>
- <para>
- This function re-initialises the object, clearing the value or
- setting it to any default.
- </para>
- </body>
- </method>
- ''')
- def reset(self):
- self.value = None
- if self.default:
- buf = cStringIO.StringIO( base64.decodestring( self.default ) )
- io = _TlvIo(buf)
- io.read()
- self.read(io)
-
- _addFragment('''
- <method>
- <header>
- <memberof>_GeneralObject</memberof>
- <name>set</name>
- <parameter>value</parameter>
- </header>
- <body>
- <para>
- This dosn't do much except store <parameter>value</parameter>,
- presumably prior to writing the object. The correct values to
- use would be determined by the encoder or decoder this class is
- instantiated with. Be careful, there is some flexibility in
- setting objects so you might find that once the object has been
- written and read back in the value isn't identical. A good
- example would be anything which contains a sequence(list or
- tuple), all sequence objects are returned as tuples.
- </para>
- </body>
- </method>
- ''')
- def set(self, value):
- if value is not None:
- self.value = value
-
- _addFragment('''
- <method>
- <header>
- <memberof>_GeneralObject</memberof>
- <name>get</name>
- </header>
- <body>
- <para>
- Gets the value stored presumably after reading the object.
- </para>
- </body>
- </method>
- ''')
- def get(self):
- return self.value
-
- _addFragment('''
- <method>
- <header>
- <memberof>_GeneralObject</memberof>
- <name>implied</name>
- <parameter>impclass</parameter>
- <parameter>impform</parameter>
- <parameter>impnumber</parameter>
- </header>
- <body>
- <para>
- This function is used to change how the tag is written or read
- for a particular object and should be called in the constructor
- for derived objects. If you have an example of the structure you need to
- process, Pete Gutmann's excellent
- <application>dumpasn1</application> can be invaluable for
- debugging objects.
- </para>
- </body>
- </method>
- ''')
- def implied(self, impclass, impform, impnumber):
- if not isinstance(impclass, types.IntType):
- raise DerError, 'impclass argument should be an integer'
- if not isinstance(impform, types.IntType):
- raise DerError, 'impform argument should be an integer'
- if not isinstance(impnumber, types.IntType):
- raise DerError, 'impnumber argument should be an integer'
- self.normclass = impclass
- self.normform = impform
- self.normnumber = impnumber
-
- _addFragment('''
- <method>
- <header>
- <memberof>_GeneralObject</memberof>
- <name>read</name>
- <parameter>io</parameter>
- </header>
- <body>
- <para>
- <parameter>io</parameter> should be a file like object. If the
- object being read matches the expected class, form and tag the
- value is read and decoded using
- <function>decRoutine</function>. Else, if it has a default
- that is read and stored.
- </para>
- <para>
- The return value of this function does not indicate success but
- whether this TLV was processed successfully. This bahaviour is
- vital for processing constructed types since the object may be
- optional or have a default. Failure to decode would be indicated
- by an exception.
- </para>
- </body>
- </method>
- ''')
-
- def read(self, io=None):
-
- processDefOpt = 0
- if io is None:
- processDefOpt = 1
- elif isinstance(io, _TlvIo):
- if not io:
- processDefOpt = 1
- else:
- pos = io.tell()
- io.seek(0,2)
- if io.tell():
- io.seek(pos)
- else:
- processDefOpt = 1
-
- if processDefOpt:
- if self.optional or self.default:
- self.reset()
- return 0
- else:
- raise DerError, 'no TLV is available to read in non-optional/non-default object: %s' % repr(self)
-
- if not isinstance(io, _TlvIo):
- tmp = _TlvIo(io)
- tmp.read()
- io = tmp
-
- if io.tagclass != self.normclass or io.tagform != self.normform or io.tagnumber != self.normnumber:
- if self.default or self.optional:
- self.reset()
- return 0
- else:
- raise DerError, 'error in encoding, missing object:%s' % repr(self)
- else:
- derval = io.readValue()
- self.value = self.decRoutine( derval )
- return 1
-
- _addFragment('''
- <method>
- <header>
- <memberof>_GeneralObject</memberof>
- <name>write</name>
- <parameter>io</parameter>
- </header>
- <body>
- <para>
- If this object has not been set and is not optional and dosn't
- have a default, a <classname>DerError</classname> exception will be raised
- </para>
- <para>
- If no value has been set and this object is optional, nothing
- is written. If this object's value is equal to the default,
- nothing is written as stipulated by DER. Otherwise the value
- is encoded and written.
- </para>
- </body>
- </method>
- ''')
-
- def write(self, file):
- if not self._ioSafe():
- raise DerError, 'object not set which must be: %s' % repr(self)
- elif self.optional and self.value is None:
- pass
- else:
- buf = cStringIO.StringIO()
- io = _TlvIo(buf)
- io.tagclass = self.normclass
- io.tagform = self.normform
- io.tagnumber = self.normnumber
- derval = self.encRoutine( self.value )
- io.length = len(derval)
- io.write(derval)
- if self.default:
- if buf.getvalue() != base64.decodestring(self.default):
- file.write( buf.getvalue() )
- else:
- file.write( buf.getvalue() )
-
- _addFragment('''
- <method>
- <header>
- <memberof>_GeneralObject</memberof>
- <name>toString</name>
- </header>
- <body>
- <para>
- Encodes the value in DER and returns it as a string.
- </para>
- </body>
- </method>
- ''')
-
- def toString(self):
- buf = cStringIO.StringIO()
- self.write(buf)
- return buf.getvalue()
-
- _addFragment('''
- <method>
- <header>
- <memberof>_GeneralObject</memberof>
- <name>fromString</name>
- </header>
- <body>
- <para>
- Decodes the string and sets the value of this object.
- </para>
- </body>
- </method>
- ''')
-
- def fromString(self, value):
- buf = cStringIO.StringIO(value)
- self.read(buf)
-
-class Any(_GeneralObject):
-
- def __init__(self):
- self.value = None
- self.normclass = None
- self.normform = None
- self.normnumber = None
-
- def _ioSafe(self):
- if self.optional or (self._isSet() and self.normclass is not None and self.normform is not None and self.normnumber is not None):
- return 1
- else:
- return 0
-
- def setTag(self, klass, form, number):
- self.normclass = klass
- self.normform = form
- self.normnumber = number
-
- def reset(self):
- self.value = None
-
- def get(self):
- return self.value
-
- def set(self, value):
- self.value = value
-
- def write(self,file):
- if not self._ioSafe():
- raise DerError, 'object not set which must be: %s' % repr(self)
- elif self.optional and self.value is None:
- pass
- else:
- buf = cStringIO.StringIO()
- io = _TlvIo(buf)
- io.tagclass = self.normclass
- io.tagform = self.normform
- io.tagnumber = self.normnumber
- io.length = len(self.value)
- io.write(self.value)
- file.write(buf.getvalue())
-
- def read(self, io=None):
-
- processDefOpt = 0
- if io is None:
- processDefOpt = 1
- elif isinstance(io, _TlvIo):
- if not io:
- processDefOpt = 1
- else:
- pos = io.tell()
- io.seek(0,2)
- if io.tell():
- io.seek(pos)
- else:
- processDefOpt = 1
- if processDefOpt:
- if self.optional or self.default:
- self.reset()
- return 0
- else:
- raise DerError, 'no TLV is available to read in non-optional/non-default object: %s' % repr(self)
-
- if not isinstance(io, _TlvIo):
- tmp = _TlvIo(io)
- tmp.read()
- io = tmp
-
- self.value = io.readValue()
- self.normclass = io.tagclass
- self.normform = io.tagform
- self.normnumber = io.tagnumber
-
-_addFragment('''
-<class>
- <header>
- <name>Boolean</name>
- <super>_GeneralObject</super>
- </header>
- <body>
- <para>
- This object represents the ASN1 BOOLEAN type. It can be set
- with any object which can be tested for truth.
- </para>
- </body>
-</class>
-''')
-
-class Boolean(_GeneralObject): # 0x01
-
- _addFragment('''
- <constructor>
- <header>
- <memberof>Boolean</memberof>
- <parameter>optional=0</parameter>
- <parameter>default=''</parameter>
- </header>
- </constructor>
- ''')
- def __init__(self, optional=0, default=''):
- _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_BOOLEAN, _encodeBoolean, _decodeBoolean, optional, default)
-
-_addFragment('''
-<class>
- <header>
- <name>Integer</name>
- <super>_GeneralObject</super>
- </header>
- <body>
- <para>
- This object represents the ASN1 INTEGER type. It should be set
- with a Python integer.
- </para>
- </body>
-</class>
-''')
-
-class Integer(_GeneralObject): # 0x02
-
- _addFragment('''
- <constructor>
- <header>
- <memberof>Integer</memberof>
- <parameter>optional=0</parameter>
- <parameter>default=''</parameter>
- </header>
- </constructor>
- ''')
- def __init__(self, optional=0, default=''):
- _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_INTEGER, _encodeInteger, _decodeInteger, optional, default)
-
-_addFragment('''
-<class>
- <header>
- <name>BitString</name>
- <super>_GeneralObject</super>
- </header>
- <body>
- <para>
- This object represents the ASN1 BIT STRING type. It should be set
- with a sequence of integers. A non-zero number will set the bit,
- zero will leave the bit unset.
- </para>
- </body>
-</class>
-''')
-
-class BitString(_GeneralObject): # 0x03
-
- _addFragment('''
- <constructor>
- <header>
- <memberof>BitString</memberof>
- <parameter>optional=0</parameter>
- <parameter>default=''</parameter>
- </header>
- </constructor>
- ''')
- def __init__(self, optional=0, default=''):
- _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_BITSTRING, _encodeBitString, _decodeBitString, optional, default)
-
-_addFragment('''
-<class>
- <header>
- <name>AltBitString</name>
- <super>_GeneralObject</super>
- </header>
- <body>
- <para>
- This object represents the ASN1 BIT STRING type. It differs from
- the first <classname>BitString</classname> in that it's coding
- routines treat values as binary data and do not interpret the data
- in any way. Some application treat the
- <classname>BIT STRING</classname> in the same way as
- <classname>OCTET STRING</classname> type, hence this extra object.
- </para>
- </body>
-</class>
-''')
-
-class AltBitString(_GeneralObject): # 0x03
-
- _addFragment('''
- <constructor>
- <header>
- <memberof>AltBitString</memberof>
- <parameter>optional=0</parameter>
- <parameter>default=''</parameter>
- </header>
- </constructor>
- ''')
-
- def __init__(self, optional=0, default=''):
- _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_BITSTRING, lambda x : chr(0)+x, lambda x : x[1:], optional, default)
-
-_addFragment('''
-<class>
- <header>
- <name>OctetString</name>
- <super>_GeneralObject</super>
- </header>
- <body>
- <para>
- This object represents the ASN1 OCTET STRING type. This object
- can be set with any binary data.
- </para>
- </body>
-</class>
-''')
-class OctetString(_GeneralObject): # 0x04
-
- _addFragment('''
- <constructor>
- <header>
- <memberof>OctetString</memberof>
- <parameter>optional=0</parameter>
- <parameter>default=''</parameter>
- </header>
- </constructor>
- ''')
-
- def __init__(self, optional=0, default=''):
- _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_OCTETSTRING, lambda x : x, lambda x : x, optional, default)
-
-_addFragment('''
-<class>
- <header>
- <name>Null</name>
- <super>_GeneralObject</super>
- </header>
- <body>
- <para>
- This object represents the ASN1 NULL type. There is no point in
- setting this object, the value will always be ignored when it is
- written out.
- </para>
- </body>
-</class>
-''')
-class Null(_GeneralObject): # 0x05
-
- _addFragment('''
- <constructor>
- <header>
- <memberof>Null</memberof>
- <parameter>optional=0</parameter>
- <parameter>default=''</parameter>
- </header>
- </constructor>
- ''')
-
- def __init__(self, optional=0, default=''):
- _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_NULL, lambda x : '', lambda x : '', optional, default)
- self.value = ''
-
- def _ioSafe(self):
- return 1
-
- def reset(self):
- self.value = ''
-
-_addFragment('''
-<class>
- <header>
- <name>Oid</name>
- <super>_GeneralObject</super>
- </header>
- <body>
- <para>
- This object represents the ASN1 OID type. This object should be
- set with a list or tuple of integers defining an objects oid.
- Please note that the first three arcs have a restricted set of
- values, so encoding (5, 3, 7, 1) will produce bad results.
- </para>
- </body>
-</class>
-''')
-class Oid(_GeneralObject): # 0x06
-
- _addFragment('''
- <constructor>
- <header>
- <memberof>Oid</memberof>
- <parameter>optional=0</parameter>
- <parameter>default=''</parameter>
- </header>
- </constructor>
- ''')
-
- def __init__(self, optional=0, default=''):
- _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_OID, _encodeOid, _decodeOid, optional, default)
-
-_addFragment('''
-<class>
- <header>
- <name>Enum</name>
- <super>_GeneralObject</super>
- </header>
- <body>
- <para>
- This object represents the ASN1 ENUM type. This should be set
- using a Python integer, the meaning should be described in the
- ASN1 document for the object you are encoding.
- </para>
- </body>
-</class>
-''')
-class Enum(_GeneralObject): # 0x0A
-
- _addFragment('''
- <constructor>
- <header>
- <memberof>Enum</memberof>
- <parameter>optional=0</parameter>
- <parameter>default=''</parameter>
- </header>
- </constructor>
- ''')
-
- def __init__(self, optional=0, default=''):
- _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_ENUMERATED, _encodeInteger, _decodeInteger, optional, default)
-
-_addFragment('''
-<class>
- <header>
- <name>Utf8String</name>
- <super>_GeneralObject</super>
- </header>
- <body>
- <para>
- This object represents the ASN1 UTF8String type. This object
- should be set with a string. It is up to the application to ensure
- it only contains valid characters for this type.
- </para>
- </body>
-</class>
-''')
-class Utf8String(_GeneralObject): # 0x0C
-
- _addFragment('''
- <constructor>
- <header>
- <memberof>Utf8String</memberof>
- <parameter>optional=0</parameter>
- <parameter>default=''</parameter>
- </header>
- </constructor>
- ''')
-
- def __init__(self, optional=0, default=''):
- _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_UTF8STRING, lambda x : x, lambda x : x, optional, default)
-
-_addFragment('''
-<class>
- <header>
- <name>NumericString</name>
- <super>_GeneralObject</super>
- </header>
- <body>
- <para>
- This object represents the ASN1 NumericString type. This should
- object should be set with a string. It is up to the application to ensure
- it only contains valid characters for this type.
- </para>
- </body>
-</class>
-''')
-class NumericString(_GeneralObject): # 0x12
-
- _addFragment('''
- <constructor>
- <header>
- <memberof>NumericString</memberof>
- <parameter>optional=0</parameter>
- <parameter>default=''</parameter>
- </header>
- </constructor>
- ''')
-
- def __init__(self, optional=0, default=''):
- _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_NUMERICSTRING, lambda x : x, lambda x : x, optional, default)
-_addFragment('''
-<class>
- <header>
- <name>PrintableString</name>
- <super>_GeneralObject</super>
- </header>
- <body>
- <para>
- This object represents the ASN1 PrintableString type. This should
- object should be set with a string. It is up to the application to ensure
- it only contains valid characters for this type.
- </para>
- </body>
-</class>
-''')
-class PrintableString(_GeneralObject): # 0x13
-
- _addFragment('''
- <constructor>
- <header>
- <memberof>PrintableString</memberof>
- <parameter>optional=0</parameter>
- <parameter>default=''</parameter>
- </header>
- </constructor>
- ''')
-
- def __init__(self, optional=0, default=''):
- _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_PRINTABLESTRING, lambda x : x, lambda x : x, optional, default)
-
-_addFragment('''
-<class>
- <header>
- <name>T61String</name>
- <super>_GeneralObject</super>
- </header>
- <body>
- <para>
- This object represents the ASN1 T61String type. This object
- should be set with a string. It is up to the application to ensure
- it only contains valid characters for this type.
- </para>
- </body>
-</class>
-''')
-class T61String(_GeneralObject): # 0x14
-
- _addFragment('''
- <constructor>
- <header>
- <memberof>T61String</memberof>
- <parameter>optional=0</parameter>
- <parameter>default=''</parameter>
- </header>
- </constructor>
- ''')
-
- def __init__(self, optional=0, default=''):
- _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_T61STRING, lambda x : x, lambda x : x, optional, default)
-
-_addFragment('''
-<class>
- <header>
- <name>VideotexString</name>
- <super>_GeneralObject</super>
- </header>
- <body>
- <para>
- This object represents the ASN1 VideotexString type. This should
- object should be set with a string. It is up to the application to ensure
- it only contains valid characters for this type.
- </para>
- </body>
-</class>
-''')
-class VideotexString(_GeneralObject): # 0x15
-
- _addFragment('''
- <constructor>
- <header>
- <memberof>VideotexString</memberof>
- <parameter>optional=0</parameter>
- <parameter>default=''</parameter>
- </header>
- </constructor>
- ''')
-
- def __init__(self, optional=0, default=''):
- _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_VIDEOTEXSTRING, lambda x : x, lambda x : x, optional, default)
-
-_addFragment('''
-<class>
- <header>
- <name>IA5String</name>
- <super>_GeneralObject</super>
- </header>
- <body>
- <para>
- This object represents the ASN1 IA5String type. This object
- should be set with a string. It is up to the application to ensure
- it only contains valid characters for this type.
- </para>
- </body>
-</class>
-''')
-class IA5String(_GeneralObject): # 0x16
-
- _addFragment('''
- <constructor>
- <header>
- <memberof>IA5String</memberof>
- <parameter>optional=0</parameter>
- <parameter>default=''</parameter>
- </header>
- </constructor>
- ''')
-
- def __init__(self, optional=0, default=''):
- _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_IA5STRING, lambda x : x, lambda x : x, optional, default)
-
-_addFragment('''
-<class>
- <header>
- <name>UtcTime</name>
- <super>_GeneralObject</super>
- </header>
- <body>
- <para>
- This object represents the ASN1 UTCTime type. This object should
- be set with a string of the general format YYMMDDhhmmssZ. The
- helper functions <function>time2utc</function> and
- <function>utc2time</function> can be used to handle the conversion
- from an integer to a string and back.
- </para>
- </body>
-</class>
-''')
-class UtcTime(_GeneralObject): # 0x17
-
- _addFragment('''
- <constructor>
- <header>
- <memberof>UtcTime</memberof>
- <parameter>optional=0</parameter>
- <parameter>default=''</parameter>
- </header>
- </constructor>
- ''')
-
- def __init__(self, optional=0, default=''):
- _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_UTCTIME, lambda x : x, lambda x : x, optional, default)
-
-_addFragment('''
-<class>
- <header>
- <name>GeneralizedTime</name>
- <super>_GeneralObject</super>
- </header>
- <body>
- <para>
- This object represents the ASN1 GeneralizedTime type. This object should
- be set with a string of the general format YYYYMMDDhhmmssZ. The
- helper functions <function>time2utc</function> and
- <function>utc2time</function> can be used to handle the conversion
- from an integer to a string and back.
- </para>
- </body>
-</class>
-''')
-class GeneralizedTime(_GeneralObject): # 0x18
-
- _addFragment('''
- <constructor>
- <header>
- <memberof>GeneralizedTime</memberof>
- <parameter>optional=0</parameter>
- <parameter>default=''</parameter>
- </header>
- </constructor>
- ''')
-
-
- def __init__(self, optional=0, default=''):
- _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_GENERALIZEDTIME, lambda x : x, lambda x : x, optional, default)
-
-_addFragment('''
-<class>
- <header>
- <name>GraphicString</name>
- <super>_GeneralObject</super>
- </header>
- <body>
- <para>
- This object represents the ASN1 GraphicString type. This should
- object should be set with a string. It is up to the application to
- ensure it only contains valid characters for this type.
- </para>
- </body>
-</class>
-''')
-class GraphicString(_GeneralObject): # 0x19
-
- _addFragment('''
- <constructor>
- <header>
- <memberof>GraphicString</memberof>
- <parameter>optional=0</parameter>
- <parameter>default=''</parameter>
- </header>
- </constructor>
- ''')
-
- def __init__(self, optional=0, default=''):
- _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_GRAPHICSTRING, lambda x : x, lambda x : x, optional, default)
-
-_addFragment('''
-<class>
- <header>
- <name>VisibleString</name>
- <super>_GeneralObject</super>
- </header>
- <body>
- <para>
- This object represents the ASN1 VisibleString type. This should
- object should be set with a string. It is up to the application to
- ensure it only contains valid characters for this type.
- </para>
- </body>
-</class>
-''')
-class VisibleString(_GeneralObject): # 0xC0
-
- _addFragment('''
- <constructor>
- <header>
- <memberof>VisibleString</memberof>
- <parameter>optional=0</parameter>
- <parameter>default=''</parameter>
- </header>
- </constructor>
- ''')
-
- def __init__(self, optional=0, default=''):
- _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_VISIBLESTRING, lambda x : x, lambda x : x, optional, default)
-
-_addFragment('''
-<class>
- <header>
- <name>GeneralString</name>
- <super>_GeneralObject</super>
- </header>
- <body>
- <para>
- This object represents the ASN1 GeneralString type. This should
- object should be set with a string. It is up to the application to
- ensure it only contains valid characters for this type.
- </para>
- </body>
-</class>
-''')
-class GeneralString(_GeneralObject): # 0xC0
-
- _addFragment('''
- <constructor>
- <header>
- <memberof>GeneralString</memberof>
- <parameter>optional=0</parameter>
- <parameter>default=''</parameter>
- </header>
- </constructor>
- ''')
-
- def __init__(self, optional=0, default=''):
- _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_GENERALSTRING, lambda x : x, lambda x : x, optional, default)
-
-_addFragment('''
-<class>
- <header>
- <name>UniversalString</name>
- <super>_GeneralObject</super>
- </header>
- <body>
- <para>
- This object represents the ASN1 UniversalString type. This should
- object should be set with a string. It is up to the application to
- ensure it only contains valid characters for this type.
- </para>
- </body>
-</class>
-''')
-class UniversalString(_GeneralObject): # 0xC0
-
- _addFragment('''
- <constructor>
- <header>
- <memberof>UniversalString</memberof>
- <parameter>optional=0</parameter>
- <parameter>default=''</parameter>
- </header>
- </constructor>
- ''')
-
- def __init__(self, optional=0, default=''):
- _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_UNIVERSALSTRING, lambda x : x, lambda x : x, optional, default)
-
-_addFragment('''
-<class>
- <header>
- <name>BmpString</name>
- <super>_GeneralObject</super>
- </header>
- <body>
- <para>
- This object represents the ASN1 BMPString type. This object
- should be set with a string. It is up to the application to ensure
- it only contains valid characters for this type.
- </para>
- </body>
-</class>
-''')
-class BmpString(_GeneralObject): # 0xC0
-
- _addFragment('''
- <constructor>
- <header>
- <memberof>BmpString</memberof>
- <parameter>optional=0</parameter>
- <parameter>default=''</parameter>
- </header>
- </constructor>
- ''')
-
- def __init__(self, optional=0, default=''):
- _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_BMPSTRING, lambda x : x, lambda x : x, optional, default)
-
-_addFragment('''
-<class>
- <header>
- <name>Sequence</name>
- <super>_GeneralObject</super>
- </header>
- <body>
- <para>
- This object represents the ASN1 SEQUENCE type.
- </para>
- </body>
-</class>
-''')
-class Sequence(_GeneralObject): # 0x10
-
- _addFragment('''
- <constructor>
- <header>
- <memberof>Sequence</memberof>
- <super>_GeneralObject</super>
- <parameter>contents</parameter>
- <parameter>optional=0</parameter>
- <parameter>default=''</parameter>
- </header>
- <body>
- <para>
- The <parameter>contents</parameter> should be a list or tuple containing
- the contents of the sequence.
- Two important members are initialised this this constructor.
- First <constant>self.next</constant> this is used to keep track
- of which TLVs in this sequence has been read succesfully. The second,
- <constant>self.contents</constant> should be set to the list of
- objects stored in this sequence. Note that the order they are
- specified in is the order in which they are written or read.
- </para>
- </body>
- </constructor>
- ''')
-
- def __init__(self, contents, optional=0, default=''):
- self.contents = contents
- self.next = 0
- _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_CONSTRUCTED, TAG_SEQUENCE, _encodeSequence, _decodeSequence, optional, default)
-
- def _childRead(self, obj):
- if self.next < len(self.value):
- if obj.read( self.value[self.next] ):
- self.next += 1
- else:
- obj.read()
-
- _addFragment('''
- <method>
- <header>
- <memberof>Sequence</memberof>
- <name>readContents</name>
- <parameter>io</parameter>
- <parameter>contents</parameter>
- </header>
- <body>
- <para>
- This function implements basic SEQUENCE like reading behaviour.
- It will attempt to read each of the objects in
- <parameter>contents</parameter> in turn from
- <parameter>io</parameter>. It exists as a function, separate
- from <function>read</function> for the benefit of the SEQUENCE
- OF implementation.
- </para>
- <para>
- The TLV of this SEQUENCE is read and parsed into a list of
- TLVs, which are store in <constant>self.value</constant>, by
- <classname>_GeneralObject</classname>.<function>read</function>.
- Then <function>read</function> is called on each member to
- process each TLV in turn. The next TLV is moved onto only when
- a member returns TRUE from the read call.
- </para>
- </body>
- </method>
- ''')
-
- def readContents(self, io, contents):
- if _GeneralObject.read( self, io ):
- for item in contents:
- Sequence._childRead( self, item )
- return 1
- else:
- return 0
-
- _addFragment('''
- <method>
- <header>
- <memberof>Sequence</memberof>
- <name>read</name>
- <parameter>io</parameter>
- </header>
- <body>
- <para>
- Most of the logic for reading is implemented in <function>readContents</function>
- so it can be reused for <classname>SequenceOf</classname>'s
- <function>read</function> function.
- </para>
- </body>
- </method>
- ''')
-
- def read(self, io=None):
- self.next = 0
- return self.readContents(io, self.contents)
-
- _addFragment('''
- <method>
- <header>
- <memberof>Sequence</memberof>
- <name>write</name>
- <parameter>file</parameter>
- </header>
- <body>
- <para>
- <constant>self.value</constant> is set to the contents of this
- SEQUENCE and then written by calling
- <classname>_GeneralObject</classname>.<function>write</function>
- whos encoder will call <function>write</function> of
- each element in the list of contents in turn.
- </para>
- </body>
- </method>
- ''')
-
- def write(self, file):
- if self._ioSafe():
- if self._isSet():
- _GeneralObject.set( self, self.contents )
- _GeneralObject.write( self, file )
- elif self.optional:
- pass
- else:
- prob = self.findUnset()
- raise DerError, '%s is not in a state which can be written, %s is unset' % (repr(self), repr(prob) )
-
- _addFragment('''
- <method>
- <header>
- <memberof>Sequence</memberof>
- <name>set</name>
- <parameter>values</parameter>
- </header>
- <body>
- <para>
- Accessing and setting values for ASN1 objects is a bit of a
- thorny issue. The problem stems from the arbitrary complexity
- of the data and the possible levels of nesting, which in
- practice are used and are quite massive. Designing a good general
- approach is a bit tricky, perhaps nearly
- impossible. I choose to use a most compact
- form which is excellent for simple objects and is very concise.
- </para>
- <para>
- <parameter>value</parameter> should be a list or tuple of
- values. Each element of the list (or tuple) will be used in
- turn to set a member. Defaults can be specified by using the
- default value itself or <constant>None</constant>. Hence, for
- SEQUENCES of SEQUENCES, SEQUENCES OF, SET and so on
- <parameter>values</parameter> should consist of nested lists or
- tuples. Look at the ASN1 specs for that object to figure out
- exactly what these should look like.
- </para>
- </body>
- </method>
- ''')
-
- def set(self, values):
- if self.contents is None:
- raise DerError, 'the contents attribute should be set before using this object'
- if not( isinstance(values, types.ListType) or isinstance(values, types.TupleType) ):
- raise DerError, 'a sequence should be set with a list or tuple of values'
- if len(values) != len(self.contents):
- raise DerError, 'wrong number of values have been supplied to set %s. Expecting %i, got %i' % \
- (self.__class__.__name__, len(self.contents), len(values) )
-
- i = 0
- for val in values:
- self.contents[i].set(val)
- i = i + 1
-
- _addFragment('''
- <method>
- <header>
- <memberof>Sequence</memberof>
- <name>get</name>
- </header>
- <body>
- <para>
- A tuple of the values of the contents of this sequence will be
- returned. Hence, for SEQUENCES of SEQUENCES, SEQUENCES OF, SET
- and so on nested tuples will be returned.
- <function>get</function> always returns tuples even if a list
- was used to set and object.
- </para>
- </body>
- </method>
- ''')
-
- def get(self):
- if self.contents is None:
- return _GeneralObject.get(self)
- else:
- results = []
- for obj in self.contents:
- results.append( obj.get() )
- return tuple(results)
-
- def reset(self):
- if self.contents is None:
- raise DerError, 'this object has no members to set'
- self.next = 0
- for obj in self.contents:
- obj.reset() # clear all child objects prior to possible setting
- # via default
- _GeneralObject.reset(self)
-
- def _isSet(self):
- if self.contents is None:
- raise DerError, 'this object has no members to set'
- for obj in self.contents:
- if not obj._ioSafe():
- return 0
- return 1
-
- def findUnset(self):
- if self.contents is None:
- raise DerError, 'this object has no members to check'
- for obj in self.contents:
- if not obj._ioSafe():
- return obj
-
- def _ioSafe(self):
- if self.optional or self._isSet():
- return 1
- else:
- for obj in self.contents:
- if not obj._ioSafe():
- return 0
- return 1
-
-_addFragment('''
-<class>
- <header>
- <name>SequenceOf</name>
- <super>Sequence</super>
- </header>
- <body>
- <para>
- This object represents the ASN1 SEQUENCE OF construct.
- </para>
- </body>
-</class>
-''')
-class SequenceOf(Sequence):
-
- _addFragment('''
- <constructor>
- <header>
- <memberof>SequenceOf</memberof>
- <super>Sequence</super>
- <parameter>contains</parameter>
- <parameter>optional=0</parameter>
- <parameter>default=''</parameter>
- </header>
- <body>
- <para>
- The <parameter>contains</parameter> should be the constructor
- for the objects which this SEQUENCE OF contains.
- </para>
- </body>
- </constructor>
- ''')
-
- def __init__(self, contains, optional=0, default=''):
- self.contains = contains
- self.sequenceOf = []
- Sequence.__init__(self, [], optional, default)
-
- def _ioSafe(self):
- return 1
-
- def reset(self):
- if self.contents is None:
- raise DerError, 'this object has no members to set'
- self.next = 0
- self.sequenceOf = []
- _GeneralObject.reset(self)
-
- def _isSet(self):
- if self.sequenceOf:
- for obj in self.contents:
- if not obj._ioSafe():
- return 0
- return 1
- else:
- return 0
-
- def set(self, values):
- if isinstance(values, types.NoneType):
- return
- objects = []
- for val in values:
- obj = self.contains()
- obj.set(val)
- objects.append(obj)
- self.sequenceOf = objects
-
- def get(self):
- results = []
- for obj in self.sequenceOf:
- results.append( obj.get() )
- return tuple(results)
-
- def read(self, io=None):
- self.sequenceOf = []
- self.next = 0
- if _GeneralObject.read( self, io ):
- for tagio in _GeneralObject.get(self):
- value = self.contains()
- value.read(tagio)
- self.sequenceOf.append(value)
- return 1
- else:
- return 0
-
- def write(self, file):
- if not self._isSet() and self.optional:
- pass
- else:
- _GeneralObject.set( self, self.sequenceOf )
- _GeneralObject.write( self, file )
-
- def __len__(self):
- return len(self.sequenceOf)
-
- def __getitem__(self, key):
- return self.sequenceOf[key]
-
- def __iter__(self):
- for i in self.sequenceOf:
- yield(i)
-
- def __contains__(self, item):
- return item in self.sequenceOf
-
-_addFragment('''
-<class>
- <header>
- <name>Set</name>
- <super>Sequence</super>
- </header>
- <body>
- <para>
- This object represents the ASN1 Set type.
- </para>
- </body>
-</class>
-''')
-class Set(Sequence): # 0x11
-
- _addFragment('''
- <constructor>
- <header>
- <memberof>Set</memberof>
- <super>Sequence</super>
- <parameter>contents</parameter>
- <parameter>optional=0</parameter>
- <parameter>default=''</parameter>
- </header>
- <body>
- <para>
- The <parameter>contents</parameter> should be a list containing
- the contents of the sequence.
- </para>
- </body>
- </constructor>
- ''')
-
- def __init__(self, contents, optional=0, default=''):
- Sequence.__init__(self, contents, optional, default)
- self.normnumber = TAG_SET
-
-_addFragment('''
-<class>
- <header>
- <name>SetOf</name>
- <super>SequenceOf</super>
- </header>
- <body>
- <para>
- This object represents the ASN1 SET OF construct.
- </para>
- </body>
-</class>
-''')
-class SetOf(SequenceOf):
-
- _addFragment('''
- <constructor>
- <header>
- <memberof>SetOf</memberof>
- <super>SequenceOf</super>
- <parameter>contains</parameter>
- <parameter>optional=0</parameter>
- <parameter>default=''</parameter>
- </header>
- <body>
- <para>
- The <parameter>contains</parameter> should be the constructor
- for the objects which this SET OF contains.
- </para>
- </body>
- </constructor>
- ''')
-
- def __init__(self, contains, optional=0, default=''):
- SequenceOf.__init__(self, contains, optional, default)
- self.normnumber = TAG_SET
-
-_addFragment('''
-<class>
- <header>
- <name>Explicit</name>
- <super>Sequence</super>
- </header>
- <body>
- <para>
- Explicit objects support the DER concept of explicit tagging. In
- general they behave just like a SEQUENCE which must have only one
- element. See below for other differences.
- </para>
- </body>
-</class>
-''')
-class Explicit(Sequence):
-
- _addFragment('''
- <constructor>
- <header>
- <memberof>Explicit</memberof>
- <super>Sequence</super>
- <parameter>expclass</parameter>
- <parameter>expform</parameter>
- <parameter>expnumber</parameter>
- <parameter>contents</parameter>
- <parameter>optional=0</parameter>
- <parameter>default=''</parameter>
- </header>
- <body>
- <para>
- <parameter>expclass</parameter>,
- <parameter>expform</parameter>,
- <parameter>expnumber</parameter> should be as
- specified in the ASN1 documentation for this object.
- <parameter>contents</parameter> should be an object instance
- such as <classname>Integer</classname>,
- <classname>Oid</classname> or a derived object which supports
- the <classname>_GeneralObjec</classname> interface.
- </para>
- </body>
- </constructor>
- ''')
-
- def __init__(self, expclass, expform, expnumber, contents, optional=0, default=''):
- self.contents = [contents]
- self.next = 0
- _GeneralObject.__init__(self, expclass, expform, expnumber, _encodeSequence, _decodeSequence, optional, default)
-
- _addFragment('''
- <method>
- <header>
- <memberof>Explicit</memberof>
- <name>set</name>
- <parameter>value</parameter>
- </header>
- <body>
- <para>
- <parameter>value</parameter> is passed direct to
- <function>set</function> of the explicit object, so it should
- not be placed in a list or tuple(unless you are setting a constructed
- object).
- </para>
- </body>
- </method>
- ''')
- def set(self, value):
- return Sequence.set(self, [value])
-
- _addFragment('''
- <method>
- <header>
- <memberof>Explicit</memberof>
- <name>get</name>
- </header>
- <body>
- <para>
- The value of explicit object is returned and not
- put in a tuple.
- </para>
- </body>
- </method>
- ''')
- def get(self):
- return Sequence.get(self)[0]
-
-_addFragment('''
-<class>
- <header>
- <name>Choice</name>
- </header>
- <body>
- <para>
- This object represents the ASN1 Choice type.
- </para>
- </body>
-</class>
-''')
-class Choice(object):
-
- _addFragment('''
- <constructor>
- <header>
- <memberof>Choice</memberof>
- <parameter>choices</parameter>
- <parameter>optional=0</parameter>
- <parameter>default=''</parameter>
- </header>
- <body>
- <para>
- <parameter>choices</parameter> should be a dictionary of
- objects which support the <classname>_GeneralObject</classname>
- interface. The key being the name of the choice specified in the
- ASN1 documentation. <parameter>optional</parameter> is a boolean
- indicating if this object is optional. The final parameter,
- <parameter>default</parameter> is the base 64 encoded DER
- value, which should be used as the default in leu of a value to
- read or incase it is unset. If neither
- <parameter>optional</parameter> or
- <parameter>default</parameter> is not set then the first choice
- which is optional or has a default will be honored.
- </para>
- </body>
- </constructor>
- ''')
-
- def __init__(self, choices, optional=0, default=''):
- self.value = None
- self.choices = choices
- self.optional = optional
- self.default = default
- self.choice = None
- self.reset()
-
- def _ioSafe(self):
- if self.optional or self._isSet():
- return 1
- elif self.choice and self.choices[ self.choice ]._ioSafe():
- return 1
- else:
- return 0
-
- def _isSet(self):
- if self.choice and self.choices[self.choice]._isSet():
- return 1
- else:
- return 0
-
- _addFragment('''
- <method>
- <header>
- <memberof>Choice</memberof>
- <name>reset</name>
- </header>
- <body>
- <para>
- This function re-initialises the object, clearing the value or
- setting it to any default.
- </para>
- </body>
- </method>
- ''')
- def reset(self):
- self.value = None
- self.choice = None
- if self.default:
- buf = cStringIO.StringIO( base64.decodestring( self.default ) )
- io = _TlvIo(buf)
- io.read()
- self.read(io)
- else:
- for key in self.choices.keys():
- self.choices[key].reset()
- if self.choices[key]._ioSafe():
- self.choice = key
- break;
-
-
- _addFragment('''
- <method>
- <header>
- <memberof>Choice</memberof>
- <name>set</name>
- <parameter>value</parameter>
- </header>
- <body>
- <para>
- <parameter>value</parameter> should be a list or tuple with two
- elements. The first value should be the name of the choice to
- be set and the second the value to set it with.
- </para>
- </body>
- </method>
- ''')
- def set(self, val):
- if val is None:
- return
- if not (isinstance(val, types.ListType) or isinstance(val, types.TupleType)):
- raise DerError, 'argument should be a list or tuple'
- if not self.choices.has_key( val[0] ):
- raise DerError, 'unknown choice: %s' % val[0]
- self.choices[ val[0] ].set(val[1])
- self.choice = val[0]
-
- _addFragment('''
- <method>
- <header>
- <memberof>Choice</memberof>
- <name>get</name>
- </header>
- <body>
- <para>
- This function will return tuple with two elements. The first
- value will be the name of the choice which was set and the second
- the value it was set to.
- </para>
- </body>
- </method>
- ''')
-
- def get(self):
- if self._isSet():
- return (self.choice, self.choices[ self.choice ].get())
- else:
- return None
-
- _addFragment('''
- <method>
- <header>
- <memberof>Choice</memberof>
- <name>toString</name>
- </header>
- <body>
- <para>
- Encodes the value in DER and returns it as a string.
- </para>
- </body>
- </method>
- ''')
-
- def toString(self):
- buf = cStringIO.StringIO()
- self.write(buf)
- return buf.getvalue()
-
- _addFragment('''
- <method>
- <header>
- <memberof>Choice</memberof>
- <name>fromString</name>
- </header>
- <body>
- <para>
- Decodes the string and sets the value of this object.
- </para>
- </body>
- </method>
- ''')
-
- def fromString(self, value):
- buf = cStringIO.StringIO(value)
- self.read(buf)
-
- _addFragment('''
- <method>
- <header>
- <memberof>Choice</memberof>
- <name>read</name>
- <parameter>io</parameter>
- </header>
- <body>
- <para>
- <parameter>io</parameter> should be a file like object. If the
- object being read matches the expected class, form and tag the
- value is read and decoded using
- <function>decRoutine</function>. Else, if it has a default
- that is read and stored.
- </para>
- <para>
- The return value of this function does not indicate success but
- whether this TLV was processed successfully. This bahaviour is
- vital for processing constructed types since the object may be
- optional or have a default. Failure to decode would be indicated
- by an exception.
- </para>
- </body>
- </method>
- ''')
-
- def _readChoices(self, io):
- for key in self.choices.keys():
- try:
- readindicator = self.choices[key].read(io)
- self.choice = key
- break;
- except DerError:
- if DEBUG:
- traceback.print_exc()
- return readindicator
-
- def read(self, io=None):
-
- self.choice = None
- processDefOpt = 0
- readindicator = 0
-
- if io is None:
- processDefOpt = 1
- elif isinstance(io, _TlvIo):
- if not io:
- processDefOpt = 1
- else:
- pos = io.tell()
- io.seek(0,2)
- if io.tell():
- io.seek(pos)
- else:
- processDefOpt = 1
-
- if processDefOpt:
- if self.optional or self.default:
- self.reset()
- return 0
- else:
- readindicator = self._readChoices(io)
- for key in self.choices.keys():
- try:
- readindicator = self.choices[key].read(io)
- self.choice = key
- break;
- except DerError:
- if DEBUG:
- traceback.print_exc()
- if not self._isSet():
- raise DerError, 'no TLV is available to read in non-optional/non-default object: %s' % repr(self)
- else:
- return readindicator
-
- if not isinstance(io, _TlvIo):
- tmp = _TlvIo(io)
- tmp.read()
- io = tmp
-
- for key in self.choices.keys():
- try:
- if self.choices[key].read(io):
- self.choice = key
- readindicator = 1
- break;
- except DerError:
- if DEBUG:
- traceback.print_exc()
-
- if not self._isSet():
- self.reset()
- else:
- return readindicator
-
- _addFragment('''
- <method>
- <header>
- <memberof>Choice</memberof>
- <name>write</name>
- <parameter>file</parameter>
- </header>
- <body>
- <para>
- If this object has not been set and is not optional and dosn't
- have a default, a <classname>DerError</classname> exception will be raised
- </para>
- <para>
- If no value has been set and this object is optional, nothing
- is written. If this object's value is equal to the default,
- nothing is written as stipulated by DER. Otherwise the value
- is encoded and written.
- </para>
- </body>
- </method>
- ''')
- def write(self,file):
- if self.optional and not self.choice:
- pass
- elif not self.choice:
- raise DerError, 'choice not set'
- elif self.choice:
- if self.default:
- defval = base64.decodestring( self.default )
- if defval != self.choices[ self.choice ].toString():
- self.choices[ self.choice ].write(file)
- else:
- self.choices[ self.choice ].write(file)
- else:
- raise DerError, 'an internal error has occured: %s' % repr(self)
-
-
diff --git a/rpkid/rpki/POW/_objects.py b/rpkid/rpki/POW/_objects.py
deleted file mode 100644
index dc3a9c2b..00000000
--- a/rpkid/rpki/POW/_objects.py
+++ /dev/null
@@ -1,6880 +0,0 @@
-data = {'?': {'comment': 'ASTM 31.20',
- 'description': '? (1 2 840 10065 2 2)',
- 'hexoid': '06 07 2A 86 48 CE 51 02 02',
- 'name': '?',
- 'oid': (1, 2, 840, 10065, 2, 2)},
- 'AmericanExpress': {'comment': 'SET brand',
- 'description': 'AmericanExpress (2 23 42 8 34)',
- 'hexoid': '06 04 67 2A 08 22',
- 'name': 'AmericanExpress',
- 'oid': (2, 23, 42, 8, 34)},
- 'Antares': {'comment': 'SET vendor',
- 'description': 'Antares (2 23 42 9 14)',
- 'hexoid': '06 04 67 2A 09 0E',
- 'name': 'Antares',
- 'oid': (2, 23, 42, 9, 14)},
- 'BankGate': {'comment': 'SET vendor',
- 'description': 'BankGate (2 23 42 9 7)',
- 'hexoid': '06 04 67 2A 09 07',
- 'name': 'BankGate',
- 'oid': (2, 23, 42, 9, 7)},
- 'BlueMoney': {'comment': 'SET vendor',
- 'description': 'BlueMoney (2 23 42 9 19)',
- 'hexoid': '06 04 67 2A 09 13',
- 'name': 'BlueMoney',
- 'oid': (2, 23, 42, 9, 19)},
- 'Certicom': {'comment': 'SET vendor',
- 'description': 'Certicom (2 23 42 9 11)',
- 'hexoid': '06 04 67 2A 09 0B',
- 'name': 'Certicom',
- 'oid': (2, 23, 42, 9, 11)},
- 'Certificates': {'comment': 'Certificates Australia CA',
- 'description': 'Certificates Australia policyIdentifier (1 2 36 75878867 1 100 1 1)',
- 'hexoid': '06 0A 2A 24 A4 97 A3 53 01 64 01 01',
- 'name': 'Certificates',
- 'oid': (1, 2, 36, 75878867, 1, 100, 1, 1)},
- 'CompuSource': {'comment': 'SET vendor',
- 'description': 'CompuSource (2 23 42 9 9)',
- 'hexoid': '06 04 67 2A 09 09',
- 'name': 'CompuSource',
- 'oid': (2, 23, 42, 9, 9)},
- 'CyberCash': {'comment': 'SET vendor',
- 'description': 'CyberCash (2 23 42 9 2)',
- 'hexoid': '06 04 67 2A 09 02',
- 'name': 'CyberCash',
- 'oid': (2, 23, 42, 9, 2)},
- 'Diners': {'comment': 'SET brand',
- 'description': 'Diners (2 23 42 8 30)',
- 'hexoid': '06 04 67 2A 08 1E',
- 'name': 'Diners',
- 'oid': (2, 23, 42, 8, 30)},
- 'ECC': {'comment': 'SET vendor',
- 'description': 'ECC (2 23 42 9 15)',
- 'hexoid': '06 04 67 2A 09 0F',
- 'name': 'ECC',
- 'oid': (2, 23, 42, 9, 15)},
- 'ElGamal': {'comment': 'Unsure about this OID',
- 'description': 'ElGamal (1 3 14 7 2 1 1)',
- 'hexoid': '06 06 2B 0E 07 02 01 01',
- 'name': 'ElGamal',
- 'oid': (1, 3, 14, 7, 2, 1, 1)},
- 'EntityLogo': {'comment': 'Netscape certificate extension',
- 'description': 'EntityLogo (2 16 840 1 113730 1 10)',
- 'hexoid': '06 09 60 86 48 01 86 F8 42 01 0A',
- 'name': 'EntityLogo',
- 'oid': (2, 16, 840, 1, 113730, 1, 10)},
- 'Entrust': {'comment': 'SET vendor',
- 'description': 'Entrust (2 23 42 9 23)',
- 'hexoid': '06 04 67 2A 09 17',
- 'name': 'Entrust',
- 'oid': (2, 23, 42, 9, 23)},
- 'FBCA-Basic': {'comment': 'Federal Bridge CA Policy',
- 'description': 'FBCA-Basic policyIdentifier (2 16 840 1 101 3 2 1 3 2)',
- 'hexoid': '06 0A 60 86 48 01 65 03 02 01 03 02',
- 'name': 'FBCA-Basic',
- 'oid': (2, 16, 840, 1, 101, 3, 2, 1, 3, 2)},
- 'FBCA-High': {'comment': 'Federal Bridge CA Policy',
- 'description': 'FBCA-High policyIdentifier (2 16 840 1 101 3 2 1 3 4)',
- 'hexoid': '06 0A 60 86 48 01 65 03 02 01 03 04',
- 'name': 'FBCA-High',
- 'oid': (2, 16, 840, 1, 101, 3, 2, 1, 3, 4)},
- 'FBCA-Medium': {'comment': 'Federal Bridge CA Policy',
- 'description': 'FBCA-Medium policyIdentifier (2 16 840 1 101 3 2 1 3 3)',
- 'hexoid': '06 0A 60 86 48 01 65 03 02 01 03 03',
- 'name': 'FBCA-Medium',
- 'oid': (2, 16, 840, 1, 101, 3, 2, 1, 3, 3)},
- 'FBCA-Rudimentary': {'comment': 'Federal Bridge CA Policy',
- 'description': 'FBCA-Rudimentary policyIdentifier (2 16 840 1 101 3 2 1 3 1)',
- 'hexoid': '06 0A 60 86 48 01 65 03 02 01 03 01',
- 'name': 'FBCA-Rudimentary',
- 'oid': (2, 16, 840, 1, 101, 3, 2, 1, 3, 1)},
- 'Fujitsu': {'comment': 'SET vendor',
- 'description': 'Fujitsu (2 23 42 9 21)',
- 'hexoid': '06 04 67 2A 09 15',
- 'name': 'Fujitsu',
- 'oid': (2, 23, 42, 9, 21)},
- 'GTE': {'comment': 'SET vendor',
- 'description': 'GTE (2 23 42 9 8)',
- 'hexoid': '06 04 67 2A 09 08',
- 'name': 'GTE',
- 'oid': (2, 23, 42, 9, 8)},
- 'Gemplus': {'comment': 'SET vendor',
- 'description': 'Gemplus (2 23 42 9 38)',
- 'hexoid': '06 04 67 2A 09 26',
- 'name': 'Gemplus',
- 'oid': (2, 23, 42, 9, 38)},
- 'GlobeSet': {'comment': 'SET vendor',
- 'description': 'GlobeSet (2 23 42 9 0)',
- 'hexoid': '06 04 67 2A 09 00',
- 'name': 'GlobeSet',
- 'oid': (2, 23, 42, 9, 0)},
- 'Griffin': {'comment': 'SET vendor',
- 'description': 'Griffin (2 23 42 9 10)',
- 'hexoid': '06 04 67 2A 09 0A',
- 'name': 'Griffin',
- 'oid': (2, 23, 42, 9, 10)},
- 'Hitachi': {'comment': 'SET vendor',
- 'description': 'Hitachi (2 23 42 9 32)',
- 'hexoid': '06 04 67 2A 09 20',
- 'name': 'Hitachi',
- 'oid': (2, 23, 42, 9, 32)},
- 'HomePage-url': {'comment': 'Netscape certificate extension',
- 'description': 'HomePage-url (2 16 840 1 113730 1 9)',
- 'hexoid': '06 09 60 86 48 01 86 F8 42 01 09',
- 'name': 'HomePage-url',
- 'oid': (2, 16, 840, 1, 113730, 1, 9)},
- 'IATA-ATA': {'comment': 'SET brand',
- 'description': 'IATA-ATA (2 23 42 8 1)',
- 'hexoid': '06 04 67 2A 08 01',
- 'name': 'IATA-ATA',
- 'oid': (2, 23, 42, 8, 1)},
- 'IBM': {'comment': 'SET vendor',
- 'description': 'IBM (2 23 42 9 1)',
- 'hexoid': '06 04 67 2A 09 01',
- 'name': 'IBM',
- 'oid': (2, 23, 42, 9, 1)},
- 'ICE-TEL': {'comment': 'ICE-TEL CA policy',
- 'description': 'ICE-TEL Italian policyIdentifier (1 3 6 1 4 1 2786 1 1 1)',
- 'hexoid': '06 0A 2B 06 01 04 01 95 62 01 01 01',
- 'name': 'ICE-TEL',
- 'oid': (1, 3, 6, 1, 4, 1, 2786, 1, 1, 1)},
- 'III': {'comment': 'SET vendor',
- 'description': 'III (2 23 42 9 25)',
- 'hexoid': '06 04 67 2A 09 19',
- 'name': 'III',
- 'oid': (2, 23, 42, 9, 25)},
- 'IKEhmacWithMD5-RSA': {'comment': 'Novell signature algorithm',
- 'description': 'IKEhmacWithMD5-RSA (2 16 840 1 113719 1 2 8 52)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 34',
- 'name': 'IKEhmacWithMD5-RSA',
- 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 52)},
- 'IKEhmacWithSHA1-RSA': {'comment': 'Novell signature algorithm',
- 'description': 'IKEhmacWithSHA1-RSA (2 16 840 1 113719 1 2 8 51)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 33',
- 'name': 'IKEhmacWithSHA1-RSA',
- 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 51)},
- 'Identrus': {'comment': 'Identrus',
- 'description': 'Identrus unknown policyIdentifier (1 2 840 114021 1 6 1)',
- 'hexoid': '06 09 2A 86 48 86 FA 65 01 06 01',
- 'name': 'Identrus',
- 'oid': (1, 2, 840, 114021, 1, 6, 1)},
- 'Intertrader': {'comment': 'SET vendor',
- 'description': 'Intertrader (2 23 42 9 28)',
- 'hexoid': '06 04 67 2A 09 1C',
- 'name': 'Intertrader',
- 'oid': (2, 23, 42, 9, 28)},
- 'Japan': {'comment': 'SET national',
- 'description': 'Japan (2 23 42 10 392)',
- 'hexoid': '06 05 67 2A 0A 83 08',
- 'name': 'Japan',
- 'oid': (2, 23, 42, 10, 392)},
- 'LMDigest': {'comment': 'Novell digest algorithm',
- 'description': 'LMDigest (2 16 840 1 113719 1 2 8 32)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 20',
- 'name': 'LMDigest',
- 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 32)},
- 'Lacerte': {'comment': 'SET vendor',
- 'description': 'Lacerte (2 23 42 9 20)',
- 'hexoid': '06 04 67 2A 09 14',
- 'name': 'Lacerte',
- 'oid': (2, 23, 42, 9, 20)},
- 'Lexem': {'comment': 'SET vendor',
- 'description': 'Lexem (2 23 42 9 27)',
- 'hexoid': '06 04 67 2A 09 1B',
- 'name': 'Lexem',
- 'oid': (2, 23, 42, 9, 27)},
- 'MD2': {'comment': 'Novell digest algorithm',
- 'description': 'MD2 (2 16 840 1 113719 1 2 8 40)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 28',
- 'name': 'MD2',
- 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 40)},
- 'MD4': {'comment': 'Novell digest algorithm',
- 'description': 'MD4 (2 16 840 1 113719 1 2 8 95)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 5F',
- 'name': 'MD4',
- 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 95)},
- 'MD4Packet': {'comment': 'Novell keyed hash',
- 'description': 'MD4Packet (2 16 840 1 113719 1 2 8 130)',
- 'hexoid': '06 0C 60 86 48 01 86 F8 37 01 02 08 81 02',
- 'name': 'MD4Packet',
- 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 130)},
- 'MD5': {'comment': 'Novell digest algorithm',
- 'description': 'MD5 (2 16 840 1 113719 1 2 8 50)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 32',
- 'name': 'MD5',
- 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 50)},
- 'Maithean': {'comment': 'SET vendor',
- 'description': 'Maithean (2 23 42 9 16)',
- 'hexoid': '06 04 67 2A 09 10',
- 'name': 'Maithean',
- 'oid': (2, 23, 42, 9, 16)},
- 'MasterCard': {'comment': 'SET brand',
- 'description': 'MasterCard (2 23 42 8 5)',
- 'hexoid': '06 04 67 2A 08 05',
- 'name': 'MasterCard',
- 'oid': (2, 23, 42, 8, 5)},
- 'Microsoft': {'comment': 'SET vendor',
- 'description': 'Microsoft (2 23 42 9 33)',
- 'hexoid': '06 04 67 2A 09 21',
- 'name': 'Microsoft',
- 'oid': (2, 23, 42, 9, 33)},
- 'Mitsubishi': {'comment': 'SET vendor',
- 'description': 'Mitsubishi (2 23 42 9 35)',
- 'hexoid': '06 04 67 2A 09 23',
- 'name': 'Mitsubishi',
- 'oid': (2, 23, 42, 9, 35)},
- 'NABLE': {'comment': 'SET vendor',
- 'description': 'NABLE (2 23 42 9 30)',
- 'hexoid': '06 04 67 2A 09 1E',
- 'name': 'NABLE',
- 'oid': (2, 23, 42, 9, 30)},
- 'NCR': {'comment': 'SET vendor',
- 'description': 'NCR (2 23 42 9 36)',
- 'hexoid': '06 04 67 2A 09 24',
- 'name': 'NCR',
- 'oid': (2, 23, 42, 9, 36)},
- 'NEC': {'comment': 'SET vendor',
- 'description': 'NEC (2 23 42 9 34)',
- 'hexoid': '06 04 67 2A 09 22',
- 'name': 'NEC',
- 'oid': (2, 23, 42, 9, 34)},
- 'NWPassword': {'comment': 'Novell encryption algorithm',
- 'description': 'NWPassword (2 16 840 1 113719 1 2 8 132)',
- 'hexoid': '06 0C 60 86 48 01 86 F8 37 01 02 08 81 04',
- 'name': 'NWPassword',
- 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 132)},
- 'Netscape': {'comment': 'SET vendor',
- 'description': 'Netscape (2 23 42 9 17)',
- 'hexoid': '06 04 67 2A 09 11',
- 'name': 'Netscape',
- 'oid': (2, 23, 42, 9, 17)},
- 'Northrop': {'comment': 'Northrop Grumman extended key usage',
- 'description': 'Northrop Grumman extKeyUsage? (1 3 6 1 4 1 16334 509 1 1)',
- 'hexoid': '06 0B 2B 06 01 04 01 FF 4E 83 7D 01 01',
- 'name': 'Northrop',
- 'oid': (1, 3, 6, 1, 4, 1, 16334, 509, 1, 1)},
- 'Novus': {'comment': 'SET brand',
- 'description': 'Novus (2 23 42 8 6011)',
- 'hexoid': '06 05 67 2A 08 AE 7B',
- 'name': 'Novus',
- 'oid': (2, 23, 42, 8, 6011)},
- 'OSS': {'comment': 'SET vendor',
- 'description': 'OSS (2 23 42 9 12)',
- 'hexoid': '06 04 67 2A 09 0C',
- 'name': 'OSS',
- 'oid': (2, 23, 42, 9, 12)},
- 'OpenMarket': {'comment': 'SET vendor',
- 'description': 'OpenMarket (2 23 42 9 26)',
- 'hexoid': '06 04 67 2A 09 1A',
- 'name': 'OpenMarket',
- 'oid': (2, 23, 42, 9, 26)},
- 'PANData': {'comment': 'SET contentType',
- 'description': 'PANData (2 23 42 0 0)',
- 'hexoid': '06 04 67 2A 00 00',
- 'name': 'PANData',
- 'oid': (2, 23, 42, 0, 0)},
- 'PANOnly': {'comment': 'SET contentType',
- 'description': 'PANOnly (2 23 42 0 2)',
- 'hexoid': '06 04 67 2A 00 02',
- 'name': 'PANOnly',
- 'oid': (2, 23, 42, 0, 2)},
- 'PANToken': {'comment': 'SET contentType',
- 'description': 'PANToken (2 23 42 0 1)',
- 'hexoid': '06 04 67 2A 00 01',
- 'name': 'PANToken',
- 'oid': (2, 23, 42, 0, 1)},
- 'Persimmon': {'comment': 'SET vendor',
- 'description': 'Persimmon (2 23 42 9 29)',
- 'hexoid': '06 04 67 2A 09 1D',
- 'name': 'Persimmon',
- 'oid': (2, 23, 42, 9, 29)},
- 'RSADSI': {'comment': 'SET vendor',
- 'description': 'RSADSI (2 23 42 9 4)',
- 'hexoid': '06 04 67 2A 09 04',
- 'name': 'RSADSI',
- 'oid': (2, 23, 42, 9, 4)},
- 'SEIS': {'comment': 'SEIS Project attribute',
- 'description': 'SEIS at-personalIdentifier (1 2 752 34 3 1)',
- 'hexoid': '06 06 2A 85 70 22 03 01',
- 'name': 'SEIS',
- 'oid': (1, 2, 752, 34, 3, 1)},
- 'SHA-1': {'comment': 'Novell digest algorithm',
- 'description': 'SHA-1 (2 16 840 1 113719 1 2 8 82)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 52',
- 'name': 'SHA-1',
- 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 82)},
- 'Signet': {'comment': 'Signet CA',
- 'description': 'Signet policyIdentifier (1 2 36 68980861 1 1 20)',
- 'hexoid': '06 09 2A 24 A0 F2 A0 7D 01 01 14',
- 'name': 'Signet',
- 'oid': (1, 2, 36, 68980861, 1, 1, 20)},
- 'Telesec': {'comment': 'Telesec cert/CRL extension',
- 'description': 'Telesec policyIdentifier (0 2 262 1 10 12 2)',
- 'hexoid': '06 07 02 82 06 01 0A 0C 02',
- 'name': 'Telesec',
- 'oid': (0, 2, 262, 1, 10, 12, 2)},
- 'Teletrust': {'comment': 'Teletrust policy',
- 'description': 'Teletrust SigGConform policyIdentifier (1 3 36 8 1 1)',
- 'hexoid': '06 05 2B 24 08 01 01',
- 'name': 'Teletrust',
- 'oid': (1, 3, 36, 8, 1, 1)},
- 'TenthMountain': {'comment': 'SET vendor',
- 'description': 'TenthMountain (2 23 42 9 13)',
- 'hexoid': '06 04 67 2A 09 0D',
- 'name': 'TenthMountain',
- 'oid': (2, 23, 42, 9, 13)},
- 'Terisa': {'comment': 'SET vendor',
- 'description': 'Terisa (2 23 42 9 3)',
- 'hexoid': '06 04 67 2A 09 03',
- 'name': 'Terisa',
- 'oid': (2, 23, 42, 9, 3)},
- 'TrinTech': {'comment': 'SET vendor',
- 'description': 'TrinTech (2 23 42 9 6)',
- 'hexoid': '06 04 67 2A 09 06',
- 'name': 'TrinTech',
- 'oid': (2, 23, 42, 9, 6)},
- 'UNINETT': {'comment': 'UNINETT PCA',
- 'description': 'UNINETT policyIdentifier (1 3 6 1 4 1 2428 10 1 1)',
- 'hexoid': '06 0A 2B 06 01 04 01 92 7C 0A 01 01',
- 'name': 'UNINETT',
- 'oid': (1, 3, 6, 1, 4, 1, 2428, 10, 1, 1)},
- 'Unknown': {'comment': 'Verisign extension',
- 'description': 'Unknown Verisign VPN extension (2 16 840 1 113733 1 6 13)',
- 'hexoid': '06 0A 60 86 48 01 86 F8 45 01 06 0D',
- 'name': 'Unknown',
- 'oid': (2, 16, 840, 1, 113733, 1, 6, 13)},
- 'UserPicture': {'comment': 'Netscape certificate extension',
- 'description': 'UserPicture (2 16 840 1 113730 1 11)',
- 'hexoid': '06 09 60 86 48 01 86 F8 42 01 0B',
- 'name': 'UserPicture',
- 'oid': (2, 16, 840, 1, 113730, 1, 11)},
- 'VIAnet': {'comment': 'SET vendor',
- 'description': 'VIAnet (2 23 42 9 24)',
- 'hexoid': '06 04 67 2A 09 18',
- 'name': 'VIAnet',
- 'oid': (2, 23, 42, 9, 24)},
- 'VISA': {'comment': 'SET brand',
- 'description': 'VISA (2 23 42 8 4)',
- 'hexoid': '06 04 67 2A 08 04',
- 'name': 'VISA',
- 'oid': (2, 23, 42, 8, 4)},
- 'VeriFone': {'comment': 'SET vendor',
- 'description': 'VeriFone (2 23 42 9 5)',
- 'hexoid': '06 04 67 2A 09 05',
- 'name': 'VeriFone',
- 'oid': (2, 23, 42, 9, 5)},
- 'Verisign': {'comment': 'SET vendor',
- 'description': 'Verisign (2 23 42 9 18)',
- 'hexoid': '06 04 67 2A 09 12',
- 'name': 'Verisign',
- 'oid': (2, 23, 42, 9, 18)},
- 'X.500-Alg-Encryption': {'description': 'X.500-Alg-Encryption (2 5 8 1)',
- 'hexoid': '06 03 55 08 01',
- 'name': 'X.500-Alg-Encryption',
- 'oid': (2, 5, 8, 1)},
- 'X.500-Algorithms': {'description': 'X.500-Algorithms (2 5 8)',
- 'hexoid': '06 02 55 08',
- 'name': 'X.500-Algorithms',
- 'oid': (2, 5, 8)},
- 'aACertificate': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'aACertificate (2 5 4 61)',
- 'hexoid': '06 03 55 04 3D',
- 'name': 'aACertificate',
- 'oid': (2, 5, 4, 61)},
- 'acAaControls': {'comment': 'PKIX private extension',
- 'description': 'acAaControls (1 3 6 1 5 5 7 1 6)',
- 'hexoid': '06 08 2B 06 01 05 05 07 01 06',
- 'name': 'acAaControls',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 6)},
- 'acAuditIdentity': {'comment': 'PKIX private extension',
- 'description': 'acAuditIdentity (1 3 6 1 5 5 7 1 4)',
- 'hexoid': '06 08 2B 06 01 05 05 07 01 04',
- 'name': 'acAuditIdentity',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 4)},
- 'acProxying': {'comment': 'PKIX private extension',
- 'description': 'acProxying (1 3 6 1 5 5 7 1 10)',
- 'hexoid': '06 08 2B 06 01 05 05 07 01 0A',
- 'name': 'acProxying',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 10)},
- 'acTargeting': {'comment': 'PKIX private extension',
- 'description': 'acTargeting (1 3 6 1 5 5 7 1 5)',
- 'hexoid': '06 08 2B 06 01 05 05 07 01 05',
- 'name': 'acTargeting',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 5)},
- 'accessIdentity': {'comment': 'PKIX attribute certificate extension',
- 'description': 'accessIdentity (1 3 6 1 5 5 7 10 2)',
- 'hexoid': '06 08 2B 06 01 05 05 07 0A 02',
- 'name': 'accessIdentity',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 10, 2)},
- 'accountNumber': {'comment': 'SET field',
- 'description': 'accountNumber (2 23 42 2 11)',
- 'hexoid': '06 04 67 2A 02 0B',
- 'name': 'accountNumber',
- 'oid': (2, 23, 42, 2, 11)},
- 'action': {'comment': 'Telesec',
- 'description': 'action (0 2 262 1 10 9)',
- 'hexoid': '06 06 02 82 06 01 0A 09',
- 'name': 'action',
- 'oid': (0, 2, 262, 1, 10, 9)},
- 'additionalAttributesSig': {'comment': 'S/MIME Signature Type Identifier',
- 'description': 'additionalAttributesSig (1 2 840 113549 1 9 16 9 3)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 09 03',
- 'name': 'additionalAttributesSig',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 9, 3)},
- 'additionalInformation': {'comment': 'Teletrust attribute',
- 'description': 'additionalInformation (1 3 36 8 3 15)',
- 'hexoid': '06 05 2B 24 08 03 0F',
- 'name': 'additionalInformation',
- 'oid': (1, 3, 36, 8, 3, 15)},
- 'additionalPolicy': {'comment': 'SET cert attribute',
- 'description': 'additionalPolicy (2 23 42 3 0 1)',
- 'hexoid': '06 05 67 2A 03 00 01',
- 'name': 'additionalPolicy',
- 'oid': (2, 23, 42, 3, 0, 1)},
- 'address': {'comment': 'SET field',
- 'description': 'address (2 23 42 2 8)',
- 'hexoid': '06 04 67 2A 02 08',
- 'name': 'address',
- 'oid': (2, 23, 42, 2, 8)},
- 'admission': {'comment': 'Teletrust attribute',
- 'description': 'admission (1 3 36 8 3 3)',
- 'hexoid': '06 05 2B 24 08 03 03',
- 'name': 'admission',
- 'oid': (1, 3, 36, 8, 3, 3)},
- 'aes': {'comment': 'NIST Algorithm',
- 'description': 'aes (2 16 840 1 101 3 4 1)',
- 'hexoid': '06 08 60 86 48 01 65 03 04 01',
- 'name': 'aes',
- 'oid': (2, 16, 840, 1, 101, 3, 4, 1)},
- 'aes128-CBC': {'comment': 'NIST Algorithm',
- 'description': 'aes128-CBC (2 16 840 1 101 3 4 1 2)',
- 'hexoid': '06 09 60 86 48 01 65 03 04 01 02',
- 'name': 'aes128-CBC',
- 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 2)},
- 'aes128-CFB': {'comment': 'NIST Algorithm',
- 'description': 'aes128-CFB (2 16 840 1 101 3 4 1 4)',
- 'hexoid': '06 09 60 86 48 01 65 03 04 01 04',
- 'name': 'aes128-CFB',
- 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 4)},
- 'aes128-ECB': {'comment': 'NIST Algorithm',
- 'description': 'aes128-ECB (2 16 840 1 101 3 4 1 1)',
- 'hexoid': '06 09 60 86 48 01 65 03 04 01 01',
- 'name': 'aes128-ECB',
- 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 1)},
- 'aes128-OFB': {'comment': 'NIST Algorithm',
- 'description': 'aes128-OFB (2 16 840 1 101 3 4 1 3)',
- 'hexoid': '06 09 60 86 48 01 65 03 04 01 03',
- 'name': 'aes128-OFB',
- 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 3)},
- 'aes192-CBC': {'comment': 'NIST Algorithm',
- 'description': 'aes192-CBC (2 16 840 1 101 3 4 1 22)',
- 'hexoid': '06 09 60 86 48 01 65 03 04 01 16',
- 'name': 'aes192-CBC',
- 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 22)},
- 'aes192-CFB': {'comment': 'NIST Algorithm',
- 'description': 'aes192-CFB (2 16 840 1 101 3 4 1 24)',
- 'hexoid': '06 09 60 86 48 01 65 03 04 01 18',
- 'name': 'aes192-CFB',
- 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 24)},
- 'aes192-ECB': {'comment': 'NIST Algorithm',
- 'description': 'aes192-ECB (2 16 840 1 101 3 4 1 21)',
- 'hexoid': '06 09 60 86 48 01 65 03 04 01 15',
- 'name': 'aes192-ECB',
- 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 21)},
- 'aes192-OFB': {'comment': 'NIST Algorithm',
- 'description': 'aes192-OFB (2 16 840 1 101 3 4 1 23)',
- 'hexoid': '06 09 60 86 48 01 65 03 04 01 17',
- 'name': 'aes192-OFB',
- 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 23)},
- 'aes256-CBC': {'comment': 'NIST Algorithm',
- 'description': 'aes256-CBC (2 16 840 1 101 3 4 1 42)',
- 'hexoid': '06 09 60 86 48 01 65 03 04 01 2A',
- 'name': 'aes256-CBC',
- 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 42)},
- 'aes256-CFB': {'comment': 'NIST Algorithm',
- 'description': 'aes256-CFB (2 16 840 1 101 3 4 1 44)',
- 'hexoid': '06 09 60 86 48 01 65 03 04 01 2C',
- 'name': 'aes256-CFB',
- 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 44)},
- 'aes256-ECB': {'comment': 'NIST Algorithm',
- 'description': 'aes256-ECB (2 16 840 1 101 3 4 1 41)',
- 'hexoid': '06 09 60 86 48 01 65 03 04 01 29',
- 'name': 'aes256-ECB',
- 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 41)},
- 'aes256-OFB': {'comment': 'NIST Algorithm',
- 'description': 'aes256-OFB (2 16 840 1 101 3 4 1 43)',
- 'hexoid': '06 09 60 86 48 01 65 03 04 01 2B',
- 'name': 'aes256-OFB',
- 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 43)},
- 'alExemptedAddressProcessor': {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'alExemptedAddressProcessor (2 16 840 1 101 2 1 5 47)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 2F',
- 'name': 'alExemptedAddressProcessor',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 47)},
- 'algorithm': {'comment': 'SET',
- 'description': 'algorithm (2 23 42 4)',
- 'hexoid': '06 03 67 2A 04',
- 'name': 'algorithm',
- 'oid': (2, 23, 42, 4)},
- 'algorithms': {'comment': 'PKIX',
- 'description': 'algorithms (1 3 6 1 5 5 7 6)',
- 'hexoid': '06 07 2B 06 01 05 05 07 06',
- 'name': 'algorithms',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 6)},
- 'alias': {'comment': 'X.520 objectClass (2 5 6)',
- 'description': 'alias (2 5 6 1)',
- 'hexoid': '06 03 55 06 01',
- 'name': 'alias',
- 'oid': (2, 5, 6, 1)},
- 'aliasedEntryName': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'aliasedEntryName (2 5 4 1)',
- 'hexoid': '06 03 55 04 01',
- 'name': 'aliasedEntryName',
- 'oid': (2, 5, 4, 1)},
- 'alid': {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'alid (2 16 840 1 101 2 1 5 14)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 0E',
- 'name': 'alid',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 14)},
- 'altCertTemplate': {'comment': 'PKIX CRMF registration control',
- 'description': 'altCertTemplate (1 3 6 1 5 5 7 5 1 7)',
- 'hexoid': '06 09 2B 06 01 05 05 07 05 01 07',
- 'name': 'altCertTemplate',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 1, 7)},
- 'amount': {'comment': 'SET field',
- 'description': 'amount (2 23 42 2 10)',
- 'hexoid': '06 04 67 2A 02 0A',
- 'name': 'amount',
- 'oid': (2, 23, 42, 2, 10)},
- 'anonymizedPublicKeyDirectory': {'comment': 'Telesec attribute',
- 'description': 'anonymizedPublicKeyDirectory (0 2 262 1 10 7 16)',
- 'hexoid': '06 07 02 82 06 01 0A 07 10',
- 'name': 'anonymizedPublicKeyDirectory',
- 'oid': (0, 2, 262, 1, 10, 7, 16)},
- 'ansiX9p192r1': {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'ansiX9p192r1 (1 2 840 10045 3 1 1)',
- 'hexoid': '06 08 2A 86 48 CE 3D 03 01 01',
- 'name': 'ansiX9p192r1',
- 'oid': (1, 2, 840, 10045, 3, 1, 1)},
- 'ansiX9p256r1': {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'ansiX9p256r1 (1 2 840 10045 3 1 7)',
- 'hexoid': '06 08 2A 86 48 CE 3D 03 01 07',
- 'name': 'ansiX9p256r1',
- 'oid': (1, 2, 840, 10045, 3, 1, 7)},
- 'anyExtendedKeyUsage': {'comment': 'X.509 extended key usage',
- 'description': 'anyExtendedKeyUsage (2 5 29 37 0)',
- 'hexoid': '06 04 55 1D 25 00',
- 'name': 'anyExtendedKeyUsage',
- 'oid': (2, 5, 29, 37, 0)},
- 'anyPolicy': {'comment': 'X.509 certificatePolicies (2 5 29 32)',
- 'description': 'anyPolicy (2 5 29 32 0)',
- 'hexoid': '06 04 55 1D 20 00',
- 'name': 'anyPolicy',
- 'oid': (2, 5, 29, 32, 0)},
- 'api': {'comment': 'Teletrust API',
- 'description': 'api (1 3 36 6)',
- 'hexoid': '06 03 2B 24 06',
- 'name': 'api',
- 'oid': (1, 3, 36, 6)},
- 'applicationEntity': {'comment': 'X.520 objectClass (2 5 6)',
- 'description': 'applicationEntity (2 5 6 12)',
- 'hexoid': '06 03 55 06 0C',
- 'name': 'applicationEntity',
- 'oid': (2, 5, 6, 12)},
- 'applicationGroupIdentifier': {'comment': 'Telesec attribute',
- 'description': 'applicationGroupIdentifier (0 2 262 1 10 7 0)',
- 'hexoid': '06 07 02 82 06 01 0A 07 00',
- 'name': 'applicationGroupIdentifier',
- 'oid': (0, 2, 262, 1, 10, 7, 0)},
- 'applicationProcess': {'comment': 'X.520 objectClass (2 5 6)',
- 'description': 'applicationProcess (2 5 6 11)',
- 'hexoid': '06 03 55 06 0B',
- 'name': 'applicationProcess',
- 'oid': (2, 5, 6, 11)},
- 'aprUKMs': {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'aprUKMs (2 16 840 1 101 2 1 5 23)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 17',
- 'name': 'aprUKMs',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 23)},
- 'archiveTimeStamp': {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'archiveTimeStamp (1 2 840 113549 1 9 16 2 27)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 1B',
- 'name': 'archiveTimeStamp',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 27)},
- 'archivedKey': {'comment': 'Microsoft attribute',
- 'description': 'archivedKey (1 3 6 1 4 1 311 21 13)',
- 'hexoid': '06 09 2B 06 01 04 01 82 37 15 0D',
- 'name': 'archivedKey',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 21, 13)},
- 'ascom': {'comment': 'Ascom Systech',
- 'description': 'ascom (1 3 6 1 4 1 188 7 1 1)',
- 'hexoid': '06 0A 2B 06 01 04 01 81 3C 07 01 01',
- 'name': 'ascom',
- 'oid': (1, 3, 6, 1, 4, 1, 188, 7, 1, 1)},
- 'attrCert': {'comment': 'Teletrust signature attributes',
- 'description': 'attrCert (1 3 36 8 6 3)',
- 'hexoid': '06 05 2B 24 08 06 03',
- 'name': 'attrCert',
- 'oid': (1, 3, 36, 8, 6, 3)},
- 'attrRef': {'comment': 'Teletrust signature attributes',
- 'description': 'attrRef (1 3 36 8 6 4)',
- 'hexoid': '06 05 2B 24 08 06 04',
- 'name': 'attrRef',
- 'oid': (1, 3, 36, 8, 6, 4)},
- 'attribute': {'comment': 'SET',
- 'description': 'attribute (2 23 42 3)',
- 'hexoid': '06 03 67 2A 03',
- 'name': 'attribute',
- 'oid': (2, 23, 42, 3)},
- 'attribute-cert': {'comment': 'ANSI X9.57 attribute',
- 'description': 'attribute-cert (1 2 840 10040 3 2)',
- 'hexoid': '06 07 2A 86 48 CE 38 03 02',
- 'name': 'attribute-cert',
- 'oid': (1, 2, 840, 10040, 3, 2)},
- 'attributeAuthorityRevocationList': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'attributeAuthorityRevocationList (2 5 4 63)',
- 'hexoid': '06 03 55 04 3F',
- 'name': 'attributeAuthorityRevocationList',
- 'oid': (2, 5, 4, 63)},
- 'attributeCert': {'comment': 'PKIX',
- 'description': 'attributeCert (1 3 6 1 5 5 7 0 12)',
- 'hexoid': '06 08 2B 06 01 05 05 07 00 0C',
- 'name': 'attributeCert',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 0, 12)},
- 'attributeCertificate': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'attributeCertificate (2 5 4 58)',
- 'hexoid': '06 03 55 04 3A',
- 'name': 'attributeCertificate',
- 'oid': (2, 5, 4, 58)},
- 'attributeCertificateRevocationList': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'attributeCertificateRevocationList (2 5 4 59)',
- 'hexoid': '06 03 55 04 3B',
- 'name': 'attributeCertificateRevocationList',
- 'oid': (2, 5, 4, 59)},
- 'attributeDescriptorCertificate': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'attributeDescriptorCertificate (2 5 4 62)',
- 'hexoid': '06 03 55 04 3E',
- 'name': 'attributeDescriptorCertificate',
- 'oid': (2, 5, 4, 62)},
- 'attributeGroup': {'comment': 'Telesec',
- 'description': 'attributeGroup (0 2 262 1 10 8)',
- 'hexoid': '06 06 02 82 06 01 0A 08',
- 'name': 'attributeGroup',
- 'oid': (0, 2, 262, 1, 10, 8)},
- 'attributeIntegrityInfo': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'attributeIntegrityInfo (2 5 4 57)',
- 'hexoid': '06 03 55 04 39',
- 'name': 'attributeIntegrityInfo',
- 'oid': (2, 5, 4, 57)},
- 'attributeSchema': {'comment': 'Microsoft Exchange Server - object class',
- 'description': 'attributeSchema (1 2 840 113556 1 3 14)',
- 'hexoid': '06 09 2A 86 48 86 F7 14 01 03 0E',
- 'name': 'attributeSchema',
- 'oid': (1, 2, 840, 113556, 1, 3, 14)},
- 'attributeTypes': {'comment': 'Telesec module',
- 'description': 'attributeTypes (0 2 262 1 10 2 1)',
- 'hexoid': '06 07 02 82 06 01 0A 02 01',
- 'name': 'attributeTypes',
- 'oid': (0, 2, 262, 1, 10, 2, 1)},
- 'augUKMs': {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'augUKMs (2 16 840 1 101 2 1 5 27)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 1B',
- 'name': 'augUKMs',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 27)},
- 'australianBusinessNumber': {'comment': 'Australian Government corporate taxpayer ID',
- 'description': 'australianBusinessNumber (1 2 36 1 333 1)',
- 'hexoid': '06 06 2A 24 01 82 4D 01',
- 'name': 'australianBusinessNumber',
- 'oid': (1, 2, 36, 1, 333, 1)},
- 'authData': {'comment': 'S/MIME Content Types',
- 'description': 'authData (1 2 840 113549 1 9 16 1 2)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 02',
- 'name': 'authData',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 1, 2)},
- 'authenticatedAttributes': {'comment': 'S/MIME',
- 'description': 'authenticatedAttributes (1 2 840 113549 1 9 16 2)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 10 02',
- 'name': 'authenticatedAttributes',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 2)},
- 'authentication': {'comment': 'Telesec mechanism',
- 'description': 'authentication (0 2 262 1 10 1 0)',
- 'hexoid': '06 07 02 82 06 01 0A 01 00',
- 'name': 'authentication',
- 'oid': (0, 2, 262, 1, 10, 1, 0)},
- 'authenticationInfo': {'comment': 'PKIX attribute certificate extension',
- 'description': 'authenticationInfo (1 3 6 1 5 5 7 10 1)',
- 'hexoid': '06 08 2B 06 01 05 05 07 0A 01',
- 'name': 'authenticationInfo',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 10, 1)},
- 'authenticator': {'comment': 'PKIX CRMF registration control',
- 'description': 'authenticator (1 3 6 1 5 5 7 5 1 2)',
- 'hexoid': '06 09 2B 06 01 05 05 07 05 01 02',
- 'name': 'authenticator',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 1, 2)},
- 'authorityInfoAccess': {'comment': 'PKIX private extension',
- 'description': 'authorityInfoAccess (1 3 6 1 5 5 7 1 1)',
- 'hexoid': '06 08 2B 06 01 05 05 07 01 01',
- 'name': 'authorityInfoAccess',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 1)},
- 'authorityKeyIdentifier': {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'authorityKeyIdentifier (2 5 29 35)',
- 'hexoid': '06 03 55 1D 23',
- 'name': 'authorityKeyIdentifier',
- 'oid': (2, 5, 29, 35)},
- 'authorityRevocationList': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'authorityRevocationList (2 5 4 38)',
- 'hexoid': '06 03 55 04 26',
- 'name': 'authorityRevocationList',
- 'oid': (2, 5, 4, 38)},
- 'autoGen': {'comment': 'Teletrust signature attributes',
- 'description': 'autoGen (1 3 36 8 6 10)',
- 'hexoid': '06 05 2B 24 08 06 0A',
- 'name': 'autoGen',
- 'oid': (1, 3, 36, 8, 6, 10)},
- 'basicConstraints': {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'basicConstraints (2 5 29 19)',
- 'hexoid': '06 03 55 1D 13',
- 'name': 'basicConstraints',
- 'oid': (2, 5, 29, 19)},
- 'biometricInfo': {'comment': 'PKIX private extension',
- 'description': 'biometricInfo (1 3 6 1 5 5 7 1 2)',
- 'hexoid': '06 08 2B 06 01 05 05 07 01 02',
- 'name': 'biometricInfo',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 2)},
- 'birthFamilyName': {'comment': 'SET field',
- 'description': 'birthFamilyName (2 23 42 2 3)',
- 'hexoid': '06 04 67 2A 02 03',
- 'name': 'birthFamilyName',
- 'oid': (2, 23, 42, 2, 3)},
- 'blowfishCBC': {'comment': 'cryptlib encryption algorithm',
- 'description': 'blowfishCBC (1 3 6 1 4 1 3029 1 1 2)',
- 'hexoid': '06 0A 2B 06 01 04 01 97 55 01 01 02',
- 'name': 'blowfishCBC',
- 'oid': (1, 3, 6, 1, 4, 1, 3029, 1, 1, 2)},
- 'blowfishCFB': {'comment': 'cryptlib encryption algorithm',
- 'description': 'blowfishCFB (1 3 6 1 4 1 3029 1 1 3)',
- 'hexoid': '06 0A 2B 06 01 04 01 97 55 01 01 03',
- 'name': 'blowfishCFB',
- 'oid': (1, 3, 6, 1, 4, 1, 3029, 1, 1, 3)},
- 'blowfishECB': {'comment': 'cryptlib encryption algorithm',
- 'description': 'blowfishECB (1 3 6 1 4 1 3029 1 1 1)',
- 'hexoid': '06 0A 2B 06 01 04 01 97 55 01 01 01',
- 'name': 'blowfishECB',
- 'oid': (1, 3, 6, 1, 4, 1, 3029, 1, 1, 1)},
- 'blowfishOFB': {'comment': 'cryptlib encryption algorithm',
- 'description': 'blowfishOFB (1 3 6 1 4 1 3029 1 1 4)',
- 'hexoid': '06 0A 2B 06 01 04 01 97 55 01 01 04',
- 'name': 'blowfishOFB',
- 'oid': (1, 3, 6, 1, 4, 1, 3029, 1, 1, 4)},
- 'brainpoolP224r1': {'comment': 'ECC Brainpool Standard Curves and Curve Generation',
- 'description': 'brainpoolP224r1 (1 3 36 3 3 2 8 1 1 14)',
- 'hexoid': '06 09 2B 24 03 03 02 08 01 01 0E',
- 'name': 'brainpoolP224r1',
- 'oid': (1, 3, 36, 3, 3, 2, 8, 1, 1, 14)},
- 'brand': {'comment': 'SET',
- 'description': 'brand (2 23 42 8)',
- 'hexoid': '06 03 67 2A 08',
- 'name': 'brand',
- 'oid': (2, 23, 42, 8)},
- 'bsi': {'comment': 'BSI TR-03110/TR-03111',
- 'description': 'bsi (0 4 0 127 0 7)',
- 'hexoid': '06 05 04 00 7F 00 07',
- 'name': 'bsi',
- 'oid': (0, 4, 0, 127, 0, 7)},
- 'bsi-1': {'comment': 'Teletrust encryption algorithm',
- 'description': 'bsi-1 (1 3 36 3 1 5)',
- 'hexoid': '06 05 2B 24 03 01 05',
- 'name': 'bsi-1',
- 'oid': (1, 3, 36, 3, 1, 5)},
- 'bsiCA': {'comment': 'BSI TR-03110',
- 'description': 'bsiCA (0 4 0 127 0 7 2 2 1)',
- 'hexoid': '06 08 04 00 7F 00 07 02 02 01',
- 'name': 'bsiCA',
- 'oid': (0, 4, 0, 127, 0, 7, 2, 2, 1)},
- 'bsiCA_DH': {'comment': 'BSI TR-03110',
- 'description': 'bsiCA_DH (0 4 0 127 0 7 2 2 1 1)',
- 'hexoid': '06 09 04 00 7F 00 07 02 02 01 01',
- 'name': 'bsiCA_DH',
- 'oid': (0, 4, 0, 127, 0, 7, 2, 2, 1, 1)},
- 'bsiCA_ECDH': {'comment': 'BSI TR-03110',
- 'description': 'bsiCA_ECDH (0 4 0 127 0 7 2 2 1 2)',
- 'hexoid': '06 09 04 00 7F 00 07 02 02 01 02',
- 'name': 'bsiCA_ECDH',
- 'oid': (0, 4, 0, 127, 0, 7, 2, 2, 1, 2)},
- 'bsiCharacteristicTwoBasis': {'comment': 'BSI TR-03111',
- 'description': 'bsiCharacteristicTwoBasis (0 4 0 127 0 7 1 1 2 3)',
- 'hexoid': '06 09 04 00 7F 00 07 01 01 02 03',
- 'name': 'bsiCharacteristicTwoBasis',
- 'oid': (0, 4, 0, 127, 0, 7, 1, 1, 2, 3)},
- 'bsiCharacteristicTwoField': {'comment': 'BSI TR-03111',
- 'description': 'bsiCharacteristicTwoField (0 4 0 127 0 7 1 1 2)',
- 'hexoid': '06 08 04 00 7F 00 07 01 01 02',
- 'name': 'bsiCharacteristicTwoField',
- 'oid': (0, 4, 0, 127, 0, 7, 1, 1, 2)},
- 'bsiEcKeyType': {'comment': 'BSI TR-03111',
- 'description': 'bsiEcKeyType (0 4 0 127 0 7 1 2)',
- 'hexoid': '06 07 04 00 7F 00 07 01 02',
- 'name': 'bsiEcKeyType',
- 'oid': (0, 4, 0, 127, 0, 7, 1, 2)},
- 'bsiEcPublicKey': {'comment': 'BSI TR-03111',
- 'description': 'bsiEcPublicKey (0 4 0 127 0 7 1 2 1)',
- 'hexoid': '06 08 04 00 7F 00 07 01 02 01',
- 'name': 'bsiEcPublicKey',
- 'oid': (0, 4, 0, 127, 0, 7, 1, 2, 1)},
- 'bsiEcc': {'comment': 'BSI TR-03111',
- 'description': 'bsiEcc (0 4 0 127 0 7 1)',
- 'hexoid': '06 06 04 00 7F 00 07 01',
- 'name': 'bsiEcc',
- 'oid': (0, 4, 0, 127, 0, 7, 1)},
- 'bsiEcdsaSignatures': {'comment': 'BSI TR-03111',
- 'description': 'bsiEcdsaSignatures (0 4 0 127 0 7 1 4 1)',
- 'hexoid': '06 08 04 00 7F 00 07 01 04 01',
- 'name': 'bsiEcdsaSignatures',
- 'oid': (0, 4, 0, 127, 0, 7, 1, 4, 1)},
- 'bsiEcdsaWithRIPEMD160': {'comment': 'BSI TR-03111',
- 'description': 'bsiEcdsaWithRIPEMD160 (0 4 0 127 0 7 1 4 1 6)',
- 'hexoid': '06 09 04 00 7F 00 07 01 04 01 06',
- 'name': 'bsiEcdsaWithRIPEMD160',
- 'oid': (0, 4, 0, 127, 0, 7, 1, 4, 1, 6)},
- 'bsiEcdsaWithSHA1': {'comment': 'BSI TR-03111',
- 'description': 'bsiEcdsaWithSHA1 (0 4 0 127 0 7 1 4 1 1)',
- 'hexoid': '06 09 04 00 7F 00 07 01 04 01 01',
- 'name': 'bsiEcdsaWithSHA1',
- 'oid': (0, 4, 0, 127, 0, 7, 1, 4, 1, 1)},
- 'bsiEcdsaWithSHA224': {'comment': 'BSI TR-03111',
- 'description': 'bsiEcdsaWithSHA224 (0 4 0 127 0 7 1 4 1 2)',
- 'hexoid': '06 09 04 00 7F 00 07 01 04 01 02',
- 'name': 'bsiEcdsaWithSHA224',
- 'oid': (0, 4, 0, 127, 0, 7, 1, 4, 1, 2)},
- 'bsiEcdsaWithSHA256': {'comment': 'BSI TR-03111',
- 'description': 'bsiEcdsaWithSHA256 (0 4 0 127 0 7 1 4 1 3)',
- 'hexoid': '06 09 04 00 7F 00 07 01 04 01 03',
- 'name': 'bsiEcdsaWithSHA256',
- 'oid': (0, 4, 0, 127, 0, 7, 1, 4, 1, 3)},
- 'bsiEcdsaWithSHA384': {'comment': 'BSI TR-03111',
- 'description': 'bsiEcdsaWithSHA384 (0 4 0 127 0 7 1 4 1 4)',
- 'hexoid': '06 09 04 00 7F 00 07 01 04 01 04',
- 'name': 'bsiEcdsaWithSHA384',
- 'oid': (0, 4, 0, 127, 0, 7, 1, 4, 1, 4)},
- 'bsiEcdsaWithSHA512': {'comment': 'BSI TR-03111',
- 'description': 'bsiEcdsaWithSHA512 (0 4 0 127 0 7 1 4 1 5)',
- 'hexoid': '06 09 04 00 7F 00 07 01 04 01 05',
- 'name': 'bsiEcdsaWithSHA512',
- 'oid': (0, 4, 0, 127, 0, 7, 1, 4, 1, 5)},
- 'bsiGnBasis': {'comment': 'BSI TR-03111',
- 'description': 'bsiGnBasis (0 4 0 127 0 7 1 1 2 3 1)',
- 'hexoid': '06 0A 04 00 7F 00 07 01 01 02 03 01',
- 'name': 'bsiGnBasis',
- 'oid': (0, 4, 0, 127, 0, 7, 1, 1, 2, 3, 1)},
- 'bsiKaeg': {'comment': 'BSI TR-03111',
- 'description': 'bsiKaeg (0 4 0 127 0 7 1 5 1)',
- 'hexoid': '06 08 04 00 7F 00 07 01 05 01',
- 'name': 'bsiKaeg',
- 'oid': (0, 4, 0, 127, 0, 7, 1, 5, 1)},
- 'bsiKaegWith3DESKDF': {'comment': 'BSI TR-03111',
- 'description': 'bsiKaegWith3DESKDF (0 4 0 127 0 7 1 5 1 2)',
- 'hexoid': '06 09 04 00 7F 00 07 01 05 01 02',
- 'name': 'bsiKaegWith3DESKDF',
- 'oid': (0, 4, 0, 127, 0, 7, 1, 5, 1, 2)},
- 'bsiKaegWithX963KDF': {'comment': 'BSI TR-03111',
- 'description': 'bsiKaegWithX963KDF (0 4 0 127 0 7 1 5 1 1)',
- 'hexoid': '06 09 04 00 7F 00 07 01 05 01 01',
- 'name': 'bsiKaegWithX963KDF',
- 'oid': (0, 4, 0, 127, 0, 7, 1, 5, 1, 1)},
- 'bsiPKE': {'comment': 'Teletrust key management',
- 'description': 'bsiPKE (1 3 36 7 1 1)',
- 'hexoid': '06 05 2B 24 07 01 01',
- 'name': 'bsiPKE',
- 'oid': (1, 3, 36, 7, 1, 1)},
- 'bsiPpBasis': {'comment': 'BSI TR-03111',
- 'description': 'bsiPpBasis (0 4 0 127 0 7 1 1 2 3 3)',
- 'hexoid': '06 0A 04 00 7F 00 07 01 01 02 03 03',
- 'name': 'bsiPpBasis',
- 'oid': (0, 4, 0, 127, 0, 7, 1, 1, 2, 3, 3)},
- 'bsiPrimeField': {'comment': 'BSI TR-03111',
- 'description': 'bsiPrimeField (0 4 0 127 0 7 1 1 1)',
- 'hexoid': '06 08 04 00 7F 00 07 01 01 01',
- 'name': 'bsiPrimeField',
- 'oid': (0, 4, 0, 127, 0, 7, 1, 1, 1)},
- 'bsiRoleEAC': {'comment': 'BSI TR-03110',
- 'description': 'bsiRoleEAC (0 4 0 127 0 7 3 1 2)',
- 'hexoid': '06 08 04 00 7F 00 07 03 01 02',
- 'name': 'bsiRoleEAC',
- 'oid': (0, 4, 0, 127, 0, 7, 3, 1, 2)},
- 'bsiTA': {'comment': 'BSI TR-03110',
- 'description': 'bsiTA (0 4 0 127 0 7 2 2 2)',
- 'hexoid': '06 08 04 00 7F 00 07 02 02 02',
- 'name': 'bsiTA',
- 'oid': (0, 4, 0, 127, 0, 7, 2, 2, 2)},
- 'bsiTA_ECDSA': {'comment': 'BSI TR-03110',
- 'description': 'bsiTA_ECDSA (0 4 0 127 0 7 2 2 2 2)',
- 'hexoid': '06 09 04 00 7F 00 07 02 02 02 02',
- 'name': 'bsiTA_ECDSA',
- 'oid': (0, 4, 0, 127, 0, 7, 2, 2, 2, 2)},
- 'bsiTA_ECDSA_SHA1': {'comment': 'BSI TR-03110',
- 'description': 'bsiTA_ECDSA_SHA1 (0 4 0 127 0 7 2 2 2 2 1)',
- 'hexoid': '06 0A 04 00 7F 00 07 02 02 02 02 01',
- 'name': 'bsiTA_ECDSA_SHA1',
- 'oid': (0, 4, 0, 127, 0, 7, 2, 2, 2, 2, 1)},
- 'bsiTA_ECDSA_SHA224': {'comment': 'BSI TR-03110',
- 'description': 'bsiTA_ECDSA_SHA224 (0 4 0 127 0 7 2 2 2 2 2)',
- 'hexoid': '06 0A 04 00 7F 00 07 02 02 02 02 02',
- 'name': 'bsiTA_ECDSA_SHA224',
- 'oid': (0, 4, 0, 127, 0, 7, 2, 2, 2, 2, 2)},
- 'bsiTA_ECDSA_SHA256': {'comment': 'BSI TR-03110',
- 'description': 'bsiTA_ECDSA_SHA256 (0 4 0 127 0 7 2 2 2 2 3)',
- 'hexoid': '06 0A 04 00 7F 00 07 02 02 02 02 03',
- 'name': 'bsiTA_ECDSA_SHA256',
- 'oid': (0, 4, 0, 127, 0, 7, 2, 2, 2, 2, 3)},
- 'bsiTA_RSA': {'comment': 'BSI TR-03110',
- 'description': 'bsiTA_RSA (0 4 0 127 0 7 2 2 2 1)',
- 'hexoid': '06 09 04 00 7F 00 07 02 02 02 01',
- 'name': 'bsiTA_RSA',
- 'oid': (0, 4, 0, 127, 0, 7, 2, 2, 2, 1)},
- 'bsiTA_RSAPSS_SHA1': {'comment': 'BSI TR-03110',
- 'description': 'bsiTA_RSAPSS_SHA1 (0 4 0 127 0 7 2 2 2 1 3)',
- 'hexoid': '06 0A 04 00 7F 00 07 02 02 02 01 03',
- 'name': 'bsiTA_RSAPSS_SHA1',
- 'oid': (0, 4, 0, 127, 0, 7, 2, 2, 2, 1, 3)},
- 'bsiTA_RSAPSS_SHA256': {'comment': 'BSI TR-03110',
- 'description': 'bsiTA_RSAPSS_SHA256 (0 4 0 127 0 7 2 2 2 1 4)',
- 'hexoid': '06 0A 04 00 7F 00 07 02 02 02 01 04',
- 'name': 'bsiTA_RSAPSS_SHA256',
- 'oid': (0, 4, 0, 127, 0, 7, 2, 2, 2, 1, 4)},
- 'bsiTA_RSAv1_5_SHA1': {'comment': 'BSI TR-03110',
- 'description': 'bsiTA_RSAv1_5_SHA1 (0 4 0 127 0 7 2 2 2 1 1)',
- 'hexoid': '06 0A 04 00 7F 00 07 02 02 02 01 01',
- 'name': 'bsiTA_RSAv1_5_SHA1',
- 'oid': (0, 4, 0, 127, 0, 7, 2, 2, 2, 1, 1)},
- 'bsiTA_RSAv1_5_SHA256': {'comment': 'BSI TR-03110',
- 'description': 'bsiTA_RSAv1_5_SHA256 (0 4 0 127 0 7 2 2 2 1 2)',
- 'hexoid': '06 0A 04 00 7F 00 07 02 02 02 01 02',
- 'name': 'bsiTA_RSAv1_5_SHA256',
- 'oid': (0, 4, 0, 127, 0, 7, 2, 2, 2, 1, 2)},
- 'bsiTpBasis': {'comment': 'BSI TR-03111',
- 'description': 'bsiTpBasis (0 4 0 127 0 7 1 1 2 3 2)',
- 'hexoid': '06 0A 04 00 7F 00 07 01 01 02 03 02',
- 'name': 'bsiTpBasis',
- 'oid': (0, 4, 0, 127, 0, 7, 1, 1, 2, 3, 2)},
- 'bsi_1CBC_PEMpad': {'comment': 'Teletrust encryption algorithm',
- 'description': 'bsi_1CBC_PEMpad (1 3 36 3 1 5 2 1)',
- 'hexoid': '06 07 2B 24 03 01 05 02 01',
- 'name': 'bsi_1CBC_PEMpad',
- 'oid': (1, 3, 36, 3, 1, 5, 2, 1)},
- 'bsi_1CBC_pad': {'comment': 'Teletrust encryption algorithm',
- 'description': 'bsi_1CBC_pad (1 3 36 3 1 5 2)',
- 'hexoid': '06 06 2B 24 03 01 05 02',
- 'name': 'bsi_1CBC_pad',
- 'oid': (1, 3, 36, 3, 1, 5, 2)},
- 'bsi_1ECB_pad': {'comment': 'Teletrust encryption algorithm',
- 'description': 'bsi_1ECB_pad (1 3 36 3 1 5 1)',
- 'hexoid': '06 06 2B 24 03 01 05 01',
- 'name': 'bsi_1ECB_pad',
- 'oid': (1, 3, 36, 3, 1, 5, 1)},
- 'bsifieldType': {'comment': 'BSI TR-03111',
- 'description': 'bsifieldType (0 4 0 127 0 7 1 1)',
- 'hexoid': '06 07 04 00 7F 00 07 01 01',
- 'name': 'bsifieldType',
- 'oid': (0, 4, 0, 127, 0, 7, 1, 1)},
- 'businessCategory': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'businessCategory (2 5 4 15)',
- 'hexoid': '06 03 55 04 0F',
- 'name': 'businessCategory',
- 'oid': (2, 5, 4, 15)},
- 'c2pnb163v1': {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'c2pnb163v1 (1 2 840 10045 3 0 1)',
- 'hexoid': '06 08 2A 86 48 CE 3D 03 00 01',
- 'name': 'c2pnb163v1',
- 'oid': (1, 2, 840, 10045, 3, 0, 1)},
- 'c2pnb163v2': {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'c2pnb163v2 (1 2 840 10045 3 0 2)',
- 'hexoid': '06 08 2A 86 48 CE 3D 03 00 02',
- 'name': 'c2pnb163v2',
- 'oid': (1, 2, 840, 10045, 3, 0, 2)},
- 'c2pnb163v3': {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'c2pnb163v3 (1 2 840 10045 3 0 3)',
- 'hexoid': '06 08 2A 86 48 CE 3D 03 00 03',
- 'name': 'c2pnb163v3',
- 'oid': (1, 2, 840, 10045, 3, 0, 3)},
- 'c2pnb208w1': {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'c2pnb208w1 (1 2 840 10045 3 0 10)',
- 'hexoid': '06 08 2A 86 48 CE 3D 03 00 0A',
- 'name': 'c2pnb208w1',
- 'oid': (1, 2, 840, 10045, 3, 0, 10)},
- 'c2pnb272w1': {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'c2pnb272w1 (1 2 840 10045 3 0 16)',
- 'hexoid': '06 08 2A 86 48 CE 3D 03 00 10',
- 'name': 'c2pnb272w1',
- 'oid': (1, 2, 840, 10045, 3, 0, 16)},
- 'c2pnb368w1': {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'c2pnb368w1 (1 2 840 10045 3 0 19)',
- 'hexoid': '06 08 2A 86 48 CE 3D 03 00 13',
- 'name': 'c2pnb368w1',
- 'oid': (1, 2, 840, 10045, 3, 0, 19)},
- 'c2tnb191v1': {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'c2tnb191v1 (1 2 840 10045 3 0 5)',
- 'hexoid': '06 08 2A 86 48 CE 3D 03 00 05',
- 'name': 'c2tnb191v1',
- 'oid': (1, 2, 840, 10045, 3, 0, 5)},
- 'c2tnb191v2': {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'c2tnb191v2 (1 2 840 10045 3 0 6)',
- 'hexoid': '06 08 2A 86 48 CE 3D 03 00 06',
- 'name': 'c2tnb191v2',
- 'oid': (1, 2, 840, 10045, 3, 0, 6)},
- 'c2tnb191v3': {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'c2tnb191v3 (1 2 840 10045 3 0 7)',
- 'hexoid': '06 08 2A 86 48 CE 3D 03 00 07',
- 'name': 'c2tnb191v3',
- 'oid': (1, 2, 840, 10045, 3, 0, 7)},
- 'c2tnb239v1': {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'c2tnb239v1 (1 2 840 10045 3 0 11)',
- 'hexoid': '06 08 2A 86 48 CE 3D 03 00 0B',
- 'name': 'c2tnb239v1',
- 'oid': (1, 2, 840, 10045, 3, 0, 11)},
- 'c2tnb239v2': {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'c2tnb239v2 (1 2 840 10045 3 0 12)',
- 'hexoid': '06 08 2A 86 48 CE 3D 03 00 0C',
- 'name': 'c2tnb239v2',
- 'oid': (1, 2, 840, 10045, 3, 0, 12)},
- 'c2tnb239v3': {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'c2tnb239v3 (1 2 840 10045 3 0 13)',
- 'hexoid': '06 08 2A 86 48 CE 3D 03 00 0D',
- 'name': 'c2tnb239v3',
- 'oid': (1, 2, 840, 10045, 3, 0, 13)},
- 'c2tnb359v1': {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'c2tnb359v1 (1 2 840 10045 3 0 18)',
- 'hexoid': '06 08 2A 86 48 CE 3D 03 00 12',
- 'name': 'c2tnb359v1',
- 'oid': (1, 2, 840, 10045, 3, 0, 18)},
- 'c2tnb431r1': {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'c2tnb431r1 (1 2 840 10045 3 0 20)',
- 'hexoid': '06 08 2A 86 48 CE 3D 03 00 14',
- 'name': 'c2tnb431r1',
- 'oid': (1, 2, 840, 10045, 3, 0, 20)},
- 'cAClearanceConstraint': {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'cAClearanceConstraint (2 16 840 1 101 2 1 5 60)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 3C',
- 'name': 'cAClearanceConstraint',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 60)},
- 'cAKeyCertIndexPair': {'comment': 'Microsoft attribute',
- 'description': 'cAKeyCertIndexPair (1 3 6 1 4 1 311 21 1)',
- 'hexoid': '06 09 2B 06 01 04 01 82 37 15 01',
- 'name': 'cAKeyCertIndexPair',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 21, 1)},
- 'cRLDistributionPoints': {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'cRLDistributionPoints (2 5 29 31)',
- 'hexoid': '06 03 55 1D 1F',
- 'name': 'cRLDistributionPoints',
- 'oid': (2, 5, 29, 31)},
- 'cRLNumber': {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'cRLNumber (2 5 29 20)',
- 'hexoid': '06 03 55 1D 14',
- 'name': 'cRLNumber',
- 'oid': (2, 5, 29, 20)},
- 'cRLReason': {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'cRLReason (2 5 29 21)',
- 'hexoid': '06 03 55 1D 15',
- 'name': 'cRLReason',
- 'oid': (2, 5, 29, 21)},
- 'caCertificate': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'caCertificate (2 5 4 37)',
- 'hexoid': '06 03 55 04 25',
- 'name': 'caCertificate',
- 'oid': (2, 5, 4, 37)},
- 'caIssuers': {'comment': 'PKIX subject/authority info access descriptor',
- 'description': 'caIssuers (1 3 6 1 5 5 7 48 2)',
- 'hexoid': '06 08 2B 06 01 05 05 07 30 02',
- 'name': 'caIssuers',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 2)},
- 'caKeyUpdateInfo': {'comment': 'PKIX CMP information',
- 'description': 'caKeyUpdateInfo (1 3 6 1 5 5 7 4 5)',
- 'hexoid': '06 08 2B 06 01 05 05 07 04 05',
- 'name': 'caKeyUpdateInfo',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 5)},
- 'caProtEncCert': {'comment': 'PKIX CMP information',
- 'description': 'caProtEncCert (1 3 6 1 5 5 7 4 1)',
- 'hexoid': '06 08 2B 06 01 05 05 07 04 01',
- 'name': 'caProtEncCert',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 1)},
- 'caRepository': {'comment': 'PKIX subject/authority info access descriptor',
- 'description': 'caRepository (1 3 6 1 5 5 7 48 5)',
- 'hexoid': '06 08 2B 06 01 05 05 07 30 05',
- 'name': 'caRepository',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 5)},
- 'callissuer': {'comment': 'ANSI X9.57 hold instruction',
- 'description': 'callissuer (1 2 840 10040 2 2)',
- 'hexoid': '06 07 2A 86 48 CE 38 02 02',
- 'name': 'callissuer',
- 'oid': (1, 2, 840, 10040, 2, 2)},
- 'canNotDecryptAny': {'comment': 'sMIMECapabilities',
- 'description': 'canNotDecryptAny (1 2 840 113549 1 9 15 2)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 0F 02',
- 'name': 'canNotDecryptAny',
- 'oid': (1, 2, 840, 113549, 1, 9, 15, 2)},
- 'capabilities': {'comment': 'S/MIME',
- 'description': 'capabilities (1 2 840 113549 1 9 16 11)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 10 0B',
- 'name': 'capabilities',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 11)},
- 'capcoMarkings': {'comment': 'SDN.700 INFOSEC policy',
- 'description': 'capcoMarkings (2 16 840 1 101 2 1 3 13)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 03 0D',
- 'name': 'capcoMarkings',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 13)},
- 'capcoSecurityCategories': {'comment': 'SDN.700 INFOSEC policy CAPCO markings',
- 'description': 'capcoSecurityCategories (2 16 840 1 101 2 1 3 13 0)',
- 'hexoid': '06 0A 60 86 48 01 65 02 01 03 0D 00',
- 'name': 'capcoSecurityCategories',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 13, 0)},
- 'capcoTagSetName1': {'comment': 'SDN.700 INFOSEC policy CAPCO markings',
- 'description': 'capcoTagSetName1 (2 16 840 1 101 2 1 3 13 0 1)',
- 'hexoid': '06 0B 60 86 48 01 65 02 01 03 0D 00 01',
- 'name': 'capcoTagSetName1',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 13, 0, 1)},
- 'capcoTagSetName2': {'comment': 'SDN.700 INFOSEC policy CAPCO markings',
- 'description': 'capcoTagSetName2 (2 16 840 1 101 2 1 3 13 0 2)',
- 'hexoid': '06 0B 60 86 48 01 65 02 01 03 0D 00 02',
- 'name': 'capcoTagSetName2',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 13, 0, 2)},
- 'capcoTagSetName3': {'comment': 'SDN.700 INFOSEC policy CAPCO markings',
- 'description': 'capcoTagSetName3 (2 16 840 1 101 2 1 3 13 0 3)',
- 'hexoid': '06 0B 60 86 48 01 65 02 01 03 0D 00 03',
- 'name': 'capcoTagSetName3',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 13, 0, 3)},
- 'capcoTagSetName4': {'comment': 'SDN.700 INFOSEC policy CAPCO markings',
- 'description': 'capcoTagSetName4 (2 16 840 1 101 2 1 3 13 0 4)',
- 'hexoid': '06 0B 60 86 48 01 65 02 01 03 0D 00 04',
- 'name': 'capcoTagSetName4',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 13, 0, 4)},
- 'carLicense': {'comment': 'Netscape LDAP definitions',
- 'description': 'carLicense (2 16 840 1 113730 3 1 1)',
- 'hexoid': '06 0A 60 86 48 01 86 F8 42 03 01 01',
- 'name': 'carLicense',
- 'oid': (2, 16, 840, 1, 113730, 3, 1, 1)},
- 'cardCertRequired': {'comment': 'SET cert extension',
- 'description': 'cardCertRequired (2 23 42 7 3)',
- 'hexoid': '06 04 67 2A 07 03',
- 'name': 'cardCertRequired',
- 'oid': (2, 23, 42, 7, 3)},
- 'cast3CBC': {'comment': 'Nortel Secure Networks alg',
- 'description': 'cast3CBC (1 2 840 113533 7 66 3)',
- 'hexoid': '06 09 2A 86 48 86 F6 7D 07 42 03',
- 'name': 'cast3CBC',
- 'oid': (1, 2, 840, 113533, 7, 66, 3)},
- 'cast5CBC': {'comment': 'Nortel Secure Networks alg',
- 'description': 'cast5CBC (1 2 840 113533 7 66 10)',
- 'hexoid': '06 09 2A 86 48 86 F6 7D 07 42 0A',
- 'name': 'cast5CBC',
- 'oid': (1, 2, 840, 113533, 7, 66, 10)},
- 'cast5MAC': {'comment': 'Nortel Secure Networks alg',
- 'description': 'cast5MAC (1 2 840 113533 7 66 11)',
- 'hexoid': '06 09 2A 86 48 86 F6 7D 07 42 0B',
- 'name': 'cast5MAC',
- 'oid': (1, 2, 840, 113533, 7, 66, 11)},
- 'cert': {'comment': 'SET attribute',
- 'description': 'cert (2 23 42 3 0)',
- 'hexoid': '06 04 67 2A 03 00',
- 'name': 'cert',
- 'oid': (2, 23, 42, 3, 0)},
- 'cert-extension': {'comment': 'Netscape',
- 'description': 'cert-extension (2 16 840 1 113730 1)',
- 'hexoid': '06 08 60 86 48 01 86 F8 42 01',
- 'name': 'cert-extension',
- 'oid': (2, 16, 840, 1, 113730, 1)},
- 'certAndCrlExtensionDefinitions': {'comment': 'Telesec',
- 'description': 'certAndCrlExtensionDefinitions (0 2 262 1 10 12)',
- 'hexoid': '06 06 02 82 06 01 0A 0C',
- 'name': 'certAndCrlExtensionDefinitions',
- 'oid': (0, 2, 262, 1, 10, 12)},
- 'certCRLTimestamp': {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'certCRLTimestamp (1 2 840 113549 1 9 16 2 26)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 1A',
- 'name': 'certCRLTimestamp',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 26)},
- 'certDist-ldap': {'comment': 'S/MIME Certificate Distribution',
- 'description': 'certDist-ldap (1 2 840 113549 1 9 16 4 1)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 04 01',
- 'name': 'certDist-ldap',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 4, 1)},
- 'certExt': {'comment': 'SET',
- 'description': 'certExt (2 23 42 7)',
- 'hexoid': '06 03 67 2A 07',
- 'name': 'certExt',
- 'oid': (2, 23, 42, 7)},
- 'certHash': {'comment': 'Teletrust OCSP attribute',
- 'description': 'certHash (1 3 36 8 3 13)',
- 'hexoid': '06 05 2B 24 08 03 0D',
- 'name': 'certHash',
- 'oid': (1, 3, 36, 8, 3, 13)},
- 'certRef': {'comment': 'Teletrust signature attributes',
- 'description': 'certRef (1 3 36 8 6 2)',
- 'hexoid': '06 05 2B 24 08 06 02',
- 'name': 'certRef',
- 'oid': (1, 3, 36, 8, 6, 2)},
- 'certReq': {'comment': 'PKIX CRMF registration control',
- 'description': 'certReq (1 3 6 1 5 5 7 5 2 2)',
- 'hexoid': '06 09 2B 06 01 05 05 07 05 02 02',
- 'name': 'certReq',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 2, 2)},
- 'certReqExtensions': {'comment': 'Microsoft',
- 'description': 'certReqExtensions (1 3 6 1 4 1 311 2 1 14)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 0E',
- 'name': 'certReqExtensions',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 14)},
- 'certSequence': {'comment': 'Netscape data type',
- 'description': 'certSequence (2 16 840 1 113730 2 5)',
- 'hexoid': '06 09 60 86 48 01 86 F8 42 02 05',
- 'name': 'certSequence',
- 'oid': (2, 16, 840, 1, 113730, 2, 5)},
- 'certTrustList': {'comment': 'Microsoft PKCS #7 contentType',
- 'description': 'certTrustList (1 3 6 1 4 1 311 10 1)',
- 'hexoid': '06 09 2B 06 01 04 01 82 37 0A 01',
- 'name': 'certTrustList',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 10, 1)},
- 'certTrustListSigning': {'comment': 'Microsoft enhanced key usage',
- 'description': 'certTrustListSigning (1 3 6 1 4 1 311 10 3 1)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 0A 03 01',
- 'name': 'certTrustListSigning',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 10, 3, 1)},
- 'certTypes': {'comment': 'PKCS #9 via PKCS #12',
- 'description': 'certTypes (for PKCS #12) (1 2 840 113549 1 9 22)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 16',
- 'name': 'certTypes',
- 'oid': (1, 2, 840, 113549, 1, 9, 22)},
- 'certURL': {'comment': 'Netscape certificate extension',
- 'description': 'certURL (2 16 840 1 113730 2 6)',
- 'hexoid': '06 09 60 86 48 01 86 F8 42 02 06',
- 'name': 'certURL',
- 'oid': (2, 16, 840, 1, 113730, 2, 6)},
- 'certValues': {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'certValues (1 2 840 113549 1 9 16 2 23)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 17',
- 'name': 'certValues',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 23)},
- 'certificateAuthority': {'comment': 'X.520 objectClass (2 5 6)',
- 'description': 'certificateAuthority (2 5 6 16)',
- 'hexoid': '06 03 55 06 10',
- 'name': 'certificateAuthority',
- 'oid': (2, 5, 6, 16)},
- 'certificateIssuer': {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'certificateIssuer (2 5 29 29)',
- 'hexoid': '06 03 55 1D 1D',
- 'name': 'certificateIssuer',
- 'oid': (2, 5, 29, 29)},
- 'certificateNumber': {'comment': 'Telesec attribute',
- 'description': 'certificateNumber (0 2 262 1 10 7 3)',
- 'hexoid': '06 07 02 82 06 01 0A 07 03',
- 'name': 'certificateNumber',
- 'oid': (0, 2, 262, 1, 10, 7, 3)},
- 'certificatePolicies': {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'certificatePolicies (2 5 29 32)',
- 'hexoid': '06 03 55 1D 20',
- 'name': 'certificatePolicies',
- 'oid': (2, 5, 29, 32)},
- 'certificatePolicy': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'certificatePolicy (2 5 4 69)',
- 'hexoid': '06 03 55 04 45',
- 'name': 'certificatePolicy',
- 'oid': (2, 5, 4, 69)},
- 'certificateRefs': {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'certificateRefs (1 2 840 113549 1 9 16 2 21)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 15',
- 'name': 'certificateRefs',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 21)},
- 'certificateRevocationList': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'certificateRevocationList (2 5 4 39)',
- 'hexoid': '06 03 55 04 27',
- 'name': 'certificateRevocationList',
- 'oid': (2, 5, 4, 39)},
- 'certificateTemplate': {'comment': 'Microsoft CAPICOM certificate template, V2',
- 'description': 'certificateTemplate (1 3 6 1 4 1 311 21 7)',
- 'hexoid': '06 09 2B 06 01 04 01 82 37 15 07',
- 'name': 'certificateTemplate',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 21, 7)},
- 'certificateTemplateList': {'comment': 'Telesec attribute',
- 'description': 'certificateTemplateList (0 2 262 1 10 7 29)',
- 'hexoid': '06 07 02 82 06 01 0A 07 1D',
- 'name': 'certificateTemplateList',
- 'oid': (0, 2, 262, 1, 10, 7, 29)},
- 'certificateType': {'comment': 'SET cert extension',
- 'description': 'certificateType (2 23 42 7 1)',
- 'hexoid': '06 04 67 2A 07 01',
- 'name': 'certificateType',
- 'oid': (2, 23, 42, 7, 1)},
- 'certificateTypes': {'comment': 'Telesec module',
- 'description': 'certificateTypes (0 2 262 1 10 2 2)',
- 'hexoid': '06 07 02 82 06 01 0A 02 02',
- 'name': 'certificateTypes',
- 'oid': (0, 2, 262, 1, 10, 2, 2)},
- 'certificationPracticeStmt': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'certificationPracticeStmt (2 5 4 68)',
- 'hexoid': '06 03 55 04 44',
- 'name': 'certificationPracticeStmt',
- 'oid': (2, 5, 4, 68)},
- 'challengePassword': {'comment': 'PKCS #9',
- 'description': 'challengePassword (1 2 840 113549 1 9 7)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 07',
- 'name': 'challengePassword',
- 'oid': (1, 2, 840, 113549, 1, 9, 7)},
- 'characteristic-two-basis': {'comment': 'ANSI X9.62 field type',
- 'description': 'characteristic-two-basis (1 2 840 10045 1 2 3)',
- 'hexoid': '06 08 2A 86 48 CE 3D 01 02 03',
- 'name': 'characteristic-two-basis',
- 'oid': (1, 2, 840, 10045, 1, 2, 3)},
- 'characteristic-two-field': {'comment': 'ANSI X9.62 field type',
- 'description': 'characteristic-two-field (1 2 840 10045 1 2)',
- 'hexoid': '06 07 2A 86 48 CE 3D 01 02',
- 'name': 'characteristic-two-field',
- 'oid': (1, 2, 840, 10045, 1, 2)},
- 'chargingIdentity': {'comment': 'PKIX attribute certificate extension',
- 'description': 'chargingIdentity (1 3 6 1 5 5 7 10 3)',
- 'hexoid': '06 08 2B 06 01 05 05 07 0A 03',
- 'name': 'chargingIdentity',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 10, 3)},
- 'classSchema': {'comment': 'Microsoft Exchange Server - object class',
- 'description': 'classSchema (1 2 840 113556 1 3 13)',
- 'hexoid': '06 09 2A 86 48 86 F7 14 01 03 0D',
- 'name': 'classSchema',
- 'oid': (1, 2, 840, 113556, 1, 3, 13)},
- 'clearance': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'clearance (2 5 4 55)',
- 'hexoid': '06 03 55 04 37',
- 'name': 'clearance',
- 'oid': (2, 5, 4, 55)},
- 'clientAuth': {'comment': 'PKIX key purpose',
- 'description': 'clientAuth (1 3 6 1 5 5 7 3 2)',
- 'hexoid': '06 08 2B 06 01 05 05 07 03 02',
- 'name': 'clientAuth',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 2)},
- 'cmcControls': {'comment': 'PKIX',
- 'description': 'cmcControls (1 3 6 1 5 5 7 7)',
- 'hexoid': '06 07 2B 06 01 05 05 07 07',
- 'name': 'cmcControls',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 7)},
- 'cmpInformationTypes': {'comment': 'PKIX',
- 'description': 'cmpInformationTypes (1 3 6 1 5 5 7 4)',
- 'hexoid': '06 07 2B 06 01 05 05 07 04',
- 'name': 'cmpInformationTypes',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 4)},
- 'cms3DESwrap': {'comment': 'S/MIME Algorithms',
- 'description': 'cms3DESwrap (1 2 840 113549 1 9 16 3 6)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 03 06',
- 'name': 'cms3DESwrap',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 3, 6)},
- 'cmsRC2wrap': {'comment': 'S/MIME Algorithms',
- 'description': 'cmsRC2wrap (1 2 840 113549 1 9 16 3 7)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 03 07',
- 'name': 'cmsRC2wrap',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 3, 7)},
- 'codeSigning': {'comment': 'PKIX key purpose',
- 'description': 'codeSigning (1 3 6 1 5 5 7 3 3)',
- 'hexoid': '06 08 2B 06 01 05 05 07 03 03',
- 'name': 'codeSigning',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 3)},
- 'collectiveFacsimileTelephoneNumber': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'collectiveFacsimileTelephoneNumber (2 5 4 23 1)',
- 'hexoid': '06 04 55 04 17 01',
- 'name': 'collectiveFacsimileTelephoneNumber',
- 'oid': (2, 5, 4, 23, 1)},
- 'collectiveInternationalISDNNumber': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'collectiveInternationalISDNNumber (2 5 4 25 1)',
- 'hexoid': '06 04 55 04 19 01',
- 'name': 'collectiveInternationalISDNNumber',
- 'oid': (2, 5, 4, 25, 1)},
- 'collectiveLocalityName': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'collectiveLocalityName (2 5 4 7 1)',
- 'hexoid': '06 04 55 04 07 01',
- 'name': 'collectiveLocalityName',
- 'oid': (2, 5, 4, 7, 1)},
- 'collectiveOrganizationName': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'collectiveOrganizationName (2 5 4 10 1)',
- 'hexoid': '06 04 55 04 0A 01',
- 'name': 'collectiveOrganizationName',
- 'oid': (2, 5, 4, 10, 1)},
- 'collectiveOrganizationalUnitName': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'collectiveOrganizationalUnitName (2 5 4 11 1)',
- 'hexoid': '06 04 55 04 0B 01',
- 'name': 'collectiveOrganizationalUnitName',
- 'oid': (2, 5, 4, 11, 1)},
- 'collectivePhysicalDeliveryOfficeName': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'collectivePhysicalDeliveryOfficeName (2 5 4 19 1)',
- 'hexoid': '06 04 55 04 13 01',
- 'name': 'collectivePhysicalDeliveryOfficeName',
- 'oid': (2, 5, 4, 19, 1)},
- 'collectivePostOfficeBox': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'collectivePostOfficeBox (2 5 4 18 1)',
- 'hexoid': '06 04 55 04 12 01',
- 'name': 'collectivePostOfficeBox',
- 'oid': (2, 5, 4, 18, 1)},
- 'collectivePostalAddress': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'collectivePostalAddress (2 5 4 16 1)',
- 'hexoid': '06 04 55 04 10 01',
- 'name': 'collectivePostalAddress',
- 'oid': (2, 5, 4, 16, 1)},
- 'collectivePostalCode': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'collectivePostalCode (2 5 4 17 1)',
- 'hexoid': '06 04 55 04 11 01',
- 'name': 'collectivePostalCode',
- 'oid': (2, 5, 4, 17, 1)},
- 'collectiveStateOrProvinceName': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'collectiveStateOrProvinceName (2 5 4 8 1)',
- 'hexoid': '06 04 55 04 08 01',
- 'name': 'collectiveStateOrProvinceName',
- 'oid': (2, 5, 4, 8, 1)},
- 'collectiveStreetAddress': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'collectiveStreetAddress (2 5 4 9 1)',
- 'hexoid': '06 04 55 04 09 01',
- 'name': 'collectiveStreetAddress',
- 'oid': (2, 5, 4, 9, 1)},
- 'collectiveTelephoneNumber': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'collectiveTelephoneNumber (2 5 4 20 1)',
- 'hexoid': '06 04 55 04 14 01',
- 'name': 'collectiveTelephoneNumber',
- 'oid': (2, 5, 4, 20, 1)},
- 'collectiveTeletexTerminalIdentifier': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'collectiveTeletexTerminalIdentifier (2 5 4 22 1)',
- 'hexoid': '06 04 55 04 16 01',
- 'name': 'collectiveTeletexTerminalIdentifier',
- 'oid': (2, 5, 4, 22, 1)},
- 'collectiveTelexNumber': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'collectiveTelexNumber (2 5 4 21 1)',
- 'hexoid': '06 04 55 04 15 01',
- 'name': 'collectiveTelexNumber',
- 'oid': (2, 5, 4, 21, 1)},
- 'commPrivileges': {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'commPrivileges (2 16 840 1 101 2 1 5 56)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 38',
- 'name': 'commPrivileges',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 56)},
- 'commercialCodeSigning': {'comment': 'Microsoft',
- 'description': 'commercialCodeSigning (1 3 6 1 4 1 311 2 1 22)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 16',
- 'name': 'commercialCodeSigning',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 22)},
- 'commitmentType': {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'commitmentType (1 2 840 113549 1 9 16 2 16)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 10',
- 'name': 'commitmentType',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 16)},
- 'commonName': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'commonName (2 5 4 3)',
- 'hexoid': '06 03 55 04 03',
- 'name': 'commonName',
- 'oid': (2, 5, 4, 3)},
- 'communicationsNetwork': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'communicationsNetwork (2 5 4 67)',
- 'hexoid': '06 03 55 04 43',
- 'name': 'communicationsNetwork',
- 'oid': (2, 5, 4, 67)},
- 'communicationsService': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'communicationsService (2 5 4 66)',
- 'hexoid': '06 03 55 04 42',
- 'name': 'communicationsService',
- 'oid': (2, 5, 4, 66)},
- 'comodoCertifiedDeliveryService': {'comment': 'Comodo CA',
- 'description': 'comodoCertifiedDeliveryService (1 3 6 1 4 1 6449 1 3 5 2)',
- 'hexoid': '06 0B 2B 06 01 04 01 B2 31 01 03 05 02',
- 'name': 'comodoCertifiedDeliveryService',
- 'oid': (1,
- 3,
- 6,
- 1,
- 4,
- 1,
- 6449,
- 1,
- 3,
- 5,
- 2)},
- 'comodoPolicy': {'comment': 'Comodo CA',
- 'description': 'comodoPolicy (1 3 6 1 4 1 6449 1 2 1 3 1)',
- 'hexoid': '06 0C 2B 06 01 04 01 B2 31 01 02 01 03 01',
- 'name': 'comodoPolicy',
- 'oid': (1, 3, 6, 1, 4, 1, 6449, 1, 2, 1, 3, 1)},
- 'compressedData': {'comment': 'S/MIME Content Types',
- 'description': 'compressedData (1 2 840 113549 1 9 16 1 9)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 09',
- 'name': 'compressedData',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 1, 9)},
- 'confKeyInfo': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'confKeyInfo (2 5 4 60)',
- 'hexoid': '06 03 55 04 3C',
- 'name': 'confKeyInfo',
- 'oid': (2, 5, 4, 60)},
- 'confirmWaitTime': {'comment': 'PKIX CMP information',
- 'description': 'confirmWaitTime (1 3 6 1 5 5 7 4 14)',
- 'hexoid': '06 08 2B 06 01 05 05 07 04 0E',
- 'name': 'confirmWaitTime',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 14)},
- 'container': {'comment': 'Microsoft Exchange Server - object class',
- 'description': 'container (1 2 840 113556 1 3 23)',
- 'hexoid': '06 09 2A 86 48 86 F7 14 01 03 17',
- 'name': 'container',
- 'oid': (1, 2, 840, 113556, 1, 3, 23)},
- 'contentHint': {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'contentHint (1 2 840 113549 1 9 16 2 4)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 04',
- 'name': 'contentHint',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 4)},
- 'contentIdentifier': {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'contentIdentifier (1 2 840 113549 1 9 16 2 7)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 07',
- 'name': 'contentIdentifier',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 7)},
- 'contentInfo': {'comment': 'S/MIME Content Types',
- 'description': 'contentInfo (1 2 840 113549 1 9 16 1 6)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 06',
- 'name': 'contentInfo',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 1, 6)},
- 'contentReference': {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'contentReference (1 2 840 113549 1 9 16 2 10)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 0A',
- 'name': 'contentReference',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 10)},
- 'contentTimestamp': {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'contentTimestamp (1 2 840 113549 1 9 16 2 20)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 14',
- 'name': 'contentTimestamp',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 20)},
- 'contentType': {'comment': 'SET',
- 'description': 'contentType (2 23 42 0)',
- 'hexoid': '06 03 67 2A 00',
- 'name': 'contentType',
- 'oid': (2, 23, 42, 0)},
- 'countersignature': {'comment': 'PKCS #9',
- 'description': 'countersignature (1 2 840 113549 1 9 6)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 06',
- 'name': 'countersignature',
- 'oid': (1, 2, 840, 113549, 1, 9, 6)},
- 'country': {'comment': 'X.520 objectClass (2 5 6)',
- 'description': 'country (2 5 6 2)',
- 'hexoid': '06 03 55 06 02',
- 'name': 'country',
- 'oid': (2, 5, 6, 2)},
- 'countryName': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'countryName (2 5 4 6)',
- 'hexoid': '06 03 55 04 06',
- 'name': 'countryName',
- 'oid': (2, 5, 4, 6)},
- 'countryOfCitizenship': {'comment': 'PKIX personal data',
- 'description': 'countryOfCitizenship (1 3 6 1 5 5 7 9 4)',
- 'hexoid': '06 08 2B 06 01 05 05 07 09 04',
- 'name': 'countryOfCitizenship',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 9, 4)},
- 'countryOfResidence': {'comment': 'PKIX personal data',
- 'description': 'countryOfResidence (1 3 6 1 5 5 7 9 5)',
- 'hexoid': '06 08 2B 06 01 05 05 07 09 05',
- 'name': 'countryOfResidence',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 9, 5)},
- 'cps': {'comment': 'PKIX policy qualifier',
- 'description': 'cps (1 3 6 1 5 5 7 2 1)',
- 'hexoid': '06 08 2B 06 01 05 05 07 02 01',
- 'name': 'cps',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 2, 1)},
- 'creationDate': {'comment': 'Telesec attribute',
- 'description': 'creationDate (0 2 262 1 10 7 5)',
- 'hexoid': '06 07 02 82 06 01 0A 07 05',
- 'name': 'creationDate',
- 'oid': (0, 2, 262, 1, 10, 7, 5)},
- 'crlExtReason': {'comment': 'cryptlib attribute type',
- 'description': 'crlExtReason (1 3 6 1 4 1 3029 3 1 4)',
- 'hexoid': '06 0A 2B 06 01 04 01 97 55 03 01 04',
- 'name': 'crlExtReason',
- 'oid': (1, 3, 6, 1, 4, 1, 3029, 3, 1, 4)},
- 'crlTypes': {'comment': 'PKCS #9 via PKCS #12',
- 'description': 'crlTypes (for PKCS #12) (1 2 840 113549 1 9 23)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 17',
- 'name': 'crlTypes',
- 'oid': (1, 2, 840, 113549, 1, 9, 23)},
- 'crmfRegistration': {'comment': 'PKIX',
- 'description': 'crmfRegistration (1 3 6 1 5 5 7 5)',
- 'hexoid': '06 07 2B 06 01 05 05 07 05',
- 'name': 'crmfRegistration',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 5)},
- 'crossCertificatePair': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'crossCertificatePair (2 5 4 40)',
- 'hexoid': '06 03 55 04 28',
- 'name': 'crossCertificatePair',
- 'oid': (2, 5, 4, 40)},
- 'cryptlibConfigData': {'comment': 'cryptlib content type',
- 'description': 'cryptlibConfigData (1 3 6 1 4 1 3029 4 1 1)',
- 'hexoid': '06 0A 2B 06 01 04 01 97 55 04 01 01',
- 'name': 'cryptlibConfigData',
- 'oid': (1, 3, 6, 1, 4, 1, 3029, 4, 1, 1)},
- 'cryptlibContent': {'comment': 'cryptlib',
- 'description': 'cryptlibContent (1 3 6 1 4 1 3029 4 1)',
- 'hexoid': '06 09 2B 06 01 04 01 97 55 04 01',
- 'name': 'cryptlibContent',
- 'oid': (1, 3, 6, 1, 4, 1, 3029, 4, 1)},
- 'cryptlibPresenceCheck': {'comment': 'cryptlib attribute type',
- 'description': 'cryptlibPresenceCheck (1 3 6 1 4 1 3029 3 1 1)',
- 'hexoid': '06 0A 2B 06 01 04 01 97 55 03 01 01',
- 'name': 'cryptlibPresenceCheck',
- 'oid': (1, 3, 6, 1, 4, 1, 3029, 3, 1, 1)},
- 'cryptlibUserIndex': {'comment': 'cryptlib content type',
- 'description': 'cryptlibUserIndex (1 3 6 1 4 1 3029 4 1 2)',
- 'hexoid': '06 0A 2B 06 01 04 01 97 55 04 01 02',
- 'name': 'cryptlibUserIndex',
- 'oid': (1, 3, 6, 1, 4, 1, 3029, 4, 1, 2)},
- 'cryptlibUserInfo': {'comment': 'cryptlib content type',
- 'description': 'cryptlibUserInfo (1 3 6 1 4 1 3029 4 1 3)',
- 'hexoid': '06 0A 2B 06 01 04 01 97 55 04 01 03',
- 'name': 'cryptlibUserInfo',
- 'oid': (1, 3, 6, 1, 4, 1, 3029, 4, 1, 3)},
- 'cspContentType': {'comment': 'SDN.700 INFOSEC format',
- 'description': 'cspContentType (2 16 840 1 101 2 1 2 3)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 02 03',
- 'name': 'cspContentType',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 3)},
- 'cspCsExtn': {'comment': 'SDN.700 INFOSEC extensions',
- 'description': 'cspCsExtn (2 16 840 1 101 2 1 7 1 0)',
- 'hexoid': '06 0A 60 86 48 01 65 02 01 07 01 00',
- 'name': 'cspCsExtn',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 7, 1, 0)},
- 'cspExtns': {'comment': 'SDN.700 INFOSEC extensions',
- 'description': 'cspExtns (2 16 840 1 101 2 1 7 1)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 07 01',
- 'name': 'cspExtns',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 7, 1)},
- 'cspForwardedMessageParameters': {'comment': 'SDN.700 INFOSEC format',
- 'description': 'cspForwardedMessageParameters (2 16 840 1 101 2 1 2 75)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 02 4B',
- 'name': 'cspForwardedMessageParameters',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 75)},
- 'ctlFileIsArchive': {'comment': 'Telesec attribute',
- 'description': 'ctlFileIsArchive (0 2 262 1 10 7 27)',
- 'hexoid': '06 07 02 82 06 01 0A 07 1B',
- 'name': 'ctlFileIsArchive',
- 'oid': (0, 2, 262, 1, 10, 7, 27)},
- 'currentCRL': {'comment': 'PKIX CMP information',
- 'description': 'currentCRL (1 3 6 1 5 5 7 4 6)',
- 'hexoid': '06 08 2B 06 01 05 05 07 04 06',
- 'name': 'currentCRL',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 6)},
- 'dSA': {'comment': 'X.520 objectClass (2 5 6)',
- 'description': 'dSA (2 5 6 13)',
- 'hexoid': '06 03 55 06 0D',
- 'name': 'dSA',
- 'oid': (2, 5, 6, 13)},
- 'dVCSRequestData': {'comment': 'S/MIME Content Types',
- 'description': 'dVCSRequestData (1 2 840 113549 1 9 16 1 7)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 07',
- 'name': 'dVCSRequestData',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 1, 7)},
- 'dVCSResponseData': {'comment': 'S/MIME Content Types',
- 'description': 'dVCSResponseData (1 2 840 113549 1 9 16 1 8)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 08',
- 'name': 'dVCSResponseData',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 1, 8)},
- 'data': {'comment': 'PKCS #7',
- 'description': 'data (1 2 840 113549 1 7 1)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 07 01',
- 'name': 'data',
- 'oid': (1, 2, 840, 113549, 1, 7, 1)},
- 'data-type': {'comment': 'Netscape',
- 'description': 'data-type (2 16 840 1 113730 2)',
- 'hexoid': '06 08 60 86 48 01 86 F8 42 02',
- 'name': 'data-type',
- 'oid': (2, 16, 840, 1, 113730, 2)},
- 'dataGIF': {'comment': 'Netscape data type',
- 'description': 'dataGIF (2 16 840 1 113730 2 1)',
- 'hexoid': '06 09 60 86 48 01 86 F8 42 02 01',
- 'name': 'dataGIF',
- 'oid': (2, 16, 840, 1, 113730, 2, 1)},
- 'dataHTML': {'comment': 'Netscape data type',
- 'description': 'dataHTML (2 16 840 1 113730 2 4)',
- 'hexoid': '06 09 60 86 48 01 86 F8 42 02 04',
- 'name': 'dataHTML',
- 'oid': (2, 16, 840, 1, 113730, 2, 4)},
- 'dataJPEG': {'comment': 'Netscape data type',
- 'description': 'dataJPEG (2 16 840 1 113730 2 2)',
- 'hexoid': '06 09 60 86 48 01 86 F8 42 02 02',
- 'name': 'dataJPEG',
- 'oid': (2, 16, 840, 1, 113730, 2, 2)},
- 'dataURL': {'comment': 'Netscape data type',
- 'description': 'dataURL (2 16 840 1 113730 2 3)',
- 'hexoid': '06 09 60 86 48 01 86 F8 42 02 03',
- 'name': 'dataURL',
- 'oid': (2, 16, 840, 1, 113730, 2, 3)},
- 'date': {'comment': 'SET field',
- 'description': 'date (2 23 42 2 7)',
- 'hexoid': '06 04 67 2A 02 07',
- 'name': 'date',
- 'oid': (2, 23, 42, 2, 7)},
- 'dateOfBirth': {'comment': 'PKIX personal data',
- 'description': 'dateOfBirth (1 3 6 1 5 5 7 9 1)',
- 'hexoid': '06 08 2B 06 01 05 05 07 09 01',
- 'name': 'dateOfBirth',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 9, 1)},
- 'dateOfCertGen': {'comment': 'Teletrust attribute',
- 'description': 'dateOfCertGen (1 3 36 8 3 1)',
- 'hexoid': '06 05 2B 24 08 03 01',
- 'name': 'dateOfCertGen',
- 'oid': (1, 3, 36, 8, 3, 1)},
- 'decDEA': {'comment': 'DASS encryption algorithm',
- 'description': 'decDEA (1 3 12 2 1011 7 1 2)',
- 'hexoid': '06 08 2B 0C 02 87 73 07 01 02',
- 'name': 'decDEA',
- 'oid': (1, 3, 12, 2, 1011, 7, 1, 2)},
- 'decDEAMAC': {'comment': 'DASS signature algorithm',
- 'description': 'decDEAMAC (1 3 12 2 1011 7 3 3)',
- 'hexoid': '06 08 2B 0C 02 87 73 07 03 03',
- 'name': 'decDEAMAC',
- 'oid': (1, 3, 12, 2, 1011, 7, 3, 3)},
- 'decEncryptionAlgorithm': {'comment': 'DASS algorithm',
- 'description': 'decEncryptionAlgorithm (1 3 12 2 1011 7 1)',
- 'hexoid': '06 07 2B 0C 02 87 73 07 01',
- 'name': 'decEncryptionAlgorithm',
- 'oid': (1, 3, 12, 2, 1011, 7, 1)},
- 'decHashAlgorithm': {'comment': 'DASS algorithm',
- 'description': 'decHashAlgorithm (1 3 12 2 1011 7 2)',
- 'hexoid': '06 07 2B 0C 02 87 73 07 02',
- 'name': 'decHashAlgorithm',
- 'oid': (1, 3, 12, 2, 1011, 7, 2)},
- 'decMD2': {'comment': 'DASS hash algorithm',
- 'description': 'decMD2 (1 3 12 2 1011 7 2 1)',
- 'hexoid': '06 08 2B 0C 02 87 73 07 02 01',
- 'name': 'decMD2',
- 'oid': (1, 3, 12, 2, 1011, 7, 2, 1)},
- 'decMD2withRSA': {'comment': 'DASS signature algorithm',
- 'description': 'decMD2withRSA (1 3 12 2 1011 7 3 1)',
- 'hexoid': '06 08 2B 0C 02 87 73 07 03 01',
- 'name': 'decMD2withRSA',
- 'oid': (1, 3, 12, 2, 1011, 7, 3, 1)},
- 'decMD4': {'comment': 'DASS hash algorithm',
- 'description': 'decMD4 (1 3 12 2 1011 7 2 2)',
- 'hexoid': '06 08 2B 0C 02 87 73 07 02 02',
- 'name': 'decMD4',
- 'oid': (1, 3, 12, 2, 1011, 7, 2, 2)},
- 'decMD4withRSA': {'comment': 'DASS signature algorithm',
- 'description': 'decMD4withRSA (1 3 12 2 1011 7 3 2)',
- 'hexoid': '06 08 2B 0C 02 87 73 07 03 02',
- 'name': 'decMD4withRSA',
- 'oid': (1, 3, 12, 2, 1011, 7, 3, 2)},
- 'decSignatureAlgorithm': {'comment': 'DASS algorithm',
- 'description': 'decSignatureAlgorithm (1 3 12 2 1011 7 3)',
- 'hexoid': '06 07 2B 0C 02 87 73 07 03',
- 'name': 'decSignatureAlgorithm',
- 'oid': (1, 3, 12, 2, 1011, 7, 3)},
- 'decUKMs': {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'decUKMs (2 16 840 1 101 2 1 5 31)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 1F',
- 'name': 'decUKMs',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 31)},
- 'declarationOfMajority': {'comment': 'Teletrust attribute',
- 'description': 'declarationOfMajority (1 3 36 8 3 5)',
- 'hexoid': '06 05 2B 24 08 03 05',
- 'name': 'declarationOfMajority',
- 'oid': (1, 3, 36, 8, 3, 5)},
- 'defaultDirQop': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'defaultDirQop (2 5 4 56)',
- 'hexoid': '06 03 55 04 38',
- 'name': 'defaultDirQop',
- 'oid': (2, 5, 4, 56)},
- 'defaultSecurityPolicy': {'comment': 'SDN.700 INFOSEC policy',
- 'description': 'defaultSecurityPolicy (2 16 840 1 101 2 1 3 12)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 03 0C',
- 'name': 'defaultSecurityPolicy',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 12)},
- 'delegationPath': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'delegationPath (2 5 4 73)',
- 'hexoid': '06 03 55 04 49',
- 'name': 'delegationPath',
- 'oid': (2, 5, 4, 73)},
- 'deliveryMechanism': {'comment': 'Microsoft Exchange Server - attribute',
- 'description': 'deliveryMechanism (1 2 840 113556 1 2 241)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 02 81 71',
- 'name': 'deliveryMechanism',
- 'oid': (1, 2, 840, 113556, 1, 2, 241)},
- 'deltaCRLIndicator': {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'deltaCRLIndicator (2 5 29 27)',
- 'hexoid': '06 03 55 1D 1B',
- 'name': 'deltaCRLIndicator',
- 'oid': (2, 5, 29, 27)},
- 'deltaRevocationList': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'deltaRevocationList (2 5 4 53)',
- 'hexoid': '06 03 55 04 35',
- 'name': 'deltaRevocationList',
- 'oid': (2, 5, 4, 53)},
- 'departmentNumber': {'comment': 'Netscape LDAP definitions',
- 'description': 'departmentNumber (2 16 840 1 113730 3 1 2)',
- 'hexoid': '06 0A 60 86 48 01 86 F8 42 03 01 02',
- 'name': 'departmentNumber',
- 'oid': (2, 16, 840, 1, 113730, 3, 1, 2)},
- 'des': {'comment': 'Teletrust encryption algorithm',
- 'description': 'des (1 3 36 3 1 1)',
- 'hexoid': '06 05 2B 24 03 01 01',
- 'name': 'des',
- 'oid': (1, 3, 36, 3, 1, 1)},
- 'des-EDE3-CBC': {'comment': 'RSADSI encryptionAlgorithm',
- 'description': 'des-EDE3-CBC (1 2 840 113549 3 7)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 03 07',
- 'name': 'des-EDE3-CBC',
- 'oid': (1, 2, 840, 113549, 3, 7)},
- 'des3': {'comment': 'Telesec encryption',
- 'description': 'des3 (0 2 262 1 10 1 2 3)',
- 'hexoid': '06 08 02 82 06 01 0A 01 02 03',
- 'name': 'des3',
- 'oid': (0, 2, 262, 1, 10, 1, 2, 3)},
- 'des3CBC': {'comment': 'Telesec encryption',
- 'description': 'des3CBC (0 2 262 1 10 1 2 3 2)',
- 'hexoid': '06 09 02 82 06 01 0A 01 02 03 02',
- 'name': 'des3CBC',
- 'oid': (0, 2, 262, 1, 10, 1, 2, 3, 2)},
- 'des3CFB64': {'comment': 'Telesec encryption',
- 'description': 'des3CFB64 (0 2 262 1 10 1 2 3 5)',
- 'hexoid': '06 09 02 82 06 01 0A 01 02 03 05',
- 'name': 'des3CFB64',
- 'oid': (0, 2, 262, 1, 10, 1, 2, 3, 5)},
- 'des3CFB8': {'comment': 'Telesec encryption',
- 'description': 'des3CFB8 (0 2 262 1 10 1 2 3 4)',
- 'hexoid': '06 09 02 82 06 01 0A 01 02 03 04',
- 'name': 'des3CFB8',
- 'oid': (0, 2, 262, 1, 10, 1, 2, 3, 4)},
- 'des3ECB': {'comment': 'Telesec encryption',
- 'description': 'des3ECB (0 2 262 1 10 1 2 3 1)',
- 'hexoid': '06 09 02 82 06 01 0A 01 02 03 01',
- 'name': 'des3ECB',
- 'oid': (0, 2, 262, 1, 10, 1, 2, 3, 1)},
- 'des3OFB': {'comment': 'Telesec encryption',
- 'description': 'des3OFB (0 2 262 1 10 1 2 3 3)',
- 'hexoid': '06 09 02 82 06 01 0A 01 02 03 03',
- 'name': 'des3OFB',
- 'oid': (0, 2, 262, 1, 10, 1, 2, 3, 3)},
- 'des40': {'comment': 'PKIX algorithm',
- 'description': 'des40 (1 3 6 1 5 5 7 6 1)',
- 'hexoid': '06 08 2B 06 01 05 05 07 06 01',
- 'name': 'des40',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 6, 1)},
- 'desCBC': {'description': 'desCBC (1 3 14 3 2 7)',
- 'hexoid': '06 05 2B 0E 03 02 07',
- 'name': 'desCBC',
- 'oid': (1, 3, 14, 3, 2, 7)},
- 'desCBC_ISOpad': {'comment': 'Teletrust encryption algorithm',
- 'description': 'desCBC_ISOpad (1 3 36 3 1 1 2 1 1)',
- 'hexoid': '06 08 2B 24 03 01 01 02 01 01',
- 'name': 'desCBC_ISOpad',
- 'oid': (1, 3, 36, 3, 1, 1, 2, 1, 1)},
- 'desCBC_pad': {'comment': 'Teletrust encryption algorithm',
- 'description': 'desCBC_pad (1 3 36 3 1 1 2 1)',
- 'hexoid': '06 07 2B 24 03 01 01 02 01',
- 'name': 'desCBC_pad',
- 'oid': (1, 3, 36, 3, 1, 1, 2, 1)},
- 'desCDMF': {'comment': 'RSADSI encryptionAlgorithm. Formerly called CDMFCBCPad',
- 'description': 'desCDMF (1 2 840 113549 3 10)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 03 0A',
- 'name': 'desCDMF',
- 'oid': (1, 2, 840, 113549, 3, 10)},
- 'desCFB': {'description': 'desCFB (1 3 14 3 2 9)',
- 'hexoid': '06 05 2B 0E 03 02 09',
- 'name': 'desCFB',
- 'oid': (1, 3, 14, 3, 2, 9)},
- 'desCFB64': {'comment': 'Telesec encryption',
- 'description': 'desCFB64 (0 2 262 1 10 1 2 2 5)',
- 'hexoid': '06 09 02 82 06 01 0A 01 02 02 05',
- 'name': 'desCFB64',
- 'oid': (0, 2, 262, 1, 10, 1, 2, 2, 5)},
- 'desCFB8': {'comment': 'Telesec encryption',
- 'description': 'desCFB8 (0 2 262 1 10 1 2 2 4)',
- 'hexoid': '06 09 02 82 06 01 0A 01 02 02 04',
- 'name': 'desCFB8',
- 'oid': (0, 2, 262, 1, 10, 1, 2, 2, 4)},
- 'desCbcIV8': {'comment': 'Novell encryption algorithm',
- 'description': 'desCbcIV8 (2 16 840 1 113719 1 2 8 22)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 16',
- 'name': 'desCbcIV8',
- 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 22)},
- 'desCbcPadIV8': {'comment': 'Novell encryption algorithm',
- 'description': 'desCbcPadIV8 (2 16 840 1 113719 1 2 8 23)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 17',
- 'name': 'desCbcPadIV8',
- 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 23)},
- 'desECB': {'description': 'desECB (1 3 14 3 2 6)',
- 'hexoid': '06 05 2B 0E 03 02 06',
- 'name': 'desECB',
- 'oid': (1, 3, 14, 3, 2, 6)},
- 'desECB_ISOpad': {'comment': 'Teletrust encryption algorithm',
- 'description': 'desECB_ISOpad (1 3 36 3 1 1 1 1)',
- 'hexoid': '06 07 2B 24 03 01 01 01 01',
- 'name': 'desECB_ISOpad',
- 'oid': (1, 3, 36, 3, 1, 1, 1, 1)},
- 'desECB_pad': {'comment': 'Teletrust encryption algorithm',
- 'description': 'desECB_pad (1 3 36 3 1 1 1)',
- 'hexoid': '06 06 2B 24 03 01 01 01',
- 'name': 'desECB_pad',
- 'oid': (1, 3, 36, 3, 1, 1, 1)},
- 'desEDE': {'comment': 'Oddball OIW OID. Mode is ECB',
- 'description': 'desEDE (1 3 14 3 2 17)',
- 'hexoid': '06 05 2B 0E 03 02 11',
- 'name': 'desEDE',
- 'oid': (1, 3, 14, 3, 2, 17)},
- 'desEDE2CbcIV8': {'comment': 'Novell encryption algorithm',
- 'description': 'desEDE2CbcIV8 (2 16 840 1 113719 1 2 8 24)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 18',
- 'name': 'desEDE2CbcIV8',
- 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 24)},
- 'desEDE2CbcPadIV8': {'comment': 'Novell encryption algorithm',
- 'description': 'desEDE2CbcPadIV8 (2 16 840 1 113719 1 2 8 25)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 19',
- 'name': 'desEDE2CbcPadIV8',
- 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 25)},
- 'desEDE3CbcIV8': {'comment': 'Novell encryption algorithm',
- 'description': 'desEDE3CbcIV8 (2 16 840 1 113719 1 2 8 26)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 1A',
- 'name': 'desEDE3CbcIV8',
- 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 26)},
- 'desEDE3CbcPadIV8': {'comment': 'Novell encryption algorithm',
- 'description': 'desEDE3CbcPadIV8 (2 16 840 1 113719 1 2 8 27)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 1B',
- 'name': 'desEDE3CbcPadIV8',
- 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 27)},
- 'desMAC': {'description': 'desMAC (1 3 14 3 2 10)',
- 'hexoid': '06 05 2B 0E 03 02 0A',
- 'name': 'desMAC',
- 'oid': (1, 3, 14, 3, 2, 10)},
- 'desOFB': {'description': 'desOFB (1 3 14 3 2 8)',
- 'hexoid': '06 05 2B 0E 03 02 08',
- 'name': 'desOFB',
- 'oid': (1, 3, 14, 3, 2, 8)},
- 'des_3': {'comment': 'Teletrust encryption algorithm',
- 'description': 'des_3 (1 3 36 3 1 3)',
- 'hexoid': '06 05 2B 24 03 01 03',
- 'name': 'des_3',
- 'oid': (1, 3, 36, 3, 1, 3)},
- 'des_3CBC_ISOpad': {'comment': 'Teletrust encryption algorithm. EDE triple DES',
- 'description': 'des_3CBC_ISOpad (1 3 36 3 1 3 2 1 1)',
- 'hexoid': '06 08 2B 24 03 01 03 02 01 01',
- 'name': 'des_3CBC_ISOpad',
- 'oid': (1, 3, 36, 3, 1, 3, 2, 1, 1)},
- 'des_3CBC_pad': {'comment': 'Teletrust encryption algorithm. EDE triple DES',
- 'description': 'des_3CBC_pad (1 3 36 3 1 3 2 1)',
- 'hexoid': '06 07 2B 24 03 01 03 02 01',
- 'name': 'des_3CBC_pad',
- 'oid': (1, 3, 36, 3, 1, 3, 2, 1)},
- 'des_3ECB_ISOpad': {'comment': 'Teletrust encryption algorithm. EDE triple DES',
- 'description': 'des_3ECB_ISOpad (1 3 36 3 1 3 1 1 1)',
- 'hexoid': '06 08 2B 24 03 01 03 01 01 01',
- 'name': 'des_3ECB_ISOpad',
- 'oid': (1, 3, 36, 3, 1, 3, 1, 1, 1)},
- 'des_3ECB_pad': {'comment': 'Teletrust encryption algorithm. EDE triple DES',
- 'description': 'des_3ECB_pad (1 3 36 3 1 3 1 1)',
- 'hexoid': '06 07 2B 24 03 01 03 01 01',
- 'name': 'des_3ECB_pad',
- 'oid': (1, 3, 36, 3, 1, 3, 1, 1)},
- 'description': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'description (2 5 4 13)',
- 'hexoid': '06 03 55 04 0D',
- 'name': 'description',
- 'oid': (2, 5, 4, 13)},
- 'destinationIndicator': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'destinationIndicator (2 5 4 27)',
- 'hexoid': '06 03 55 04 1B',
- 'name': 'destinationIndicator',
- 'oid': (2, 5, 4, 27)},
- 'desx-CBC': {'comment': 'RSADSI encryptionAlgorithm',
- 'description': 'desx-CBC (1 2 840 113549 3 6)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 03 06',
- 'name': 'desx-CBC',
- 'oid': (1, 2, 840, 113549, 3, 6)},
- 'device': {'comment': 'X.520 objectClass (2 5 6)',
- 'description': 'device (2 5 6 14)',
- 'hexoid': '06 03 55 06 0E',
- 'name': 'device',
- 'oid': (2, 5, 6, 14)},
- 'dh-pop': {'comment': 'PKIX algorithm',
- 'description': 'dh-pop (1 3 6 1 5 5 7 6 4)',
- 'hexoid': '06 08 2B 06 01 05 05 07 06 04',
- 'name': 'dh-pop',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 6, 4)},
- 'dh-sig-hmac-sha1': {'comment': 'PKIX algorithm',
- 'description': 'dh-sig-hmac-sha1 (1 3 6 1 5 5 7 6 3)',
- 'hexoid': '06 08 2B 06 01 05 05 07 06 03',
- 'name': 'dh-sig-hmac-sha1',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 6, 3)},
- 'dhEphem': {'comment': 'ANSI X9.42 scheme',
- 'description': 'dhEphem (1 2 840 10046 3 2)',
- 'hexoid': '06 07 2A 86 48 CE 3E 03 02',
- 'name': 'dhEphem',
- 'oid': (1, 2, 840, 10046, 3, 2)},
- 'dhHybrid1': {'comment': 'ANSI X9.42 scheme',
- 'description': 'dhHybrid1 (1 2 840 10046 3 3)',
- 'hexoid': '06 07 2A 86 48 CE 3E 03 03',
- 'name': 'dhHybrid1',
- 'oid': (1, 2, 840, 10046, 3, 3)},
- 'dhHybrid2': {'comment': 'ANSI X9.42 scheme',
- 'description': 'dhHybrid2 (1 2 840 10046 3 4)',
- 'hexoid': '06 07 2A 86 48 CE 3E 03 04',
- 'name': 'dhHybrid2',
- 'oid': (1, 2, 840, 10046, 3, 4)},
- 'dhKeyAgreement': {'comment': 'PKCS #3',
- 'description': 'dhKeyAgreement (1 2 840 113549 1 3 1)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 03 01',
- 'name': 'dhKeyAgreement',
- 'oid': (1, 2, 840, 113549, 1, 3, 1)},
- 'dhPublicKey': {'comment': 'ANSI X9.42 number type',
- 'description': 'dhPublicKey (1 2 840 10046 2 1)',
- 'hexoid': '06 07 2A 86 48 CE 3E 02 01',
- 'name': 'dhPublicKey',
- 'oid': (1, 2, 840, 10046, 2, 1)},
- 'dhStatic': {'comment': 'ANSI X9.42 scheme',
- 'description': 'dhStatic (1 2 840 10046 3 1)',
- 'hexoid': '06 07 2A 86 48 CE 3E 03 01',
- 'name': 'dhStatic',
- 'oid': (1, 2, 840, 10046, 3, 1)},
- 'digestAlgorithm': {'description': 'digestAlgorithm (1 2 840 113549 2)',
- 'hexoid': '06 07 2A 86 48 86 F7 0D 02',
- 'name': 'digestAlgorithm',
- 'oid': (1, 2, 840, 113549, 2)},
- 'digestedData': {'comment': 'PKCS #7',
- 'description': 'digestedData (1 2 840 113549 1 7 5)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 07 05',
- 'name': 'digestedData',
- 'oid': (1, 2, 840, 113549, 1, 7, 5)},
- 'directory': {'comment': 'Netscape',
- 'description': 'directory (2 16 840 1 113730 3)',
- 'hexoid': '06 08 60 86 48 01 86 F8 42 03',
- 'name': 'directory',
- 'oid': (2, 16, 840, 1, 113730, 3)},
- 'directoryGroup': {'comment': 'Telesec object class',
- 'description': 'directoryGroup (0 2 262 1 10 3 3)',
- 'hexoid': '06 07 02 82 06 01 0A 03 03',
- 'name': 'directoryGroup',
- 'oid': (0, 2, 262, 1, 10, 3, 3)},
- 'directoryGroupName': {'comment': 'Telesec attribute',
- 'description': 'directoryGroupName (0 2 262 1 10 7 32)',
- 'hexoid': '06 07 02 82 06 01 0A 07 20',
- 'name': 'directoryGroupName',
- 'oid': (0, 2, 262, 1, 10, 7, 32)},
- 'directoryName': {'comment': 'Telesec attribute',
- 'description': 'directoryName (0 2 262 1 10 7 30)',
- 'hexoid': '06 07 02 82 06 01 0A 07 1E',
- 'name': 'directoryName',
- 'oid': (0, 2, 262, 1, 10, 7, 30)},
- 'directoryService': {'comment': 'Teletrust extended key usage',
- 'description': 'directoryService (1 3 36 8 2 1)',
- 'hexoid': '06 05 2B 24 08 02 01',
- 'name': 'directoryService',
- 'oid': (1, 3, 36, 8, 2, 1)},
- 'directoryType': {'comment': 'Telesec object class',
- 'description': 'directoryType (0 2 262 1 10 3 2)',
- 'hexoid': '06 07 02 82 06 01 0A 03 02',
- 'name': 'directoryType',
- 'oid': (0, 2, 262, 1, 10, 3, 2)},
- 'directoryTypeName': {'comment': 'Telesec attribute',
- 'description': 'directoryTypeName (0 2 262 1 10 7 31)',
- 'hexoid': '06 07 02 82 06 01 0A 07 1F',
- 'name': 'directoryTypeName',
- 'oid': (0, 2, 262, 1, 10, 7, 31)},
- 'directoryUser': {'comment': 'Telesec object class',
- 'description': 'directoryUser (0 2 262 1 10 3 4)',
- 'hexoid': '06 07 02 82 06 01 0A 03 04',
- 'name': 'directoryUser',
- 'oid': (0, 2, 262, 1, 10, 3, 4)},
- 'directoryUserName': {'comment': 'Telesec attribute',
- 'description': 'directoryUserName (0 2 262 1 10 7 33)',
- 'hexoid': '06 07 02 82 06 01 0A 07 21',
- 'name': 'directoryUserName',
- 'oid': (0, 2, 262, 1, 10, 7, 33)},
- 'distinguishedName': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'distinguishedName (2 5 4 49)',
- 'hexoid': '06 03 55 04 31',
- 'name': 'distinguishedName',
- 'oid': (2, 5, 4, 49)},
- 'dmdName': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'dmdName (2 5 4 54)',
- 'hexoid': '06 03 55 04 36',
- 'name': 'dmdName',
- 'oid': (2, 5, 4, 54)},
- 'dnQualifier': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'dnQualifier (2 5 4 46)',
- 'hexoid': '06 03 55 04 2E',
- 'name': 'dnQualifier',
- 'oid': (2, 5, 4, 46)},
- 'document': {'comment': 'Teletrust document',
- 'description': 'document (1 3 36 1)',
- 'hexoid': '06 03 2B 24 01',
- 'name': 'document',
- 'oid': (1, 3, 36, 1)},
- 'domainComponent': {'comment': 'Men are from Mars, this OID is from Pluto',
- 'description': 'domainComponent (0 9 2342 19200300 100 1 25)',
- 'hexoid': '06 0A 09 92 26 89 93 F2 2C 64 01 19',
- 'name': 'domainComponent',
- 'oid': (0, 9, 2342, 19200300, 100, 1, 25)},
- 'domainSig': {'comment': 'S/MIME Signature Type Identifier',
- 'description': 'domainSig (1 2 840 113549 1 9 16 9 2)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 09 02',
- 'name': 'domainSig',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 9, 2)},
- 'draft': {'comment': 'Teletrust document',
- 'description': 'draft (1 3 36 1 2)',
- 'hexoid': '06 04 2B 24 01 02',
- 'name': 'draft',
- 'oid': (1, 3, 36, 1, 2)},
- 'dsa': {'comment': 'ANSI X9.57 algorithm',
- 'description': 'dsa (1 2 840 10040 4 1)',
- 'hexoid': '06 07 2A 86 48 CE 38 04 01',
- 'name': 'dsa',
- 'oid': (1, 2, 840, 10040, 4, 1)},
- 'dsa-match': {'comment': 'ANSI X9.57 algorithm',
- 'description': 'dsa-match (1 2 840 10040 4 2)',
- 'hexoid': '06 07 2A 86 48 CE 38 04 02',
- 'name': 'dsa-match',
- 'oid': (1, 2, 840, 10040, 4, 2)},
- 'dsaExtended': {'comment': 'Teletrust signature algorithm',
- 'description': 'dsaExtended (1 3 36 8 5 1 2 1)',
- 'hexoid': '06 07 2B 24 08 05 01 02 01',
- 'name': 'dsaExtended',
- 'oid': (1, 3, 36, 8, 5, 1, 2, 1)},
- 'dsaWithCommonSHA1': {'comment': 'OIW',
- 'description': 'dsaWithCommonSHA1 (1 3 14 3 2 28)',
- 'hexoid': '06 05 2B 0E 03 02 1C',
- 'name': 'dsaWithCommonSHA1',
- 'oid': (1, 3, 14, 3, 2, 28)},
- 'dsaWithRIPEMD160': {'comment': 'Teletrust signature algorithm',
- 'description': 'dsaWithRIPEMD160 (1 3 36 8 5 1 2 2)',
- 'hexoid': '06 07 2B 24 08 05 01 02 02',
- 'name': 'dsaWithRIPEMD160',
- 'oid': (1, 3, 36, 8, 5, 1, 2, 2)},
- 'dsaWithSHA1': {'comment': 'OIW. This OID may also be assigned as ripemd-160',
- 'description': 'dsaWithSHA1 (1 3 14 3 2 27)',
- 'hexoid': '06 05 2B 0E 03 02 1B',
- 'name': 'dsaWithSHA1',
- 'oid': (1, 3, 14, 3, 2, 27)},
- 'dsaWithSha1': {'comment': 'ANSI X9.57 algorithm',
- 'description': 'dsaWithSha1 (1 2 840 10040 4 3)',
- 'hexoid': '06 07 2A 86 48 CE 38 04 03',
- 'name': 'dsaWithSha1',
- 'oid': (1, 2, 840, 10040, 4, 3)},
- 'dsaWithSha224': {'comment': 'NIST Algorithm',
- 'description': 'dsaWithSha224 (2 16 840 1 101 3 4 3 1)',
- 'hexoid': '06 09 60 86 48 01 65 03 04 03 01',
- 'name': 'dsaWithSha224',
- 'oid': (2, 16, 840, 1, 101, 3, 4, 3, 1)},
- 'dsaWithSha256': {'comment': 'NIST Algorithm',
- 'description': 'dsaWithSha256 (2 16 840 1 101 3 4 3 2)',
- 'hexoid': '06 09 60 86 48 01 65 03 04 03 02',
- 'name': 'dsaWithSha256',
- 'oid': (2, 16, 840, 1, 101, 3, 4, 3, 2)},
- 'dvcs': {'comment': 'PKIX key purpose',
- 'description': 'dvcs (1 3 6 1 5 5 7 3 10)',
- 'hexoid': '06 08 2B 06 01 05 05 07 03 0A',
- 'name': 'dvcs',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 10)},
- 'dvcs-dvc': {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'dvcs-dvc (1 2 840 113549 1 9 16 2 29)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 1D',
- 'name': 'dvcs-dvc',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 29)},
- 'e-COMM': {'comment': 'SET vendor',
- 'description': 'e-COMM (2 23 42 9 37)',
- 'hexoid': '06 04 67 2A 09 25',
- 'name': 'e-COMM',
- 'oid': (2, 23, 42, 9, 37)},
- 'eLab': {'comment': 'SET vendor',
- 'description': 'eLab (2 23 42 9 22)',
- 'hexoid': '06 04 67 2A 09 16',
- 'name': 'eLab',
- 'oid': (2, 23, 42, 9, 22)},
- 'eapOverPPP': {'comment': 'PKIX key purpose',
- 'description': 'eapOverPPP (1 3 6 1 5 5 7 3 13)',
- 'hexoid': '06 08 2B 06 01 05 05 07 03 0D',
- 'name': 'eapOverPPP',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 13)},
- 'ecPublicKey': {'comment': 'ANSI X9.62 public key type',
- 'description': 'ecPublicKey (1 2 840 10045 2 1)',
- 'hexoid': '06 07 2A 86 48 CE 3D 02 01',
- 'name': 'ecPublicKey',
- 'oid': (1, 2, 840, 10045, 2, 1)},
- 'ecdsaWithRecommended': {'comment': 'ANSI X9.62 ECDSA algorithm with Recommended',
- 'description': 'ecdsaWithRecommended (1 2 840 10045 4 2)',
- 'hexoid': '06 07 2A 86 48 CE 3D 04 02',
- 'name': 'ecdsaWithRecommended',
- 'oid': (1, 2, 840, 10045, 4, 2)},
- 'ecdsaWithSHA1': {'comment': 'ANSI X9.62 ECDSA algorithm with SHA1',
- 'description': 'ecdsaWithSHA1 (1 2 840 10045 4 1)',
- 'hexoid': '06 07 2A 86 48 CE 3D 04 01',
- 'name': 'ecdsaWithSHA1',
- 'oid': (1, 2, 840, 10045, 4, 1)},
- 'ecdsaWithSHA224': {'comment': 'ANSI X9.62 ECDSA algorithm with SHA224',
- 'description': 'ecdsaWithSHA224 (1 2 840 10045 4 3 1)',
- 'hexoid': '06 08 2A 86 48 CE 3D 04 03 01',
- 'name': 'ecdsaWithSHA224',
- 'oid': (1, 2, 840, 10045, 4, 3, 1)},
- 'ecdsaWithSHA256': {'comment': 'ANSI X9.62 ECDSA algorithm with SHA256',
- 'description': 'ecdsaWithSHA256 (1 2 840 10045 4 3 2)',
- 'hexoid': '06 08 2A 86 48 CE 3D 04 03 02',
- 'name': 'ecdsaWithSHA256',
- 'oid': (1, 2, 840, 10045, 4, 3, 2)},
- 'ecdsaWithSHA384': {'comment': 'ANSI X9.62 ECDSA algorithm with SHA384',
- 'description': 'ecdsaWithSHA384 (1 2 840 10045 4 3 3)',
- 'hexoid': '06 08 2A 86 48 CE 3D 04 03 03',
- 'name': 'ecdsaWithSHA384',
- 'oid': (1, 2, 840, 10045, 4, 3, 3)},
- 'ecdsaWithSHA512': {'comment': 'ANSI X9.62 ECDSA algorithm with SHA512',
- 'description': 'ecdsaWithSHA512 (1 2 840 10045 4 3 4)',
- 'hexoid': '06 08 2A 86 48 CE 3D 04 03 04',
- 'name': 'ecdsaWithSHA512',
- 'oid': (1, 2, 840, 10045, 4, 3, 4)},
- 'ecdsaWithSpecified': {'comment': 'ANSI X9.62 ECDSA algorithm with Specified',
- 'description': 'ecdsaWithSpecified (1 2 840 10045 4 3)',
- 'hexoid': '06 07 2A 86 48 CE 3D 04 03',
- 'name': 'ecdsaWithSpecified',
- 'oid': (1, 2, 840, 10045, 4, 3)},
- 'eciaAscX12Edi': {'comment': 'TMN EDI for Interactive Agents',
- 'description': 'eciaAscX12Edi (1 3 6 1 4 1 3576 7)',
- 'hexoid': '06 08 2B 06 01 04 01 9B 78 07',
- 'name': 'eciaAscX12Edi',
- 'oid': (1, 3, 6, 1, 4, 1, 3576, 7)},
- 'eciaEdifact': {'comment': 'TMN EDI for Interactive Agents',
- 'description': 'eciaEdifact (1 3 6 1 4 1 3576 8)',
- 'hexoid': '06 08 2B 06 01 04 01 9B 78 08',
- 'name': 'eciaEdifact',
- 'oid': (1, 3, 6, 1, 4, 1, 3576, 8)},
- 'eciaNonEdi': {'comment': 'TMN EDI for Interactive Agents',
- 'description': 'eciaNonEdi (1 3 6 1 4 1 3576 9)',
- 'hexoid': '06 08 2B 06 01 04 01 9B 78 09',
- 'name': 'eciaNonEdi',
- 'oid': (1, 3, 6, 1, 4, 1, 3576, 9)},
- 'ecsieSign': {'comment': 'Teletrust signature algorithm',
- 'description': 'ecsieSign (1 3 36 3 3 2)',
- 'hexoid': '06 05 2B 24 03 03 02',
- 'name': 'ecsieSign',
- 'oid': (1, 3, 36, 3, 3, 2)},
- 'ecsieSignWithmd2': {'comment': 'Teletrust signature algorithm',
- 'description': 'ecsieSignWithmd2 (1 3 36 3 3 2 3)',
- 'hexoid': '06 06 2B 24 03 03 02 03',
- 'name': 'ecsieSignWithmd2',
- 'oid': (1, 3, 36, 3, 3, 2, 3)},
- 'ecsieSignWithmd5': {'comment': 'Teletrust signature algorithm',
- 'description': 'ecsieSignWithmd5 (1 3 36 3 3 2 4)',
- 'hexoid': '06 06 2B 24 03 03 02 04',
- 'name': 'ecsieSignWithmd5',
- 'oid': (1, 3, 36, 3, 3, 2, 4)},
- 'ecsieSignWithripemd160': {'comment': 'Teletrust signature algorithm',
- 'description': 'ecsieSignWithripemd160 (1 3 36 3 3 2 2)',
- 'hexoid': '06 06 2B 24 03 03 02 02',
- 'name': 'ecsieSignWithripemd160',
- 'oid': (1, 3, 36, 3, 3, 2, 2)},
- 'ecsieSignWithsha1': {'comment': 'Teletrust signature algorithm',
- 'description': 'ecsieSignWithsha1 (1 3 36 3 3 2 1)',
- 'hexoid': '06 06 2B 24 03 03 02 01',
- 'name': 'ecsieSignWithsha1',
- 'oid': (1, 3, 36, 3, 3, 2, 1)},
- 'electronicOrder': {'comment': 'Telesec module',
- 'description': 'electronicOrder (0 2 262 1 10 2 10)',
- 'hexoid': '06 07 02 82 06 01 0A 02 0A',
- 'name': 'electronicOrder',
- 'oid': (0, 2, 262, 1, 10, 2, 10)},
- 'elgamal': {'comment': 'cryptlib public-key algorithm',
- 'description': 'elgamal (1 3 6 1 4 1 3029 1 2 1)',
- 'hexoid': '06 0A 2B 06 01 04 01 97 55 01 02 01',
- 'name': 'elgamal',
- 'oid': (1, 3, 6, 1, 4, 1, 3029, 1, 2, 1)},
- 'elgamalWithRIPEMD-160': {'comment': 'cryptlib public-key algorithm',
- 'description': 'elgamalWithRIPEMD-160 (1 3 6 1 4 1 3029 1 2 1 2)',
- 'hexoid': '06 0B 2B 06 01 04 01 97 55 01 02 01 02',
- 'name': 'elgamalWithRIPEMD-160',
- 'oid': (1, 3, 6, 1, 4, 1, 3029, 1, 2, 1, 2)},
- 'elgamalWithSHA-1': {'comment': 'cryptlib public-key algorithm',
- 'description': 'elgamalWithSHA-1 (1 3 6 1 4 1 3029 1 2 1 1)',
- 'hexoid': '06 0B 2B 06 01 04 01 97 55 01 02 01 01',
- 'name': 'elgamalWithSHA-1',
- 'oid': (1, 3, 6, 1, 4, 1, 3029, 1, 2, 1, 1)},
- 'emailAddress': {'comment': 'PKCS #9. Deprecated, use an altName extension instead',
- 'description': 'emailAddress (1 2 840 113549 1 9 1)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 01',
- 'name': 'emailAddress',
- 'oid': (1, 2, 840, 113549, 1, 9, 1)},
- 'emailProtection': {'comment': 'PKIX key purpose',
- 'description': 'emailProtection (1 3 6 1 5 5 7 3 4)',
- 'hexoid': '06 08 2B 06 01 05 05 07 03 04',
- 'name': 'emailProtection',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 4)},
- 'employeeNumber': {'comment': 'Netscape LDAP definitions',
- 'description': 'employeeNumber (2 16 840 1 113730 3 1 3)',
- 'hexoid': '06 0A 60 86 48 01 86 F8 42 03 01 03',
- 'name': 'employeeNumber',
- 'oid': (2, 16, 840, 1, 113730, 3, 1, 3)},
- 'employeeType': {'comment': 'Netscape LDAP definitions',
- 'description': 'employeeType (2 16 840 1 113730 3 1 4)',
- 'hexoid': '06 0A 60 86 48 01 86 F8 42 03 01 04',
- 'name': 'employeeType',
- 'oid': (2, 16, 840, 1, 113730, 3, 1, 4)},
- 'emptyContent': {'comment': 'SDN.700 INFOSEC format',
- 'description': 'emptyContent (2 16 840 1 101 2 1 2 2)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 02 02',
- 'name': 'emptyContent',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 2)},
- 'encAttrs': {'comment': 'PKIX attribute certificate extension',
- 'description': 'encAttrs (1 3 6 1 5 5 7 10 6)',
- 'hexoid': '06 08 2B 06 01 05 05 07 0A 06',
- 'name': 'encAttrs',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 10, 6)},
- 'encISO9796-2Withrsa': {'comment': 'Teletrust key management. 9796-2 with key stored in hash field',
- 'description': 'encISO9796-2Withrsa (1 3 36 7 2 1)',
- 'hexoid': '06 05 2B 24 07 02 01',
- 'name': 'encISO9796-2Withrsa',
- 'oid': (1, 3, 36, 7, 2, 1)},
- 'encKeyPairTypes': {'comment': 'PKIX CMP information',
- 'description': 'encKeyPairTypes (1 3 6 1 5 5 7 4 3)',
- 'hexoid': '06 08 2B 06 01 05 05 07 04 03',
- 'name': 'encKeyPairTypes',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 3)},
- 'encrypKeyPref': {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'encrypKeyPref (1 2 840 113549 1 9 16 2 11)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 0B',
- 'name': 'encrypKeyPref',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 11)},
- 'encryptedData': {'comment': 'PKCS #7',
- 'description': 'encryptedData (1 2 840 113549 1 7 6)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 07 06',
- 'name': 'encryptedData',
- 'oid': (1, 2, 840, 113549, 1, 7, 6)},
- 'encryptedFileSystem': {'comment': 'Microsoft enhanced key usage',
- 'description': 'encryptedFileSystem (1 3 6 1 4 1 311 10 3 4)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 0A 03 04',
- 'name': 'encryptedFileSystem',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 10, 3, 4)},
- 'encryptedKeyHash': {'comment': 'Microsoft attribute',
- 'description': 'encryptedKeyHash (1 3 6 1 4 1 311 21 21)',
- 'hexoid': '06 09 2B 06 01 04 01 82 37 15 15',
- 'name': 'encryptedKeyHash',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 21, 21)},
- 'encryptedPrivateKeyInfo': {'comment': 'PKCS #9/RFC 2985 attribute',
- 'description': 'encryptedPrivateKeyInfo (1 2 840 113549 1 9 25 2)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 19 02',
- 'name': 'encryptedPrivateKeyInfo',
- 'oid': (1, 2, 840, 113549, 1, 9, 25, 2)},
- 'encryption': {'comment': 'Telesec mechanism',
- 'description': 'encryption (0 2 262 1 10 1 2)',
- 'hexoid': '06 07 02 82 06 01 0A 01 02',
- 'name': 'encryption',
- 'oid': (0, 2, 262, 1, 10, 1, 2)},
- 'encryptionAlgorithm': {'comment': 'Teletrust algorithm',
- 'description': 'encryptionAlgorithm (1 3 36 3 1)',
- 'hexoid': '06 04 2B 24 03 01',
- 'name': 'encryptionAlgorithm',
- 'oid': (1, 3, 36, 3, 1)},
- 'enhancedSearchGuide': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'enhancedSearchGuide (2 5 4 47)',
- 'hexoid': '06 03 55 04 2F',
- 'name': 'enhancedSearchGuide',
- 'oid': (2, 5, 4, 47)},
- 'enrollCerttypeExtension': {'comment': 'Microsoft CAPICOM certificate template, V1',
- 'description': 'enrollCerttypeExtension (1 3 6 1 4 1 311 20 2)',
- 'hexoid': '06 09 2B 06 01 04 01 82 37 14 02',
- 'name': 'enrollCerttypeExtension',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 20, 2)},
- 'enrolmentCSP': {'comment': 'Microsoft attribute',
- 'description': 'enrolmentCSP (1 3 6 1 4 1 311 13 2 2)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 0D 02 02',
- 'name': 'enrolmentCSP',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 13, 2, 2)},
- 'enrolmentNameValuePair': {'comment': 'Microsoft attribute',
- 'description': 'enrolmentNameValuePair (1 3 6 1 4 1 311 13 2 1)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 0D 02 01',
- 'name': 'enrolmentNameValuePair',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 13, 2, 1)},
- 'entrustCAInfo': {'comment': 'Nortel Secure Networks at',
- 'description': 'entrustCAInfo (1 2 840 113533 7 68 0)',
- 'hexoid': '06 09 2A 86 48 86 F6 7D 07 44 00',
- 'name': 'entrustCAInfo',
- 'oid': (1, 2, 840, 113533, 7, 68, 0)},
- 'entrustUser': {'comment': 'Nortel Secure Networks oc',
- 'description': 'entrustUser (1 2 840 113533 7 67 0)',
- 'hexoid': '06 09 2A 86 48 86 F6 7D 07 43 00',
- 'name': 'entrustUser',
- 'oid': (1, 2, 840, 113533, 7, 67, 0)},
- 'entrustVersInfo': {'comment': 'Nortel Secure Networks ce',
- 'description': 'entrustVersInfo (1 2 840 113533 7 65 0)',
- 'hexoid': '06 09 2A 86 48 86 F6 7D 07 41 00',
- 'name': 'entrustVersInfo',
- 'oid': (1, 2, 840, 113533, 7, 65, 0)},
- 'envelopedData': {'comment': 'PKCS #7',
- 'description': 'envelopedData (1 2 840 113549 1 7 3)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 07 03',
- 'name': 'envelopedData',
- 'oid': (1, 2, 840, 113549, 1, 7, 3)},
- 'equivalentLabels': {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'equivalentLabels (1 2 840 113549 1 9 16 2 9)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 09',
- 'name': 'equivalentLabels',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 9)},
- 'esDH': {'comment': 'S/MIME Algorithms',
- 'description': 'esDH (1 2 840 113549 1 9 16 3 5)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 03 05',
- 'name': 'esDH',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 3, 5)},
- 'escTimeStamp': {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'escTimeStamp (1 2 840 113549 1 9 16 2 25)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 19',
- 'name': 'escTimeStamp',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 25)},
- 'espace-net': {'comment': 'SET vendor',
- 'description': 'espace-net (2 23 42 9 31)',
- 'hexoid': '06 04 67 2A 09 1F',
- 'name': 'espace-net',
- 'oid': (2, 23, 42, 9, 31)},
- 'etsiQcs': {'comment': 'ETSI TS 101 862 qualified certificates',
- 'description': 'etsiQcs (0 4 0 1862 1)',
- 'hexoid': '06 05 04 00 8E 46 01',
- 'name': 'etsiQcs',
- 'oid': (0, 4, 0, 1862, 1)},
- 'etsiQcsCompliance': {'comment': 'ETSI TS 101 862 qualified certificates',
- 'description': 'etsiQcsCompliance (0 4 0 1862 1 1)',
- 'hexoid': '06 06 04 00 8E 46 01 01',
- 'name': 'etsiQcsCompliance',
- 'oid': (0, 4, 0, 1862, 1, 1)},
- 'etsiQcsLimitValue': {'comment': 'ETSI TS 101 862 qualified certificates',
- 'description': 'etsiQcsLimitValue (0 4 0 1862 1 2)',
- 'hexoid': '06 06 04 00 8E 46 01 02',
- 'name': 'etsiQcsLimitValue',
- 'oid': (0, 4, 0, 1862, 1, 2)},
- 'etsiQcsProfile': {'comment': 'ETSI TS 101 862 qualified certificates',
- 'description': 'etsiQcsProfile (0 4 0 1862)',
- 'hexoid': '06 04 04 00 8E 46',
- 'name': 'etsiQcsProfile',
- 'oid': (0, 4, 0, 1862)},
- 'etsiQcsQcSSCD': {'comment': 'ETSI TS 101 862 qualified certificates',
- 'description': 'etsiQcsQcSSCD (0 4 0 1862 1 4)',
- 'hexoid': '06 06 04 00 8E 46 01 04',
- 'name': 'etsiQcsQcSSCD',
- 'oid': (0, 4, 0, 1862, 1, 4)},
- 'etsiQcsRetentionPeriod': {'comment': 'ETSI TS 101 862 qualified certificates',
- 'description': 'etsiQcsRetentionPeriod (0 4 0 1862 1 3)',
- 'hexoid': '06 06 04 00 8E 46 01 03',
- 'name': 'etsiQcsRetentionPeriod',
- 'oid': (0, 4, 0, 1862, 1, 3)},
- 'extKeyUsage': {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'extKeyUsage (2 5 29 37)',
- 'hexoid': '06 03 55 1D 25',
- 'name': 'extKeyUsage',
- 'oid': (2, 5, 29, 37)},
- 'extendedCertificateAttributes': {'comment': 'PKCS #9',
- 'description': 'extendedCertificateAttributes (1 2 840 113549 1 9 9)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 09',
- 'name': 'extendedCertificateAttributes',
- 'oid': (1, 2, 840, 113549, 1, 9, 9)},
- 'extension': {'comment': 'Telesec',
- 'description': 'extension (0 2 262 1 10 0)',
- 'hexoid': '06 06 02 82 06 01 0A 00',
- 'name': 'extension',
- 'oid': (0, 2, 262, 1, 10, 0)},
- 'extensionRequest': {'comment': 'PKCS #9 via CRMF',
- 'description': 'extensionRequest (1 2 840 113549 1 9 14)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 0E',
- 'name': 'extensionRequest',
- 'oid': (1, 2, 840, 113549, 1, 9, 14)},
- 'facsimileTelephoneNumber': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'facsimileTelephoneNumber (2 5 4 23)',
- 'hexoid': '06 03 55 04 17',
- 'name': 'facsimileTelephoneNumber',
- 'oid': (2, 5, 4, 23)},
- 'failInfo': {'comment': 'Verisign PKCS #7 attribute',
- 'description': 'failInfo (2 16 840 1 113733 1 9 4)',
- 'hexoid': '06 0A 60 86 48 01 86 F8 45 01 09 04',
- 'name': 'failInfo',
- 'oid': (2, 16, 840, 1, 113733, 1, 9, 4)},
- 'familyInformation': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'familyInformation (2 5 4 64)',
- 'hexoid': '06 03 55 04 40',
- 'name': 'familyInformation',
- 'oid': (2, 5, 4, 64)},
- 'familyName': {'comment': 'SET field',
- 'description': 'familyName (2 23 42 2 2)',
- 'hexoid': '06 04 67 2A 02 02',
- 'name': 'familyName',
- 'oid': (2, 23, 42, 2, 2)},
- 'febUKMs': {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'febUKMs (2 16 840 1 101 2 1 5 21)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 15',
- 'name': 'febUKMs',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 21)},
- 'fec': {'comment': 'Telesec module',
- 'description': 'fec (0 2 262 1 10 2 6)',
- 'hexoid': '06 07 02 82 06 01 0A 02 06',
- 'name': 'fec',
- 'oid': (0, 2, 262, 1, 10, 2, 6)},
- 'fecFunction': {'comment': 'Telesec mechanism',
- 'description': 'fecFunction (0 2 262 1 10 1 4)',
- 'hexoid': '06 07 02 82 06 01 0A 01 04',
- 'name': 'fecFunction',
- 'oid': (0, 2, 262, 1, 10, 1, 4)},
- 'field': {'comment': 'SET',
- 'description': 'field (2 23 42 2)',
- 'hexoid': '06 03 67 2A 02',
- 'name': 'field',
- 'oid': (2, 23, 42, 2)},
- 'fieldType': {'comment': 'ANSI X9.42',
- 'description': 'fieldType (1 2 840 10046 1)',
- 'hexoid': '06 06 2A 86 48 CE 3E 01',
- 'name': 'fieldType',
- 'oid': (1, 2, 840, 10046, 1)},
- 'fileName': {'comment': 'Teletrust signature attributes',
- 'description': 'fileName (1 3 36 8 6 5)',
- 'hexoid': '06 05 2B 24 08 06 05',
- 'name': 'fileName',
- 'oid': (1, 3, 36, 8, 6, 5)},
- 'fileSize': {'comment': 'Teletrust signature attributes',
- 'description': 'fileSize (1 3 36 8 6 7)',
- 'hexoid': '06 05 2B 24 08 06 07',
- 'name': 'fileSize',
- 'oid': (1, 3, 36, 8, 6, 7)},
- 'fileType': {'comment': 'Telesec attribute',
- 'description': 'fileType (0 2 262 1 10 7 26)',
- 'hexoid': '06 07 02 82 06 01 0A 07 1A',
- 'name': 'fileType',
- 'oid': (0, 2, 262, 1, 10, 7, 26)},
- 'finalVersion': {'comment': 'Teletrust document',
- 'description': 'finalVersion (1 3 36 1 1)',
- 'hexoid': '06 04 2B 24 01 01',
- 'name': 'finalVersion',
- 'oid': (1, 3, 36, 1, 1)},
- 'fortezzaCKL': {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'fortezzaCKL (2 16 840 1 101 2 1 5 46)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 2E',
- 'name': 'fortezzaCKL',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 46)},
- 'fortezzaConfidentialityAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms. Formerly known as mosaicConfidentialityAlgorithm',
- 'description': 'fortezzaConfidentialityAlgorithm (2 16 840 1 101 2 1 1 4)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 04',
- 'name': 'fortezzaConfidentialityAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 4)},
- 'fortezzaIntegrityAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms. Formerly known as mosaicIntegrityAlgorithm',
- 'description': 'fortezzaIntegrityAlgorithm (2 16 840 1 101 2 1 1 6)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 06',
- 'name': 'fortezzaIntegrityAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 6)},
- 'fortezzaKMandSigAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms. Formerly known as mosaicKMandSigAlgorithm',
- 'description': 'fortezzaKMandSigAlgorithm (2 16 840 1 101 2 1 1 12)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 0C',
- 'name': 'fortezzaKMandSigAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 12)},
- 'fortezzaKMandUpdSigAlgorithms': {'comment': 'SDN.700 INFOSEC algorithms. Formerly known as mosaicKMandUpdSigAlgorithms',
- 'description': 'fortezzaKMandUpdSigAlgorithms (2 16 840 1 101 2 1 1 20)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 14',
- 'name': 'fortezzaKMandUpdSigAlgorithms',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 20)},
- 'fortezzaKeyManagementAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms. Formerly known as mosaicKeyManagementAlgorithm',
- 'description': 'fortezzaKeyManagementAlgorithm (2 16 840 1 101 2 1 1 10)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 0A',
- 'name': 'fortezzaKeyManagementAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 10)},
- 'fortezzaSignatureAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms. Formerly known as mosaicSignatureAlgorithm, this OID is better known as dsaWithSHA-1.',
- 'description': 'fortezzaSignatureAlgorithm (2 16 840 1 101 2 1 1 2)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 02',
- 'name': 'fortezzaSignatureAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 2)},
- 'fortezzaTokenProtectionAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms. Formerly know as mosaicTokenProtectionAlgorithm',
- 'description': 'fortezzaTokenProtectionAlgorithm (2 16 840 1 101 2 1 1 8)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 08',
- 'name': 'fortezzaTokenProtectionAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 8)},
- 'fortezzaUpdatedIntegAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms. Formerly known as mosaicUpdatedIntegAlgorithm',
- 'description': 'fortezzaUpdatedIntegAlgorithm (2 16 840 1 101 2 1 1 21)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 15',
- 'name': 'fortezzaUpdatedIntegAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 21)},
- 'fortezzaUpdatedSigAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms. Formerly known as mosaicUpdatedSigAlgorithm',
- 'description': 'fortezzaUpdatedSigAlgorithm (2 16 840 1 101 2 1 1 19)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 13',
- 'name': 'fortezzaUpdatedSigAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 19)},
- 'fortezzaWrap80Algorithm': {'comment': 'SDN.700 INFOSEC algorithms',
- 'description': 'fortezzaWrap80Algorithm (2 16 840 1 101 2 1 1 23)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 17',
- 'name': 'fortezzaWrap80Algorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 23)},
- 'forwardedCSPMsgBodyPart': {'comment': 'SDN.700 INFOSEC format',
- 'description': 'forwardedCSPMsgBodyPart (2 16 840 1 101 2 1 2 74)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 02 4A',
- 'name': 'forwardedCSPMsgBodyPart',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 74)},
- 'forwardedMSPMessageBodyPart': {'comment': 'SDN.700 INFOSEC format',
- 'description': 'forwardedMSPMessageBodyPart (2 16 840 1 101 2 1 2 72)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 02 48',
- 'name': 'forwardedMSPMessageBodyPart',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 72)},
- 'freshestCRL': {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'freshestCRL (2 5 29 46)',
- 'hexoid': '06 03 55 1D 2E',
- 'name': 'freshestCRL',
- 'oid': (2, 5, 29, 46)},
- 'friendlyName': {'comment': 'PKCS #9 via PKCS #12',
- 'description': 'friendlyName (for PKCS #12) (1 2 840 113549 1 9 20)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 14',
- 'name': 'friendlyName',
- 'oid': (1, 2, 840, 113549, 1, 9, 20)},
- 'fullName': {'comment': 'SET field',
- 'description': 'fullName (2 23 42 2 0)',
- 'hexoid': '06 04 67 2A 02 00',
- 'name': 'fullName',
- 'oid': (2, 23, 42, 2, 0)},
- 'functionality-specific_api': {'comment': 'Teletrust API',
- 'description': 'functionality-specific_api (1 3 36 6 2)',
- 'hexoid': '06 04 2B 24 06 02',
- 'name': 'functionality-specific_api',
- 'oid': (1, 3, 36, 6, 2)},
- 'gKeyData': {'comment': 'Telesec attribute',
- 'description': 'gKeyData (0 2 262 1 10 7 38)',
- 'hexoid': '06 07 02 82 06 01 0A 07 26',
- 'name': 'gKeyData',
- 'oid': (0, 2, 262, 1, 10, 7, 38)},
- 'gender': {'comment': 'PKIX personal data',
- 'description': 'gender (1 3 6 1 5 5 7 9 3)',
- 'hexoid': '06 08 2B 06 01 05 05 07 09 03',
- 'name': 'gender',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 9, 3)},
- 'generationQualifier': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'generationQualifier (2 5 4 44)',
- 'hexoid': '06 03 55 04 2C',
- 'name': 'generationQualifier',
- 'oid': (2, 5, 4, 44)},
- 'genser': {'comment': 'SDN.700 INFOSEC policy',
- 'description': 'genser (2 16 840 1 101 2 1 3 11)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 03 0B',
- 'name': 'genser',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 11)},
- 'genserSecurityCategories': {'comment': 'SDN.700 INFOSEC policy',
- 'description': 'genserSecurityCategories (2 16 840 1 101 2 1 3 11 3)',
- 'hexoid': '06 0A 60 86 48 01 65 02 01 03 0B 03',
- 'name': 'genserSecurityCategories',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 11, 3)},
- 'genserTagSetName': {'comment': 'SDN.700 INFOSEC GENSER policy',
- 'description': 'genserTagSetName (2 16 840 1 101 2 1 3 11 3 0)',
- 'hexoid': '06 0B 60 86 48 01 65 02 01 03 0B 03 00',
- 'name': 'genserTagSetName',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 11, 3, 0)},
- 'gf-prime': {'comment': 'ANSI X9.42 field type',
- 'description': 'gf-prime (1 2 840 10046 1 1)',
- 'hexoid': '06 07 2A 86 48 CE 3E 01 01',
- 'name': 'gf-prime',
- 'oid': (1, 2, 840, 10046, 1, 1)},
- 'givenName': {'comment': 'SET field',
- 'description': 'givenName (2 23 42 2 1)',
- 'hexoid': '06 04 67 2A 02 01',
- 'name': 'givenName',
- 'oid': (2, 23, 42, 2, 1)},
- 'glNumber': {'comment': 'Telesec attribute',
- 'description': 'glNumber (0 2 262 1 10 7 36)',
- 'hexoid': '06 07 02 82 06 01 0A 07 24',
- 'name': 'glNumber',
- 'oid': (0, 2, 262, 1, 10, 7, 36)},
- 'gnu': {'comment': 'GNU Project (see http://www.gnupg.org/oids.html)',
- 'description': 'gnu (1 3 6 1 4 1 11591)',
- 'hexoid': '06 07 2B 06 01 04 01 DA 47',
- 'name': 'gnu',
- 'oid': (1, 3, 6, 1, 4, 1, 11591)},
- 'gnuDigestAlgorithm': {'comment': 'GNU digest algorithm',
- 'description': 'gnuDigestAlgorithm (1 3 6 1 4 1 11591 12)',
- 'hexoid': '06 08 2B 06 01 04 01 DA 47 0C',
- 'name': 'gnuDigestAlgorithm',
- 'oid': (1, 3, 6, 1, 4, 1, 11591, 12)},
- 'gnuEncryptionAlgorithm': {'comment': 'GNU encryption algorithm',
- 'description': 'gnuEncryptionAlgorithm (1 3 6 1 4 1 11591 13)',
- 'hexoid': '06 08 2B 06 01 04 01 DA 47 0D',
- 'name': 'gnuEncryptionAlgorithm',
- 'oid': (1, 3, 6, 1, 4, 1, 11591, 13)},
- 'gnuRadar': {'comment': 'GNU Radar',
- 'description': 'gnuRadar (1 3 6 1 4 1 11591 3)',
- 'hexoid': '06 08 2B 06 01 04 01 DA 47 03',
- 'name': 'gnuRadar',
- 'oid': (1, 3, 6, 1, 4, 1, 11591, 3)},
- 'gnuRadius': {'comment': 'GNU Radius',
- 'description': 'gnuRadius (1 3 6 1 4 1 11591 1)',
- 'hexoid': '06 08 2B 06 01 04 01 DA 47 01',
- 'name': 'gnuRadius',
- 'oid': (1, 3, 6, 1, 4, 1, 11591, 1)},
- 'goNumber': {'comment': 'Telesec attribute',
- 'description': 'goNumber (0 2 262 1 10 7 37)',
- 'hexoid': '06 07 02 82 06 01 0A 07 25',
- 'name': 'goNumber',
- 'oid': (0, 2, 262, 1, 10, 7, 37)},
- 'group': {'comment': 'PKIX attribute certificate extension',
- 'description': 'group (1 3 6 1 5 5 7 10 4)',
- 'hexoid': '06 08 2B 06 01 05 05 07 0A 04',
- 'name': 'group',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 10, 4)},
- 'groupOfNames': {'comment': 'X.520 objectClass (2 5 6)',
- 'description': 'groupOfNames (2 5 6 9)',
- 'hexoid': '06 03 55 06 09',
- 'name': 'groupOfNames',
- 'oid': (2, 5, 6, 9)},
- 'groupOfUniqueNames': {'comment': 'X.520 objectClass (2 5 6)',
- 'description': 'groupOfUniqueNames (2 5 6 17)',
- 'hexoid': '06 03 55 06 11',
- 'name': 'groupOfUniqueNames',
- 'oid': (2, 5, 6, 17)},
- 'hashAlgorithm': {'comment': 'Teletrust algorithm',
- 'description': 'hashAlgorithm (1 3 36 3 2)',
- 'hexoid': '06 04 2B 24 03 02',
- 'name': 'hashAlgorithm',
- 'oid': (1, 3, 36, 3, 2)},
- 'hashAlgos': {'comment': 'NIST Algorithm',
- 'description': 'hashAlgos (2 16 840 1 101 3 4 2)',
- 'hexoid': '06 08 60 86 48 01 65 03 04 02',
- 'name': 'hashAlgos',
- 'oid': (2, 16, 840, 1, 101, 3, 4, 2)},
- 'hashUsingBlockCipher': {'comment': 'Telesec one-way function',
- 'description': 'hashUsingBlockCipher (0 2 262 1 10 1 3 6)',
- 'hexoid': '06 08 02 82 06 01 0A 01 03 06',
- 'name': 'hashUsingBlockCipher',
- 'oid': (0, 2, 262, 1, 10, 1, 3, 6)},
- 'hashedRootKey': {'comment': 'SET cert extension',
- 'description': 'hashedRootKey (2 23 42 7 0)',
- 'hexoid': '06 04 67 2A 07 00',
- 'name': 'hashedRootKey',
- 'oid': (2, 23, 42, 7, 0)},
- 'hbciRsaSignature': {'comment': 'Telesec signature',
- 'description': 'hbciRsaSignature (0 2 262 1 10 1 1 9)',
- 'hexoid': '06 08 02 82 06 01 0A 01 01 09',
- 'name': 'hbciRsaSignature',
- 'oid': (0, 2, 262, 1, 10, 1, 1, 9)},
- 'healthcareLicense': {'comment': 'ASTM 31.20',
- 'description': 'healthcareLicense (1 2 840 10065 2 3)',
- 'hexoid': '06 07 2A 86 48 CE 51 02 03',
- 'name': 'healthcareLicense',
- 'oid': (1, 2, 840, 10065, 2, 3)},
- 'hmacMD5': {'comment': 'ISAKMP HMAC algorithm',
- 'description': 'hmacMD5 (1 3 6 1 5 5 8 1 1)',
- 'hexoid': '06 08 2B 06 01 05 05 08 01 01',
- 'name': 'hmacMD5',
- 'oid': (1, 3, 6, 1, 5, 5, 8, 1, 1)},
- 'hmacSHA': {'comment': 'ISAKMP HMAC algorithm',
- 'description': 'hmacSHA (1 3 6 1 5 5 8 1 2)',
- 'hexoid': '06 08 2B 06 01 05 05 08 01 02',
- 'name': 'hmacSHA',
- 'oid': (1, 3, 6, 1, 5, 5, 8, 1, 2)},
- 'hmacTiger': {'comment': 'ISAKMP HMAC algorithm',
- 'description': 'hmacTiger (1 3 6 1 5 5 8 1 3)',
- 'hexoid': '06 08 2B 06 01 05 05 08 01 03',
- 'name': 'hmacTiger',
- 'oid': (1, 3, 6, 1, 5, 5, 8, 1, 3)},
- 'hmacWithSHA1': {'comment': 'RSADSI digestAlgorithm',
- 'description': 'hmacWithSHA1 (1 2 840 113549 2 7)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 02 07',
- 'name': 'hmacWithSHA1',
- 'oid': (1, 2, 840, 113549, 2, 7)},
- 'hmacWithSHA224': {'comment': 'RSADSI digestAlgorithm',
- 'description': 'hmacWithSHA224 (1 2 840 113549 2 8)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 02 08',
- 'name': 'hmacWithSHA224',
- 'oid': (1, 2, 840, 113549, 2, 8)},
- 'hmacWithSHA256': {'comment': 'RSADSI digestAlgorithm',
- 'description': 'hmacWithSHA256 (1 2 840 113549 2 9)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 02 09',
- 'name': 'hmacWithSHA256',
- 'oid': (1, 2, 840, 113549, 2, 9)},
- 'hmacWithSHA384': {'comment': 'RSADSI digestAlgorithm',
- 'description': 'hmacWithSHA384 (1 2 840 113549 2 10)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 02 0A',
- 'name': 'hmacWithSHA384',
- 'oid': (1, 2, 840, 113549, 2, 10)},
- 'hmacWithSHA512': {'comment': 'RSADSI digestAlgorithm',
- 'description': 'hmacWithSHA512 (1 2 840 113549 2 11)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 02 0B',
- 'name': 'hmacWithSHA512',
- 'oid': (1, 2, 840, 113549, 2, 11)},
- 'holdinstruction': {'comment': 'ANSI X9.57',
- 'description': 'holdinstruction (1 2 840 10040 2)',
- 'hexoid': '06 06 2A 86 48 CE 38 02',
- 'name': 'holdinstruction',
- 'oid': (1, 2, 840, 10040, 2)},
- 'holdinstruction-none': {'comment': 'ANSI X9.57 hold instruction',
- 'description': 'holdinstruction-none (1 2 840 10040 2 1)',
- 'hexoid': '06 07 2A 86 48 CE 38 02 01',
- 'name': 'holdinstruction-none',
- 'oid': (1, 2, 840, 10040, 2, 1)},
- 'houseIdentifier': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'houseIdentifier (2 5 4 51)',
- 'hexoid': '06 03 55 04 33',
- 'name': 'houseIdentifier',
- 'oid': (2, 5, 4, 51)},
- 'iKEIntermediate': {'comment': 'IKE ???',
- 'description': 'iKEIntermediate (1 3 6 1 5 5 8 2 2)',
- 'hexoid': '06 08 2B 06 01 05 05 08 02 02',
- 'name': 'iKEIntermediate',
- 'oid': (1, 3, 6, 1, 5, 5, 8, 2, 2)},
- 'iaReceiptMessage': {'comment': 'TMN EDI for Interactive Agents',
- 'description': 'iaReceiptMessage (1 3 6 1 4 1 3576 7 65)',
- 'hexoid': '06 09 2B 06 01 04 01 9B 78 07 41',
- 'name': 'iaReceiptMessage',
- 'oid': (1, 3, 6, 1, 4, 1, 3576, 7, 65)},
- 'iaStatusMessage': {'comment': 'TMN EDI for Interactive Agents',
- 'description': 'iaStatusMessage (1 3 6 1 4 1 3576 7 97)',
- 'hexoid': '06 09 2B 06 01 04 01 9B 78 07 61',
- 'name': 'iaStatusMessage',
- 'oid': (1, 3, 6, 1, 4, 1, 3576, 7, 97)},
- 'id-ad-rpkiManifest': {'comment': 'RPKI project',
- 'description': 'id-ad-rpkiManifest (1 3 6 1 5 5 7 48 10)',
- 'hexoid': '06 08 2B 06 01 05 05 07 30 0A',
- 'name': 'id-ad-rpkiManifest',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 10)},
- 'id-ad-signedObject': {'comment': 'RPKI project',
- 'description': 'id-ad-signedObject (1 3 6 1 5 5 7 48 11)',
- 'hexoid': '06 08 2B 06 01 05 05 07 30 0B',
- 'name': 'id-ad-signedObject',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 11)},
- 'id-ad-signedObjectRepository': {'comment': 'RPKI project',
- 'description': 'id-ad-signedObjectRepository (1 3 6 1 5 5 7 48 9)',
- 'hexoid': '06 08 2B 06 01 05 05 07 30 09',
- 'name': 'id-ad-signedObjectRepository',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 9)},
- 'id-cp-ipAddr-asNumber': {'comment': 'RPKI project',
- 'description': 'id-cp-ipAddr-asNumber (1 3 6 1 5 5 7 14 2)',
- 'hexoid': '06 08 2B 06 01 05 05 07 0E 02',
- 'name': 'id-cp-ipAddr-asNumber',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 14, 2)},
- 'id-ct-routeOriginAttestation': {'comment': 'RPKI project',
- 'description': 'id-ct-routeOriginAttestation (1 2 840 113549 1 9 16 1 24)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 18',
- 'name': 'id-ct-routeOriginAttestation',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 1, 24)},
- 'id-ct-rpkiManifest': {'comment': 'RPKI project',
- 'description': 'id-ct-rpkiManifest (1 2 840 113549 1 9 16 1 26)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 1A',
- 'name': 'id-ct-rpkiManifest',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 1, 26)},
- 'id-ct-xml': {'comment': 'RPKI project',
- 'description': 'id-ct-xml (1 2 840 113549 1 9 16 1 28)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 1C',
- 'name': 'id-ct-xml',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 1, 28)},
- 'id-mod': {'comment': 'id-sMIME',
- 'description': 'id-mod (1 2 840 113549 1 9 16 0)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 10 00',
- 'name': 'id-mod',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 0)},
- 'id-mod-cms': {'comment': 'S/MIME Modules',
- 'description': 'id-mod-cms (1 2 840 113549 1 9 16 0 1)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 00 01',
- 'name': 'id-mod-cms',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 0, 1)},
- 'id-mod-ess': {'comment': 'S/MIME Modules',
- 'description': 'id-mod-ess (1 2 840 113549 1 9 16 0 2)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 00 02',
- 'name': 'id-mod-ess',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 0, 2)},
- 'id-mod-ets-eSigPolicy-88': {'comment': 'S/MIME Modules',
- 'description': 'id-mod-ets-eSigPolicy-88 (1 2 840 113549 1 9 16 0 8)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 00 08',
- 'name': 'id-mod-ets-eSigPolicy-88',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 0, 8)},
- 'id-mod-ets-eSignature-88': {'comment': 'S/MIME Modules',
- 'description': 'id-mod-ets-eSignature-88 (1 2 840 113549 1 9 16 0 5)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 00 05',
- 'name': 'id-mod-ets-eSignature-88',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 0, 5)},
- 'id-mod-ets-eSignature-97': {'comment': 'S/MIME Modules',
- 'description': 'id-mod-ets-eSignature-97 (1 2 840 113549 1 9 16 0 6)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 00 06',
- 'name': 'id-mod-ets-eSignature-97',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 0, 6)},
- 'id-mod-msg-v3': {'comment': 'S/MIME Modules',
- 'description': 'id-mod-msg-v3 (1 2 840 113549 1 9 16 0 4)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 00 04',
- 'name': 'id-mod-msg-v3',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 0, 4)},
- 'id-mod-oid': {'comment': 'S/MIME Modules',
- 'description': 'id-mod-oid (1 2 840 113549 1 9 16 0 3)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 00 03',
- 'name': 'id-mod-oid',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 0, 3)},
- 'id-sMIME': {'comment': 'PKCS #9',
- 'description': 'id-sMIME (1 2 840 113549 1 9 16)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 10',
- 'name': 'id-sMIME',
- 'oid': (1, 2, 840, 113549, 1, 9, 16)},
- 'idea': {'comment': 'Teletrust encryption algorithm',
- 'description': 'idea (1 3 36 3 1 2)',
- 'hexoid': '06 05 2B 24 03 01 02',
- 'name': 'idea',
- 'oid': (1, 3, 36, 3, 1, 2)},
- 'ideaCBC': {'comment': 'Teletrust encryption algorithm',
- 'description': 'ideaCBC (1 3 36 3 1 2 2)',
- 'hexoid': '06 06 2B 24 03 01 02 02',
- 'name': 'ideaCBC',
- 'oid': (1, 3, 36, 3, 1, 2, 2)},
- 'ideaCBC_ISOpad': {'comment': 'Teletrust encryption algorithm',
- 'description': 'ideaCBC_ISOpad (1 3 36 3 1 2 2 1 1)',
- 'hexoid': '06 08 2B 24 03 01 02 02 01 01',
- 'name': 'ideaCBC_ISOpad',
- 'oid': (1, 3, 36, 3, 1, 2, 2, 1, 1)},
- 'ideaCBC_pad': {'comment': 'Teletrust encryption algorithm',
- 'description': 'ideaCBC_pad (1 3 36 3 1 2 2 1)',
- 'hexoid': '06 07 2B 24 03 01 02 02 01',
- 'name': 'ideaCBC_pad',
- 'oid': (1, 3, 36, 3, 1, 2, 2, 1)},
- 'ideaCFB': {'comment': 'Teletrust encryption algorithm',
- 'description': 'ideaCFB (1 3 36 3 1 2 4)',
- 'hexoid': '06 06 2B 24 03 01 02 04',
- 'name': 'ideaCFB',
- 'oid': (1, 3, 36, 3, 1, 2, 4)},
- 'ideaCFB64': {'comment': 'Telesec encryption',
- 'description': 'ideaCFB64 (0 2 262 1 10 1 2 5 5)',
- 'hexoid': '06 09 02 82 06 01 0A 01 02 05 05',
- 'name': 'ideaCFB64',
- 'oid': (0, 2, 262, 1, 10, 1, 2, 5, 5)},
- 'ideaCFB8': {'comment': 'Telesec encryption',
- 'description': 'ideaCFB8 (0 2 262 1 10 1 2 5 4)',
- 'hexoid': '06 09 02 82 06 01 0A 01 02 05 04',
- 'name': 'ideaCFB8',
- 'oid': (0, 2, 262, 1, 10, 1, 2, 5, 4)},
- 'ideaECB': {'comment': 'Teletrust encryption algorithm',
- 'description': 'ideaECB (1 3 36 3 1 2 1)',
- 'hexoid': '06 06 2B 24 03 01 02 01',
- 'name': 'ideaECB',
- 'oid': (1, 3, 36, 3, 1, 2, 1)},
- 'ideaECB_ISOpad': {'comment': 'Teletrust encryption algorithm',
- 'description': 'ideaECB_ISOpad (1 3 36 3 1 2 1 1 1)',
- 'hexoid': '06 08 2B 24 03 01 02 01 01 01',
- 'name': 'ideaECB_ISOpad',
- 'oid': (1, 3, 36, 3, 1, 2, 1, 1, 1)},
- 'ideaECB_pad': {'comment': 'Teletrust encryption algorithm',
- 'description': 'ideaECB_pad (1 3 36 3 1 2 1 1)',
- 'hexoid': '06 07 2B 24 03 01 02 01 01',
- 'name': 'ideaECB_pad',
- 'oid': (1, 3, 36, 3, 1, 2, 1, 1)},
- 'ideaOFB': {'comment': 'Teletrust encryption algorithm',
- 'description': 'ideaOFB (1 3 36 3 1 2 3)',
- 'hexoid': '06 06 2B 24 03 01 02 03',
- 'name': 'ideaOFB',
- 'oid': (1, 3, 36, 3, 1, 2, 3)},
- 'identificationNumber': {'comment': 'SET field',
- 'description': 'identificationNumber (2 23 42 2 5)',
- 'hexoid': '06 04 67 2A 02 05',
- 'name': 'identificationNumber',
- 'oid': (2, 23, 42, 2, 5)},
- 'identrusOCSP': {'comment': 'Identrus',
- 'description': 'identrusOCSP (1 2 840 114021 4 1)',
- 'hexoid': '06 08 2A 86 48 86 FA 65 04 01',
- 'name': 'identrusOCSP',
- 'oid': (1, 2, 840, 114021, 4, 1)},
- 'implicitConfirm': {'comment': 'PKIX CMP information',
- 'description': 'implicitConfirm (1 3 6 1 5 5 7 4 13)',
- 'hexoid': '06 08 2B 06 01 05 05 07 04 0D',
- 'name': 'implicitConfirm',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 13)},
- 'individualCodeSigning': {'comment': 'Microsoft',
- 'description': 'individualCodeSigning (1 3 6 1 4 1 311 2 1 21)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 15',
- 'name': 'individualCodeSigning',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 21)},
- 'inetOrgPerson': {'comment': 'Netscape LDAP definitions',
- 'description': 'inetOrgPerson (2 16 840 1 113730 3 2 2)',
- 'hexoid': '06 0A 60 86 48 01 86 F8 42 03 02 02',
- 'name': 'inetOrgPerson',
- 'oid': (2, 16, 840, 1, 113730, 3, 2, 2)},
- 'inhibitAnyPolicy': {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'inhibitAnyPolicy (2 5 29 54)',
- 'hexoid': '06 03 55 1D 36',
- 'name': 'inhibitAnyPolicy',
- 'oid': (2, 5, 29, 54)},
- 'initials': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'initials (2 5 4 43)',
- 'hexoid': '06 03 55 04 2B',
- 'name': 'initials',
- 'oid': (2, 5, 4, 43)},
- 'instructionCode': {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'instructionCode (2 5 29 23)',
- 'hexoid': '06 03 55 1D 17',
- 'name': 'instructionCode',
- 'oid': (2, 5, 29, 23)},
- 'integratedCircuitCardSerialNumber': {'comment': 'Teletrust attribute',
- 'description': 'integratedCircuitCardSerialNumber (1 3 36 8 3 6)',
- 'hexoid': '06 05 2B 24 08 03 06',
- 'name': 'integratedCircuitCardSerialNumber',
- 'oid': (1, 3, 36, 8, 3, 6)},
- 'integrityEDImessage': {'comment': 'TMN EDI for Interactive Agents',
- 'description': 'integrityEDImessage (1 3 6 1 4 1 3576 7 5)',
- 'hexoid': '06 09 2B 06 01 04 01 9B 78 07 05',
- 'name': 'integrityEDImessage',
- 'oid': (1, 3, 6, 1, 4, 1, 3576, 7, 5)},
- 'internationalISDNNumber': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'internationalISDNNumber (2 5 4 25)',
- 'hexoid': '06 03 55 04 19',
- 'name': 'internationalISDNNumber',
- 'oid': (2, 5, 4, 25)},
- 'invalidityDate': {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'invalidityDate (2 5 29 24)',
- 'hexoid': '06 03 55 1D 18',
- 'name': 'invalidityDate',
- 'oid': (2, 5, 29, 24)},
- 'ipsecEndSystem': {'comment': 'PKIX key purpose',
- 'description': 'ipsecEndSystem (1 3 6 1 5 5 7 3 5)',
- 'hexoid': '06 08 2B 06 01 05 05 07 03 05',
- 'name': 'ipsecEndSystem',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 5)},
- 'ipsecTunnel': {'comment': 'PKIX key purpose',
- 'description': 'ipsecTunnel (1 3 6 1 5 5 7 3 6)',
- 'hexoid': '06 08 2B 06 01 05 05 07 03 06',
- 'name': 'ipsecTunnel',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 6)},
- 'ipsecUser': {'comment': 'PKIX key purpose',
- 'description': 'ipsecUser (1 3 6 1 5 5 7 3 7)',
- 'hexoid': '06 08 2B 06 01 05 05 07 03 07',
- 'name': 'ipsecUser',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 7)},
- 'issuer': {'comment': 'Telesec attribute',
- 'description': 'issuer (0 2 262 1 10 7 6)',
- 'hexoid': '06 07 02 82 06 01 0A 07 06',
- 'name': 'issuer',
- 'oid': (0, 2, 262, 1, 10, 7, 6)},
- 'issuerAltName': {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'issuerAltName (2 5 29 18)',
- 'hexoid': '06 03 55 1D 12',
- 'name': 'issuerAltName',
- 'oid': (2, 5, 29, 18)},
- 'issuingDistributionPoint': {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'issuingDistributionPoint (2 5 29 28)',
- 'hexoid': '06 03 55 1D 1C',
- 'name': 'issuingDistributionPoint',
- 'oid': (2, 5, 29, 28)},
- 'janUKMs': {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'janUKMs (2 16 840 1 101 2 1 5 20)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 14',
- 'name': 'janUKMs',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 20)},
- 'julUKMs': {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'julUKMs (2 16 840 1 101 2 1 5 26)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 1A',
- 'name': 'julUKMs',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 26)},
- 'junUKMs': {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'junUKMs (2 16 840 1 101 2 1 5 25)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 19',
- 'name': 'junUKMs',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 25)},
- 'kEAKeyEncryptionAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms',
- 'description': 'kEAKeyEncryptionAlgorithm (2 16 840 1 101 2 1 1 24)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 18',
- 'name': 'kEAKeyEncryptionAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 24)},
- 'kafka': {'comment': 'SDN.700 INFOSEC test objects',
- 'description': 'kafka (2 16 840 1 101 2 1 12 0 3)',
- 'hexoid': '06 0A 60 86 48 01 65 02 01 0C 00 03',
- 'name': 'kafka',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 12, 0, 3)},
- 'kafkaSecurityCategories': {'comment': 'SDN.700 INFOSEC test objects',
- 'description': 'kafkaSecurityCategories (2 16 840 1 101 2 1 12 0 3 0)',
- 'hexoid': '06 0B 60 86 48 01 65 02 01 0C 00 03 00',
- 'name': 'kafkaSecurityCategories',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 12, 0, 3, 0)},
- 'kafkaTagSetName1': {'comment': 'SDN.700 INFOSEC test objects',
- 'description': 'kafkaTagSetName1 (2 16 840 1 101 2 1 12 0 3 0 1)',
- 'hexoid': '06 0C 60 86 48 01 65 02 01 0C 00 03 00 01',
- 'name': 'kafkaTagSetName1',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 12, 0, 3, 0, 1)},
- 'kafkaTagSetName2': {'comment': 'SDN.700 INFOSEC test objects',
- 'description': 'kafkaTagSetName2 (2 16 840 1 101 2 1 12 0 3 0 2)',
- 'hexoid': '06 0C 60 86 48 01 65 02 01 0C 00 03 00 02',
- 'name': 'kafkaTagSetName2',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 12, 0, 3, 0, 2)},
- 'kafkaTagSetName3': {'comment': 'SDN.700 INFOSEC test objects',
- 'description': 'kafkaTagSetName3 (2 16 840 1 101 2 1 12 0 3 0 3)',
- 'hexoid': '06 0C 60 86 48 01 65 02 01 0C 00 03 00 03',
- 'name': 'kafkaTagSetName3',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 12, 0, 3, 0, 3)},
- 'keyExchangeAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms. Formerly known as mosaicKeyEncryptionAlgorithm',
- 'description': 'keyExchangeAlgorithm (2 16 840 1 101 2 1 1 22)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 16',
- 'name': 'keyExchangeAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 22)},
- 'keyFeatures': {'comment': 'cryptlib attribute type',
- 'description': 'keyFeatures (1 3 6 1 4 1 3029 3 1 5)',
- 'hexoid': '06 0A 2B 06 01 04 01 97 55 03 01 05',
- 'name': 'keyFeatures',
- 'oid': (1, 3, 6, 1, 4, 1, 3029, 3, 1, 5)},
- 'keyPairParamRep': {'comment': 'PKIX CMP information',
- 'description': 'keyPairParamRep (1 3 6 1 5 5 7 4 11)',
- 'hexoid': '06 08 2B 06 01 05 05 07 04 0B',
- 'name': 'keyPairParamRep',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 11)},
- 'keyPairParamReq': {'comment': 'PKIX CMP information',
- 'description': 'keyPairParamReq (1 3 6 1 5 5 7 4 10)',
- 'hexoid': '06 08 2B 06 01 05 05 07 04 0A',
- 'name': 'keyPairParamReq',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 10)},
- 'keyPurpose': {'comment': 'PKIX',
- 'description': 'keyPurpose (1 3 6 1 5 5 7 3)',
- 'hexoid': '06 07 2B 06 01 05 05 07 03',
- 'name': 'keyPurpose',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 3)},
- 'keyUsage': {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'keyUsage (2 5 29 15)',
- 'hexoid': '06 03 55 1D 0F',
- 'name': 'keyUsage',
- 'oid': (2, 5, 29, 15)},
- 'keyagree': {'comment': 'Teletrust key management',
- 'description': 'keyagree (1 3 36 7 1)',
- 'hexoid': '06 04 2B 24 07 01',
- 'name': 'keyagree',
- 'oid': (1, 3, 36, 7, 1)},
- 'keyed-hash-seal': {'comment': 'Oddball OIW OID',
- 'description': 'keyed-hash-seal (1 3 14 3 2 23)',
- 'hexoid': '06 05 2B 0E 03 02 17',
- 'name': 'keyed-hash-seal',
- 'oid': (1, 3, 14, 3, 2, 23)},
- 'keymgmnt': {'comment': 'Teletrust key management',
- 'description': 'keymgmnt (1 3 36 7)',
- 'hexoid': '06 03 2B 24 07',
- 'name': 'keymgmnt',
- 'oid': (1, 3, 36, 7)},
- 'keytrans': {'comment': 'Teletrust key management',
- 'description': 'keytrans (1 3 36 7 2)',
- 'hexoid': '06 04 2B 24 07 02',
- 'name': 'keytrans',
- 'oid': (1, 3, 36, 7, 2)},
- 'kmPrivileges': {'comment': 'SDN.700 INFOSEC privileges',
- 'description': 'kmPrivileges (2 16 840 1 101 2 1 10 2)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 0A 02',
- 'name': 'kmPrivileges',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 10, 2)},
- 'knowledgeInformation': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'knowledgeInformation (2 5 4 2)',
- 'hexoid': '06 03 55 04 02',
- 'name': 'knowledgeInformation',
- 'oid': (2, 5, 4, 2)},
- 'ktKeyData': {'comment': 'Telesec attribute',
- 'description': 'ktKeyData (0 2 262 1 10 7 40)',
- 'hexoid': '06 07 02 82 06 01 0A 07 28',
- 'name': 'ktKeyData',
- 'oid': (0, 2, 262, 1, 10, 7, 40)},
- 'ktKeyNumber': {'comment': 'Telesec attribute',
- 'description': 'ktKeyNumber (0 2 262 1 10 7 41)',
- 'hexoid': '06 07 02 82 06 01 0A 07 29',
- 'name': 'ktKeyNumber',
- 'oid': (0, 2, 262, 1, 10, 7, 41)},
- 'labeledAttribute': {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'labeledAttribute (2 16 840 1 101 2 1 5 57)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 39',
- 'name': 'labeledAttribute',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 57)},
- 'ldapDefinitions': {'comment': 'Netscape directory',
- 'description': 'ldapDefinitions (2 16 840 1 113730 3 1)',
- 'hexoid': '06 09 60 86 48 01 86 F8 42 03 01',
- 'name': 'ldapDefinitions',
- 'oid': (2, 16, 840, 1, 113730, 3, 1)},
- 'liabilityLimitationFlag': {'comment': 'Telesec cert/CRL extension',
- 'description': 'liabilityLimitationFlag (0 2 262 1 10 12 0)',
- 'hexoid': '06 07 02 82 06 01 0A 0C 00',
- 'name': 'liabilityLimitationFlag',
- 'oid': (0, 2, 262, 1, 10, 12, 0)},
- 'liabilityText': {'comment': 'Telesec attribute',
- 'description': 'liabilityText (0 2 262 1 10 7 52)',
- 'hexoid': '06 07 02 82 06 01 0A 07 34',
- 'name': 'liabilityText',
- 'oid': (0, 2, 262, 1, 10, 7, 52)},
- 'license?': {'comment': 'ASTM 31.20 healthcare license type',
- 'description': 'license? (1 2 840 10065 2 3 1 1)',
- 'hexoid': '06 09 2A 86 48 CE 51 02 03 01 01',
- 'name': 'license?',
- 'oid': (1, 2, 840, 10065, 2, 3, 1, 1)},
- 'localKeyID': {'comment': 'PKCS #9 via PKCS #12',
- 'description': 'localKeyID (for PKCS #12) (1 2 840 113549 1 9 21)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 15',
- 'name': 'localKeyID',
- 'oid': (1, 2, 840, 113549, 1, 9, 21)},
- 'locality': {'comment': 'X.520 objectClass (2 5 6)',
- 'description': 'locality (2 5 6 3)',
- 'hexoid': '06 03 55 06 03',
- 'name': 'locality',
- 'oid': (2, 5, 6, 3)},
- 'localityName': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'localityName (2 5 4 7)',
- 'hexoid': '06 03 55 04 07',
- 'name': 'localityName',
- 'oid': (2, 5, 4, 7)},
- 'location': {'comment': 'Teletrust signature attributes',
- 'description': 'location (1 3 36 8 6 8)',
- 'hexoid': '06 05 2B 24 08 06 08',
- 'name': 'location',
- 'oid': (1, 3, 36, 8, 6, 8)},
- 'logo': {'comment': 'PKIX qualified certificates',
- 'description': 'logo (1 3 6 1 5 5 7 20)',
- 'hexoid': '06 07 2B 06 01 05 05 07 14',
- 'name': 'logo',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 20)},
- 'logoBackground': {'comment': 'PKIX',
- 'description': 'logoBackground (1 3 6 1 5 5 7 20 2)',
- 'hexoid': '06 08 2B 06 01 05 05 07 14 02',
- 'name': 'logoBackground',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 20, 2)},
- 'logoLoyalty': {'comment': 'PKIX',
- 'description': 'logoLoyalty (1 3 6 1 5 5 7 20 1)',
- 'hexoid': '06 08 2B 06 01 05 05 07 14 01',
- 'name': 'logoLoyalty',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 20, 1)},
- 'logoType': {'comment': 'PKIX private extension',
- 'description': 'logoType (1 3 6 1 5 5 7 1 12)',
- 'hexoid': '06 08 2B 06 01 05 05 07 01 0C',
- 'name': 'logoType',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 12)},
- 'mISSISecurityCategories': {'comment': 'SDN.700 INFOSEC security category',
- 'description': 'mISSISecurityCategories (2 16 840 1 101 2 1 8 1)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 08 01',
- 'name': 'mISSISecurityCategories',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 8, 1)},
- 'mac': {'comment': 'Telesec one-way function',
- 'description': 'mac (0 2 262 1 10 1 3 7)',
- 'hexoid': '06 08 02 82 06 01 0A 01 03 07',
- 'name': 'mac',
- 'oid': (0, 2, 262, 1, 10, 1, 3, 7)},
- 'magenta': {'comment': 'Telesec encryption',
- 'description': 'magenta (0 2 262 1 10 1 2 4)',
- 'hexoid': '06 08 02 82 06 01 0A 01 02 04',
- 'name': 'magenta',
- 'oid': (0, 2, 262, 1, 10, 1, 2, 4)},
- 'mailRecipient': {'comment': 'Microsoft Exchange Server - object class',
- 'description': 'mailRecipient (1 2 840 113556 1 3 46)',
- 'hexoid': '06 09 2A 86 48 86 F7 14 01 03 2E',
- 'name': 'mailRecipient',
- 'oid': (1, 2, 840, 113556, 1, 3, 46)},
- 'mailbox': {'comment': 'Microsoft Exchange Server - object class',
- 'description': 'mailbox (1 2 840 113556 1 3 22)',
- 'hexoid': '06 09 2A 86 48 86 F7 14 01 03 16',
- 'name': 'mailbox',
- 'oid': (1, 2, 840, 113556, 1, 3, 22)},
- 'mailbox-Agent': {'comment': 'Microsoft Exchange Server - object class',
- 'description': 'mailbox-Agent (1 2 840 113556 1 3 17)',
- 'hexoid': '06 09 2A 86 48 86 F7 14 01 03 11',
- 'name': 'mailbox-Agent',
- 'oid': (1, 2, 840, 113556, 1, 3, 17)},
- 'manufacturer-specific_api': {'comment': 'Teletrust API',
- 'description': 'manufacturer-specific_api (1 3 36 6 1)',
- 'hexoid': '06 04 2B 24 06 01',
- 'name': 'manufacturer-specific_api',
- 'oid': (1, 3, 36, 6, 1)},
- 'marUKMs': {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'marUKMs (2 16 840 1 101 2 1 5 22)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 16',
- 'name': 'marUKMs',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 22)},
- 'mayUKMs': {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'mayUKMs (2 16 840 1 101 2 1 5 24)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 18',
- 'name': 'mayUKMs',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 24)},
- 'md2': {'comment': 'RSADSI digestAlgorithm',
- 'description': 'md2 (1 2 840 113549 2 2)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 02 02',
- 'name': 'md2',
- 'oid': (1, 2, 840, 113549, 2, 2)},
- 'md2WithElGamal': {'comment': 'Unsure about this OID',
- 'description': 'md2WithElGamal (1 3 14 7 2 3 2)',
- 'hexoid': '06 06 2B 0E 07 02 03 02',
- 'name': 'md2WithElGamal',
- 'oid': (1, 3, 14, 7, 2, 3, 2)},
- 'md2WithRSA': {'comment': 'Unsure about this OID',
- 'description': 'md2WithRSA (1 3 14 7 2 3 1)',
- 'hexoid': '06 06 2B 0E 07 02 03 01',
- 'name': 'md2WithRSA',
- 'oid': (1, 3, 14, 7, 2, 3, 1)},
- 'md2WithRSAEncryptionBSafe1': {'comment': 'Novell signature algorithm',
- 'description': 'md2WithRSAEncryptionBSafe1 (2 16 840 1 113719 1 2 8 29)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 1D',
- 'name': 'md2WithRSAEncryptionBSafe1',
- 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 29)},
- 'md2WithRSASignature': {'comment': 'Oddball OIW OID using 9796-2 padding rules',
- 'description': 'md2WithRSASignature (1 3 14 3 2 24)',
- 'hexoid': '06 05 2B 0E 03 02 18',
- 'name': 'md2WithRSASignature',
- 'oid': (1, 3, 14, 3, 2, 24)},
- 'md2withRSAEncryption': {'comment': 'PKCS #1',
- 'description': 'md2withRSAEncryption (1 2 840 113549 1 1 2)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 01 02',
- 'name': 'md2withRSAEncryption',
- 'oid': (1, 2, 840, 113549, 1, 1, 2)},
- 'md4': {'comment': 'RSADSI digestAlgorithm',
- 'description': 'md4 (1 2 840 113549 2 4)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 02 04',
- 'name': 'md4',
- 'oid': (1, 2, 840, 113549, 2, 4)},
- 'md4WitRSA': {'comment': 'Oddball OIW OID',
- 'description': 'md4WitRSA (1 3 14 3 2 2)',
- 'hexoid': '06 05 2B 0E 03 02 02',
- 'name': 'md4WitRSA',
- 'oid': (1, 3, 14, 3, 2, 2)},
- 'md4WithRSAAndISO9697': {'comment': 'Telesec mechanism',
- 'description': 'md4WithRSAAndISO9697 (0 2 262 1 10 1 1 1)',
- 'hexoid': '06 08 02 82 06 01 0A 01 01 01',
- 'name': 'md4WithRSAAndISO9697',
- 'oid': (0, 2, 262, 1, 10, 1, 1, 1)},
- 'md4WithRSAAndTelesecSignatureStandard': {'comment': 'Telesec mechanism',
- 'description': 'md4WithRSAAndTelesecSignatureStandard (0 2 262 1 10 1 1 2)',
- 'hexoid': '06 08 02 82 06 01 0A 01 01 02',
- 'name': 'md4WithRSAAndTelesecSignatureStandard',
- 'oid': (0, 2, 262, 1, 10, 1, 1, 2)},
- 'md4WithRSAEncryption': {'comment': 'Oddball OIW OID',
- 'description': 'md4WithRSAEncryption (1 3 14 3 2 4)',
- 'hexoid': '06 05 2B 0E 03 02 04',
- 'name': 'md4WithRSAEncryption',
- 'oid': (1, 3, 14, 3, 2, 4)},
- 'md4withRSAEncryption': {'comment': 'PKCS #1',
- 'description': 'md4withRSAEncryption (1 2 840 113549 1 1 3)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 01 03',
- 'name': 'md4withRSAEncryption',
- 'oid': (1, 2, 840, 113549, 1, 1, 3)},
- 'md5': {'comment': 'RSADSI digestAlgorithm',
- 'description': 'md5 (1 2 840 113549 2 5)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 02 05',
- 'name': 'md5',
- 'oid': (1, 2, 840, 113549, 2, 5)},
- 'md5WithRSA': {'comment': 'Oddball OIW OID',
- 'description': 'md5WithRSA (1 3 14 3 2 3)',
- 'hexoid': '06 05 2B 0E 03 02 03',
- 'name': 'md5WithRSA',
- 'oid': (1, 3, 14, 3, 2, 3)},
- 'md5WithRSAAndISO9697': {'comment': 'Telesec mechanism',
- 'description': 'md5WithRSAAndISO9697 (0 2 262 1 10 1 1 3)',
- 'hexoid': '06 08 02 82 06 01 0A 01 01 03',
- 'name': 'md5WithRSAAndISO9697',
- 'oid': (0, 2, 262, 1, 10, 1, 1, 3)},
- 'md5WithRSAAndTelesecSignatureStandard': {'comment': 'Telesec mechanism',
- 'description': 'md5WithRSAAndTelesecSignatureStandard (0 2 262 1 10 1 1 4)',
- 'hexoid': '06 08 02 82 06 01 0A 01 01 04',
- 'name': 'md5WithRSAAndTelesecSignatureStandard',
- 'oid': (0, 2, 262, 1, 10, 1, 1, 4)},
- 'md5WithRSAEncryptionBSafe1': {'comment': 'Novell signature algorithm',
- 'description': 'md5WithRSAEncryptionBSafe1 (2 16 840 1 113719 1 2 8 30)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 1E',
- 'name': 'md5WithRSAEncryptionBSafe1',
- 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 30)},
- 'md5WithRSASignature': {'comment': 'Oddball OIW OID using 9796-2 padding rules',
- 'description': 'md5WithRSASignature (1 3 14 3 2 25)',
- 'hexoid': '06 05 2B 0E 03 02 19',
- 'name': 'md5WithRSASignature',
- 'oid': (1, 3, 14, 3, 2, 25)},
- 'md5withRSAEncryption': {'comment': 'PKCS #1',
- 'description': 'md5withRSAEncryption (1 2 840 113549 1 1 4)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 01 04',
- 'name': 'md5withRSAEncryption',
- 'oid': (1, 2, 840, 113549, 1, 1, 4)},
- 'mdc-2': {'comment': 'Oddball OIW OID, DES-based hash, planned for X9.31 Part 2',
- 'description': 'mdc-2 (1 3 14 3 2 19)',
- 'hexoid': '06 05 2B 0E 03 02 13',
- 'name': 'mdc-2',
- 'oid': (1, 3, 14, 3, 2, 19)},
- 'mdc2WithRSASignature': {'comment': 'Oddball OIW OID using 9796-2 padding rules',
- 'description': 'mdc2WithRSASignature (1 3 14 3 2 14)',
- 'hexoid': '06 05 2B 0E 03 02 0E',
- 'name': 'mdc2WithRSASignature',
- 'oid': (1, 3, 14, 3, 2, 14)},
- 'mdc2doubleLength': {'comment': 'Teletrust hash algorithm',
- 'description': 'mdc2doubleLength (1 3 36 3 2 5)',
- 'hexoid': '06 05 2B 24 03 02 05',
- 'name': 'mdc2doubleLength',
- 'oid': (1, 3, 36, 3, 2, 5)},
- 'mdc2singleLength': {'comment': 'Teletrust hash algorithm',
- 'description': 'mdc2singleLength (1 3 36 3 2 4)',
- 'hexoid': '06 05 2B 24 03 02 04',
- 'name': 'mdc2singleLength',
- 'oid': (1, 3, 36, 3, 2, 4)},
- 'mechanism': {'comment': 'Telesec',
- 'description': 'mechanism (0 2 262 1 10 1)',
- 'hexoid': '06 06 02 82 06 01 0A 01',
- 'name': 'mechanism',
- 'oid': (0, 2, 262, 1, 10, 1)},
- 'member': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'member (2 5 4 31)',
- 'hexoid': '06 03 55 04 1F',
- 'name': 'member',
- 'oid': (2, 5, 4, 31)},
- 'merchantData': {'comment': 'SET cert extension',
- 'description': 'merchantData (2 23 42 7 2)',
- 'hexoid': '06 04 67 2A 07 02',
- 'name': 'merchantData',
- 'oid': (2, 23, 42, 7, 2)},
- 'messageDigest': {'comment': 'PKCS #9',
- 'description': 'messageDigest (1 2 840 113549 1 9 4)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 04',
- 'name': 'messageDigest',
- 'oid': (1, 2, 840, 113549, 1, 9, 4)},
- 'messageType': {'comment': 'Verisign PKCS #7 attribute',
- 'description': 'messageType (2 16 840 1 113733 1 9 2)',
- 'hexoid': '06 0A 60 86 48 01 86 F8 45 01 09 02',
- 'name': 'messageType',
- 'oid': (2, 16, 840, 1, 113733, 1, 9, 2)},
- 'messageTypes': {'comment': 'Telesec module',
- 'description': 'messageTypes (0 2 262 1 10 2 3)',
- 'hexoid': '06 07 02 82 06 01 0A 02 03',
- 'name': 'messageTypes',
- 'oid': (0, 2, 262, 1, 10, 2, 3)},
- 'metaSDNSckl': {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'metaSDNSckl (2 16 840 1 101 2 1 5 40)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 28',
- 'name': 'metaSDNSckl',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 40)},
- 'metaSDNSsignatureCKL': {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'metaSDNSsignatureCKL (2 16 840 1 101 2 1 5 42)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 2A',
- 'name': 'metaSDNSsignatureCKL',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 42)},
- 'microsoftExcel': {'comment': 'Microsoft',
- 'description': 'microsoftExcel (1 2 840 113556 4 3)',
- 'hexoid': '06 08 2A 86 48 86 F7 14 04 03',
- 'name': 'microsoftExcel',
- 'oid': (1, 2, 840, 113556, 4, 3)},
- 'microsoftPowerPoint': {'comment': 'Microsoft',
- 'description': 'microsoftPowerPoint (1 2 840 113556 4 5)',
- 'hexoid': '06 08 2A 86 48 86 F7 14 04 05',
- 'name': 'microsoftPowerPoint',
- 'oid': (1, 2, 840, 113556, 4, 5)},
- 'microsoftRecipientInfo': {'comment': 'Microsoft attribute',
- 'description': 'microsoftRecipientInfo (1 3 6 1 4 1 311 16 4)',
- 'hexoid': '06 09 2B 06 01 04 01 82 37 10 04',
- 'name': 'microsoftRecipientInfo',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 16, 4)},
- 'misty1-cbc': {'comment': 'Mitsubishi security algorithm',
- 'description': 'misty1-cbc (1 2 392 200011 61 1 1 1 1)',
- 'hexoid': '06 0B 2A 83 08 8C 9A 4B 3D 01 01 01 01',
- 'name': 'misty1-cbc',
- 'oid': (1, 2, 392, 200011, 61, 1, 1, 1, 1)},
- 'mlAdministrators': {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'mlAdministrators (2 16 840 1 101 2 1 5 13)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 0D',
- 'name': 'mlAdministrators',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 13)},
- 'mlExpandHistory': {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'mlExpandHistory (1 2 840 113549 1 9 16 2 3)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 03',
- 'name': 'mlExpandHistory',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 3)},
- 'mlMembership': {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'mlMembership (2 16 840 1 101 2 1 5 12)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 0C',
- 'name': 'mlMembership',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 12)},
- 'mlReceiptPolicy': {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'mlReceiptPolicy (2 16 840 1 101 2 1 5 11)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 0B',
- 'name': 'mlReceiptPolicy',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 11)},
- 'module': {'comment': 'SET',
- 'description': 'module (2 23 42 6)',
- 'hexoid': '06 03 67 2A 06',
- 'name': 'module',
- 'oid': (2, 23, 42, 6)},
- 'monetaryLimit': {'comment': 'Teletrust attribute',
- 'description': 'monetaryLimit (1 3 36 8 3 4)',
- 'hexoid': '06 05 2B 24 08 03 04',
- 'name': 'monetaryLimit',
- 'oid': (1, 3, 36, 8, 3, 4)},
- 'month': {'comment': 'SET field',
- 'description': 'month (2 23 42 2 6)',
- 'hexoid': '06 04 67 2A 02 06',
- 'name': 'month',
- 'oid': (2, 23, 42, 2, 6)},
- 'mosaicPRBAC': {'comment': 'SDN.700 INFOSEC policy',
- 'description': 'mosaicPRBAC (2 16 840 1 101 2 1 3 3)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 03 03',
- 'name': 'mosaicPRBAC',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 3)},
- 'mpeg-1': {'comment': 'cryptlib special MPEG-of-cat OID',
- 'description': 'mpeg-1 (1 3 6 1 4 1 3029 42 11172 1)',
- 'hexoid': '06 0B 2B 06 01 04 01 97 55 2A D7 24 01',
- 'name': 'mpeg-1',
- 'oid': (1, 3, 6, 1, 4, 1, 3029, 42, 11172, 1)},
- 'mqv1': {'comment': 'ANSI X9.42 scheme',
- 'description': 'mqv1 (1 2 840 10046 3 6)',
- 'hexoid': '06 07 2A 86 48 CE 3E 03 06',
- 'name': 'mqv1',
- 'oid': (1, 2, 840, 10046, 3, 6)},
- 'mqv2': {'comment': 'ANSI X9.42 scheme',
- 'description': 'mqv2 (1 2 840 10046 3 5)',
- 'hexoid': '06 07 2A 86 48 CE 3E 03 05',
- 'name': 'mqv2',
- 'oid': (1, 2, 840, 10046, 3, 5)},
- 'msPKI-Cert-Template-OID': {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'msPKI-Cert-Template-OID (1 2 840 113556 1 4 1436)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8B 1C',
- 'name': 'msPKI-Cert-Template-OID',
- 'oid': (1, 2, 840, 113556, 1, 4, 1436)},
- 'msPKI-Certificate-Application-Policy': {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'msPKI-Certificate-Application-Policy (1 2 840 113556 1 4 1674)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8D 0A',
- 'name': 'msPKI-Certificate-Application-Policy',
- 'oid': (1,
- 2,
- 840,
- 113556,
- 1,
- 4,
- 1674)},
- 'msPKI-Certificate-Name-Flag': {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'msPKI-Certificate-Name-Flag (1 2 840 113556 1 4 1432)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8B 18',
- 'name': 'msPKI-Certificate-Name-Flag',
- 'oid': (1, 2, 840, 113556, 1, 4, 1432)},
- 'msPKI-Certificate-Policy': {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'msPKI-Certificate-Policy (1 2 840 113556 1 4 1439)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8B 1F',
- 'name': 'msPKI-Certificate-Policy',
- 'oid': (1, 2, 840, 113556, 1, 4, 1439)},
- 'msPKI-Enrollment-Flag': {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'msPKI-Enrollment-Flag (1 2 840 113556 1 4 1430)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8B 16',
- 'name': 'msPKI-Enrollment-Flag',
- 'oid': (1, 2, 840, 113556, 1, 4, 1430)},
- 'msPKI-Minimal-Key-Size': {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'msPKI-Minimal-Key-Size (1 2 840 113556 1 4 1433)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8B 19',
- 'name': 'msPKI-Minimal-Key-Size',
- 'oid': (1, 2, 840, 113556, 1, 4, 1433)},
- 'msPKI-Private-Key-Flag': {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'msPKI-Private-Key-Flag (1 2 840 113556 1 4 1431)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8B 17',
- 'name': 'msPKI-Private-Key-Flag',
- 'oid': (1, 2, 840, 113556, 1, 4, 1431)},
- 'msPKI-RA-Application-Policies': {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'msPKI-RA-Application-Policies (1 2 840 113556 1 4 1675)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8D 0B',
- 'name': 'msPKI-RA-Application-Policies',
- 'oid': (1, 2, 840, 113556, 1, 4, 1675)},
- 'msPKI-RA-Policies': {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'msPKI-RA-Policies (1 2 840 113556 1 4 1438)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8B 1E',
- 'name': 'msPKI-RA-Policies',
- 'oid': (1, 2, 840, 113556, 1, 4, 1438)},
- 'msPKI-RA-Signature': {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'msPKI-RA-Signature (1 2 840 113556 1 4 1429)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8B 15',
- 'name': 'msPKI-RA-Signature',
- 'oid': (1, 2, 840, 113556, 1, 4, 1429)},
- 'msPKI-Supersede-Templates': {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'msPKI-Supersede-Templates (1 2 840 113556 1 4 1437)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8B 1D',
- 'name': 'msPKI-Supersede-Templates',
- 'oid': (1, 2, 840, 113556, 1, 4, 1437)},
- 'msPKI-Template-Minor-Revision': {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'msPKI-Template-Minor-Revision (1 2 840 113556 1 4 1435)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8B 1B',
- 'name': 'msPKI-Template-Minor-Revision',
- 'oid': (1, 2, 840, 113556, 1, 4, 1435)},
- 'msPKI-Template-Schema-Version': {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'msPKI-Template-Schema-Version (1 2 840 113556 1 4 1434)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8B 1A',
- 'name': 'msPKI-Template-Schema-Version',
- 'oid': (1, 2, 840, 113556, 1, 4, 1434)},
- 'msgExt': {'comment': 'SET',
- 'description': 'msgExt (2 23 42 1)',
- 'hexoid': '06 03 67 2A 01',
- 'name': 'msgExt',
- 'oid': (2, 23, 42, 1)},
- 'msgSigDigest': {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'msgSigDigest (1 2 840 113549 1 9 16 2 5)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 05',
- 'name': 'msgSigDigest',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 5)},
- 'mspContentType': {'comment': 'SDN.700 INFOSEC format',
- 'description': 'mspContentType (2 16 840 1 101 2 1 2 48)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 02 30',
- 'name': 'mspContentType',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 48)},
- 'mspForwardedMessageParameters': {'comment': 'SDN.700 INFOSEC format',
- 'description': 'mspForwardedMessageParameters (2 16 840 1 101 2 1 2 73)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 02 49',
- 'name': 'mspForwardedMessageParameters',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 73)},
- 'mspMMP': {'comment': 'SDN.700 INFOSEC format',
- 'description': 'mspMMP (2 16 840 1 101 2 1 2 50)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 02 32',
- 'name': 'mspMMP',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 50)},
- 'mspMMP2': {'comment': 'SDN.700 INFOSEC format',
- 'description': 'mspMMP2 (2 16 840 1 101 2 1 2 76)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 02 4C',
- 'name': 'mspMMP2',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 76)},
- 'mspRekeyAgentProtocol': {'comment': 'SDN.700 INFOSEC format',
- 'description': 'mspRekeyAgentProtocol (2 16 840 1 101 2 1 2 49)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 02 31',
- 'name': 'mspRekeyAgentProtocol',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 49)},
- 'mspRev3-1ContentType': {'comment': 'SDN.700 INFOSEC format',
- 'description': 'mspRev3-1ContentType (2 16 840 1 101 2 1 2 66)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 02 42',
- 'name': 'mspRev3-1ContentType',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 66)},
- 'mspRev3ContentType': {'comment': 'SDN.700 INFOSEC format',
- 'description': 'mspRev3ContentType (2 16 840 1 101 2 1 2 42)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 02 2A',
- 'name': 'mspRev3ContentType',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 42)},
- 'name': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'name (2 5 4 41)',
- 'hexoid': '06 03 55 04 29',
- 'name': 'name',
- 'oid': (2, 5, 4, 41)},
- 'nameAdditions': {'comment': 'Telesec attribute',
- 'description': 'nameAdditions (0 2 262 1 10 7 18)',
- 'hexoid': '06 07 02 82 06 01 0A 07 12',
- 'name': 'nameAdditions',
- 'oid': (0, 2, 262, 1, 10, 7, 18)},
- 'nameAtBirth': {'comment': 'Teletrust attribute',
- 'description': 'nameAtBirth (1 3 36 8 3 14)',
- 'hexoid': '06 05 2B 24 08 03 0E',
- 'name': 'nameAtBirth',
- 'oid': (1, 3, 36, 8, 3, 14)},
- 'nameBinding': {'comment': 'Telesec',
- 'description': 'nameBinding (0 2 262 1 10 6)',
- 'hexoid': '06 06 02 82 06 01 0A 06',
- 'name': 'nameBinding',
- 'oid': (0, 2, 262, 1, 10, 6)},
- 'nameConstraints': {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'nameConstraints (2 5 29 30)',
- 'hexoid': '06 03 55 1D 1E',
- 'name': 'nameConstraints',
- 'oid': (2, 5, 29, 30)},
- 'nameDistinguisher': {'comment': 'Telesec attribute',
- 'description': 'nameDistinguisher (0 2 262 1 10 7 20)',
- 'hexoid': '06 07 02 82 06 01 0A 07 14',
- 'name': 'nameDistinguisher',
- 'oid': (0, 2, 262, 1, 10, 7, 20)},
- 'namedTagSetPrivilege': {'comment': 'SDN.700 INFOSEC privileges',
- 'description': 'namedTagSetPrivilege (2 16 840 1 101 2 1 10 3)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 0A 03',
- 'name': 'namedTagSetPrivilege',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 10, 3)},
- 'namingAuthorities': {'comment': 'Teletrust attribute',
- 'description': 'namingAuthorities (1 3 36 8 3 11)',
- 'hexoid': '06 05 2B 24 08 03 0B',
- 'name': 'namingAuthorities',
- 'oid': (1, 3, 36, 8, 3, 11)},
- 'namingAuthority': {'comment': 'Telesec attribute',
- 'description': 'namingAuthority (0 2 262 1 10 7 7)',
- 'hexoid': '06 07 02 82 06 01 0A 07 07',
- 'name': 'namingAuthority',
- 'oid': (0, 2, 262, 1, 10, 7, 7)},
- 'national': {'comment': 'SET',
- 'description': 'national (2 23 42 10)',
- 'hexoid': '06 03 67 2A 0A',
- 'name': 'national',
- 'oid': (2, 23, 42, 10)},
- 'netscape-base-url': {'comment': 'Netscape certificate extension',
- 'description': 'netscape-base-url (2 16 840 1 113730 1 2)',
- 'hexoid': '06 09 60 86 48 01 86 F8 42 01 02',
- 'name': 'netscape-base-url',
- 'oid': (2, 16, 840, 1, 113730, 1, 2)},
- 'netscape-ca-policy-url': {'comment': 'Netscape certificate extension',
- 'description': 'netscape-ca-policy-url (2 16 840 1 113730 1 8)',
- 'hexoid': '06 09 60 86 48 01 86 F8 42 01 08',
- 'name': 'netscape-ca-policy-url',
- 'oid': (2, 16, 840, 1, 113730, 1, 8)},
- 'netscape-ca-revocation-url': {'comment': 'Netscape certificate extension',
- 'description': 'netscape-ca-revocation-url (2 16 840 1 113730 1 4)',
- 'hexoid': '06 09 60 86 48 01 86 F8 42 01 04',
- 'name': 'netscape-ca-revocation-url',
- 'oid': (2, 16, 840, 1, 113730, 1, 4)},
- 'netscape-cert-renewal-url': {'comment': 'Netscape certificate extension',
- 'description': 'netscape-cert-renewal-url (2 16 840 1 113730 1 7)',
- 'hexoid': '06 09 60 86 48 01 86 F8 42 01 07',
- 'name': 'netscape-cert-renewal-url',
- 'oid': (2, 16, 840, 1, 113730, 1, 7)},
- 'netscape-cert-type': {'comment': 'Netscape certificate extension',
- 'description': 'netscape-cert-type (2 16 840 1 113730 1 1)',
- 'hexoid': '06 09 60 86 48 01 86 F8 42 01 01',
- 'name': 'netscape-cert-type',
- 'oid': (2, 16, 840, 1, 113730, 1, 1)},
- 'netscape-comment': {'comment': 'Netscape certificate extension',
- 'description': 'netscape-comment (2 16 840 1 113730 1 13)',
- 'hexoid': '06 09 60 86 48 01 86 F8 42 01 0D',
- 'name': 'netscape-comment',
- 'oid': (2, 16, 840, 1, 113730, 1, 13)},
- 'netscape-revocation-url': {'comment': 'Netscape certificate extension',
- 'description': 'netscape-revocation-url (2 16 840 1 113730 1 3)',
- 'hexoid': '06 09 60 86 48 01 86 F8 42 01 03',
- 'name': 'netscape-revocation-url',
- 'oid': (2, 16, 840, 1, 113730, 1, 3)},
- 'netscape-ssl-server-name': {'comment': 'Netscape certificate extension',
- 'description': 'netscape-ssl-server-name (2 16 840 1 113730 1 12)',
- 'hexoid': '06 09 60 86 48 01 86 F8 42 01 0C',
- 'name': 'netscape-ssl-server-name',
- 'oid': (2, 16, 840, 1, 113730, 1, 12)},
- 'nextUpdateLocation': {'comment': 'Microsoft',
- 'description': 'nextUpdateLocation (1 3 6 1 4 1 311 10 2)',
- 'hexoid': '06 09 2B 06 01 04 01 82 37 0A 02',
- 'name': 'nextUpdateLocation',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 10, 2)},
- 'ngcClass1': {'comment': 'Northrop Grumman policy',
- 'description': 'ngcClass1 (1 3 6 1 4 1 16334 509 2 1)',
- 'hexoid': '06 0B 2B 06 01 04 01 FF 4E 83 7D 02 01',
- 'name': 'ngcClass1',
- 'oid': (1, 3, 6, 1, 4, 1, 16334, 509, 2, 1)},
- 'ngcClass2': {'comment': 'Northrop Grumman policy',
- 'description': 'ngcClass2 (1 3 6 1 4 1 16334 509 2 2)',
- 'hexoid': '06 0B 2B 06 01 04 01 FF 4E 83 7D 02 02',
- 'name': 'ngcClass2',
- 'oid': (1, 3, 6, 1, 4, 1, 16334, 509, 2, 2)},
- 'ngcClass3': {'comment': 'Northrop Grumman policy',
- 'description': 'ngcClass3 (1 3 6 1 4 1 16334 509 2 3)',
- 'hexoid': '06 0B 2B 06 01 04 01 FF 4E 83 7D 02 03',
- 'name': 'ngcClass3',
- 'oid': (1, 3, 6, 1, 4, 1, 16334, 509, 2, 3)},
- 'nistAlgorithm': {'comment': 'NIST Algorithm',
- 'description': 'nistAlgorithm (2 16 840 1 101 3 4)',
- 'hexoid': '06 07 60 86 48 01 65 03 04',
- 'name': 'nistAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 3, 4)},
- 'noSignature': {'comment': 'PKIX algorithm',
- 'description': 'noSignature (1 3 6 1 5 5 7 6 2)',
- 'hexoid': '06 08 2B 06 01 05 05 07 06 02',
- 'name': 'noSignature',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 6, 2)},
- 'none': {'comment': 'Telesec encryption',
- 'description': 'none (0 2 262 1 10 1 2 0)',
- 'hexoid': '06 08 02 82 06 01 0A 01 02 00',
- 'name': 'none',
- 'oid': (0, 2, 262, 1, 10, 1, 2, 0)},
- 'notar': {'comment': 'Teletrust ProfessionInfo',
- 'description': 'notar (1 3 36 8 3 11 1 9)',
- 'hexoid': '06 07 2B 24 08 03 0B 01 09',
- 'name': 'notar',
- 'oid': (1, 3, 36, 8, 3, 11, 1, 9)},
- 'notarVertreter': {'comment': 'Teletrust ProfessionInfo',
- 'description': 'notarVertreter (1 3 36 8 3 11 1 11)',
- 'hexoid': '06 07 2B 24 08 03 0B 01 0B',
- 'name': 'notarVertreter',
- 'oid': (1, 3, 36, 8, 3, 11, 1, 11)},
- 'notarVertreterin': {'comment': 'Teletrust ProfessionInfo',
- 'description': 'notarVertreterin (1 3 36 8 3 11 1 10)',
- 'hexoid': '06 07 2B 24 08 03 0B 01 0A',
- 'name': 'notarVertreterin',
- 'oid': (1, 3, 36, 8, 3, 11, 1, 10)},
- 'notariatsVerwalter': {'comment': 'Teletrust ProfessionInfo',
- 'description': 'notariatsVerwalter (1 3 36 8 3 11 1 13)',
- 'hexoid': '06 07 2B 24 08 03 0B 01 0D',
- 'name': 'notariatsVerwalter',
- 'oid': (1, 3, 36, 8, 3, 11, 1, 13)},
- 'notariatsVerwalterin': {'comment': 'Teletrust ProfessionInfo',
- 'description': 'notariatsVerwalterin (1 3 36 8 3 11 1 12)',
- 'hexoid': '06 07 2B 24 08 03 0B 01 0C',
- 'name': 'notariatsVerwalterin',
- 'oid': (1, 3, 36, 8, 3, 11, 1, 12)},
- 'notarin': {'comment': 'Teletrust ProfessionInfo',
- 'description': 'notarin (1 3 36 8 3 11 1 8)',
- 'hexoid': '06 07 2B 24 08 03 0B 01 08',
- 'name': 'notarin',
- 'oid': (1, 3, 36, 8, 3, 11, 1, 8)},
- 'notification': {'comment': 'Telesec',
- 'description': 'notification (0 2 262 1 10 10)',
- 'hexoid': '06 06 02 82 06 01 0A 0A',
- 'name': 'notification',
- 'oid': (0, 2, 262, 1, 10, 10)},
- 'novUKMs': {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'novUKMs (2 16 840 1 101 2 1 5 30)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 1E',
- 'name': 'novUKMs',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 30)},
- 'novellAlgorithm': {'comment': 'Novell',
- 'description': 'novellAlgorithm (2 16 840 1 113719 1 2 8)',
- 'hexoid': '06 0A 60 86 48 01 86 F8 37 01 02 08',
- 'name': 'novellAlgorithm',
- 'oid': (2, 16, 840, 1, 113719, 1, 2, 8)},
- 'novellObfuscate-1': {'comment': 'Novell encryption algorithm',
- 'description': 'novellObfuscate-1 (2 16 840 1 113719 1 2 8 133)',
- 'hexoid': '06 0C 60 86 48 01 86 F8 37 01 02 08 81 05',
- 'name': 'novellObfuscate-1',
- 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 133)},
- 'nsn': {'description': 'nsn (1 2 840 113533 7)',
- 'hexoid': '06 07 2A 86 48 86 F6 7D 07',
- 'name': 'nsn',
- 'oid': (1, 2, 840, 113533, 7)},
- 'nsn-alg': {'description': 'nsn-alg (1 2 840 113533 7 66)',
- 'hexoid': '06 08 2A 86 48 86 F6 7D 07 42',
- 'name': 'nsn-alg',
- 'oid': (1, 2, 840, 113533, 7, 66)},
- 'nsn-at': {'description': 'nsn-at (1 2 840 113533 7 68)',
- 'hexoid': '06 08 2A 86 48 86 F6 7D 07 44',
- 'name': 'nsn-at',
- 'oid': (1, 2, 840, 113533, 7, 68)},
- 'nsn-ce': {'description': 'nsn-ce (1 2 840 113533 7 65)',
- 'hexoid': '06 08 2A 86 48 86 F6 7D 07 41',
- 'name': 'nsn-ce',
- 'oid': (1, 2, 840, 113533, 7, 65)},
- 'nsn-oc': {'description': 'nsn-oc (1 2 840 113533 7 67)',
- 'hexoid': '06 08 2A 86 48 86 F6 7D 07 43',
- 'name': 'nsn-oc',
- 'oid': (1, 2, 840, 113533, 7, 67)},
- 'ntSecurityDescriptor': {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'ntSecurityDescriptor (1 2 840 113556 1 2 281)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 02 82 19',
- 'name': 'ntSecurityDescriptor',
- 'oid': (1, 2, 840, 113556, 1, 2, 281)},
- 'numberType': {'comment': 'ANSI X9.42',
- 'description': 'numberType (1 2 840 10046 2)',
- 'hexoid': '06 06 2A 86 48 CE 3E 02',
- 'name': 'numberType',
- 'oid': (1, 2, 840, 10046, 2)},
- 'objectClass': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'objectClass (2 5 4 0)',
- 'hexoid': '06 03 55 04 00',
- 'name': 'objectClass',
- 'oid': (2, 5, 4, 0)},
- 'ocsp': {'comment': 'PKIX',
- 'description': 'ocsp (1 3 6 1 5 5 7 48 1)',
- 'hexoid': '06 08 2B 06 01 05 05 07 30 01',
- 'name': 'ocsp',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 1)},
- 'ocspArchiveCutoff': {'comment': 'OCSP',
- 'description': 'ocspArchiveCutoff (1 3 6 1 5 5 7 48 1 6)',
- 'hexoid': '06 09 2B 06 01 05 05 07 30 01 06',
- 'name': 'ocspArchiveCutoff',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 1, 6)},
- 'ocspBasic': {'comment': 'OCSP',
- 'description': 'ocspBasic (1 3 6 1 5 5 7 48 1 1)',
- 'hexoid': '06 09 2B 06 01 05 05 07 30 01 01',
- 'name': 'ocspBasic',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 1, 1)},
- 'ocspCRL': {'comment': 'OCSP',
- 'description': 'ocspCRL (1 3 6 1 5 5 7 48 1 3)',
- 'hexoid': '06 09 2B 06 01 05 05 07 30 01 03',
- 'name': 'ocspCRL',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 1, 3)},
- 'ocspNoCheck': {'comment': 'OCSP',
- 'description': 'ocspNoCheck (1 3 6 1 5 5 7 48 1 5)',
- 'hexoid': '06 09 2B 06 01 05 05 07 30 01 05',
- 'name': 'ocspNoCheck',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 1, 5)},
- 'ocspNonce': {'comment': 'OCSP',
- 'description': 'ocspNonce (1 3 6 1 5 5 7 48 1 2)',
- 'hexoid': '06 09 2B 06 01 05 05 07 30 01 02',
- 'name': 'ocspNonce',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 1, 2)},
- 'ocspResponse': {'comment': 'OCSP',
- 'description': 'ocspResponse (1 3 6 1 5 5 7 48 1 4)',
- 'hexoid': '06 09 2B 06 01 05 05 07 30 01 04',
- 'name': 'ocspResponse',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 1, 4)},
- 'ocspServiceLocator': {'comment': 'OCSP',
- 'description': 'ocspServiceLocator (1 3 6 1 5 5 7 48 1 7)',
- 'hexoid': '06 09 2B 06 01 05 05 07 30 01 07',
- 'name': 'ocspServiceLocator',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 1, 7)},
- 'ocspSigning': {'comment': 'PKIX key purpose',
- 'description': 'ocspSigning (1 3 6 1 5 5 7 3 9)',
- 'hexoid': '06 08 2B 06 01 05 05 07 03 09',
- 'name': 'ocspSigning',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 9)},
- 'octUKMs': {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'octUKMs (2 16 840 1 101 2 1 5 29)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 1D',
- 'name': 'octUKMs',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 29)},
- 'oldCertID': {'comment': 'PKIX CRMF registration control',
- 'description': 'oldCertID (1 3 6 1 5 5 7 5 1 5)',
- 'hexoid': '06 09 2B 06 01 05 05 07 05 01 05',
- 'name': 'oldCertID',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 1, 5)},
- 'onBasis': {'comment': 'ANSI X9.62 field basis',
- 'description': 'onBasis (1 2 840 10045 1 2 3 1)',
- 'hexoid': '06 09 2A 86 48 CE 3D 01 02 03 01',
- 'name': 'onBasis',
- 'oid': (1, 2, 840, 10045, 1, 2, 3, 1)},
- 'oneWayFunction': {'comment': 'Telesec mechanism',
- 'description': 'oneWayFunction (0 2 262 1 10 1 3)',
- 'hexoid': '06 07 02 82 06 01 0A 01 03',
- 'name': 'oneWayFunction',
- 'oid': (0, 2, 262, 1, 10, 1, 3)},
- 'oneWayISO9798Authentication': {'comment': 'Telesec authentication',
- 'description': 'oneWayISO9798Authentication (0 2 262 1 10 1 0 6)',
- 'hexoid': '06 08 02 82 06 01 0A 01 00 06',
- 'name': 'oneWayISO9798Authentication',
- 'oid': (0, 2, 262, 1, 10, 1, 0, 6)},
- 'oneWayX509Authentication': {'comment': 'Telesec authentication',
- 'description': 'oneWayX509Authentication (0 2 262 1 10 1 0 3)',
- 'hexoid': '06 08 02 82 06 01 0A 01 00 03',
- 'name': 'oneWayX509Authentication',
- 'oid': (0, 2, 262, 1, 10, 1, 0, 3)},
- 'organization': {'comment': 'X.520 objectClass (2 5 6)',
- 'description': 'organization (2 5 6 4)',
- 'hexoid': '06 03 55 06 04',
- 'name': 'organization',
- 'oid': (2, 5, 6, 4)},
- 'organizationName': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'organizationName (2 5 4 10)',
- 'hexoid': '06 03 55 04 0A',
- 'name': 'organizationName',
- 'oid': (2, 5, 4, 10)},
- 'organizationalPerson': {'comment': 'X.520 objectClass (2 5 6)',
- 'description': 'organizationalPerson (2 5 6 7)',
- 'hexoid': '06 03 55 06 07',
- 'name': 'organizationalPerson',
- 'oid': (2, 5, 6, 7)},
- 'organizationalRole': {'comment': 'X.520 objectClass (2 5 6)',
- 'description': 'organizationalRole (2 5 6 8)',
- 'hexoid': '06 03 55 06 08',
- 'name': 'organizationalRole',
- 'oid': (2, 5, 6, 8)},
- 'organizationalUnit': {'comment': 'X.520 objectClass (2 5 6)',
- 'description': 'organizationalUnit (2 5 6 5)',
- 'hexoid': '06 03 55 06 05',
- 'name': 'organizationalUnit',
- 'oid': (2, 5, 6, 5)},
- 'organizationalUnitName': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'organizationalUnitName (2 5 4 11)',
- 'hexoid': '06 03 55 04 0B',
- 'name': 'organizationalUnitName',
- 'oid': (2, 5, 4, 11)},
- 'origPKIMessage': {'comment': 'PKIX CMP information',
- 'description': 'origPKIMessage (1 3 6 1 5 5 7 4 15)',
- 'hexoid': '06 08 2B 06 01 05 05 07 04 0F',
- 'name': 'origPKIMessage',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 15)},
- 'originalFilename': {'comment': 'Microsoft attribute',
- 'description': 'originalFilename (1 3 6 1 4 1 311 88 2 1)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 58 02 01',
- 'name': 'originalFilename',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 88, 2, 1)},
- 'originatorSig': {'comment': 'S/MIME Signature Type Identifier',
- 'description': 'originatorSig (1 2 840 113549 1 9 16 9 1)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 09 01',
- 'name': 'originatorSig',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 9, 1)},
- 'osVersion': {'comment': 'Microsoft attribute',
- 'description': 'osVersion (1 3 6 1 4 1 311 13 2 3)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 0D 02 03',
- 'name': 'osVersion',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 13, 2, 3)},
- 'otherNames': {'comment': 'PKIX',
- 'description': 'otherNames (1 3 6 1 5 5 7 8)',
- 'hexoid': '06 07 2B 06 01 05 05 07 08',
- 'name': 'otherNames',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 8)},
- 'otherSigCert': {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'otherSigCert (1 2 840 113549 1 9 16 2 19)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 13',
- 'name': 'otherSigCert',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 19)},
- 'owner': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'owner (2 5 4 32)',
- 'hexoid': '06 03 55 04 20',
- 'name': 'owner',
- 'oid': (2, 5, 4, 32)},
- 'pKICriticalExtensions': {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'pKICriticalExtensions (1 2 840 113556 1 4 1330)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8A 32',
- 'name': 'pKICriticalExtensions',
- 'oid': (1, 2, 840, 113556, 1, 4, 1330)},
- 'pKIDefaultCSPs': {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'pKIDefaultCSPs (1 2 840 113556 1 4 1334)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8A 36',
- 'name': 'pKIDefaultCSPs',
- 'oid': (1, 2, 840, 113556, 1, 4, 1334)},
- 'pKIDefaultKeySpec': {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'pKIDefaultKeySpec (1 2 840 113556 1 4 1327)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8A 2F',
- 'name': 'pKIDefaultKeySpec',
- 'oid': (1, 2, 840, 113556, 1, 4, 1327)},
- 'pKIEnrollmentAccess': {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'pKIEnrollmentAccess (1 2 840 113556 1 4 1335)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8A 37',
- 'name': 'pKIEnrollmentAccess',
- 'oid': (1, 2, 840, 113556, 1, 4, 1335)},
- 'pKIExpirationPeriod': {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'pKIExpirationPeriod (1 2 840 113556 1 4 1331)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8A 33',
- 'name': 'pKIExpirationPeriod',
- 'oid': (1, 2, 840, 113556, 1, 4, 1331)},
- 'pKIExtendedKeyUsage': {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'pKIExtendedKeyUsage (1 2 840 113556 1 4 1333)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8A 35',
- 'name': 'pKIExtendedKeyUsage',
- 'oid': (1, 2, 840, 113556, 1, 4, 1333)},
- 'pKIKeyUsage': {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'pKIKeyUsage (1 2 840 113556 1 4 1328)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8A 30',
- 'name': 'pKIKeyUsage',
- 'oid': (1, 2, 840, 113556, 1, 4, 1328)},
- 'pKIMaxIssuingDepth': {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'pKIMaxIssuingDepth (1 2 840 113556 1 4 1329)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8A 31',
- 'name': 'pKIMaxIssuingDepth',
- 'oid': (1, 2, 840, 113556, 1, 4, 1329)},
- 'pKIOverlapPeriod': {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'pKIOverlapPeriod (1 2 840 113556 1 4 1332)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8A 34',
- 'name': 'pKIOverlapPeriod',
- 'oid': (1, 2, 840, 113556, 1, 4, 1332)},
- 'pKReference': {'comment': 'Teletrust attribute',
- 'description': 'pKReference (1 3 36 8 3 7)',
- 'hexoid': '06 05 2B 24 08 03 07',
- 'name': 'pKReference',
- 'oid': (1, 3, 36, 8, 3, 7)},
- 'package': {'comment': 'Telesec',
- 'description': 'package (0 2 262 1 10 4)',
- 'hexoid': '06 06 02 82 06 01 0A 04',
- 'name': 'package',
- 'oid': (0, 2, 262, 1, 10, 4)},
- 'parameter': {'comment': 'Telesec',
- 'description': 'parameter (0 2 262 1 10 5)',
- 'hexoid': '06 06 02 82 06 01 0A 05',
- 'name': 'parameter',
- 'oid': (0, 2, 262, 1, 10, 5)},
- 'passPhrase': {'comment': 'SET field',
- 'description': 'passPhrase (2 23 42 2 12)',
- 'hexoid': '06 04 67 2A 02 0C',
- 'name': 'passPhrase',
- 'oid': (2, 23, 42, 2, 12)},
- 'passwordAuthentication': {'comment': 'Telesec authentication',
- 'description': 'passwordAuthentication (0 2 262 1 10 1 0 1)',
- 'hexoid': '06 08 02 82 06 01 0A 01 00 01',
- 'name': 'passwordAuthentication',
- 'oid': (0, 2, 262, 1, 10, 1, 0, 1)},
- 'passwordBasedMac': {'comment': 'Nortel Secure Networks alg',
- 'description': 'passwordBasedMac (1 2 840 113533 7 66 13)',
- 'hexoid': '06 09 2A 86 48 86 F6 7D 07 42 0D',
- 'name': 'passwordBasedMac',
- 'oid': (1, 2, 840, 113533, 7, 66, 13)},
- 'patentAnwaeltin': {'comment': 'Teletrust ProfessionInfo',
- 'description': 'patentAnwaeltin (1 3 36 8 3 11 1 18)',
- 'hexoid': '06 07 2B 24 08 03 0B 01 12',
- 'name': 'patentAnwaeltin',
- 'oid': (1, 3, 36, 8, 3, 11, 1, 18)},
- 'patentAnwalt': {'comment': 'Teletrust ProfessionInfo',
- 'description': 'patentAnwalt (1 3 36 8 3 11 1 19)',
- 'hexoid': '06 07 2B 24 08 03 0B 01 13',
- 'name': 'patentAnwalt',
- 'oid': (1, 3, 36, 8, 3, 11, 1, 19)},
- 'pbeWithMD2AndDES-CBC': {'comment': 'PKCS #5',
- 'description': 'pbeWithMD2AndDES-CBC (1 2 840 113549 1 5 1)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 05 01',
- 'name': 'pbeWithMD2AndDES-CBC',
- 'oid': (1, 2, 840, 113549, 1, 5, 1)},
- 'pbeWithMD2AndRC2-CBC': {'comment': 'PKCS #5',
- 'description': 'pbeWithMD2AndRC2-CBC (1 2 840 113549 1 5 4)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 05 04',
- 'name': 'pbeWithMD2AndRC2-CBC',
- 'oid': (1, 2, 840, 113549, 1, 5, 4)},
- 'pbeWithMD5AndCAST5-CBC': {'comment': 'Nortel Secure Networks alg',
- 'description': 'pbeWithMD5AndCAST5-CBC (1 2 840 113533 7 66 12)',
- 'hexoid': '06 09 2A 86 48 86 F6 7D 07 42 0C',
- 'name': 'pbeWithMD5AndCAST5-CBC',
- 'oid': (1, 2, 840, 113533, 7, 66, 12)},
- 'pbeWithMD5AndDES-CBC': {'comment': 'PKCS #5',
- 'description': 'pbeWithMD5AndDES-CBC (1 2 840 113549 1 5 3)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 05 03',
- 'name': 'pbeWithMD5AndDES-CBC',
- 'oid': (1, 2, 840, 113549, 1, 5, 3)},
- 'pbeWithMD5AndRC2-CBC': {'comment': 'PKCS #5',
- 'description': 'pbeWithMD5AndRC2-CBC (1 2 840 113549 1 5 6)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 05 06',
- 'name': 'pbeWithMD5AndRC2-CBC',
- 'oid': (1, 2, 840, 113549, 1, 5, 6)},
- 'pbeWithSHAAnd128BitRC2-CBC': {'comment': 'PKCS #12 PbeIds',
- 'description': 'pbeWithSHAAnd128BitRC2-CBC (1 2 840 113549 1 12 1 5)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 01 05',
- 'name': 'pbeWithSHAAnd128BitRC2-CBC',
- 'oid': (1, 2, 840, 113549, 1, 12, 1, 5)},
- 'pbeWithSHAAnd128BitRC4': {'comment': 'PKCS #12 PbeIds. This OID was formerly assigned as pkcs-12-OfflineTransportMode',
- 'description': 'pbeWithSHAAnd128BitRC4 (1 2 840 113549 1 12 1 1)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 01 01',
- 'name': 'pbeWithSHAAnd128BitRC4',
- 'oid': (1, 2, 840, 113549, 1, 12, 1, 1)},
- 'pbeWithSHAAnd2-KeyTripleDES-CBC': {'comment': 'PKCS #12 PbeIds',
- 'description': 'pbeWithSHAAnd2-KeyTripleDES-CBC (1 2 840 113549 1 12 1 4)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 01 04',
- 'name': 'pbeWithSHAAnd2-KeyTripleDES-CBC',
- 'oid': (1, 2, 840, 113549, 1, 12, 1, 4)},
- 'pbeWithSHAAnd3-KeyTripleDES-CBC': {'comment': 'PKCS #12 PbeIds',
- 'description': 'pbeWithSHAAnd3-KeyTripleDES-CBC (1 2 840 113549 1 12 1 3)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 01 03',
- 'name': 'pbeWithSHAAnd3-KeyTripleDES-CBC',
- 'oid': (1, 2, 840, 113549, 1, 12, 1, 3)},
- 'pbeWithSHAAnd40BitRC2-CBC': {'comment': 'PKCS #12 PbeIds',
- 'description': 'pbeWithSHAAnd40BitRC2-CBC (1 2 840 113549 1 12 1 6)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 01 06',
- 'name': 'pbeWithSHAAnd40BitRC2-CBC',
- 'oid': (1, 2, 840, 113549, 1, 12, 1, 6)},
- 'pbeWithSHAAnd40BitRC4': {'comment': 'PKCS #12 PbeIds. This OID was formerly assigned as pkcs-12-OnlineTransportMode',
- 'description': 'pbeWithSHAAnd40BitRC4 (1 2 840 113549 1 12 1 2)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 01 02',
- 'name': 'pbeWithSHAAnd40BitRC4',
- 'oid': (1, 2, 840, 113549, 1, 12, 1, 2)},
- 'pbeWithSHAAndDES-CBC': {'comment': 'PKCS #5',
- 'description': 'pbeWithSHAAndDES-CBC (1 2 840 113549 1 5 10)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 05 0A',
- 'name': 'pbeWithSHAAndDES-CBC',
- 'oid': (1, 2, 840, 113549, 1, 5, 10)},
- 'person': {'comment': 'X.520 objectClass (2 5 6)',
- 'description': 'person (2 5 6 6)',
- 'hexoid': '06 03 55 06 06',
- 'name': 'person',
- 'oid': (2, 5, 6, 6)},
- 'personalData': {'comment': 'Teletrust OtherName attribute',
- 'description': 'personalData (1 3 36 8 4 1)',
- 'hexoid': '06 05 2B 24 08 04 01',
- 'name': 'personalData',
- 'oid': (1, 3, 36, 8, 4, 1)},
- 'pgpExtension': {'comment': 'PGP key information',
- 'description': 'pgpExtension (1 3 6 1 4 1 3401 8 1 1)',
- 'hexoid': '06 0A 2B 06 01 04 01 9A 49 08 01 01',
- 'name': 'pgpExtension',
- 'oid': (1, 3, 6, 1, 4, 1, 3401, 8, 1, 1)},
- 'physicalCardNumber': {'comment': 'Telesec attribute',
- 'description': 'physicalCardNumber (0 2 262 1 10 7 25)',
- 'hexoid': '06 07 02 82 06 01 0A 07 19',
- 'name': 'physicalCardNumber',
- 'oid': (0, 2, 262, 1, 10, 7, 25)},
- 'physicalDeliveryOfficeName': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'physicalDeliveryOfficeName (2 5 4 19)',
- 'hexoid': '06 03 55 04 13',
- 'name': 'physicalDeliveryOfficeName',
- 'oid': (2, 5, 4, 19)},
- 'physicianIdentifiers': {'comment': 'MEDePass',
- 'description': 'physicianIdentifiers (1 3 6 1 4 1 5770 0 4)',
- 'hexoid': '06 09 2B 06 01 04 01 AD 0A 00 04',
- 'name': 'physicianIdentifiers',
- 'oid': (1, 3, 6, 1, 4, 1, 5770, 0, 4)},
- 'pickupToken': {'comment': 'ANSI X9.57 hold instruction',
- 'description': 'pickupToken (1 2 840 10040 2 4)',
- 'hexoid': '06 07 2A 86 48 CE 38 02 04',
- 'name': 'pickupToken',
- 'oid': (1, 2, 840, 10040, 2, 4)},
- 'pkcs-1': {'description': 'pkcs-1 (1 2 840 113549 1 1)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 01 01',
- 'name': 'pkcs-1',
- 'oid': (1, 2, 840, 113549, 1, 1)},
- 'pkcs-12': {'description': 'pkcs-12 (1 2 840 113549 1 12)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 01 0C',
- 'name': 'pkcs-12',
- 'oid': (1, 2, 840, 113549, 1, 12)},
- 'pkcs-12-BagIds': {'description': 'pkcs-12-BagIds (1 2 840 113549 1 12 3)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 0C 03',
- 'name': 'pkcs-12-BagIds',
- 'oid': (1, 2, 840, 113549, 1, 12, 3)},
- 'pkcs-12-EnvelopingID': {'comment': 'PKCS #12 OID. Deprecated, use the conventional PKCS #1 OIDs instead',
- 'description': 'pkcs-12-EnvelopingID (1 2 840 113549 1 12 5 2)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 05 02',
- 'name': 'pkcs-12-EnvelopingID',
- 'oid': (1, 2, 840, 113549, 1, 12, 5, 2)},
- 'pkcs-12-PbeIds': {'comment': 'This OID was formerly assigned as PKCS #12 modeID',
- 'description': 'pkcs-12-PbeIds (1 2 840 113549 1 12 1)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 0C 01',
- 'name': 'pkcs-12-PbeIds',
- 'oid': (1, 2, 840, 113549, 1, 12, 1)},
- 'pkcs-12-SDSICertBagID': {'comment': 'PKCS #12 CertBagID. This OID was formerly assigned as pkcs-12-SDSICertBag',
- 'description': 'pkcs-12-SDSICertBagID (1 2 840 113549 1 12 4 2)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 04 02',
- 'name': 'pkcs-12-SDSICertBagID',
- 'oid': (1, 2, 840, 113549, 1, 12, 4, 2)},
- 'pkcs-12-X509CertCRLBagID': {'comment': 'PKCS #12 CertBagID. This OID was formerly assigned as pkcs-12-X509CertCRLBag',
- 'description': 'pkcs-12-X509CertCRLBagID (1 2 840 113549 1 12 4 1)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 04 01',
- 'name': 'pkcs-12-X509CertCRLBagID',
- 'oid': (1, 2, 840, 113549, 1, 12, 4, 1)},
- 'pkcs-12-certAndCRLBagId': {'comment': 'PKCS #12 BagIds',
- 'description': 'pkcs-12-certAndCRLBagId (1 2 840 113549 1 12 3 2)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 03 02',
- 'name': 'pkcs-12-certAndCRLBagId',
- 'oid': (1, 2, 840, 113549, 1, 12, 3, 2)},
- 'pkcs-12-certBag': {'comment': 'PKCS #12 BagIds',
- 'description': 'pkcs-12-certBag (1 2 840 113549 1 12 10 1 3)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 0A 01 03',
- 'name': 'pkcs-12-certBag',
- 'oid': (1, 2, 840, 113549, 1, 12, 10, 1, 3)},
- 'pkcs-12-crlBag': {'comment': 'PKCS #12 BagIds',
- 'description': 'pkcs-12-crlBag (1 2 840 113549 1 12 10 1 4)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 0A 01 04',
- 'name': 'pkcs-12-crlBag',
- 'oid': (1, 2, 840, 113549, 1, 12, 10, 1, 4)},
- 'pkcs-12-keyBag': {'comment': 'PKCS #12 BagIds',
- 'description': 'pkcs-12-keyBag (1 2 840 113549 1 12 10 1 1)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 0A 01 01',
- 'name': 'pkcs-12-keyBag',
- 'oid': (1, 2, 840, 113549, 1, 12, 10, 1, 1)},
- 'pkcs-12-keyBagId': {'comment': 'PKCS #12 BagIds',
- 'description': 'pkcs-12-keyBagId (1 2 840 113549 1 12 3 1)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 03 01',
- 'name': 'pkcs-12-keyBagId',
- 'oid': (1, 2, 840, 113549, 1, 12, 3, 1)},
- 'pkcs-12-pkcs-8ShroudedKeyBag': {'comment': 'PKCS #12 BagIds',
- 'description': 'pkcs-12-pkcs-8ShroudedKeyBag (1 2 840 113549 1 12 10 1 2)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 0A 01 02',
- 'name': 'pkcs-12-pkcs-8ShroudedKeyBag',
- 'oid': (1, 2, 840, 113549, 1, 12, 10, 1, 2)},
- 'pkcs-12-pkcs-8ShroudedKeyBagId': {'comment': 'PKCS #12 BagIds',
- 'description': 'pkcs-12-pkcs-8ShroudedKeyBagId (1 2 840 113549 1 12 3 5)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 03 05',
- 'name': 'pkcs-12-pkcs-8ShroudedKeyBagId',
- 'oid': (1, 2, 840, 113549, 1, 12, 3, 5)},
- 'pkcs-12-safeContentsBag': {'comment': 'PKCS #12 BagIds',
- 'description': 'pkcs-12-safeContentsBag (1 2 840 113549 1 12 10 1 6)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 0A 01 06',
- 'name': 'pkcs-12-safeContentsBag',
- 'oid': (1, 2, 840, 113549, 1, 12, 10, 1, 6)},
- 'pkcs-12-safeContentsId': {'comment': 'PKCS #12 BagIds',
- 'description': 'pkcs-12-safeContentsId (1 2 840 113549 1 12 3 4)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 03 04',
- 'name': 'pkcs-12-safeContentsId',
- 'oid': (1, 2, 840, 113549, 1, 12, 3, 4)},
- 'pkcs-12-secretBag': {'comment': 'PKCS #12 BagIds',
- 'description': 'pkcs-12-secretBag (1 2 840 113549 1 12 10 1 5)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 0A 01 05',
- 'name': 'pkcs-12-secretBag',
- 'oid': (1, 2, 840, 113549, 1, 12, 10, 1, 5)},
- 'pkcs-12-secretBagId': {'comment': 'PKCS #12 BagIds',
- 'description': 'pkcs-12-secretBagId (1 2 840 113549 1 12 3 3)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 03 03',
- 'name': 'pkcs-12-secretBagId',
- 'oid': (1, 2, 840, 113549, 1, 12, 3, 3)},
- 'pkcs-12BadIds': {'description': 'pkcs-12BadIds (1 2 840 113549 1 12 10 1)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 0A 01',
- 'name': 'pkcs-12BadIds',
- 'oid': (1, 2, 840, 113549, 1, 12, 10, 1)},
- 'pkcs-12Version1': {'description': 'pkcs-12Version1 (1 2 840 113549 1 12 10)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 0C 0A',
- 'name': 'pkcs-12Version1',
- 'oid': (1, 2, 840, 113549, 1, 12, 10)},
- 'pkcs-3': {'description': 'pkcs-3 (1 2 840 113549 1 3)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 01 03',
- 'name': 'pkcs-3',
- 'oid': (1, 2, 840, 113549, 1, 3)},
- 'pkcs-5': {'description': 'pkcs-5 (1 2 840 113549 1 5)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 01 05',
- 'name': 'pkcs-5',
- 'oid': (1, 2, 840, 113549, 1, 5)},
- 'pkcs-7': {'description': 'pkcs-7 (1 2 840 113549 1 7)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 01 07',
- 'name': 'pkcs-7',
- 'oid': (1, 2, 840, 113549, 1, 7)},
- 'pkcs-9': {'description': 'pkcs-9 (1 2 840 113549 1 9)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 01 09',
- 'name': 'pkcs-9',
- 'oid': (1, 2, 840, 113549, 1, 9)},
- 'pkcs1-MGF': {'comment': 'PKCS #1',
- 'description': 'pkcs1-MGF (1 2 840 113549 1 1 8)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 01 08',
- 'name': 'pkcs1-MGF',
- 'oid': (1, 2, 840, 113549, 1, 1, 8)},
- 'pkcs15Token': {'comment': 'PKCS #9/RFC 2985 attribute',
- 'description': 'pkcs15Token (1 2 840 113549 1 9 25 1)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 19 01',
- 'name': 'pkcs15Token',
- 'oid': (1, 2, 840, 113549, 1, 9, 25, 1)},
- 'pkcs15attributes': {'comment': 'PKCS #15',
- 'description': 'pkcs15attributes (1 2 840 113549 1 15 2)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 0F 02',
- 'name': 'pkcs15attributes',
- 'oid': (1, 2, 840, 113549, 1, 15, 2)},
- 'pkcs15content': {'comment': 'PKCS #15 content type',
- 'description': 'pkcs15content (1 2 840 113549 1 15 3 1)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0F 03 01',
- 'name': 'pkcs15content',
- 'oid': (1, 2, 840, 113549, 1, 15, 3, 1)},
- 'pkcs15contentType': {'comment': 'PKCS #15',
- 'description': 'pkcs15contentType (1 2 840 113549 1 15 3)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 0F 03',
- 'name': 'pkcs15contentType',
- 'oid': (1, 2, 840, 113549, 1, 15, 3)},
- 'pkcs15modules': {'comment': 'PKCS #15',
- 'description': 'pkcs15modules (1 2 840 113549 1 15 1)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 0F 01',
- 'name': 'pkcs15modules',
- 'oid': (1, 2, 840, 113549, 1, 15, 1)},
- 'pkcs5PBES2': {'comment': 'PKCS #5 v2.0',
- 'description': 'pkcs5PBES2 (1 2 840 113549 1 5 13)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 05 0D',
- 'name': 'pkcs5PBES2',
- 'oid': (1, 2, 840, 113549, 1, 5, 13)},
- 'pkcs5PBKDF2': {'comment': 'PKCS #5 v2.0',
- 'description': 'pkcs5PBKDF2 (1 2 840 113549 1 5 12)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 05 0C',
- 'name': 'pkcs5PBKDF2',
- 'oid': (1, 2, 840, 113549, 1, 5, 12)},
- 'pkcs5PBMAC1': {'comment': 'PKCS #5 v2.0',
- 'description': 'pkcs5PBMAC1 (1 2 840 113549 1 5 14)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 05 0E',
- 'name': 'pkcs5PBMAC1',
- 'oid': (1, 2, 840, 113549, 1, 5, 14)},
- 'pkcs7Attribute': {'comment': 'Verisign PKI extension',
- 'description': 'pkcs7Attribute (2 16 840 1 113733 1 9)',
- 'hexoid': '06 09 60 86 48 01 86 F8 45 01 09',
- 'name': 'pkcs7Attribute',
- 'oid': (2, 16, 840, 1, 113733, 1, 9)},
- 'pkcs7PDU': {'comment': 'PKCS #9/RFC 2985 attribute',
- 'description': 'pkcs7PDU (1 2 840 113549 1 9 25 5)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 19 05',
- 'name': 'pkcs7PDU',
- 'oid': (1, 2, 840, 113549, 1, 9, 25, 5)},
- 'pkcs9attributes': {'comment': 'PKCS #9/RFC 2985',
- 'description': 'pkcs9attributes (1 2 840 113549 1 9 25)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 19',
- 'name': 'pkcs9attributes',
- 'oid': (1, 2, 840, 113549, 1, 9, 25)},
- 'pkcs9matchingRules': {'comment': 'PKCS #9/RFC 2985',
- 'description': 'pkcs9matchingRules (1 2 840 113549 1 9 27)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 1B',
- 'name': 'pkcs9matchingRules',
- 'oid': (1, 2, 840, 113549, 1, 9, 27)},
- 'pkcs9objectClass': {'comment': 'PKCS #9/RFC 2985',
- 'description': 'pkcs9objectClass (1 2 840 113549 1 9 24)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 18',
- 'name': 'pkcs9objectClass',
- 'oid': (1, 2, 840, 113549, 1, 9, 24)},
- 'pkcs9syntax': {'comment': 'PKCS #9/RFC 2985',
- 'description': 'pkcs9syntax (1 2 840 113549 1 9 26)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 1A',
- 'name': 'pkcs9syntax',
- 'oid': (1, 2, 840, 113549, 1, 9, 26)},
- 'pki': {'comment': 'Verisign extension',
- 'description': 'pki (2 16 840 1 113733 1)',
- 'hexoid': '06 08 60 86 48 01 86 F8 45 01',
- 'name': 'pki',
- 'oid': (2, 16, 840, 1, 113733, 1)},
- 'pkiArchiveOptions': {'comment': 'PKIX CRMF registration control',
- 'description': 'pkiArchiveOptions (1 3 6 1 5 5 7 5 1 4)',
- 'hexoid': '06 09 2B 06 01 05 05 07 05 01 04',
- 'name': 'pkiArchiveOptions',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 1, 4)},
- 'pkiAttributeType': {'comment': 'Novell PKI',
- 'description': 'pkiAttributeType (2 16 840 1 113719 1 9 4)',
- 'hexoid': '06 0A 60 86 48 01 86 F8 37 01 09 04',
- 'name': 'pkiAttributeType',
- 'oid': (2, 16, 840, 1, 113719, 1, 9, 4)},
- 'pkiBoot': {'comment': 'cryptlib attribute type',
- 'description': 'pkiBoot (1 3 6 1 4 1 3029 3 1 2)',
- 'hexoid': '06 0A 2B 06 01 04 01 97 55 03 01 02',
- 'name': 'pkiBoot',
- 'oid': (1, 3, 6, 1, 4, 1, 3029, 3, 1, 2)},
- 'pkiCA': {'comment': 'X.520 objectClass (2 5 6)',
- 'description': 'pkiCA (2 5 6 22)',
- 'hexoid': '06 03 55 06 16',
- 'name': 'pkiCA',
- 'oid': (2, 5, 6, 22)},
- 'pkiPath': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'pkiPath (2 5 4 70)',
- 'hexoid': '06 03 55 04 46',
- 'name': 'pkiPath',
- 'oid': (2, 5, 4, 70)},
- 'pkiPublicationInfo': {'comment': 'PKIX CRMF registration control',
- 'description': 'pkiPublicationInfo (1 3 6 1 5 5 7 5 1 3)',
- 'hexoid': '06 09 2B 06 01 05 05 07 05 01 03',
- 'name': 'pkiPublicationInfo',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 1, 3)},
- 'pkiStatus': {'comment': 'Verisign PKCS #7 attribute',
- 'description': 'pkiStatus (2 16 840 1 113733 1 9 3)',
- 'hexoid': '06 0A 60 86 48 01 86 F8 45 01 09 03',
- 'name': 'pkiStatus',
- 'oid': (2, 16, 840, 1, 113733, 1, 9, 3)},
- 'pkiUser': {'comment': 'X.520 objectClass (2 5 6)',
- 'description': 'pkiUser (2 5 6 21)',
- 'hexoid': '06 03 55 06 15',
- 'name': 'pkiUser',
- 'oid': (2, 5, 6, 21)},
- 'pkix': {'description': 'pkix (1 3 6 1 5 5 7)',
- 'hexoid': '06 06 2B 06 01 05 05 07',
- 'name': 'pkix',
- 'oid': (1, 3, 6, 1, 5, 5, 7)},
- 'pkixQCSyntax-v1': {'comment': 'PKIX qualified certificates',
- 'description': 'pkixQCSyntax-v1 (1 3 6 1 5 5 7 11 1)',
- 'hexoid': '06 08 2B 06 01 05 05 07 0B 01',
- 'name': 'pkixQCSyntax-v1',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 11, 1)},
- 'plProtocol': {'comment': 'Telesec module',
- 'description': 'plProtocol (0 2 262 1 10 2 4)',
- 'hexoid': '06 07 02 82 06 01 0A 02 04',
- 'name': 'plProtocol',
- 'oid': (0, 2, 262, 1, 10, 2, 4)},
- 'placeName': {'comment': 'SET field',
- 'description': 'placeName (2 23 42 2 4)',
- 'hexoid': '06 04 67 2A 02 04',
- 'name': 'placeName',
- 'oid': (2, 23, 42, 2, 4)},
- 'placeOfBirth': {'comment': 'PKIX personal data',
- 'description': 'placeOfBirth (1 3 6 1 5 5 7 9 2)',
- 'hexoid': '06 08 2B 06 01 05 05 07 09 02',
- 'name': 'placeOfBirth',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 9, 2)},
- 'plainEDImessage': {'comment': 'TMN EDI for Interactive Agents',
- 'description': 'plainEDImessage (1 3 6 1 4 1 3576 7 1)',
- 'hexoid': '06 09 2B 06 01 04 01 9B 78 07 01',
- 'name': 'plainEDImessage',
- 'oid': (1, 3, 6, 1, 4, 1, 3576, 7, 1)},
- 'policy': {'comment': 'SET',
- 'description': 'policy (2 23 42 5)',
- 'hexoid': '06 03 67 2A 05',
- 'name': 'policy',
- 'oid': (2, 23, 42, 5)},
- 'policyConstraints': {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'policyConstraints (2 5 29 36)',
- 'hexoid': '06 03 55 1D 24',
- 'name': 'policyConstraints',
- 'oid': (2, 5, 29, 36)},
- 'policyMappings': {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'policyMappings (2 5 29 33)',
- 'hexoid': '06 03 55 1D 21',
- 'name': 'policyMappings',
- 'oid': (2, 5, 29, 33)},
- 'policyQualifierIds': {'comment': 'PKIX',
- 'description': 'policyQualifierIds (1 3 6 1 5 5 7 2)',
- 'hexoid': '06 07 2B 06 01 05 05 07 02',
- 'name': 'policyQualifierIds',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 2)},
- 'postOfficeBox': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'postOfficeBox (2 5 4 18)',
- 'hexoid': '06 03 55 04 12',
- 'name': 'postOfficeBox',
- 'oid': (2, 5, 4, 18)},
- 'postalAddress': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'postalAddress (2 5 4 16)',
- 'hexoid': '06 03 55 04 10',
- 'name': 'postalAddress',
- 'oid': (2, 5, 4, 16)},
- 'postalCode': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'postalCode (2 5 4 17)',
- 'hexoid': '06 03 55 04 11',
- 'name': 'postalCode',
- 'oid': (2, 5, 4, 17)},
- 'ppBasis': {'comment': 'ANSI X9.62 field basis',
- 'description': 'ppBasis (1 2 840 10045 1 2 3 3)',
- 'hexoid': '06 09 2A 86 48 CE 3D 01 02 03 03',
- 'name': 'ppBasis',
- 'oid': (1, 2, 840, 10045, 1, 2, 3, 3)},
- 'prbacCAConstraints': {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'prbacCAConstraints (2 16 840 1 101 2 1 5 54)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 36',
- 'name': 'prbacCAConstraints',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 54)},
- 'prbacInfo': {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'prbacInfo (2 16 840 1 101 2 1 5 53)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 35',
- 'name': 'prbacInfo',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 53)},
- 'preferBinaryInside': {'comment': 'S/MIME Capability',
- 'description': 'preferBinaryInside (1 2 840 113549 1 9 16 11 1)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 0B 01',
- 'name': 'preferBinaryInside',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 11, 1)},
- 'preferSignedData': {'comment': 'sMIMECapabilities',
- 'description': 'preferSignedData (1 2 840 113549 1 9 15 1)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 0F 01',
- 'name': 'preferSignedData',
- 'oid': (1, 2, 840, 113549, 1, 9, 15, 1)},
- 'preferredDeliveryMehtod': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'preferredDeliveryMehtod (2 5 4 28)',
- 'hexoid': '06 03 55 04 1C',
- 'name': 'preferredDeliveryMehtod',
- 'oid': (2, 5, 4, 28)},
- 'preferredSymmAlg': {'comment': 'PKIX CMP information',
- 'description': 'preferredSymmAlg (1 3 6 1 5 5 7 4 4)',
- 'hexoid': '06 08 2B 06 01 05 05 07 04 04',
- 'name': 'preferredSymmAlg',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 4)},
- 'presentationAddress': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'presentationAddress (2 5 4 29)',
- 'hexoid': '06 03 55 04 1D',
- 'name': 'presentationAddress',
- 'oid': (2, 5, 4, 29)},
- 'prime-field': {'comment': 'ANSI X9.62 field type',
- 'description': 'prime-field (1 2 840 10045 1 1)',
- 'hexoid': '06 07 2A 86 48 CE 3D 01 01',
- 'name': 'prime-field',
- 'oid': (1, 2, 840, 10045, 1, 1)},
- 'prime192v1': {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'prime192v1 (1 2 840 10045 3 1 1 1)',
- 'hexoid': '06 09 2A 86 48 CE 3D 03 01 01 01',
- 'name': 'prime192v1',
- 'oid': (1, 2, 840, 10045, 3, 1, 1, 1)},
- 'prime192v2': {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'prime192v2 (1 2 840 10045 3 1 1 2)',
- 'hexoid': '06 09 2A 86 48 CE 3D 03 01 01 02',
- 'name': 'prime192v2',
- 'oid': (1, 2, 840, 10045, 3, 1, 1, 2)},
- 'prime192v3': {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'prime192v3 (1 2 840 10045 3 1 1 3)',
- 'hexoid': '06 09 2A 86 48 CE 3D 03 01 01 03',
- 'name': 'prime192v3',
- 'oid': (1, 2, 840, 10045, 3, 1, 1, 3)},
- 'prime239v1': {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'prime239v1 (1 2 840 10045 3 1 1 4)',
- 'hexoid': '06 09 2A 86 48 CE 3D 03 01 01 04',
- 'name': 'prime239v1',
- 'oid': (1, 2, 840, 10045, 3, 1, 1, 4)},
- 'prime239v2': {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'prime239v2 (1 2 840 10045 3 1 1 5)',
- 'hexoid': '06 09 2A 86 48 CE 3D 03 01 01 05',
- 'name': 'prime239v2',
- 'oid': (1, 2, 840, 10045, 3, 1, 1, 5)},
- 'prime239v3': {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'prime239v3 (1 2 840 10045 3 1 1 6)',
- 'hexoid': '06 09 2A 86 48 CE 3D 03 01 01 06',
- 'name': 'prime239v3',
- 'oid': (1, 2, 840, 10045, 3, 1, 1, 6)},
- 'prime256v1': {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'prime256v1 (1 2 840 10045 3 1 1 7)',
- 'hexoid': '06 09 2A 86 48 CE 3D 03 01 01 07',
- 'name': 'prime256v1',
- 'oid': (1, 2, 840, 10045, 3, 1, 1, 7)},
- 'privPolicy': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'privPolicy (2 5 4 71)',
- 'hexoid': '06 03 55 04 47',
- 'name': 'privPolicy',
- 'oid': (2, 5, 4, 71)},
- 'privateExtension': {'comment': 'PKIX',
- 'description': 'privateExtension (1 3 6 1 5 5 7 1)',
- 'hexoid': '06 07 2B 06 01 05 05 07 01',
- 'name': 'privateExtension',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 1)},
- 'privateKeyUsagePeriod': {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'privateKeyUsagePeriod (2 5 29 16)',
- 'hexoid': '06 03 55 1D 10',
- 'name': 'privateKeyUsagePeriod',
- 'oid': (2, 5, 29, 16)},
- 'procuration': {'comment': 'Teletrust attribute',
- 'description': 'procuration (1 3 36 8 3 2)',
- 'hexoid': '06 05 2B 24 08 03 02',
- 'name': 'procuration',
- 'oid': (1, 3, 36, 8, 3, 2)},
- 'proofOfApproval': {'comment': 'S/MIME',
- 'description': 'proofOfApproval (1 2 840 113549 1 9 16 6 5)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 06 05',
- 'name': 'proofOfApproval',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 6, 5)},
- 'proofOfCreation': {'comment': 'S/MIME',
- 'description': 'proofOfCreation (1 2 840 113549 1 9 16 6 6)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 06 06',
- 'name': 'proofOfCreation',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 6, 6)},
- 'proofOfDelivery': {'comment': 'S/MIME',
- 'description': 'proofOfDelivery (1 2 840 113549 1 9 16 6 3)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 06 03',
- 'name': 'proofOfDelivery',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 6, 3)},
- 'proofOfOrigin': {'comment': 'S/MIME',
- 'description': 'proofOfOrigin (1 2 840 113549 1 9 16 6 1)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 06 01',
- 'name': 'proofOfOrigin',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 6, 1)},
- 'proofOfReceipt': {'comment': 'S/MIME',
- 'description': 'proofOfReceipt (1 2 840 113549 1 9 16 6 2)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 06 02',
- 'name': 'proofOfReceipt',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 6, 2)},
- 'proofOfSender': {'comment': 'S/MIME',
- 'description': 'proofOfSender (1 2 840 113549 1 9 16 6 4)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 06 04',
- 'name': 'proofOfSender',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 6, 4)},
- 'protectedPasswordAuthentication': {'comment': 'Telesec authentication',
- 'description': 'protectedPasswordAuthentication (0 2 262 1 10 1 0 2)',
- 'hexoid': '06 08 02 82 06 01 0A 01 00 02',
- 'name': 'protectedPasswordAuthentication',
- 'oid': (0, 2, 262, 1, 10, 1, 0, 2)},
- 'protocolEncrKey': {'comment': 'PKIX CRMF registration control',
- 'description': 'protocolEncrKey (1 3 6 1 5 5 7 5 1 6)',
- 'hexoid': '06 09 2B 06 01 05 05 07 05 01 06',
- 'name': 'protocolEncrKey',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 1, 6)},
- 'protocolInformation': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'protocolInformation (2 5 4 48)',
- 'hexoid': '06 03 55 04 30',
- 'name': 'protocolInformation',
- 'oid': (2, 5, 4, 48)},
- 'pseudonym': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'pseudonym (2 5 4 65)',
- 'hexoid': '06 03 55 04 41',
- 'name': 'pseudonym',
- 'oid': (2, 5, 4, 65)},
- 'ptAdobeILL': {'comment': 'Teletrust presentation types',
- 'description': 'ptAdobeILL (1 3 36 8 7 1 1)',
- 'hexoid': '06 06 2B 24 08 07 01 01',
- 'name': 'ptAdobeILL',
- 'oid': (1, 3, 36, 8, 7, 1, 1)},
- 'ptAmiPro': {'comment': 'Teletrust presentation types',
- 'description': 'ptAmiPro (1 3 36 8 7 1 2)',
- 'hexoid': '06 06 2B 24 08 07 01 02',
- 'name': 'ptAmiPro',
- 'oid': (1, 3, 36, 8, 7, 1, 2)},
- 'ptAutoCAD': {'comment': 'Teletrust presentation types',
- 'description': 'ptAutoCAD (1 3 36 8 7 1 3)',
- 'hexoid': '06 06 2B 24 08 07 01 03',
- 'name': 'ptAutoCAD',
- 'oid': (1, 3, 36, 8, 7, 1, 3)},
- 'ptBMP': {'comment': 'Teletrust presentation types',
- 'description': 'ptBMP (1 3 36 8 7 1 5)',
- 'hexoid': '06 06 2B 24 08 07 01 05',
- 'name': 'ptBMP',
- 'oid': (1, 3, 36, 8, 7, 1, 5)},
- 'ptBinary': {'comment': 'Teletrust presentation types',
- 'description': 'ptBinary (1 3 36 8 7 1 4)',
- 'hexoid': '06 06 2B 24 08 07 01 04',
- 'name': 'ptBinary',
- 'oid': (1, 3, 36, 8, 7, 1, 4)},
- 'ptCGM': {'comment': 'Teletrust presentation types',
- 'description': 'ptCGM (1 3 36 8 7 1 6)',
- 'hexoid': '06 06 2B 24 08 07 01 06',
- 'name': 'ptCGM',
- 'oid': (1, 3, 36, 8, 7, 1, 6)},
- 'ptCorelCRT': {'comment': 'Teletrust presentation types',
- 'description': 'ptCorelCRT (1 3 36 8 7 1 7)',
- 'hexoid': '06 06 2B 24 08 07 01 07',
- 'name': 'ptCorelCRT',
- 'oid': (1, 3, 36, 8, 7, 1, 7)},
- 'ptCorelDRW': {'comment': 'Teletrust presentation types',
- 'description': 'ptCorelDRW (1 3 36 8 7 1 8)',
- 'hexoid': '06 06 2B 24 08 07 01 08',
- 'name': 'ptCorelDRW',
- 'oid': (1, 3, 36, 8, 7, 1, 8)},
- 'ptCorelEXC': {'comment': 'Teletrust presentation types',
- 'description': 'ptCorelEXC (1 3 36 8 7 1 9)',
- 'hexoid': '06 06 2B 24 08 07 01 09',
- 'name': 'ptCorelEXC',
- 'oid': (1, 3, 36, 8, 7, 1, 9)},
- 'ptCorelPHT': {'comment': 'Teletrust presentation types',
- 'description': 'ptCorelPHT (1 3 36 8 7 1 10)',
- 'hexoid': '06 06 2B 24 08 07 01 0A',
- 'name': 'ptCorelPHT',
- 'oid': (1, 3, 36, 8, 7, 1, 10)},
- 'ptDVI': {'comment': 'Teletrust presentation types',
- 'description': 'ptDVI (1 3 36 8 7 1 12)',
- 'hexoid': '06 06 2B 24 08 07 01 0C',
- 'name': 'ptDVI',
- 'oid': (1, 3, 36, 8, 7, 1, 12)},
- 'ptDraw': {'comment': 'Teletrust presentation types',
- 'description': 'ptDraw (1 3 36 8 7 1 11)',
- 'hexoid': '06 06 2B 24 08 07 01 0B',
- 'name': 'ptDraw',
- 'oid': (1, 3, 36, 8, 7, 1, 11)},
- 'ptEPS': {'comment': 'Teletrust presentation types',
- 'description': 'ptEPS (1 3 36 8 7 1 13)',
- 'hexoid': '06 06 2B 24 08 07 01 0D',
- 'name': 'ptEPS',
- 'oid': (1, 3, 36, 8, 7, 1, 13)},
- 'ptExcel': {'comment': 'Teletrust presentation types',
- 'description': 'ptExcel (1 3 36 8 7 1 14)',
- 'hexoid': '06 06 2B 24 08 07 01 0E',
- 'name': 'ptExcel',
- 'oid': (1, 3, 36, 8, 7, 1, 14)},
- 'ptGEM': {'comment': 'Teletrust presentation types',
- 'description': 'ptGEM (1 3 36 8 7 1 15)',
- 'hexoid': '06 06 2B 24 08 07 01 0F',
- 'name': 'ptGEM',
- 'oid': (1, 3, 36, 8, 7, 1, 15)},
- 'ptGIF': {'comment': 'Teletrust presentation types',
- 'description': 'ptGIF (1 3 36 8 7 1 16)',
- 'hexoid': '06 06 2B 24 08 07 01 10',
- 'name': 'ptGIF',
- 'oid': (1, 3, 36, 8, 7, 1, 16)},
- 'ptHPGL': {'comment': 'Teletrust presentation types',
- 'description': 'ptHPGL (1 3 36 8 7 1 17)',
- 'hexoid': '06 06 2B 24 08 07 01 11',
- 'name': 'ptHPGL',
- 'oid': (1, 3, 36, 8, 7, 1, 17)},
- 'ptJPEG': {'comment': 'Teletrust presentation types',
- 'description': 'ptJPEG (1 3 36 8 7 1 18)',
- 'hexoid': '06 06 2B 24 08 07 01 12',
- 'name': 'ptJPEG',
- 'oid': (1, 3, 36, 8, 7, 1, 18)},
- 'ptKodak': {'comment': 'Teletrust presentation types',
- 'description': 'ptKodak (1 3 36 8 7 1 19)',
- 'hexoid': '06 06 2B 24 08 07 01 13',
- 'name': 'ptKodak',
- 'oid': (1, 3, 36, 8, 7, 1, 19)},
- 'ptLaTeX': {'comment': 'Teletrust presentation types',
- 'description': 'ptLaTeX (1 3 36 8 7 1 20)',
- 'hexoid': '06 06 2B 24 08 07 01 14',
- 'name': 'ptLaTeX',
- 'oid': (1, 3, 36, 8, 7, 1, 20)},
- 'ptLotus': {'comment': 'Teletrust presentation types',
- 'description': 'ptLotus (1 3 36 8 7 1 21)',
- 'hexoid': '06 06 2B 24 08 07 01 15',
- 'name': 'ptLotus',
- 'oid': (1, 3, 36, 8, 7, 1, 21)},
- 'ptLotusPIC': {'comment': 'Teletrust presentation types',
- 'description': 'ptLotusPIC (1 3 36 8 7 1 22)',
- 'hexoid': '06 06 2B 24 08 07 01 16',
- 'name': 'ptLotusPIC',
- 'oid': (1, 3, 36, 8, 7, 1, 22)},
- 'ptMSWfD': {'comment': 'Teletrust presentation types',
- 'description': 'ptMSWfD (1 3 36 8 7 1 25)',
- 'hexoid': '06 06 2B 24 08 07 01 19',
- 'name': 'ptMSWfD',
- 'oid': (1, 3, 36, 8, 7, 1, 25)},
- 'ptMSWord': {'comment': 'Teletrust presentation types',
- 'description': 'ptMSWord (1 3 36 8 7 1 26)',
- 'hexoid': '06 06 2B 24 08 07 01 1A',
- 'name': 'ptMSWord',
- 'oid': (1, 3, 36, 8, 7, 1, 26)},
- 'ptMSWord2': {'comment': 'Teletrust presentation types',
- 'description': 'ptMSWord2 (1 3 36 8 7 1 27)',
- 'hexoid': '06 06 2B 24 08 07 01 1B',
- 'name': 'ptMSWord2',
- 'oid': (1, 3, 36, 8, 7, 1, 27)},
- 'ptMSWord6': {'comment': 'Teletrust presentation types',
- 'description': 'ptMSWord6 (1 3 36 8 7 1 28)',
- 'hexoid': '06 06 2B 24 08 07 01 1C',
- 'name': 'ptMSWord6',
- 'oid': (1, 3, 36, 8, 7, 1, 28)},
- 'ptMSWord8': {'comment': 'Teletrust presentation types',
- 'description': 'ptMSWord8 (1 3 36 8 7 1 29)',
- 'hexoid': '06 06 2B 24 08 07 01 1D',
- 'name': 'ptMSWord8',
- 'oid': (1, 3, 36, 8, 7, 1, 29)},
- 'ptMacPICT': {'comment': 'Teletrust presentation types',
- 'description': 'ptMacPICT (1 3 36 8 7 1 23)',
- 'hexoid': '06 06 2B 24 08 07 01 17',
- 'name': 'ptMacPICT',
- 'oid': (1, 3, 36, 8, 7, 1, 23)},
- 'ptMacWord': {'comment': 'Teletrust presentation types',
- 'description': 'ptMacWord (1 3 36 8 7 1 24)',
- 'hexoid': '06 06 2B 24 08 07 01 18',
- 'name': 'ptMacWord',
- 'oid': (1, 3, 36, 8, 7, 1, 24)},
- 'ptPDF': {'comment': 'Teletrust presentation types',
- 'description': 'ptPDF (1 3 36 8 7 1 30)',
- 'hexoid': '06 06 2B 24 08 07 01 1E',
- 'name': 'ptPDF',
- 'oid': (1, 3, 36, 8, 7, 1, 30)},
- 'ptPIF': {'comment': 'Teletrust presentation types',
- 'description': 'ptPIF (1 3 36 8 7 1 31)',
- 'hexoid': '06 06 2B 24 08 07 01 1F',
- 'name': 'ptPIF',
- 'oid': (1, 3, 36, 8, 7, 1, 31)},
- 'ptPostscript': {'comment': 'Teletrust presentation types',
- 'description': 'ptPostscript (1 3 36 8 7 1 32)',
- 'hexoid': '06 06 2B 24 08 07 01 20',
- 'name': 'ptPostscript',
- 'oid': (1, 3, 36, 8, 7, 1, 32)},
- 'ptRTF': {'comment': 'Teletrust presentation types',
- 'description': 'ptRTF (1 3 36 8 7 1 33)',
- 'hexoid': '06 06 2B 24 08 07 01 21',
- 'name': 'ptRTF',
- 'oid': (1, 3, 36, 8, 7, 1, 33)},
- 'ptSCITEX': {'comment': 'Teletrust presentation types',
- 'description': 'ptSCITEX (1 3 36 8 7 1 34)',
- 'hexoid': '06 06 2B 24 08 07 01 22',
- 'name': 'ptSCITEX',
- 'oid': (1, 3, 36, 8, 7, 1, 34)},
- 'ptTAR': {'comment': 'Teletrust presentation types',
- 'description': 'ptTAR (1 3 36 8 7 1 35)',
- 'hexoid': '06 06 2B 24 08 07 01 23',
- 'name': 'ptTAR',
- 'oid': (1, 3, 36, 8, 7, 1, 35)},
- 'ptTIFF': {'comment': 'Teletrust presentation types',
- 'description': 'ptTIFF (1 3 36 8 7 1 39)',
- 'hexoid': '06 06 2B 24 08 07 01 27',
- 'name': 'ptTIFF',
- 'oid': (1, 3, 36, 8, 7, 1, 39)},
- 'ptTIFF-FC': {'comment': 'Teletrust presentation types',
- 'description': 'ptTIFF-FC (1 3 36 8 7 1 40)',
- 'hexoid': '06 06 2B 24 08 07 01 28',
- 'name': 'ptTIFF-FC',
- 'oid': (1, 3, 36, 8, 7, 1, 40)},
- 'ptTarga': {'comment': 'Teletrust presentation types',
- 'description': 'ptTarga (1 3 36 8 7 1 36)',
- 'hexoid': '06 06 2B 24 08 07 01 24',
- 'name': 'ptTarga',
- 'oid': (1, 3, 36, 8, 7, 1, 36)},
- 'ptTeX': {'comment': 'Teletrust presentation types',
- 'description': 'ptTeX (1 3 36 8 7 1 37)',
- 'hexoid': '06 06 2B 24 08 07 01 25',
- 'name': 'ptTeX',
- 'oid': (1, 3, 36, 8, 7, 1, 37)},
- 'ptText': {'comment': 'Teletrust presentation types',
- 'description': 'ptText (1 3 36 8 7 1 38)',
- 'hexoid': '06 06 2B 24 08 07 01 26',
- 'name': 'ptText',
- 'oid': (1, 3, 36, 8, 7, 1, 38)},
- 'ptUID': {'comment': 'Teletrust presentation types',
- 'description': 'ptUID (1 3 36 8 7 1 41)',
- 'hexoid': '06 06 2B 24 08 07 01 29',
- 'name': 'ptUID',
- 'oid': (1, 3, 36, 8, 7, 1, 41)},
- 'ptUUEncode': {'comment': 'Teletrust presentation types',
- 'description': 'ptUUEncode (1 3 36 8 7 1 42)',
- 'hexoid': '06 06 2B 24 08 07 01 2A',
- 'name': 'ptUUEncode',
- 'oid': (1, 3, 36, 8, 7, 1, 42)},
- 'ptWMF': {'comment': 'Teletrust presentation types',
- 'description': 'ptWMF (1 3 36 8 7 1 43)',
- 'hexoid': '06 06 2B 24 08 07 01 2B',
- 'name': 'ptWMF',
- 'oid': (1, 3, 36, 8, 7, 1, 43)},
- 'ptWPGrph': {'comment': 'Teletrust presentation types',
- 'description': 'ptWPGrph (1 3 36 8 7 1 45)',
- 'hexoid': '06 06 2B 24 08 07 01 2D',
- 'name': 'ptWPGrph',
- 'oid': (1, 3, 36, 8, 7, 1, 45)},
- 'ptWordPerfect': {'comment': 'Teletrust presentation types',
- 'description': 'ptWordPerfect (1 3 36 8 7 1 44)',
- 'hexoid': '06 06 2B 24 08 07 01 2C',
- 'name': 'ptWordPerfect',
- 'oid': (1, 3, 36, 8, 7, 1, 44)},
- 'publicKeyDirectory': {'comment': 'Telesec attribute',
- 'description': 'publicKeyDirectory (0 2 262 1 10 7 8)',
- 'hexoid': '06 07 02 82 06 01 0A 07 08',
- 'name': 'publicKeyDirectory',
- 'oid': (0, 2, 262, 1, 10, 7, 8)},
- 'publicKeyType': {'comment': 'ANSI X9.62',
- 'description': 'publicKeyType (1 2 840 10045 2)',
- 'hexoid': '06 06 2A 86 48 CE 3D 02',
- 'name': 'publicKeyType',
- 'oid': (1, 2, 840, 10045, 2)},
- 'publishCert': {'comment': 'S/MIME Content Types',
- 'description': 'publishCert (1 2 840 113549 1 9 16 1 3)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 03',
- 'name': 'publishCert',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 1, 3)},
- 'pwri-KEK': {'comment': 'S/MIME Algorithms',
- 'description': 'pwri-KEK (1 2 840 113549 1 9 16 3 9)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 03 09',
- 'name': 'pwri-KEK',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 3, 9)},
- 'qcStatements': {'comment': 'PKIX private extension',
- 'description': 'qcStatements (1 3 6 1 5 5 7 1 3)',
- 'hexoid': '06 08 2B 06 01 05 05 07 01 03',
- 'name': 'qcStatements',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 3)},
- 'randomNonce': {'comment': 'PKCS #9/RFC 2985 attribute',
- 'description': 'randomNonce (1 2 840 113549 1 9 25 3)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 19 03',
- 'name': 'randomNonce',
- 'oid': (1, 2, 840, 113549, 1, 9, 25, 3)},
- 'rc2BSafe1Cbc': {'comment': 'Novell encryption algorithm',
- 'description': 'rc2BSafe1Cbc (2 16 840 1 113719 1 2 8 92)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 5C',
- 'name': 'rc2BSafe1Cbc',
- 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 92)},
- 'rc2CBC': {'comment': 'RSADSI encryptionAlgorithm',
- 'description': 'rc2CBC (1 2 840 113549 3 2)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 03 02',
- 'name': 'rc2CBC',
- 'oid': (1, 2, 840, 113549, 3, 2)},
- 'rc2CbcPad': {'comment': 'Novell encryption algorithm',
- 'description': 'rc2CbcPad (2 16 840 1 113719 1 2 8 69)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 45',
- 'name': 'rc2CbcPad',
- 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 69)},
- 'rc2ECB': {'comment': 'RSADSI encryptionAlgorithm',
- 'description': 'rc2ECB (1 2 840 113549 3 3)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 03 03',
- 'name': 'rc2ECB',
- 'oid': (1, 2, 840, 113549, 3, 3)},
- 'rc4': {'comment': 'RSADSI encryptionAlgorithm',
- 'description': 'rc4 (1 2 840 113549 3 4)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 03 04',
- 'name': 'rc4',
- 'oid': (1, 2, 840, 113549, 3, 4)},
- 'rc4WithMAC': {'comment': 'RSADSI encryptionAlgorithm',
- 'description': 'rc4WithMAC (1 2 840 113549 3 5)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 03 05',
- 'name': 'rc4WithMAC',
- 'oid': (1, 2, 840, 113549, 3, 5)},
- 'rc5-CBCPad': {'comment': 'RSADSI encryptionAlgorithm',
- 'description': 'rc5-CBCPad (1 2 840 113549 3 9)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 03 09',
- 'name': 'rc5-CBCPad',
- 'oid': (1, 2, 840, 113549, 3, 9)},
- 'rc5CBC': {'comment': 'RSADSI encryptionAlgorithm',
- 'description': 'rc5CBC (1 2 840 113549 3 8)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 03 08',
- 'name': 'rc5CBC',
- 'oid': (1, 2, 840, 113549, 3, 8)},
- 'rc5CbcPad': {'comment': 'Novell encryption algorithm',
- 'description': 'rc5CbcPad (2 16 840 1 113719 1 2 8 28)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 1C',
- 'name': 'rc5CbcPad',
- 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 28)},
- 'receipt': {'comment': 'S/MIME Content Types',
- 'description': 'receipt (1 2 840 113549 1 9 16 1 1)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 01',
- 'name': 'receipt',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 1, 1)},
- 'receiptRequest': {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'receiptRequest (1 2 840 113549 1 9 16 2 1)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 01',
- 'name': 'receiptRequest',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 1)},
- 'rechtWirtschaftSteuern': {'comment': 'Teletrust naming authorities',
- 'description': 'rechtWirtschaftSteuern (1 3 36 8 3 11 1)',
- 'hexoid': '06 06 2B 24 08 03 0B 01',
- 'name': 'rechtWirtschaftSteuern',
- 'oid': (1, 3, 36, 8, 3, 11, 1)},
- 'rechtsBeistand': {'comment': 'Teletrust ProfessionInfo',
- 'description': 'rechtsBeistand (1 3 36 8 3 11 1 3)',
- 'hexoid': '06 07 2B 24 08 03 0B 01 03',
- 'name': 'rechtsBeistand',
- 'oid': (1, 3, 36, 8, 3, 11, 1, 3)},
- 'rechtsanwaeltin': {'comment': 'Teletrust ProfessionInfo',
- 'description': 'rechtsanwaeltin (1 3 36 8 3 11 1 1)',
- 'hexoid': '06 07 2B 24 08 03 0B 01 01',
- 'name': 'rechtsanwaeltin',
- 'oid': (1, 3, 36, 8, 3, 11, 1, 1)},
- 'rechtsanwalt': {'comment': 'Teletrust ProfessionInfo',
- 'description': 'rechtsanwalt (1 3 36 8 3 11 1 2)',
- 'hexoid': '06 07 2B 24 08 03 0B 01 02',
- 'name': 'rechtsanwalt',
- 'oid': (1, 3, 36, 8, 3, 11, 1, 2)},
- 'recipientNonce': {'comment': 'Verisign PKCS #7 attribute',
- 'description': 'recipientNonce (2 16 840 1 113733 1 9 6)',
- 'hexoid': '06 0A 60 86 48 01 86 F8 45 01 09 06',
- 'name': 'recipientNonce',
- 'oid': (2, 16, 840, 1, 113733, 1, 9, 6)},
- 'reedSolomon': {'comment': 'Telesec mechanism',
- 'description': 'reedSolomon (0 2 262 1 10 1 4 1)',
- 'hexoid': '06 08 02 82 06 01 0A 01 04 01',
- 'name': 'reedSolomon',
- 'oid': (0, 2, 262, 1, 10, 1, 4, 1)},
- 'regCtrl': {'comment': 'PKIX CRMF registration',
- 'description': 'regCtrl (1 3 6 1 5 5 7 5 1)',
- 'hexoid': '06 08 2B 06 01 05 05 07 05 01',
- 'name': 'regCtrl',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 1)},
- 'regToken': {'comment': 'PKIX CRMF registration control',
- 'description': 'regToken (1 3 6 1 5 5 7 5 1 1)',
- 'hexoid': '06 09 2B 06 01 05 05 07 05 01 01',
- 'name': 'regToken',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 1, 1)},
- 'registeredAddress': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'registeredAddress (2 5 4 26)',
- 'hexoid': '06 03 55 04 1A',
- 'name': 'registeredAddress',
- 'oid': (2, 5, 4, 26)},
- 'reject': {'comment': 'ANSI X9.57 hold instruction',
- 'description': 'reject (1 2 840 10040 2 3)',
- 'hexoid': '06 07 2A 86 48 CE 38 02 03',
- 'name': 'reject',
- 'oid': (1, 2, 840, 10040, 2, 3)},
- 'relianceLimit': {'comment': 'Novell PKI attribute type',
- 'description': 'relianceLimit (2 16 840 1 113719 1 9 4 2)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 09 04 02',
- 'name': 'relianceLimit',
- 'oid': (2, 16, 840, 1, 113719, 1, 9, 4, 2)},
- 'renewalCertificate': {'comment': 'Microsoft attribute',
- 'description': 'renewalCertificate (1 3 6 1 4 1 311 13 1)',
- 'hexoid': '06 09 2B 06 01 04 01 82 37 0D 01',
- 'name': 'renewalCertificate',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 13, 1)},
- 'requestClientInfo': {'comment': 'Microsoft attribute',
- 'description': 'requestClientInfo (1 3 6 1 4 1 311 21 20)',
- 'hexoid': '06 09 2B 06 01 04 01 82 37 15 14',
- 'name': 'requestClientInfo',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 21, 20)},
- 'requestedCertificate': {'comment': 'Teletrust attribute',
- 'description': 'requestedCertificate (1 3 36 8 3 10)',
- 'hexoid': '06 05 2B 24 08 03 0A',
- 'name': 'requestedCertificate',
- 'oid': (1, 3, 36, 8, 3, 10)},
- 'residentialPerson': {'comment': 'X.520 objectClass (2 5 6)',
- 'description': 'residentialPerson (2 5 6 10)',
- 'hexoid': '06 03 55 06 0A',
- 'name': 'residentialPerson',
- 'oid': (2, 5, 6, 10)},
- 'restriction': {'comment': 'Teletrust attribute certificate attribute',
- 'description': 'restriction (1 3 36 8 4 8)',
- 'hexoid': '06 05 2B 24 08 04 08',
- 'name': 'restriction',
- 'oid': (1, 3, 36, 8, 4, 8)},
- 'retrieveIfAllowed': {'comment': 'Teletrust attribute',
- 'description': 'retrieveIfAllowed (1 3 36 8 3 9)',
- 'hexoid': '06 05 2B 24 08 03 09',
- 'name': 'retrieveIfAllowed',
- 'oid': (1, 3, 36, 8, 3, 9)},
- 'revPassphrase': {'comment': 'PKIX CMP information',
- 'description': 'revPassphrase (1 3 6 1 5 5 7 4 12)',
- 'hexoid': '06 08 2B 06 01 05 05 07 04 0C',
- 'name': 'revPassphrase',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 12)},
- 'reviewSig': {'comment': 'S/MIME Signature Type Identifier',
- 'description': 'reviewSig (1 2 840 113549 1 9 16 9 4)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 09 04',
- 'name': 'reviewSig',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 9, 4)},
- 'revision': {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'revision (1 2 840 113556 1 4 145)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 81 11',
- 'name': 'revision',
- 'oid': (1, 2, 840, 113556, 1, 4, 145)},
- 'revocationFlag': {'comment': 'Telesec attribute',
- 'description': 'revocationFlag (0 2 262 1 10 7 34)',
- 'hexoid': '06 07 02 82 06 01 0A 07 22',
- 'name': 'revocationFlag',
- 'oid': (0, 2, 262, 1, 10, 7, 34)},
- 'revocationRefs': {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'revocationRefs (1 2 840 113549 1 9 16 2 22)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 16',
- 'name': 'revocationRefs',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 22)},
- 'revocationValues': {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'revocationValues (1 2 840 113549 1 9 16 2 24)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 18',
- 'name': 'revocationValues',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 24)},
- 'rfc822Mailbox': {'comment': 'Some oddball X.500 attribute collection',
- 'description': 'rfc822Mailbox (0 9 2342 19200300 100 1 3)',
- 'hexoid': '06 0A 09 92 26 89 93 F2 2C 64 01 03',
- 'name': 'rfc822Mailbox',
- 'oid': (0, 9, 2342, 19200300, 100, 1, 3)},
- 'rfc822MessageFormat': {'comment': 'SDN.700 INFOSEC format',
- 'description': 'rfc822MessageFormat (2 16 840 1 101 2 1 2 1)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 02 01',
- 'name': 'rfc822MessageFormat',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 1)},
- 'ripemd128': {'comment': 'Teletrust hash algorithm',
- 'description': 'ripemd128 (1 3 36 3 2 2)',
- 'hexoid': '06 05 2B 24 03 02 02',
- 'name': 'ripemd128',
- 'oid': (1, 3, 36, 3, 2, 2)},
- 'ripemd160': {'comment': 'Teletrust hash algorithm',
- 'description': 'ripemd160 (1 3 36 3 2 1)',
- 'hexoid': '06 05 2B 24 03 02 01',
- 'name': 'ripemd160',
- 'oid': (1, 3, 36, 3, 2, 1)},
- 'ripemd160WithRSAAndTelekomSignatureStandard': {'comment': 'Telesec mechanism',
- 'description': 'ripemd160WithRSAAndTelekomSignatureStandard (0 2 262 1 10 1 1 5)',
- 'hexoid': '06 08 02 82 06 01 0A 01 01 05',
- 'name': 'ripemd160WithRSAAndTelekomSignatureStandard',
- 'oid': (0,
- 2,
- 262,
- 1,
- 10,
- 1,
- 1,
- 5)},
- 'ripemd256': {'comment': 'Teletrust hash algorithm',
- 'description': 'ripemd256 (1 3 36 3 2 3)',
- 'hexoid': '06 05 2B 24 03 02 03',
- 'name': 'ripemd256',
- 'oid': (1, 3, 36, 3, 2, 3)},
- 'rolUnicoNacional': {'comment': 'Chilean Government national unique roll number',
- 'description': 'rolUnicoNacional (1 3 6 1 4 1 8231 1)',
- 'hexoid': '06 08 2B 06 01 04 01 C0 27 01',
- 'name': 'rolUnicoNacional',
- 'oid': (1, 3, 6, 1, 4, 1, 8231, 1)},
- 'role': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'role (2 5 4 72)',
- 'hexoid': '06 03 55 04 48',
- 'name': 'role',
- 'oid': (2, 5, 4, 72)},
- 'roleOccupant': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'roleOccupant (2 5 4 33)',
- 'hexoid': '06 03 55 04 21',
- 'name': 'roleOccupant',
- 'oid': (2, 5, 4, 33)},
- 'root': {'comment': 'SET policy',
- 'description': 'root (2 23 42 5 0)',
- 'hexoid': '06 04 67 2A 05 00',
- 'name': 'root',
- 'oid': (2, 23, 42, 5, 0)},
- 'rootKeyThumb': {'comment': 'SET cert attribute',
- 'description': 'rootKeyThumb (2 23 42 3 0 0)',
- 'hexoid': '06 05 67 2A 03 00 00',
- 'name': 'rootKeyThumb',
- 'oid': (2, 23, 42, 3, 0, 0)},
- 'rsa': {'comment': 'X.509. Unsure about this OID',
- 'description': 'rsa (1 3 14 3 2 1 1)',
- 'hexoid': '06 06 2B 0E 03 02 01 01',
- 'name': 'rsa',
- 'oid': (1, 3, 14, 3, 2, 1, 1)},
- 'rsaEncryption': {'comment': 'Teletrust encryption algorithm',
- 'description': 'rsaEncryption (1 3 36 3 1 4)',
- 'hexoid': '06 05 2B 24 03 01 04',
- 'name': 'rsaEncryption',
- 'oid': (1, 3, 36, 3, 1, 4)},
- 'rsaEncryptionBsafe1': {'comment': 'Novell encryption algorithm',
- 'description': 'rsaEncryptionBsafe1 (2 16 840 1 113719 1 2 8 131)',
- 'hexoid': '06 0C 60 86 48 01 86 F8 37 01 02 08 81 03',
- 'name': 'rsaEncryptionBsafe1',
- 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 131)},
- 'rsaEncryptionWithlmod512expe17': {'comment': 'Teletrust encryption algorithm',
- 'description': 'rsaEncryptionWithlmod512expe17 (1 3 36 3 1 4 512 17)',
- 'hexoid': '06 08 2B 24 03 01 04 84 00 11',
- 'name': 'rsaEncryptionWithlmod512expe17',
- 'oid': (1, 3, 36, 3, 1, 4, 512, 17)},
- 'rsaIndicateRIPEMD160': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaIndicateRIPEMD160 (1 3 36 8 5 1 1 2)',
- 'hexoid': '06 07 2B 24 08 05 01 01 02',
- 'name': 'rsaIndicateRIPEMD160',
- 'oid': (1, 3, 36, 8, 5, 1, 1, 2)},
- 'rsaIndicateSHA1': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaIndicateSHA1 (1 3 36 8 5 1 1 1)',
- 'hexoid': '06 07 2B 24 08 05 01 01 01',
- 'name': 'rsaIndicateSHA1',
- 'oid': (1, 3, 36, 8, 5, 1, 1, 1)},
- 'rsaKeyTransport': {'comment': 'Oddball OIW OID',
- 'description': 'rsaKeyTransport (1 3 14 3 2 22)',
- 'hexoid': '06 05 2B 0E 03 02 16',
- 'name': 'rsaKeyTransport',
- 'oid': (1, 3, 14, 3, 2, 22)},
- 'rsaOAEP': {'comment': 'PKCS #1',
- 'description': 'rsaOAEP (1 2 840 113549 1 1 7)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 01 07',
- 'name': 'rsaOAEP',
- 'oid': (1, 2, 840, 113549, 1, 1, 7)},
- 'rsaOAEP-pSpecified': {'comment': 'PKCS #1',
- 'description': 'rsaOAEP-pSpecified (1 2 840 113549 1 1 9)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 01 09',
- 'name': 'rsaOAEP-pSpecified',
- 'oid': (1, 2, 840, 113549, 1, 1, 9)},
- 'rsaOAEPEncryptionSET': {'comment': 'PKCS #1. This OID may also be assigned as ripemd160WithRSAEncryption',
- 'description': 'rsaOAEPEncryptionSET (1 2 840 113549 1 1 6)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 01 06',
- 'name': 'rsaOAEPEncryptionSET',
- 'oid': (1, 2, 840, 113549, 1, 1, 6)},
- 'rsaPSS': {'comment': 'PKCS #1',
- 'description': 'rsaPSS (1 2 840 113549 1 1 10)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 01 0A',
- 'name': 'rsaPSS',
- 'oid': (1, 2, 840, 113549, 1, 1, 10)},
- 'rsaSignature': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignature (1 3 36 3 3 1)',
- 'hexoid': '06 05 2B 24 03 03 01',
- 'name': 'rsaSignature',
- 'oid': (1, 3, 36, 3, 3, 1)},
- 'rsaSignatureWithrimpemd128': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithrimpemd128 (1 3 36 3 3 1 3)',
- 'hexoid': '06 06 2B 24 03 03 01 03',
- 'name': 'rsaSignatureWithrimpemd128',
- 'oid': (1, 3, 36, 3, 3, 1, 3)},
- 'rsaSignatureWithrimpemd256': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithrimpemd256 (1 3 36 3 3 1 4)',
- 'hexoid': '06 06 2B 24 03 03 01 04',
- 'name': 'rsaSignatureWithrimpemd256',
- 'oid': (1, 3, 36, 3, 3, 1, 4)},
- 'rsaSignatureWithripemd160': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160 (1 3 36 3 3 1 2)',
- 'hexoid': '06 06 2B 24 03 03 01 02',
- 'name': 'rsaSignatureWithripemd160',
- 'oid': (1, 3, 36, 3, 3, 1, 2)},
- 'rsaSignatureWithripemd160_l1024_l11': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l1024_l11 (1 3 36 3 3 1 2 1024 11)',
- 'hexoid': '06 09 2B 24 03 03 01 02 88 00 0B',
- 'name': 'rsaSignatureWithripemd160_l1024_l11',
- 'oid': (1,
- 3,
- 36,
- 3,
- 3,
- 1,
- 2,
- 1024,
- 11)},
- 'rsaSignatureWithripemd160_l1024_l2': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l1024_l2 (1 3 36 3 3 1 2 1024 2)',
- 'hexoid': '06 09 2B 24 03 03 01 02 88 00 02',
- 'name': 'rsaSignatureWithripemd160_l1024_l2',
- 'oid': (1,
- 3,
- 36,
- 3,
- 3,
- 1,
- 2,
- 1024,
- 2)},
- 'rsaSignatureWithripemd160_l1024_l3': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l1024_l3 (1 3 36 3 3 1 2 1024 3)',
- 'hexoid': '06 09 2B 24 03 03 01 02 88 00 03',
- 'name': 'rsaSignatureWithripemd160_l1024_l3',
- 'oid': (1,
- 3,
- 36,
- 3,
- 3,
- 1,
- 2,
- 1024,
- 3)},
- 'rsaSignatureWithripemd160_l1024_l5': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l1024_l5 (1 3 36 3 3 1 2 1024 5)',
- 'hexoid': '06 09 2B 24 03 03 01 02 88 00 05',
- 'name': 'rsaSignatureWithripemd160_l1024_l5',
- 'oid': (1,
- 3,
- 36,
- 3,
- 3,
- 1,
- 2,
- 1024,
- 5)},
- 'rsaSignatureWithripemd160_l1024_l9': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l1024_l9 (1 3 36 3 3 1 2 1024 9)',
- 'hexoid': '06 09 2B 24 03 03 01 02 88 00 09',
- 'name': 'rsaSignatureWithripemd160_l1024_l9',
- 'oid': (1,
- 3,
- 36,
- 3,
- 3,
- 1,
- 2,
- 1024,
- 9)},
- 'rsaSignatureWithripemd160_l512_l11': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l512_l11 (1 3 36 3 3 1 2 512 11)',
- 'hexoid': '06 09 2B 24 03 03 01 02 84 00 0B',
- 'name': 'rsaSignatureWithripemd160_l512_l11',
- 'oid': (1,
- 3,
- 36,
- 3,
- 3,
- 1,
- 2,
- 512,
- 11)},
- 'rsaSignatureWithripemd160_l512_l2': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l512_l2 (1 3 36 3 3 1 2 512 2)',
- 'hexoid': '06 09 2B 24 03 03 01 02 84 00 02',
- 'name': 'rsaSignatureWithripemd160_l512_l2',
- 'oid': (1, 3, 36, 3, 3, 1, 2, 512, 2)},
- 'rsaSignatureWithripemd160_l512_l3': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l512_l3 (1 3 36 3 3 1 2 512 3)',
- 'hexoid': '06 09 2B 24 03 03 01 02 84 00 03',
- 'name': 'rsaSignatureWithripemd160_l512_l3',
- 'oid': (1, 3, 36, 3, 3, 1, 2, 512, 3)},
- 'rsaSignatureWithripemd160_l512_l5': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l512_l5 (1 3 36 3 3 1 2 512 5)',
- 'hexoid': '06 09 2B 24 03 03 01 02 84 00 05',
- 'name': 'rsaSignatureWithripemd160_l512_l5',
- 'oid': (1, 3, 36, 3, 3, 1, 2, 512, 5)},
- 'rsaSignatureWithripemd160_l512_l9': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l512_l9 (1 3 36 3 3 1 2 512 9)',
- 'hexoid': '06 09 2B 24 03 03 01 02 84 00 09',
- 'name': 'rsaSignatureWithripemd160_l512_l9',
- 'oid': (1, 3, 36, 3, 3, 1, 2, 512, 9)},
- 'rsaSignatureWithripemd160_l640_l11': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l640_l11 (1 3 36 3 3 1 2 640 11)',
- 'hexoid': '06 09 2B 24 03 03 01 02 85 00 0B',
- 'name': 'rsaSignatureWithripemd160_l640_l11',
- 'oid': (1,
- 3,
- 36,
- 3,
- 3,
- 1,
- 2,
- 640,
- 11)},
- 'rsaSignatureWithripemd160_l640_l2': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l640_l2 (1 3 36 3 3 1 2 640 2)',
- 'hexoid': '06 09 2B 24 03 03 01 02 85 00 02',
- 'name': 'rsaSignatureWithripemd160_l640_l2',
- 'oid': (1, 3, 36, 3, 3, 1, 2, 640, 2)},
- 'rsaSignatureWithripemd160_l640_l3': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l640_l3 (1 3 36 3 3 1 2 640 3)',
- 'hexoid': '06 09 2B 24 03 03 01 02 85 00 03',
- 'name': 'rsaSignatureWithripemd160_l640_l3',
- 'oid': (1, 3, 36, 3, 3, 1, 2, 640, 3)},
- 'rsaSignatureWithripemd160_l640_l5': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l640_l5 (1 3 36 3 3 1 2 640 5)',
- 'hexoid': '06 09 2B 24 03 03 01 02 85 00 05',
- 'name': 'rsaSignatureWithripemd160_l640_l5',
- 'oid': (1, 3, 36, 3, 3, 1, 2, 640, 5)},
- 'rsaSignatureWithripemd160_l640_l9': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l640_l9 (1 3 36 3 3 1 2 640 9)',
- 'hexoid': '06 09 2B 24 03 03 01 02 85 00 09',
- 'name': 'rsaSignatureWithripemd160_l640_l9',
- 'oid': (1, 3, 36, 3, 3, 1, 2, 640, 9)},
- 'rsaSignatureWithripemd160_l768_l11': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l768_l11 (1 3 36 3 3 1 2 768 11)',
- 'hexoid': '06 09 2B 24 03 03 01 02 86 00 0B',
- 'name': 'rsaSignatureWithripemd160_l768_l11',
- 'oid': (1,
- 3,
- 36,
- 3,
- 3,
- 1,
- 2,
- 768,
- 11)},
- 'rsaSignatureWithripemd160_l768_l2': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l768_l2 (1 3 36 3 3 1 2 768 2)',
- 'hexoid': '06 09 2B 24 03 03 01 02 86 00 02',
- 'name': 'rsaSignatureWithripemd160_l768_l2',
- 'oid': (1, 3, 36, 3, 3, 1, 2, 768, 2)},
- 'rsaSignatureWithripemd160_l768_l3': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l768_l3 (1 3 36 3 3 1 2 768 3)',
- 'hexoid': '06 09 2B 24 03 03 01 02 86 00 03',
- 'name': 'rsaSignatureWithripemd160_l768_l3',
- 'oid': (1, 3, 36, 3, 3, 1, 2, 768, 3)},
- 'rsaSignatureWithripemd160_l768_l5': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l768_l5 (1 3 36 3 3 1 2 768 5)',
- 'hexoid': '06 09 2B 24 03 03 01 02 86 00 05',
- 'name': 'rsaSignatureWithripemd160_l768_l5',
- 'oid': (1, 3, 36, 3, 3, 1, 2, 768, 5)},
- 'rsaSignatureWithripemd160_l768_l9': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l768_l9 (1 3 36 3 3 1 2 768 9)',
- 'hexoid': '06 09 2B 24 03 03 01 02 86 00 09',
- 'name': 'rsaSignatureWithripemd160_l768_l9',
- 'oid': (1, 3, 36, 3, 3, 1, 2, 768, 9)},
- 'rsaSignatureWithripemd160_l896_l11': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l896_l11 (1 3 36 3 3 1 2 896 11)',
- 'hexoid': '06 09 2B 24 03 03 01 02 87 00 0B',
- 'name': 'rsaSignatureWithripemd160_l896_l11',
- 'oid': (1,
- 3,
- 36,
- 3,
- 3,
- 1,
- 2,
- 896,
- 11)},
- 'rsaSignatureWithripemd160_l896_l2': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l896_l2 (1 3 36 3 3 1 2 896 2)',
- 'hexoid': '06 09 2B 24 03 03 01 02 87 00 02',
- 'name': 'rsaSignatureWithripemd160_l896_l2',
- 'oid': (1, 3, 36, 3, 3, 1, 2, 896, 2)},
- 'rsaSignatureWithripemd160_l896_l3': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l896_l3 (1 3 36 3 3 1 2 896 3)',
- 'hexoid': '06 09 2B 24 03 03 01 02 87 00 03',
- 'name': 'rsaSignatureWithripemd160_l896_l3',
- 'oid': (1, 3, 36, 3, 3, 1, 2, 896, 3)},
- 'rsaSignatureWithripemd160_l896_l5': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l896_l5 (1 3 36 3 3 1 2 896 5)',
- 'hexoid': '06 09 2B 24 03 03 01 02 87 00 05',
- 'name': 'rsaSignatureWithripemd160_l896_l5',
- 'oid': (1, 3, 36, 3, 3, 1, 2, 896, 5)},
- 'rsaSignatureWithripemd160_l896_l9': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l896_l9 (1 3 36 3 3 1 2 896 9)',
- 'hexoid': '06 09 2B 24 03 03 01 02 87 00 09',
- 'name': 'rsaSignatureWithripemd160_l896_l9',
- 'oid': (1, 3, 36, 3, 3, 1, 2, 896, 9)},
- 'rsaSignatureWithsha1': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1 (1 3 36 3 3 1 1)',
- 'hexoid': '06 06 2B 24 03 03 01 01',
- 'name': 'rsaSignatureWithsha1',
- 'oid': (1, 3, 36, 3, 3, 1, 1)},
- 'rsaSignatureWithsha1_l1024_l11': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l1024_l11 (1 3 36 3 3 1 1 1024 11)',
- 'hexoid': '06 09 2B 24 03 03 01 01 88 00 0B',
- 'name': 'rsaSignatureWithsha1_l1024_l11',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 1024, 11)},
- 'rsaSignatureWithsha1_l1024_l2': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l1024_l2 (1 3 36 3 3 1 1 1024 2)',
- 'hexoid': '06 09 2B 24 03 03 01 01 88 00 02',
- 'name': 'rsaSignatureWithsha1_l1024_l2',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 1024, 2)},
- 'rsaSignatureWithsha1_l1024_l3': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l1024_l3 (1 3 36 3 3 1 1 1024 3)',
- 'hexoid': '06 09 2B 24 03 03 01 01 88 00 03',
- 'name': 'rsaSignatureWithsha1_l1024_l3',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 1024, 3)},
- 'rsaSignatureWithsha1_l1024_l5': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l1024_l5 (1 3 36 3 3 1 1 1024 5)',
- 'hexoid': '06 09 2B 24 03 03 01 01 88 00 05',
- 'name': 'rsaSignatureWithsha1_l1024_l5',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 1024, 5)},
- 'rsaSignatureWithsha1_l1024_l9': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l1024_l9 (1 3 36 3 3 1 1 1024 9)',
- 'hexoid': '06 09 2B 24 03 03 01 01 88 00 09',
- 'name': 'rsaSignatureWithsha1_l1024_l9',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 1024, 9)},
- 'rsaSignatureWithsha1_l512_l11': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l512_l11 (1 3 36 3 3 1 1 512 11)',
- 'hexoid': '06 09 2B 24 03 03 01 01 84 00 0B',
- 'name': 'rsaSignatureWithsha1_l512_l11',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 512, 11)},
- 'rsaSignatureWithsha1_l512_l2': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l512_l2 (1 3 36 3 3 1 1 512 2)',
- 'hexoid': '06 09 2B 24 03 03 01 01 84 00 02',
- 'name': 'rsaSignatureWithsha1_l512_l2',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 512, 2)},
- 'rsaSignatureWithsha1_l512_l3': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l512_l3 (1 3 36 3 3 1 1 512 3)',
- 'hexoid': '06 09 2B 24 03 03 01 01 84 00 03',
- 'name': 'rsaSignatureWithsha1_l512_l3',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 512, 3)},
- 'rsaSignatureWithsha1_l512_l5': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l512_l5 (1 3 36 3 3 1 1 512 5)',
- 'hexoid': '06 09 2B 24 03 03 01 01 84 00 05',
- 'name': 'rsaSignatureWithsha1_l512_l5',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 512, 5)},
- 'rsaSignatureWithsha1_l512_l9': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l512_l9 (1 3 36 3 3 1 1 512 9)',
- 'hexoid': '06 09 2B 24 03 03 01 01 84 00 09',
- 'name': 'rsaSignatureWithsha1_l512_l9',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 512, 9)},
- 'rsaSignatureWithsha1_l640_l11': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l640_l11 (1 3 36 3 3 1 1 640 11)',
- 'hexoid': '06 09 2B 24 03 03 01 01 85 00 0B',
- 'name': 'rsaSignatureWithsha1_l640_l11',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 640, 11)},
- 'rsaSignatureWithsha1_l640_l2': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l640_l2 (1 3 36 3 3 1 1 640 2)',
- 'hexoid': '06 09 2B 24 03 03 01 01 85 00 02',
- 'name': 'rsaSignatureWithsha1_l640_l2',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 640, 2)},
- 'rsaSignatureWithsha1_l640_l3': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l640_l3 (1 3 36 3 3 1 1 640 3)',
- 'hexoid': '06 09 2B 24 03 03 01 01 85 00 03',
- 'name': 'rsaSignatureWithsha1_l640_l3',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 640, 3)},
- 'rsaSignatureWithsha1_l640_l5': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l640_l5 (1 3 36 3 3 1 1 640 5)',
- 'hexoid': '06 09 2B 24 03 03 01 01 85 00 05',
- 'name': 'rsaSignatureWithsha1_l640_l5',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 640, 5)},
- 'rsaSignatureWithsha1_l640_l9': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l640_l9 (1 3 36 3 3 1 1 640 9)',
- 'hexoid': '06 09 2B 24 03 03 01 01 85 00 09',
- 'name': 'rsaSignatureWithsha1_l640_l9',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 640, 9)},
- 'rsaSignatureWithsha1_l768_l11': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l768_l11 (1 3 36 3 3 1 1 768 11)',
- 'hexoid': '06 09 2B 24 03 03 01 01 86 00 0B',
- 'name': 'rsaSignatureWithsha1_l768_l11',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 768, 11)},
- 'rsaSignatureWithsha1_l768_l2': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l768_l2 (1 3 36 3 3 1 1 768 2)',
- 'hexoid': '06 09 2B 24 03 03 01 01 86 00 02',
- 'name': 'rsaSignatureWithsha1_l768_l2',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 768, 2)},
- 'rsaSignatureWithsha1_l768_l3': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l768_l3 (1 3 36 3 3 1 1 768 3)',
- 'hexoid': '06 09 2B 24 03 03 01 01 86 00 03',
- 'name': 'rsaSignatureWithsha1_l768_l3',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 768, 3)},
- 'rsaSignatureWithsha1_l768_l5': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l768_l5 (1 3 36 3 3 1 1 768 5)',
- 'hexoid': '06 09 2B 24 03 03 01 01 86 00 05',
- 'name': 'rsaSignatureWithsha1_l768_l5',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 768, 5)},
- 'rsaSignatureWithsha1_l768_l9': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l768_l9 (1 3 36 3 3 1 1 768 9)',
- 'hexoid': '06 09 2B 24 03 03 01 01 86 00 09',
- 'name': 'rsaSignatureWithsha1_l768_l9',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 768, 9)},
- 'rsaSignatureWithsha1_l896_l11': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l896_l11 (1 3 36 3 3 1 1 896 11)',
- 'hexoid': '06 09 2B 24 03 03 01 01 87 00 0B',
- 'name': 'rsaSignatureWithsha1_l896_l11',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 896, 11)},
- 'rsaSignatureWithsha1_l896_l2': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l896_l2 (1 3 36 3 3 1 1 896 2)',
- 'hexoid': '06 09 2B 24 03 03 01 01 87 00 02',
- 'name': 'rsaSignatureWithsha1_l896_l2',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 896, 2)},
- 'rsaSignatureWithsha1_l896_l3': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l896_l3 (1 3 36 3 3 1 1 896 3)',
- 'hexoid': '06 09 2B 24 03 03 01 01 87 00 03',
- 'name': 'rsaSignatureWithsha1_l896_l3',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 896, 3)},
- 'rsaSignatureWithsha1_l896_l5': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l896_l5 (1 3 36 3 3 1 1 896 5)',
- 'hexoid': '06 09 2B 24 03 03 01 01 87 00 05',
- 'name': 'rsaSignatureWithsha1_l896_l5',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 896, 5)},
- 'rsaSignatureWithsha1_l896_l9': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l896_l9 (1 3 36 3 3 1 1 896 9)',
- 'hexoid': '06 09 2B 24 03 03 01 01 87 00 09',
- 'name': 'rsaSignatureWithsha1_l896_l9',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 896, 9)},
- 'rsaTelesec': {'comment': 'Telesec encryption',
- 'description': 'rsaTelesec (0 2 262 1 10 1 2 1)',
- 'hexoid': '06 08 02 82 06 01 0A 01 02 01',
- 'name': 'rsaTelesec',
- 'oid': (0, 2, 262, 1, 10, 1, 2, 1)},
- 'rsaWithRIPEMD160': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaWithRIPEMD160 (1 3 36 8 5 1 1 4)',
- 'hexoid': '06 07 2B 24 08 05 01 01 04',
- 'name': 'rsaWithRIPEMD160',
- 'oid': (1, 3, 36, 8, 5, 1, 1, 4)},
- 'rsaWithSHA1': {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaWithSHA1 (1 3 36 8 5 1 1 3)',
- 'hexoid': '06 07 2B 24 08 05 01 01 03',
- 'name': 'rsaWithSHA1',
- 'oid': (1, 3, 36, 8, 5, 1, 1, 3)},
- 'rtcsRequest': {'comment': 'cryptlib content type',
- 'description': 'rtcsRequest (1 3 6 1 4 1 3029 4 1 4)',
- 'hexoid': '06 0A 2B 06 01 04 01 97 55 04 01 04',
- 'name': 'rtcsRequest',
- 'oid': (1, 3, 6, 1, 4, 1, 3029, 4, 1, 4)},
- 'rtcsResponse': {'comment': 'cryptlib content type',
- 'description': 'rtcsResponse (1 3 6 1 4 1 3029 4 1 5)',
- 'hexoid': '06 0A 2B 06 01 04 01 97 55 04 01 05',
- 'name': 'rtcsResponse',
- 'oid': (1, 3, 6, 1, 4, 1, 3029, 4, 1, 5)},
- 'rtcsResponseExt': {'comment': 'cryptlib content type',
- 'description': 'rtcsResponseExt (1 3 6 1 4 1 3029 4 1 6)',
- 'hexoid': '06 0A 2B 06 01 04 01 97 55 04 01 06',
- 'name': 'rtcsResponseExt',
- 'oid': (1, 3, 6, 1, 4, 1, 3029, 4, 1, 6)},
- 'sMIMECapabilities': {'comment': 'PKCS #9. This OID was formerly assigned as symmetricCapabilities, then reassigned as SMIMECapabilities, then renamed to the current name',
- 'description': 'sMIMECapabilities (1 2 840 113549 1 9 15)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 0F',
- 'name': 'sMIMECapabilities',
- 'oid': (1, 2, 840, 113549, 1, 9, 15)},
- 'sadmib': {'comment': 'Telesec module',
- 'description': 'sadmib (0 2 262 1 10 2 9)',
- 'hexoid': '06 07 02 82 06 01 0A 02 09',
- 'name': 'sadmib',
- 'oid': (0, 2, 262, 1, 10, 2, 9)},
- 'sbgp-autonomousSysNum': {'comment': 'PKIX private extension',
- 'description': 'sbgp-autonomousSysNum (1 3 6 1 5 5 7 1 8)',
- 'hexoid': '06 08 2B 06 01 05 05 07 01 08',
- 'name': 'sbgp-autonomousSysNum',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 8)},
- 'sbgp-ipAddrBlock': {'comment': 'PKIX private extension',
- 'description': 'sbgp-ipAddrBlock (1 3 6 1 5 5 7 1 7)',
- 'hexoid': '06 08 2B 06 01 05 05 07 01 07',
- 'name': 'sbgp-ipAddrBlock',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 7)},
- 'sbgp-routerIdentifier': {'comment': 'PKIX private extension',
- 'description': 'sbgp-routerIdentifier (1 3 6 1 5 5 7 1 9)',
- 'hexoid': '06 08 2B 06 01 05 05 07 01 09',
- 'name': 'sbgp-routerIdentifier',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 9)},
- 'sbgpCertAAServerAuth': {'comment': 'PKIX key purpose',
- 'description': 'sbgpCertAAServerAuth (1 3 6 1 5 5 7 3 11)',
- 'hexoid': '06 08 2B 06 01 05 05 07 03 0B',
- 'name': 'sbgpCertAAServerAuth',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 11)},
- 'scheme': {'comment': 'ANSI X9.42',
- 'description': 'scheme (1 2 840 10046 3)',
- 'hexoid': '06 06 2A 86 48 CE 3E 03',
- 'name': 'scheme',
- 'oid': (1, 2, 840, 10046, 3)},
- 'sdnsCKL': {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'sdnsCKL (2 16 840 1 101 2 1 5 41)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 29',
- 'name': 'sdnsCKL',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 41)},
- 'sdnsCertificateRevocationList': {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'sdnsCertificateRevocationList (2 16 840 1 101 2 1 5 44)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 2C',
- 'name': 'sdnsCertificateRevocationList',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 44)},
- 'sdnsConfidentialityAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms',
- 'description': 'sdnsConfidentialityAlgorithm (2 16 840 1 101 2 1 1 3)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 03',
- 'name': 'sdnsConfidentialityAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 3)},
- 'sdnsIntegrityAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms',
- 'description': 'sdnsIntegrityAlgorithm (2 16 840 1 101 2 1 1 5)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 05',
- 'name': 'sdnsIntegrityAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 5)},
- 'sdnsKMandSigAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms',
- 'description': 'sdnsKMandSigAlgorithm (2 16 840 1 101 2 1 1 11)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 0B',
- 'name': 'sdnsKMandSigAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 11)},
- 'sdnsKeyManagementAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms',
- 'description': 'sdnsKeyManagementAlgorithm (2 16 840 1 101 2 1 1 9)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 09',
- 'name': 'sdnsKeyManagementAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 9)},
- 'sdnsPRBAC': {'comment': 'SDN.700 INFOSEC policy',
- 'description': 'sdnsPRBAC (2 16 840 1 101 2 1 3 2)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 03 02',
- 'name': 'sdnsPRBAC',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 2)},
- 'sdnsSecurityPolicy': {'comment': 'SDN.700 INFOSEC policy',
- 'description': 'sdnsSecurityPolicy (2 16 840 1 101 2 1 3 1)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 03 01',
- 'name': 'sdnsSecurityPolicy',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 1)},
- 'sdnsSignatureAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms',
- 'description': 'sdnsSignatureAlgorithm (2 16 840 1 101 2 1 1 1)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 01',
- 'name': 'sdnsSignatureAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 1)},
- 'sdnsSignatureCKL': {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'sdnsSignatureCKL (2 16 840 1 101 2 1 5 43)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 2B',
- 'name': 'sdnsSignatureCKL',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 43)},
- 'sdnsTokenProtectionAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms',
- 'description': 'sdnsTokenProtectionAlgorithm (2 16 840 1 101 2 1 1 7)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 07',
- 'name': 'sdnsTokenProtectionAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 7)},
- 'sdsiCertificate': {'comment': 'PKCS #9 via PKCS #12',
- 'description': 'sdsiCertificate (for PKCS #12) (1 2 840 113549 1 9 22 2)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 16 02',
- 'name': 'sdsiCertificate',
- 'oid': (1, 2, 840, 113549, 1, 9, 22, 2)},
- 'searchGuide': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'searchGuide (2 5 4 14)',
- 'hexoid': '06 03 55 04 0E',
- 'name': 'searchGuide',
- 'oid': (2, 5, 4, 14)},
- 'secPolicyInformationFile': {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'secPolicyInformationFile (2 16 840 1 101 2 1 5 59)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 3B',
- 'name': 'secPolicyInformationFile',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 59)},
- 'secondaryPractices': {'comment': 'MEDePass',
- 'description': 'secondaryPractices (1 3 6 1 4 1 5770 0 3)',
- 'hexoid': '06 09 2B 06 01 04 01 AD 0A 00 03',
- 'name': 'secondaryPractices',
- 'oid': (1, 3, 6, 1, 4, 1, 5770, 0, 3)},
- 'secp112r1': {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'secp112r1 (1 3 132 0 6)',
- 'hexoid': '06 05 2B 81 04 00 06',
- 'name': 'secp112r1',
- 'oid': (1, 3, 132, 0, 6)},
- 'secp112r2': {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'secp112r2 (1 3 132 0 7)',
- 'hexoid': '06 05 2B 81 04 00 07',
- 'name': 'secp112r2',
- 'oid': (1, 3, 132, 0, 7)},
- 'secp128r1': {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'secp128r1 (1 3 132 0 28)',
- 'hexoid': '06 05 2B 81 04 00 1C',
- 'name': 'secp128r1',
- 'oid': (1, 3, 132, 0, 28)},
- 'secp128r2': {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'secp128r2 (1 3 132 0 29)',
- 'hexoid': '06 05 2B 81 04 00 1D',
- 'name': 'secp128r2',
- 'oid': (1, 3, 132, 0, 29)},
- 'secp160k1': {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'secp160k1 (1 3 132 0 9)',
- 'hexoid': '06 05 2B 81 04 00 09',
- 'name': 'secp160k1',
- 'oid': (1, 3, 132, 0, 9)},
- 'secp160r1': {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'secp160r1 (1 3 132 0 8)',
- 'hexoid': '06 05 2B 81 04 00 08',
- 'name': 'secp160r1',
- 'oid': (1, 3, 132, 0, 8)},
- 'secp160r2': {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'secp160r2 (1 3 132 0 30)',
- 'hexoid': '06 05 2B 81 04 00 1E',
- 'name': 'secp160r2',
- 'oid': (1, 3, 132, 0, 30)},
- 'secp192k1': {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'secp192k1 (1 3 132 0 31)',
- 'hexoid': '06 05 2B 81 04 00 1F',
- 'name': 'secp192k1',
- 'oid': (1, 3, 132, 0, 31)},
- 'secp224k1': {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'secp224k1 (1 3 132 0 32)',
- 'hexoid': '06 05 2B 81 04 00 20',
- 'name': 'secp224k1',
- 'oid': (1, 3, 132, 0, 32)},
- 'secp224r1': {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'secp224r1 (1 3 132 0 33)',
- 'hexoid': '06 05 2B 81 04 00 21',
- 'name': 'secp224r1',
- 'oid': (1, 3, 132, 0, 33)},
- 'secp256k1': {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'secp256k1 (1 3 132 0 10)',
- 'hexoid': '06 05 2B 81 04 00 0A',
- 'name': 'secp256k1',
- 'oid': (1, 3, 132, 0, 10)},
- 'secp384r1': {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'secp384r1 (1 3 132 0 34)',
- 'hexoid': '06 05 2B 81 04 00 22',
- 'name': 'secp384r1',
- 'oid': (1, 3, 132, 0, 34)},
- 'secp521r1': {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'secp521r1 (1 3 132 0 35)',
- 'hexoid': '06 05 2B 81 04 00 23',
- 'name': 'secp521r1',
- 'oid': (1, 3, 132, 0, 35)},
- 'sect113r1': {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'sect113r1 (1 3 132 0 4)',
- 'hexoid': '06 05 2B 81 04 00 04',
- 'name': 'sect113r1',
- 'oid': (1, 3, 132, 0, 4)},
- 'sect113r2': {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'sect113r2 (1 3 132 0 5)',
- 'hexoid': '06 05 2B 81 04 00 05',
- 'name': 'sect113r2',
- 'oid': (1, 3, 132, 0, 5)},
- 'sect131r1': {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'sect131r1 (1 3 132 0 22)',
- 'hexoid': '06 05 2B 81 04 00 16',
- 'name': 'sect131r1',
- 'oid': (1, 3, 132, 0, 22)},
- 'sect131r2': {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'sect131r2 (1 3 132 0 23)',
- 'hexoid': '06 05 2B 81 04 00 17',
- 'name': 'sect131r2',
- 'oid': (1, 3, 132, 0, 23)},
- 'sect163k1': {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'sect163k1 (1 3 132 0 1)',
- 'hexoid': '06 05 2B 81 04 00 01',
- 'name': 'sect163k1',
- 'oid': (1, 3, 132, 0, 1)},
- 'sect163r1': {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'sect163r1 (1 3 132 0 2)',
- 'hexoid': '06 05 2B 81 04 00 02',
- 'name': 'sect163r1',
- 'oid': (1, 3, 132, 0, 2)},
- 'sect163r2': {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'sect163r2 (1 3 132 0 15)',
- 'hexoid': '06 05 2B 81 04 00 0F',
- 'name': 'sect163r2',
- 'oid': (1, 3, 132, 0, 15)},
- 'sect193r1': {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'sect193r1 (1 3 132 0 24)',
- 'hexoid': '06 05 2B 81 04 00 18',
- 'name': 'sect193r1',
- 'oid': (1, 3, 132, 0, 24)},
- 'sect193r2': {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'sect193r2 (1 3 132 0 25)',
- 'hexoid': '06 05 2B 81 04 00 19',
- 'name': 'sect193r2',
- 'oid': (1, 3, 132, 0, 25)},
- 'sect233k1': {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'sect233k1 (1 3 132 0 26)',
- 'hexoid': '06 05 2B 81 04 00 1A',
- 'name': 'sect233k1',
- 'oid': (1, 3, 132, 0, 26)},
- 'sect233r1': {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'sect233r1 (1 3 132 0 27)',
- 'hexoid': '06 05 2B 81 04 00 1B',
- 'name': 'sect233r1',
- 'oid': (1, 3, 132, 0, 27)},
- 'sect239k1': {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'sect239k1 (1 3 132 0 3)',
- 'hexoid': '06 05 2B 81 04 00 03',
- 'name': 'sect239k1',
- 'oid': (1, 3, 132, 0, 3)},
- 'sect283k1': {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'sect283k1 (1 3 132 0 16)',
- 'hexoid': '06 05 2B 81 04 00 10',
- 'name': 'sect283k1',
- 'oid': (1, 3, 132, 0, 16)},
- 'sect283r1': {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'sect283r1 (1 3 132 0 17)',
- 'hexoid': '06 05 2B 81 04 00 11',
- 'name': 'sect283r1',
- 'oid': (1, 3, 132, 0, 17)},
- 'sect409k1': {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'sect409k1 (1 3 132 0 36)',
- 'hexoid': '06 05 2B 81 04 00 24',
- 'name': 'sect409k1',
- 'oid': (1, 3, 132, 0, 36)},
- 'sect409r1': {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'sect409r1 (1 3 132 0 37)',
- 'hexoid': '06 05 2B 81 04 00 25',
- 'name': 'sect409r1',
- 'oid': (1, 3, 132, 0, 37)},
- 'sect571k1': {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'sect571k1 (1 3 132 0 38)',
- 'hexoid': '06 05 2B 81 04 00 26',
- 'name': 'sect571k1',
- 'oid': (1, 3, 132, 0, 38)},
- 'sect571r1': {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'sect571r1 (1 3 132 0 39)',
- 'hexoid': '06 05 2B 81 04 00 27',
- 'name': 'sect571r1',
- 'oid': (1, 3, 132, 0, 39)},
- 'securityApplication': {'comment': 'Telesec SNMP MIBs',
- 'description': 'securityApplication (0 2 262 1 10 11 1)',
- 'hexoid': '06 07 02 82 06 01 0A 0B 01',
- 'name': 'securityApplication',
- 'oid': (0, 2, 262, 1, 10, 11, 1)},
- 'securityAttributes': {'comment': 'Novell PKI attribute type',
- 'description': 'securityAttributes (2 16 840 1 113719 1 9 4 1)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 09 04 01',
- 'name': 'securityAttributes',
- 'oid': (2, 16, 840, 1, 113719, 1, 9, 4, 1)},
- 'securityDomain': {'comment': 'Telesec attribute',
- 'description': 'securityDomain (0 2 262 1 10 7 9)',
- 'hexoid': '06 07 02 82 06 01 0A 07 09',
- 'name': 'securityDomain',
- 'oid': (0, 2, 262, 1, 10, 7, 9)},
- 'securityLabel': {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'securityLabel (1 2 840 113549 1 9 16 2 2)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 02',
- 'name': 'securityLabel',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 2)},
- 'securityMessEnv': {'comment': 'Telesec attribute',
- 'description': 'securityMessEnv (0 2 262 1 10 7 15)',
- 'hexoid': '06 07 02 82 06 01 0A 07 0F',
- 'name': 'securityMessEnv',
- 'oid': (0, 2, 262, 1, 10, 7, 15)},
- 'sedu': {'comment': 'Teletrust sio',
- 'description': 'sedu (1 3 36 2 1)',
- 'hexoid': '06 04 2B 24 02 01',
- 'name': 'sedu',
- 'oid': (1, 3, 36, 2, 1)},
- 'seeAlso': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'seeAlso (2 5 4 34)',
- 'hexoid': '06 03 55 04 22',
- 'name': 'seeAlso',
- 'oid': (2, 5, 4, 34)},
- 'seis-cp': {'comment': 'SEIS Project',
- 'description': 'seis-cp (1 2 752 34 1)',
- 'hexoid': '06 05 2A 85 70 22 01',
- 'name': 'seis-cp',
- 'oid': (1, 2, 752, 34, 1)},
- 'senderNonce': {'comment': 'Verisign PKCS #7 attribute',
- 'description': 'senderNonce (2 16 840 1 113733 1 9 5)',
- 'hexoid': '06 0A 60 86 48 01 86 F8 45 01 09 05',
- 'name': 'senderNonce',
- 'oid': (2, 16, 840, 1, 113733, 1, 9, 5)},
- 'sepUKMs': {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'sepUKMs (2 16 840 1 101 2 1 5 28)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 1C',
- 'name': 'sepUKMs',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 28)},
- 'sequenceNumber': {'comment': 'PKCS #9/RFC 2985 attribute',
- 'description': 'sequenceNumber (1 2 840 113549 1 9 25 4)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 19 04',
- 'name': 'sequenceNumber',
- 'oid': (1, 2, 840, 113549, 1, 9, 25, 4)},
- 'serialNumber': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'serialNumber (2 5 4 5)',
- 'hexoid': '06 03 55 04 05',
- 'name': 'serialNumber',
- 'oid': (2, 5, 4, 5)},
- 'serpent': {'comment': 'GNU encryption algorithm',
- 'description': 'serpent (1 3 6 1 4 1 11591 13 2)',
- 'hexoid': '06 09 2B 06 01 04 01 DA 47 0D 02',
- 'name': 'serpent',
- 'oid': (1, 3, 6, 1, 4, 1, 11591, 13, 2)},
- 'serpent128_CBC': {'comment': 'GNU encryption algorithm',
- 'description': 'serpent128_CBC (1 3 6 1 4 1 11591 13 2 2)',
- 'hexoid': '06 0A 2B 06 01 04 01 DA 47 0D 02 02',
- 'name': 'serpent128_CBC',
- 'oid': (1, 3, 6, 1, 4, 1, 11591, 13, 2, 2)},
- 'serpent128_CFB': {'comment': 'GNU encryption algorithm',
- 'description': 'serpent128_CFB (1 3 6 1 4 1 11591 13 2 4)',
- 'hexoid': '06 0A 2B 06 01 04 01 DA 47 0D 02 04',
- 'name': 'serpent128_CFB',
- 'oid': (1, 3, 6, 1, 4, 1, 11591, 13, 2, 4)},
- 'serpent128_ECB': {'comment': 'GNU encryption algorithm',
- 'description': 'serpent128_ECB (1 3 6 1 4 1 11591 13 2 1)',
- 'hexoid': '06 0A 2B 06 01 04 01 DA 47 0D 02 01',
- 'name': 'serpent128_ECB',
- 'oid': (1, 3, 6, 1, 4, 1, 11591, 13, 2, 1)},
- 'serpent128_OFB': {'comment': 'GNU encryption algorithm',
- 'description': 'serpent128_OFB (1 3 6 1 4 1 11591 13 2 3)',
- 'hexoid': '06 0A 2B 06 01 04 01 DA 47 0D 02 03',
- 'name': 'serpent128_OFB',
- 'oid': (1, 3, 6, 1, 4, 1, 11591, 13, 2, 3)},
- 'serpent192_CBC': {'comment': 'GNU encryption algorithm',
- 'description': 'serpent192_CBC (1 3 6 1 4 1 11591 13 2 22)',
- 'hexoid': '06 0A 2B 06 01 04 01 DA 47 0D 02 16',
- 'name': 'serpent192_CBC',
- 'oid': (1, 3, 6, 1, 4, 1, 11591, 13, 2, 22)},
- 'serpent192_CFB': {'comment': 'GNU encryption algorithm',
- 'description': 'serpent192_CFB (1 3 6 1 4 1 11591 13 2 24)',
- 'hexoid': '06 0A 2B 06 01 04 01 DA 47 0D 02 18',
- 'name': 'serpent192_CFB',
- 'oid': (1, 3, 6, 1, 4, 1, 11591, 13, 2, 24)},
- 'serpent192_ECB': {'comment': 'GNU encryption algorithm',
- 'description': 'serpent192_ECB (1 3 6 1 4 1 11591 13 2 21)',
- 'hexoid': '06 0A 2B 06 01 04 01 DA 47 0D 02 15',
- 'name': 'serpent192_ECB',
- 'oid': (1, 3, 6, 1, 4, 1, 11591, 13, 2, 21)},
- 'serpent192_OFB': {'comment': 'GNU encryption algorithm',
- 'description': 'serpent192_OFB (1 3 6 1 4 1 11591 13 2 23)',
- 'hexoid': '06 0A 2B 06 01 04 01 DA 47 0D 02 17',
- 'name': 'serpent192_OFB',
- 'oid': (1, 3, 6, 1, 4, 1, 11591, 13, 2, 23)},
- 'serpent256_CBC': {'comment': 'GNU encryption algorithm',
- 'description': 'serpent256_CBC (1 3 6 1 4 1 11591 13 2 42)',
- 'hexoid': '06 0A 2B 06 01 04 01 DA 47 0D 02 2A',
- 'name': 'serpent256_CBC',
- 'oid': (1, 3, 6, 1, 4, 1, 11591, 13, 2, 42)},
- 'serpent256_CFB': {'comment': 'GNU encryption algorithm',
- 'description': 'serpent256_CFB (1 3 6 1 4 1 11591 13 2 44)',
- 'hexoid': '06 0A 2B 06 01 04 01 DA 47 0D 02 2C',
- 'name': 'serpent256_CFB',
- 'oid': (1, 3, 6, 1, 4, 1, 11591, 13, 2, 44)},
- 'serpent256_ECB': {'comment': 'GNU encryption algorithm',
- 'description': 'serpent256_ECB (1 3 6 1 4 1 11591 13 2 41)',
- 'hexoid': '06 0A 2B 06 01 04 01 DA 47 0D 02 29',
- 'name': 'serpent256_ECB',
- 'oid': (1, 3, 6, 1, 4, 1, 11591, 13, 2, 41)},
- 'serpent256_OFB': {'comment': 'GNU encryption algorithm',
- 'description': 'serpent256_OFB (1 3 6 1 4 1 11591 13 2 43)',
- 'hexoid': '06 0A 2B 06 01 04 01 DA 47 0D 02 2B',
- 'name': 'serpent256_OFB',
- 'oid': (1, 3, 6, 1, 4, 1, 11591, 13, 2, 43)},
- 'serverAuth': {'comment': 'PKIX key purpose',
- 'description': 'serverAuth (1 3 6 1 5 5 7 3 1)',
- 'hexoid': '06 08 2B 06 01 05 05 07 03 01',
- 'name': 'serverAuth',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 1)},
- 'serverGatedCrypto': {'comment': 'Netscape',
- 'description': 'serverGatedCrypto (2 16 840 1 113730 4 1)',
- 'hexoid': '06 09 60 86 48 01 86 F8 42 04 01',
- 'name': 'serverGatedCrypto',
- 'oid': (2, 16, 840, 1, 113730, 4, 1)},
- 'setExtensions': {'comment': 'SET cert extension',
- 'description': 'setExtensions (2 23 42 7 5)',
- 'hexoid': '06 04 67 2A 07 05',
- 'name': 'setExtensions',
- 'oid': (2, 23, 42, 7, 5)},
- 'setQualifier': {'comment': 'SET cert extension',
- 'description': 'setQualifier (2 23 42 7 6)',
- 'hexoid': '06 04 67 2A 07 06',
- 'name': 'setQualifier',
- 'oid': (2, 23, 42, 7, 6)},
- 'sha': {'comment': 'Oddball OIW OID',
- 'description': 'sha (1 3 14 3 2 18)',
- 'hexoid': '06 05 2B 0E 03 02 12',
- 'name': 'sha',
- 'oid': (1, 3, 14, 3, 2, 18)},
- 'sha-1WithRSAEncryption': {'comment': 'Oddball OIW OID',
- 'description': 'sha-1WithRSAEncryption (1 3 14 3 2 29)',
- 'hexoid': '06 05 2B 0E 03 02 1D',
- 'name': 'sha-1WithRSAEncryption',
- 'oid': (1, 3, 14, 3, 2, 29)},
- 'sha-224': {'comment': 'NIST Algorithm',
- 'description': 'sha-224 (2 16 840 1 101 3 4 2 4)',
- 'hexoid': '06 09 60 86 48 01 65 03 04 02 04',
- 'name': 'sha-224',
- 'oid': (2, 16, 840, 1, 101, 3, 4, 2, 4)},
- 'sha-256': {'comment': 'NIST Algorithm',
- 'description': 'sha-256 (2 16 840 1 101 3 4 2 1)',
- 'hexoid': '06 09 60 86 48 01 65 03 04 02 01',
- 'name': 'sha-256',
- 'oid': (2, 16, 840, 1, 101, 3, 4, 2, 1)},
- 'sha-384': {'comment': 'NIST Algorithm',
- 'description': 'sha-384 (2 16 840 1 101 3 4 2 2)',
- 'hexoid': '06 09 60 86 48 01 65 03 04 02 02',
- 'name': 'sha-384',
- 'oid': (2, 16, 840, 1, 101, 3, 4, 2, 2)},
- 'sha-512': {'comment': 'NIST Algorithm',
- 'description': 'sha-512 (2 16 840 1 101 3 4 2 3)',
- 'hexoid': '06 09 60 86 48 01 65 03 04 02 03',
- 'name': 'sha-512',
- 'oid': (2, 16, 840, 1, 101, 3, 4, 2, 3)},
- 'sha1': {'comment': 'OIW',
- 'description': 'sha1 (1 3 14 3 2 26)',
- 'hexoid': '06 05 2B 0E 03 02 1A',
- 'name': 'sha1',
- 'oid': (1, 3, 14, 3, 2, 26)},
- 'sha1WithRSAEncryptionBSafe1': {'comment': 'Novell signature algorithm',
- 'description': 'sha1WithRSAEncryptionBSafe1 (2 16 840 1 113719 1 2 8 31)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 1F',
- 'name': 'sha1WithRSAEncryptionBSafe1',
- 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 31)},
- 'sha1withRSAEncryption': {'comment': 'PKCS #1',
- 'description': 'sha1withRSAEncryption (1 2 840 113549 1 1 5)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 01 05',
- 'name': 'sha1withRSAEncryption',
- 'oid': (1, 2, 840, 113549, 1, 1, 5)},
- 'sha256WithRSAEncryption': {'comment': 'PKCS #1',
- 'description': 'sha256WithRSAEncryption (1 2 840 113549 1 1 11)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 01 0B',
- 'name': 'sha256WithRSAEncryption',
- 'oid': (1, 2, 840, 113549, 1, 1, 11)},
- 'sha384WithRSAEncryption': {'comment': 'PKCS #1',
- 'description': 'sha384WithRSAEncryption (1 2 840 113549 1 1 12)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 01 0C',
- 'name': 'sha384WithRSAEncryption',
- 'oid': (1, 2, 840, 113549, 1, 1, 12)},
- 'sha512WithRSAEncryption': {'comment': 'PKCS #1',
- 'description': 'sha512WithRSAEncryption (1 2 840 113549 1 1 13)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 01 0D',
- 'name': 'sha512WithRSAEncryption',
- 'oid': (1, 2, 840, 113549, 1, 1, 13)},
- 'shaWithRSASignature': {'comment': 'Oddball OIW OID using 9796-2 padding rules',
- 'description': 'shaWithRSASignature (1 3 14 3 2 15)',
- 'hexoid': '06 05 2B 0E 03 02 0F',
- 'name': 'shaWithRSASignature',
- 'oid': (1, 3, 14, 3, 2, 15)},
- 'siSecurityPolicy': {'comment': 'SDN.700 INFOSEC policy',
- 'description': 'siSecurityPolicy (2 16 840 1 101 2 1 3 10)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 03 0A',
- 'name': 'siSecurityPolicy',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 10)},
- 'sigNumber': {'comment': 'Teletrust signature attributes',
- 'description': 'sigNumber (1 3 36 8 6 9)',
- 'hexoid': '06 05 2B 24 08 06 09',
- 'name': 'sigNumber',
- 'oid': (1, 3, 36, 8, 6, 9)},
- 'sigOrKMPrivileges': {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'sigOrKMPrivileges (2 16 840 1 101 2 1 5 55)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 37',
- 'name': 'sigOrKMPrivileges',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 55)},
- 'sigPolicyId': {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'sigPolicyId (1 2 840 113549 1 9 16 2 15)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 0F',
- 'name': 'sigPolicyId',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 15)},
- 'sigPolicyQualifier-spUserNotice': {'comment': 'S/MIME Signature Policy Qualifier',
- 'description': 'sigPolicyQualifier-spUserNotice (1 2 840 113549 1 9 16 5 2)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 05 02',
- 'name': 'sigPolicyQualifier-spUserNotice',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 5,
- 2)},
- 'sigPolicyQualifier-spuri': {'comment': 'S/MIME Signature Policy Qualifier',
- 'description': 'sigPolicyQualifier-spuri (1 2 840 113549 1 9 16 5 1)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 05 01',
- 'name': 'sigPolicyQualifier-spuri',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 5, 1)},
- 'sigPrivileges': {'comment': 'SDN.700 INFOSEC privileges',
- 'description': 'sigPrivileges (2 16 840 1 101 2 1 10 1)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 0A 01',
- 'name': 'sigPrivileges',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 10, 1)},
- 'sigS_ISO9796-1': {'comment': 'Teletrust signature scheme',
- 'description': 'sigS_ISO9796-1 (1 3 36 3 4 1)',
- 'hexoid': '06 05 2B 24 03 04 01',
- 'name': 'sigS_ISO9796-1',
- 'oid': (1, 3, 36, 3, 4, 1)},
- 'sigS_ISO9796-2': {'comment': 'Teletrust signature scheme',
- 'description': 'sigS_ISO9796-2 (1 3 36 3 4 2)',
- 'hexoid': '06 05 2B 24 03 04 02',
- 'name': 'sigS_ISO9796-2',
- 'oid': (1, 3, 36, 3, 4, 2)},
- 'sigS_ISO9796-2Withred': {'comment': 'Teletrust signature scheme. Unsure what this is supposed to be',
- 'description': 'sigS_ISO9796-2Withred (1 3 36 3 4 2 1)',
- 'hexoid': '06 06 2B 24 03 04 02 01',
- 'name': 'sigS_ISO9796-2Withred',
- 'oid': (1, 3, 36, 3, 4, 2, 1)},
- 'sigS_ISO9796-2Withrnd': {'comment': 'Teletrust signature scheme. 9796-2 with random number in padding field',
- 'description': 'sigS_ISO9796-2Withrnd (1 3 36 3 4 2 3)',
- 'hexoid': '06 06 2B 24 03 04 02 03',
- 'name': 'sigS_ISO9796-2Withrnd',
- 'oid': (1, 3, 36, 3, 4, 2, 3)},
- 'sigS_ISO9796-2Withrsa': {'comment': 'Teletrust signature scheme. Unsure what this is supposed to be',
- 'description': 'sigS_ISO9796-2Withrsa (1 3 36 3 4 2 2)',
- 'hexoid': '06 06 2B 24 03 04 02 02',
- 'name': 'sigS_ISO9796-2Withrsa',
- 'oid': (1, 3, 36, 3, 4, 2, 2)},
- 'signKeyPairTypes': {'comment': 'PKIX CMP information',
- 'description': 'signKeyPairTypes (1 3 6 1 5 5 7 4 2)',
- 'hexoid': '06 08 2B 06 01 05 05 07 04 02',
- 'name': 'signKeyPairTypes',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 2)},
- 'signature': {'comment': 'Telesec mechanism',
- 'description': 'signature (0 2 262 1 10 1 1)',
- 'hexoid': '06 07 02 82 06 01 0A 01 01',
- 'name': 'signature',
- 'oid': (0, 2, 262, 1, 10, 1, 1)},
- 'signatureAlgorithm': {'comment': 'Teletrust algorithm',
- 'description': 'signatureAlgorithm (1 3 36 3 3)',
- 'hexoid': '06 04 2B 24 03 03',
- 'name': 'signatureAlgorithm',
- 'oid': (1, 3, 36, 3, 3)},
- 'signatureScheme': {'comment': 'Teletrust algorithm',
- 'description': 'signatureScheme (1 3 36 3 4)',
- 'hexoid': '06 04 2B 24 03 04',
- 'name': 'signatureScheme',
- 'oid': (1, 3, 36, 3, 4)},
- 'signatureType': {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'signatureType (1 2 840 113549 1 9 16 2 28)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 1C',
- 'name': 'signatureType',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 28)},
- 'signatureTypeIdentifier': {'comment': 'S/MIME',
- 'description': 'signatureTypeIdentifier (1 2 840 113549 1 9 16 9)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 10 09',
- 'name': 'signatureTypeIdentifier',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 9)},
- 'signedAndEnvelopedData': {'comment': 'PKCS #7',
- 'description': 'signedAndEnvelopedData (1 2 840 113549 1 7 4)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 07 04',
- 'name': 'signedAndEnvelopedData',
- 'oid': (1, 2, 840, 113549, 1, 7, 4)},
- 'signedData': {'comment': 'PKCS #7',
- 'description': 'signedData (1 2 840 113549 1 7 2)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 07 02',
- 'name': 'signedData',
- 'oid': (1, 2, 840, 113549, 1, 7, 2)},
- 'signedEDImessage': {'comment': 'TMN EDI for Interactive Agents',
- 'description': 'signedEDImessage (1 3 6 1 4 1 3576 7 2)',
- 'hexoid': '06 09 2B 06 01 04 01 9B 78 07 02',
- 'name': 'signedEDImessage',
- 'oid': (1, 3, 6, 1, 4, 1, 3576, 7, 2)},
- 'signerAttr': {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'signerAttr (1 2 840 113549 1 9 16 2 18)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 12',
- 'name': 'signerAttr',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 18)},
- 'signerLocation': {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'signerLocation (1 2 840 113549 1 9 16 2 17)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 11',
- 'name': 'signerLocation',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 17)},
- 'signingCertificate': {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'signingCertificate (1 2 840 113549 1 9 16 2 12)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 0C',
- 'name': 'signingCertificate',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 12)},
- 'signingDescription': {'comment': 'PKCS #9',
- 'description': 'signingDescription (1 2 840 113549 1 9 13)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 0D',
- 'name': 'signingDescription',
- 'oid': (1, 2, 840, 113549, 1, 9, 13)},
- 'signingTime': {'comment': 'PKCS #9',
- 'description': 'signingTime (1 2 840 113549 1 9 5)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 05',
- 'name': 'signingTime',
- 'oid': (1, 2, 840, 113549, 1, 9, 5)},
- 'simple-strong-auth-mechanism': {'comment': 'Oddball OIW OID',
- 'description': 'simple-strong-auth-mechanism (1 3 14 3 3 1)',
- 'hexoid': '06 05 2B 0E 03 03 01',
- 'name': 'simple-strong-auth-mechanism',
- 'oid': (1, 3, 14, 3, 3, 1)},
- 'sio': {'comment': 'Teletrust sio',
- 'description': 'sio (1 3 36 2)',
- 'hexoid': '06 03 2B 24 02',
- 'name': 'sio',
- 'oid': (1, 3, 36, 2)},
- 'site-Addressing': {'comment': 'Microsoft Exchange Server - object class',
- 'description': 'site-Addressing (1 2 840 113556 1 3 0)',
- 'hexoid': '06 09 2A 86 48 86 F7 14 01 03 00',
- 'name': 'site-Addressing',
- 'oid': (1, 2, 840, 113556, 1, 3, 0)},
- 'smeAndComponentsOfSme': {'comment': 'Telesec module',
- 'description': 'smeAndComponentsOfSme (0 2 262 1 10 2 5)',
- 'hexoid': '06 07 02 82 06 01 0A 02 05',
- 'name': 'smeAndComponentsOfSme',
- 'oid': (0, 2, 262, 1, 10, 2, 5)},
- 'smimeEncryptCerts': {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'smimeEncryptCerts (1 2 840 113549 1 9 16 2 13)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 0D',
- 'name': 'smimeEncryptCerts',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 13)},
- 'snmp-mibs': {'comment': 'Telesec',
- 'description': 'snmp-mibs (0 2 262 1 10 11)',
- 'hexoid': '06 06 02 82 06 01 0A 0B',
- 'name': 'snmp-mibs',
- 'oid': (0, 2, 262, 1, 10, 11)},
- 'spcAgencyInfo': {'comment': 'Microsoft code signing. Also known as policyLink',
- 'description': 'spcAgencyInfo (1 3 6 1 4 1 311 2 1 10)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 0A',
- 'name': 'spcAgencyInfo',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 10)},
- 'spcFinancialCriteriaInfo': {'comment': 'Microsoft code signing',
- 'description': 'spcFinancialCriteriaInfo (1 3 6 1 4 1 311 2 1 27)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 1B',
- 'name': 'spcFinancialCriteriaInfo',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 27)},
- 'spcIndirectDataContext': {'comment': 'Microsoft code signing',
- 'description': 'spcIndirectDataContext (1 3 6 1 4 1 311 2 1 4)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 04',
- 'name': 'spcIndirectDataContext',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 4)},
- 'spcJavaClassData': {'comment': 'Microsoft code signing. Formerly "link extension" aka "glue extension"',
- 'description': 'spcJavaClassData (type 1) (1 3 6 1 4 1 311 2 1 20)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 14',
- 'name': 'spcJavaClassData',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 20)},
- 'spcLink': {'comment': 'Microsoft code signing. Also known as "glue extension"',
- 'description': 'spcLink (type 3) (1 3 6 1 4 1 311 2 1 28)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 1C',
- 'name': 'spcLink',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 28)},
- 'spcMinimalCriteriaInfo': {'comment': 'Microsoft code signing',
- 'description': 'spcMinimalCriteriaInfo (1 3 6 1 4 1 311 2 1 26)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 1A',
- 'name': 'spcMinimalCriteriaInfo',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 26)},
- 'spcPEImageData': {'comment': 'Microsoft code signing',
- 'description': 'spcPEImageData (1 3 6 1 4 1 311 2 1 15)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 0F',
- 'name': 'spcPEImageData',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 15)},
- 'spcRawFileData': {'comment': 'Microsoft code signing',
- 'description': 'spcRawFileData (1 3 6 1 4 1 311 2 1 18)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 12',
- 'name': 'spcRawFileData',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 18)},
- 'spcSpOpusInfo': {'comment': 'Microsoft code signing',
- 'description': 'spcSpOpusInfo (1 3 6 1 4 1 311 2 1 12)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 0C',
- 'name': 'spcSpOpusInfo',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 12)},
- 'spcStatementType': {'comment': 'Microsoft code signing',
- 'description': 'spcStatementType (1 3 6 1 4 1 311 2 1 11)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 0B',
- 'name': 'spcStatementType',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 11)},
- 'spcStructuredStorageData': {'comment': 'Microsoft code signing',
- 'description': 'spcStructuredStorageData (1 3 6 1 4 1 311 2 1 19)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 13',
- 'name': 'spcStructuredStorageData',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 19)},
- 'sqModNISO': {'comment': 'Telesec one-way function',
- 'description': 'sqModNISO (0 2 262 1 10 1 3 4)',
- 'hexoid': '06 08 02 82 06 01 0A 01 03 04',
- 'name': 'sqModNISO',
- 'oid': (0, 2, 262, 1, 10, 1, 3, 4)},
- 'sqModNX509': {'comment': 'Telesec one-way function',
- 'description': 'sqModNX509 (0 2 262 1 10 1 3 3)',
- 'hexoid': '06 08 02 82 06 01 0A 01 03 03',
- 'name': 'sqModNX509',
- 'oid': (0, 2, 262, 1, 10, 1, 3, 3)},
- 'standardSecurityLabelPrivileges': {'comment': 'SDN.700 INFOSEC security category',
- 'description': 'standardSecurityLabelPrivileges (2 16 840 1 101 2 1 8 2)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 08 02',
- 'name': 'standardSecurityLabelPrivileges',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 8, 2)},
- 'stateOrProvinceName': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'stateOrProvinceName (2 5 4 8)',
- 'hexoid': '06 03 55 04 08',
- 'name': 'stateOrProvinceName',
- 'oid': (2, 5, 4, 8)},
- 'stefiles': {'comment': 'Telesec module',
- 'description': 'stefiles (0 2 262 1 10 2 8)',
- 'hexoid': '06 07 02 82 06 01 0A 02 08',
- 'name': 'stefiles',
- 'oid': (0, 2, 262, 1, 10, 2, 8)},
- 'steuerBerater': {'comment': 'Teletrust ProfessionInfo',
- 'description': 'steuerBerater (1 3 36 8 3 11 1 5)',
- 'hexoid': '06 07 2B 24 08 03 0B 01 05',
- 'name': 'steuerBerater',
- 'oid': (1, 3, 36, 8, 3, 11, 1, 5)},
- 'steuerBeraterin': {'comment': 'Teletrust ProfessionInfo',
- 'description': 'steuerBeraterin (1 3 36 8 3 11 1 4)',
- 'hexoid': '06 07 2B 24 08 03 0B 01 04',
- 'name': 'steuerBeraterin',
- 'oid': (1, 3, 36, 8, 3, 11, 1, 4)},
- 'steuerBevollmaechtigte': {'comment': 'Teletrust ProfessionInfo',
- 'description': 'steuerBevollmaechtigte (1 3 36 8 3 11 1 6)',
- 'hexoid': '06 07 2B 24 08 03 0B 01 06',
- 'name': 'steuerBevollmaechtigte',
- 'oid': (1, 3, 36, 8, 3, 11, 1, 6)},
- 'steuerBevollmaechtigter': {'comment': 'Teletrust ProfessionInfo',
- 'description': 'steuerBevollmaechtigter (1 3 36 8 3 11 1 7)',
- 'hexoid': '06 07 2B 24 08 03 0B 01 07',
- 'name': 'steuerBevollmaechtigter',
- 'oid': (1, 3, 36, 8, 3, 11, 1, 7)},
- 'storageTime': {'comment': 'Teletrust signature attributes',
- 'description': 'storageTime (1 3 36 8 6 6)',
- 'hexoid': '06 05 2B 24 08 06 06',
- 'name': 'storageTime',
- 'oid': (1, 3, 36, 8, 6, 6)},
- 'streetAddress': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'streetAddress (2 5 4 9)',
- 'hexoid': '06 03 55 04 09',
- 'name': 'streetAddress',
- 'oid': (2, 5, 4, 9)},
- 'strongAuthenticationUser': {'comment': 'X.520 objectClass (2 5 6)',
- 'description': 'strongAuthenticationUser (2 5 6 15)',
- 'hexoid': '06 03 55 06 0F',
- 'name': 'strongAuthenticationUser',
- 'oid': (2, 5, 6, 15)},
- 'strongExtranet': {'comment': 'Thawte certificate extension',
- 'description': 'strongExtranet (1 3 101 1 4 1)',
- 'hexoid': '06 05 2B 65 01 04 01',
- 'name': 'strongExtranet',
- 'oid': (1, 3, 101, 1, 4, 1)},
- 'subject': {'comment': 'Telesec attribute',
- 'description': 'subject (0 2 262 1 10 7 10)',
- 'hexoid': '06 07 02 82 06 01 0A 07 0A',
- 'name': 'subject',
- 'oid': (0, 2, 262, 1, 10, 7, 10)},
- 'subjectAltName': {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'subjectAltName (2 5 29 17)',
- 'hexoid': '06 03 55 1D 11',
- 'name': 'subjectAltName',
- 'oid': (2, 5, 29, 17)},
- 'subjectDirectoryAttributes': {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'subjectDirectoryAttributes (2 5 29 9)',
- 'hexoid': '06 03 55 1D 09',
- 'name': 'subjectDirectoryAttributes',
- 'oid': (2, 5, 29, 9)},
- 'subjectInfoAccess': {'comment': 'PKIX private extension',
- 'description': 'subjectInfoAccess (1 3 6 1 5 5 7 1 11)',
- 'hexoid': '06 08 2B 06 01 05 05 07 01 0B',
- 'name': 'subjectInfoAccess',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 11)},
- 'subjectKeyIdentifier': {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'subjectKeyIdentifier (2 5 29 14)',
- 'hexoid': '06 03 55 1D 0E',
- 'name': 'subjectKeyIdentifier',
- 'oid': (2, 5, 29, 14)},
- 'suiteAConfidentialityAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms',
- 'description': 'suiteAConfidentialityAlgorithm (2 16 840 1 101 2 1 1 14)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 0E',
- 'name': 'suiteAConfidentialityAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 14)},
- 'suiteAIntegrityAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms',
- 'description': 'suiteAIntegrityAlgorithm (2 16 840 1 101 2 1 1 15)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 0F',
- 'name': 'suiteAIntegrityAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 15)},
- 'suiteAKMandSigAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms',
- 'description': 'suiteAKMandSigAlgorithm (2 16 840 1 101 2 1 1 18)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 12',
- 'name': 'suiteAKMandSigAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 18)},
- 'suiteAKeyManagementAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms',
- 'description': 'suiteAKeyManagementAlgorithm (2 16 840 1 101 2 1 1 17)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 11',
- 'name': 'suiteAKeyManagementAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 17)},
- 'suiteASignatureAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms',
- 'description': 'suiteASignatureAlgorithm (2 16 840 1 101 2 1 1 13)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 0D',
- 'name': 'suiteASignatureAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 13)},
- 'suiteATokenProtectionAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms',
- 'description': 'suiteATokenProtectionAlgorithm (2 16 840 1 101 2 1 1 16)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 10',
- 'name': 'suiteATokenProtectionAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 16)},
- 'suppLangTags': {'comment': 'PKIX CMP information',
- 'description': 'suppLangTags (1 3 6 1 5 5 7 4 16)',
- 'hexoid': '06 08 2B 06 01 05 05 07 04 10',
- 'name': 'suppLangTags',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 16)},
- 'supportedAlgorithms': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'supportedAlgorithms (2 5 4 52)',
- 'hexoid': '06 03 55 04 34',
- 'name': 'supportedAlgorithms',
- 'oid': (2, 5, 4, 52)},
- 'supportedApplicationContext': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'supportedApplicationContext (2 5 4 30)',
- 'hexoid': '06 03 55 04 1E',
- 'name': 'supportedApplicationContext',
- 'oid': (2, 5, 4, 30)},
- 'surname': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'surname (2 5 4 4)',
- 'hexoid': '06 03 55 04 04',
- 'name': 'surname',
- 'oid': (2, 5, 4, 4)},
- 'symmetric-encryption-algorithm': {'comment': 'Mitsubishi security algorithm',
- 'description': 'symmetric-encryption-algorithm (1 2 392 200011 61 1 1 1)',
- 'hexoid': '06 0A 2A 83 08 8C 9A 4B 3D 01 01 01',
- 'name': 'symmetric-encryption-algorithm',
- 'oid': (1, 2, 392, 200011, 61, 1, 1, 1)},
- 'symmetricKeyEntry': {'comment': 'Telesec object class',
- 'description': 'symmetricKeyEntry (0 2 262 1 10 3 5)',
- 'hexoid': '06 07 02 82 06 01 0A 03 05',
- 'name': 'symmetricKeyEntry',
- 'oid': (0, 2, 262, 1, 10, 3, 5)},
- 'symmetricKeyEntryName': {'comment': 'Telesec attribute',
- 'description': 'symmetricKeyEntryName (0 2 262 1 10 7 35)',
- 'hexoid': '06 07 02 82 06 01 0A 07 23',
- 'name': 'symmetricKeyEntryName',
- 'oid': (0, 2, 262, 1, 10, 7, 35)},
- 'systemHealth': {'comment': 'Microsoft extended key usage',
- 'description': 'systemHealth (1 3 6 1 4 1 311 47 1 1)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 2F 01 01',
- 'name': 'systemHealth',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 47, 1, 1)},
- 'systemHealthLoophole': {'comment': 'Microsoft extended key usage',
- 'description': 'systemHealthLoophole (1 3 6 1 4 1 311 47 1 3)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 2F 01 03',
- 'name': 'systemHealthLoophole',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 47, 1, 3)},
- 'tDTInfo': {'comment': 'S/MIME Content Types',
- 'description': 'tDTInfo (1 2 840 113549 1 9 16 1 5)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 05',
- 'name': 'tDTInfo',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 1, 5)},
- 'tSTInfo': {'comment': 'S/MIME Content Types',
- 'description': 'tSTInfo (1 2 840 113549 1 9 16 1 4)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 04',
- 'name': 'tSTInfo',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 1, 4)},
- 'tcp1': {'comment': 'SDN.700 INFOSEC test objects',
- 'description': 'tcp1 (2 16 840 1 101 2 1 12 1 1)',
- 'hexoid': '06 0A 60 86 48 01 65 02 01 0C 01 01',
- 'name': 'tcp1',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 12, 1, 1)},
- 'telekomAuthentication': {'comment': 'Telesec authentication',
- 'description': 'telekomAuthentication (0 2 262 1 10 1 0 8)',
- 'hexoid': '06 08 02 82 06 01 0A 01 00 08',
- 'name': 'telekomAuthentication',
- 'oid': (0, 2, 262, 1, 10, 1, 0, 8)},
- 'telephone': {'comment': 'SET field',
- 'description': 'telephone (2 23 42 2 9)',
- 'hexoid': '06 04 67 2A 02 09',
- 'name': 'telephone',
- 'oid': (2, 23, 42, 2, 9)},
- 'telephoneNumber': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'telephoneNumber (2 5 4 20)',
- 'hexoid': '06 03 55 04 14',
- 'name': 'telephoneNumber',
- 'oid': (2, 5, 4, 20)},
- 'telesecCRLFilterExt': {'comment': 'Telesec cert/CRL extension',
- 'description': 'telesecCRLFilterExt (0 2 262 1 10 12 5)',
- 'hexoid': '06 07 02 82 06 01 0A 0C 05',
- 'name': 'telesecCRLFilterExt',
- 'oid': (0, 2, 262, 1, 10, 12, 5)},
- 'telesecCRLFilteredExt': {'comment': 'Telesec cert/CRL extension',
- 'description': 'telesecCRLFilteredExt (0 2 262 1 10 12 4)',
- 'hexoid': '06 07 02 82 06 01 0A 0C 04',
- 'name': 'telesecCRLFilteredExt',
- 'oid': (0, 2, 262, 1, 10, 12, 4)},
- 'telesecCertIdExt': {'comment': 'Telesec cert/CRL extension',
- 'description': 'telesecCertIdExt (0 2 262 1 10 12 1)',
- 'hexoid': '06 07 02 82 06 01 0A 0C 01',
- 'name': 'telesecCertIdExt',
- 'oid': (0, 2, 262, 1, 10, 12, 1)},
- 'telesecCertificate': {'comment': 'Telesec attribute',
- 'description': 'telesecCertificate (0 2 262 1 10 7 2)',
- 'hexoid': '06 07 02 82 06 01 0A 07 02',
- 'name': 'telesecCertificate',
- 'oid': (0, 2, 262, 1, 10, 7, 2)},
- 'telesecCertificateList': {'comment': 'Telesec attribute',
- 'description': 'telesecCertificateList (0 2 262 1 10 7 21)',
- 'hexoid': '06 07 02 82 06 01 0A 07 15',
- 'name': 'telesecCertificateList',
- 'oid': (0, 2, 262, 1, 10, 7, 21)},
- 'telesecGivenName': {'comment': 'Telesec attribute',
- 'description': 'telesecGivenName (0 2 262 1 10 7 17)',
- 'hexoid': '06 07 02 82 06 01 0A 07 11',
- 'name': 'telesecGivenName',
- 'oid': (0, 2, 262, 1, 10, 7, 17)},
- 'telesecNamingAuthorityExt': {'comment': 'Telesec cert/CRL extension',
- 'description': 'telesecNamingAuthorityExt (0 2 262 1 10 12 6)',
- 'hexoid': '06 07 02 82 06 01 0A 0C 06',
- 'name': 'telesecNamingAuthorityExt',
- 'oid': (0, 2, 262, 1, 10, 12, 6)},
- 'telesecOtherName': {'comment': 'Telesec object class',
- 'description': 'telesecOtherName (0 2 262 1 10 3 0)',
- 'hexoid': '06 07 02 82 06 01 0A 03 00',
- 'name': 'telesecOtherName',
- 'oid': (0, 2, 262, 1, 10, 3, 0)},
- 'telesecPolicyQualifierID': {'comment': 'Telesec cert/CRL extension',
- 'description': 'telesecPolicyQualifierID (0 2 262 1 10 12 3)',
- 'hexoid': '06 07 02 82 06 01 0A 0C 03',
- 'name': 'telesecPolicyQualifierID',
- 'oid': (0, 2, 262, 1, 10, 12, 3)},
- 'telesecPostalCode': {'comment': 'Telesec attribute',
- 'description': 'telesecPostalCode (0 2 262 1 10 7 19)',
- 'hexoid': '06 07 02 82 06 01 0A 07 13',
- 'name': 'telesecPostalCode',
- 'oid': (0, 2, 262, 1, 10, 7, 19)},
- 'telesecTtpAsymmetricApplication': {'comment': 'Telesec module',
- 'description': 'telesecTtpAsymmetricApplication (0 2 262 1 10 2 11)',
- 'hexoid': '06 07 02 82 06 01 0A 02 0B',
- 'name': 'telesecTtpAsymmetricApplication',
- 'oid': (0, 2, 262, 1, 10, 2, 11)},
- 'telesecTtpBasisApplication': {'comment': 'Telesec module',
- 'description': 'telesecTtpBasisApplication (0 2 262 1 10 2 12)',
- 'hexoid': '06 07 02 82 06 01 0A 02 0C',
- 'name': 'telesecTtpBasisApplication',
- 'oid': (0, 2, 262, 1, 10, 2, 12)},
- 'telesecTtpMessages': {'comment': 'Telesec module',
- 'description': 'telesecTtpMessages (0 2 262 1 10 2 13)',
- 'hexoid': '06 07 02 82 06 01 0A 02 0D',
- 'name': 'telesecTtpMessages',
- 'oid': (0, 2, 262, 1, 10, 2, 13)},
- 'telesecTtpTimeStampApplication': {'comment': 'Telesec module',
- 'description': 'telesecTtpTimeStampApplication (0 2 262 1 10 2 14)',
- 'hexoid': '06 07 02 82 06 01 0A 02 0E',
- 'name': 'telesecTtpTimeStampApplication',
- 'oid': (0, 2, 262, 1, 10, 2, 14)},
- 'teletexTerminalIdentifier': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'teletexTerminalIdentifier (2 5 4 22)',
- 'hexoid': '06 03 55 04 16',
- 'name': 'teletexTerminalIdentifier',
- 'oid': (2, 5, 4, 22)},
- 'teletrustCertificateList': {'comment': 'Telesec attribute',
- 'description': 'teletrustCertificateList (0 2 262 1 10 7 22)',
- 'hexoid': '06 07 02 82 06 01 0A 07 16',
- 'name': 'teletrustCertificateList',
- 'oid': (0, 2, 262, 1, 10, 7, 22)},
- 'telexNumber': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'telexNumber (2 5 4 21)',
- 'hexoid': '06 03 55 04 15',
- 'name': 'telexNumber',
- 'oid': (2, 5, 4, 21)},
- 'testSecurityPolicy': {'comment': 'SDN.700 INFOSEC test objects',
- 'description': 'testSecurityPolicy (2 16 840 1 101 2 1 12 0)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 0C 00',
- 'name': 'testSecurityPolicy',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 12, 0)},
- 'textNotice': {'comment': 'PKIX policy qualifier',
- 'description': 'textNotice (1 3 6 1 5 5 7 2 3)',
- 'hexoid': '06 08 2B 06 01 05 05 07 02 03',
- 'name': 'textNotice',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 2, 3)},
- 'thawte-ce': {'comment': 'Thawte',
- 'description': 'thawte-ce (1 3 101 1 4)',
- 'hexoid': '06 04 2B 65 01 04',
- 'name': 'thawte-ce',
- 'oid': (1, 3, 101, 1, 4)},
- 'threeWayX509Authentication': {'comment': 'Telesec authentication',
- 'description': 'threeWayX509Authentication (0 2 262 1 10 1 0 5)',
- 'hexoid': '06 08 02 82 06 01 0A 01 00 05',
- 'name': 'threeWayX509Authentication',
- 'oid': (0, 2, 262, 1, 10, 1, 0, 5)},
- 'tiger': {'comment': 'GNU digest algorithm',
- 'description': 'tiger (1 3 6 1 4 1 11591 12 2)',
- 'hexoid': '06 09 2B 06 01 04 01 DA 47 0C 02',
- 'name': 'tiger',
- 'oid': (1, 3, 6, 1, 4, 1, 11591, 12, 2)},
- 'timeOfIssue': {'comment': 'Telesec attribute',
- 'description': 'timeOfIssue (0 2 262 1 10 7 24)',
- 'hexoid': '06 07 02 82 06 01 0A 07 18',
- 'name': 'timeOfIssue',
- 'oid': (0, 2, 262, 1, 10, 7, 24)},
- 'timeOfRevocation': {'comment': 'Telesec attribute',
- 'description': 'timeOfRevocation (0 2 262 1 10 7 11)',
- 'hexoid': '06 07 02 82 06 01 0A 07 0B',
- 'name': 'timeOfRevocation',
- 'oid': (0, 2, 262, 1, 10, 7, 11)},
- 'timeOfRevocationGen': {'comment': 'Telesec attribute',
- 'description': 'timeOfRevocationGen (0 2 262 1 10 7 51)',
- 'hexoid': '06 07 02 82 06 01 0A 07 33',
- 'name': 'timeOfRevocationGen',
- 'oid': (0, 2, 262, 1, 10, 7, 51)},
- 'timeStampSigning': {'comment': 'Microsoft enhanced key usage',
- 'description': 'timeStampSigning (1 3 6 1 4 1 311 10 3 2)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 0A 03 02',
- 'name': 'timeStampSigning',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 10, 3, 2)},
- 'timeStampToken': {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'timeStampToken (1 2 840 113549 1 9 16 2 14)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 0E',
- 'name': 'timeStampToken',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 14)},
- 'timeStamping': {'comment': 'PKIX subject/authority info access descriptor',
- 'description': 'timeStamping (1 3 6 1 5 5 7 48 3)',
- 'hexoid': '06 08 2B 06 01 05 05 07 30 03',
- 'name': 'timeStamping',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 3)},
- 'timeproof': {'comment': 'enterprise',
- 'description': 'timeproof (1 3 6 1 4 1 5472)',
- 'hexoid': '06 07 2B 06 01 04 01 AA 60',
- 'name': 'timeproof',
- 'oid': (1, 3, 6, 1, 4, 1, 5472)},
- 'timestampRequest': {'comment': 'Microsoft code signing',
- 'description': 'timestampRequest (1 3 6 1 4 1 311 3 2 1)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 03 02 01',
- 'name': 'timestampRequest',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 3, 2, 1)},
- 'title': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'title (2 5 4 12)',
- 'hexoid': '06 03 55 04 0C',
- 'name': 'title',
- 'oid': (2, 5, 4, 12)},
- 'titledWithOID': {'comment': 'Microsoft',
- 'description': 'titledWithOID (1 2 840 113556 4 4)',
- 'hexoid': '06 08 2A 86 48 86 F7 14 04 04',
- 'name': 'titledWithOID',
- 'oid': (1, 2, 840, 113556, 4, 4)},
- 'top': {'comment': 'X.520 objectClass (2 5 6)',
- 'description': 'top (2 5 6 0)',
- 'hexoid': '06 03 55 06 00',
- 'name': 'top',
- 'oid': (2, 5, 6, 0)},
- 'tpBasis': {'comment': 'ANSI X9.62 field basis',
- 'description': 'tpBasis (1 2 840 10045 1 2 3 2)',
- 'hexoid': '06 09 2A 86 48 CE 3D 01 02 03 02',
- 'name': 'tpBasis',
- 'oid': (1, 2, 840, 10045, 1, 2, 3, 2)},
- 'transID': {'comment': 'Verisign PKCS #7 attribute',
- 'description': 'transID (2 16 840 1 113733 1 9 7)',
- 'hexoid': '06 0A 60 86 48 01 86 F8 45 01 09 07',
- 'name': 'transID',
- 'oid': (2, 16, 840, 1, 113733, 1, 9, 7)},
- 'tsp1': {'comment': 'SDN.700 INFOSEC test objects',
- 'description': 'tsp1 (2 16 840 1 101 2 1 12 0 1)',
- 'hexoid': '06 0A 60 86 48 01 65 02 01 0C 00 01',
- 'name': 'tsp1',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 12, 0, 1)},
- 'tsp1SecurityCategories': {'comment': 'SDN.700 INFOSEC test objects',
- 'description': 'tsp1SecurityCategories (2 16 840 1 101 2 1 12 0 1 0)',
- 'hexoid': '06 0B 60 86 48 01 65 02 01 0C 00 01 00',
- 'name': 'tsp1SecurityCategories',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 12, 0, 1, 0)},
- 'tsp1TagSetOne': {'comment': 'SDN.700 INFOSEC test objects',
- 'description': 'tsp1TagSetOne (2 16 840 1 101 2 1 12 0 1 0 1)',
- 'hexoid': '06 0C 60 86 48 01 65 02 01 0C 00 01 00 01',
- 'name': 'tsp1TagSetOne',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 12, 0, 1, 0, 1)},
- 'tsp1TagSetTwo': {'comment': 'SDN.700 INFOSEC test objects',
- 'description': 'tsp1TagSetTwo (2 16 840 1 101 2 1 12 0 1 0 2)',
- 'hexoid': '06 0C 60 86 48 01 65 02 01 0C 00 01 00 02',
- 'name': 'tsp1TagSetTwo',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 12, 0, 1, 0, 2)},
- 'tsp1TagSetZero': {'comment': 'SDN.700 INFOSEC test objects',
- 'description': 'tsp1TagSetZero (2 16 840 1 101 2 1 12 0 1 0 0)',
- 'hexoid': '06 0C 60 86 48 01 65 02 01 0C 00 01 00 00',
- 'name': 'tsp1TagSetZero',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 12, 0, 1, 0, 0)},
- 'tsp2': {'comment': 'SDN.700 INFOSEC test objects',
- 'description': 'tsp2 (2 16 840 1 101 2 1 12 0 2)',
- 'hexoid': '06 0A 60 86 48 01 65 02 01 0C 00 02',
- 'name': 'tsp2',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 12, 0, 2)},
- 'tsp2SecurityCategories': {'comment': 'SDN.700 INFOSEC test objects',
- 'description': 'tsp2SecurityCategories (2 16 840 1 101 2 1 12 0 2 0)',
- 'hexoid': '06 0B 60 86 48 01 65 02 01 0C 00 02 00',
- 'name': 'tsp2SecurityCategories',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 12, 0, 2, 0)},
- 'tsp2TagSetOne': {'comment': 'SDN.700 INFOSEC test objects',
- 'description': 'tsp2TagSetOne (2 16 840 1 101 2 1 12 0 2 0 1)',
- 'hexoid': '06 0C 60 86 48 01 65 02 01 0C 00 02 00 01',
- 'name': 'tsp2TagSetOne',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 12, 0, 2, 0, 1)},
- 'tsp2TagSetTwo': {'comment': 'SDN.700 INFOSEC test objects',
- 'description': 'tsp2TagSetTwo (2 16 840 1 101 2 1 12 0 2 0 2)',
- 'hexoid': '06 0C 60 86 48 01 65 02 01 0C 00 02 00 02',
- 'name': 'tsp2TagSetTwo',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 12, 0, 2, 0, 2)},
- 'tsp2TagSetZero': {'comment': 'SDN.700 INFOSEC test objects',
- 'description': 'tsp2TagSetZero (2 16 840 1 101 2 1 12 0 2 0 0)',
- 'hexoid': '06 0C 60 86 48 01 65 02 01 0C 00 02 00 00',
- 'name': 'tsp2TagSetZero',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 12, 0, 2, 0, 0)},
- 'tss': {'comment': 'timeproof',
- 'description': 'tss (1 3 6 1 4 1 5472 1)',
- 'hexoid': '06 08 2B 06 01 04 01 AA 60 01',
- 'name': 'tss',
- 'oid': (1, 3, 6, 1, 4, 1, 5472, 1)},
- 'tss380': {'comment': 'timeproof TSS',
- 'description': 'tss380 (1 3 6 1 4 1 5472 1 2)',
- 'hexoid': '06 09 2B 06 01 04 01 AA 60 01 02',
- 'name': 'tss380',
- 'oid': (1, 3, 6, 1, 4, 1, 5472, 1, 2)},
- 'tss400': {'comment': 'timeproof TSS',
- 'description': 'tss400 (1 3 6 1 4 1 5472 1 3)',
- 'hexoid': '06 09 2B 06 01 04 01 AA 60 01 03',
- 'name': 'tss400',
- 'oid': (1, 3, 6, 1, 4, 1, 5472, 1, 3)},
- 'tss80': {'comment': 'timeproof TSS',
- 'description': 'tss80 (1 3 6 1 4 1 5472 1 1)',
- 'hexoid': '06 09 2B 06 01 04 01 AA 60 01 01',
- 'name': 'tss80',
- 'oid': (1, 3, 6, 1, 4, 1, 5472, 1, 1)},
- 'tunneling': {'comment': 'SET cert extension',
- 'description': 'tunneling (2 23 42 7 4)',
- 'hexoid': '06 04 67 2A 07 04',
- 'name': 'tunneling',
- 'oid': (2, 23, 42, 7, 4)},
- 'twoWayISO9798Authentication': {'comment': 'Telesec authentication',
- 'description': 'twoWayISO9798Authentication (0 2 262 1 10 1 0 7)',
- 'hexoid': '06 08 02 82 06 01 0A 01 00 07',
- 'name': 'twoWayISO9798Authentication',
- 'oid': (0, 2, 262, 1, 10, 1, 0, 7)},
- 'twoWayX509Authentication': {'comment': 'Telesec authentication',
- 'description': 'twoWayX509Authentication (0 2 262 1 10 1 0 4)',
- 'hexoid': '06 08 02 82 06 01 0A 01 00 04',
- 'name': 'twoWayX509Authentication',
- 'oid': (0, 2, 262, 1, 10, 1, 0, 4)},
- 'ukDemo': {'comment': 'SDN.700 INFOSEC certificate policy',
- 'description': 'ukDemo (2 16 840 1 101 2 1 11 1)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 0B 01',
- 'name': 'ukDemo',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 11, 1)},
- 'uniqueIdentifier': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'uniqueIdentifier (2 5 4 45)',
- 'hexoid': '06 03 55 04 2D',
- 'name': 'uniqueIdentifier',
- 'oid': (2, 5, 4, 45)},
- 'uniqueMember': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'uniqueMember (2 5 4 50)',
- 'hexoid': '06 03 55 04 32',
- 'name': 'uniqueMember',
- 'oid': (2, 5, 4, 50)},
- 'universalPrincipalName': {'comment': 'Microsoft UPN',
- 'description': 'universalPrincipalName (1 3 6 1 4 1 311 20 2 3)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 14 02 03',
- 'name': 'universalPrincipalName',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 20, 2, 3)},
- 'unotice': {'comment': 'PKIX policy qualifier',
- 'description': 'unotice (1 3 6 1 5 5 7 2 2)',
- 'hexoid': '06 08 2B 06 01 05 05 07 02 02',
- 'name': 'unotice',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 2, 2)},
- 'unstructuredAddress': {'comment': 'PKCS #9',
- 'description': 'unstructuredAddress (1 2 840 113549 1 9 8)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 08',
- 'name': 'unstructuredAddress',
- 'oid': (1, 2, 840, 113549, 1, 9, 8)},
- 'unstructuredName': {'comment': 'PKCS #9',
- 'description': 'unstructuredName (1 2 840 113549 1 9 2)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 02',
- 'name': 'unstructuredName',
- 'oid': (1, 2, 840, 113549, 1, 9, 2)},
- 'unsupportedOIDs': {'comment': 'PKIX CMP information',
- 'description': 'unsupportedOIDs (1 3 6 1 5 5 7 4 7)',
- 'hexoid': '06 08 2B 06 01 05 05 07 04 07',
- 'name': 'unsupportedOIDs',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 7)},
- 'usDODClass2': {'comment': 'SDN.700 INFOSEC certificate policy',
- 'description': 'usDODClass2 (2 16 840 1 101 2 1 11 2)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 0B 02',
- 'name': 'usDODClass2',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 11, 2)},
- 'usDODClass3': {'comment': 'SDN.700 INFOSEC certificate policy',
- 'description': 'usDODClass3 (2 16 840 1 101 2 1 11 5)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 0B 05',
- 'name': 'usDODClass3',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 11, 5)},
- 'usDODClass4': {'comment': 'SDN.700 INFOSEC certificate policy',
- 'description': 'usDODClass4 (2 16 840 1 101 2 1 11 4)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 0B 04',
- 'name': 'usDODClass4',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 11, 4)},
- 'usDODClass5': {'comment': 'SDN.700 INFOSEC certificate policy',
- 'description': 'usDODClass5 (2 16 840 1 101 2 1 11 6)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 0B 06',
- 'name': 'usDODClass5',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 11, 6)},
- 'usMediumPilot': {'comment': 'SDN.700 INFOSEC certificate policy',
- 'description': 'usMediumPilot (2 16 840 1 101 2 1 11 3)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 0B 03',
- 'name': 'usMediumPilot',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 11, 3)},
- 'usefulDefinitions': {'comment': 'Telesec module',
- 'description': 'usefulDefinitions (0 2 262 1 10 2 7)',
- 'hexoid': '06 07 02 82 06 01 0A 02 07',
- 'name': 'usefulDefinitions',
- 'oid': (0, 2, 262, 1, 10, 2, 7)},
- 'userCertificate': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'userCertificate (2 5 4 36)',
- 'hexoid': '06 03 55 04 24',
- 'name': 'userCertificate',
- 'oid': (2, 5, 4, 36)},
- 'userGroup': {'comment': 'PKIX other name',
- 'description': 'userGroup (1 3 6 1 5 5 7 8 2)',
- 'hexoid': '06 08 2B 06 01 05 05 07 08 02',
- 'name': 'userGroup',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 8, 2)},
- 'userGroupReference': {'comment': 'Telesec attribute',
- 'description': 'userGroupReference (0 2 262 1 10 7 12)',
- 'hexoid': '06 07 02 82 06 01 0A 07 0C',
- 'name': 'userGroupReference',
- 'oid': (0, 2, 262, 1, 10, 7, 12)},
- 'userID': {'comment': 'Some oddball X.500 attribute collection',
- 'description': 'userID (0 9 2342 19200300 100 1 1)',
- 'hexoid': '06 0A 09 92 26 89 93 F2 2C 64 01 01',
- 'name': 'userID',
- 'oid': (0, 9, 2342, 19200300, 100, 1, 1)},
- 'userPassword': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'userPassword (2 5 4 35)',
- 'hexoid': '06 03 55 04 23',
- 'name': 'userPassword',
- 'oid': (2, 5, 4, 35)},
- 'utf8Pairs': {'comment': 'PKIX CRMF registration control',
- 'description': 'utf8Pairs (1 3 6 1 5 5 7 5 2 1)',
- 'hexoid': '06 09 2B 06 01 05 05 07 05 02 01',
- 'name': 'utf8Pairs',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 2, 1)},
- 'utimaco-api': {'comment': 'Teletrust API',
- 'description': 'utimaco-api (1 3 36 6 1 1)',
- 'hexoid': '06 05 2B 24 06 01 01',
- 'name': 'utimaco-api',
- 'oid': (1, 3, 36, 6, 1, 1)},
- 'validity': {'comment': 'Telesec attribute',
- 'description': 'validity (0 2 262 1 10 7 13)',
- 'hexoid': '06 07 02 82 06 01 0A 07 0D',
- 'name': 'validity',
- 'oid': (0, 2, 262, 1, 10, 7, 13)},
- 'validityModel': {'comment': 'TU Darmstadt ValidityModel',
- 'description': 'validityModel (1 3 6 1 4 1 8301 3 5)',
- 'hexoid': '06 09 2B 06 01 04 01 C0 6D 03 05',
- 'name': 'validityModel',
- 'oid': (1, 3, 6, 1, 4, 1, 8301, 3, 5)},
- 'validityModelChain': {'comment': 'TU Darmstadt ValidityModel',
- 'description': 'validityModelChain (1 3 6 1 4 1 8301 3 5 1)',
- 'hexoid': '06 0A 2B 06 01 04 01 C0 6D 03 05 01',
- 'name': 'validityModelChain',
- 'oid': (1, 3, 6, 1, 4, 1, 8301, 3, 5, 1)},
- 'validityModelShell': {'comment': 'ValidityModel',
- 'description': 'validityModelShell (1 3 6 1 4 1 8301 3 5 2)',
- 'hexoid': '06 0A 2B 06 01 04 01 C0 6D 03 05 02',
- 'name': 'validityModelShell',
- 'oid': (1, 3, 6, 1, 4, 1, 8301, 3, 5, 2)},
- 'vendor': {'comment': 'SET',
- 'description': 'vendor (2 23 42 9)',
- 'hexoid': '06 03 67 2A 09',
- 'name': 'vendor',
- 'oid': (2, 23, 42, 9)},
- 'vereidigteBuchprueferin': {'comment': 'Teletrust ProfessionInfo',
- 'description': 'vereidigteBuchprueferin (1 3 36 8 3 11 1 16)',
- 'hexoid': '06 07 2B 24 08 03 0B 01 10',
- 'name': 'vereidigteBuchprueferin',
- 'oid': (1, 3, 36, 8, 3, 11, 1, 16)},
- 'vereidigterBuchpruefer': {'comment': 'Teletrust ProfessionInfo',
- 'description': 'vereidigterBuchpruefer (1 3 36 8 3 11 1 17)',
- 'hexoid': '06 07 2B 24 08 03 0B 01 11',
- 'name': 'vereidigterBuchpruefer',
- 'oid': (1, 3, 36, 8, 3, 11, 1, 17)},
- 'verisignCPSv1notice': {'comment': 'Verisign policy (obsolete)',
- 'description': 'verisignCPSv1notice (2 16 840 1 113733 1 7 1 1 1)',
- 'hexoid': '06 0C 60 86 48 01 86 F8 45 01 07 01 01 01',
- 'name': 'verisignCPSv1notice',
- 'oid': (2, 16, 840, 1, 113733, 1, 7, 1, 1, 1)},
- 'verisignCPSv1nsi': {'comment': 'Verisign policy (obsolete)',
- 'description': 'verisignCPSv1nsi (2 16 840 1 113733 1 7 1 1 2)',
- 'hexoid': '06 0C 60 86 48 01 86 F8 45 01 07 01 01 02',
- 'name': 'verisignCPSv1nsi',
- 'oid': (2, 16, 840, 1, 113733, 1, 7, 1, 1, 2)},
- 'verisignCZAG': {'comment': 'Verisign extension',
- 'description': 'verisignCZAG (2 16 840 1 113733 1 6 3)',
- 'hexoid': '06 0A 60 86 48 01 86 F8 45 01 06 03',
- 'name': 'verisignCZAG',
- 'oid': (2, 16, 840, 1, 113733, 1, 6, 3)},
- 'verisignInBox': {'comment': 'Verisign extension',
- 'description': 'verisignInBox (2 16 840 1 113733 1 6 6)',
- 'hexoid': '06 0A 60 86 48 01 86 F8 45 01 06 06',
- 'name': 'verisignInBox',
- 'oid': (2, 16, 840, 1, 113733, 1, 6, 6)},
- 'wirtschaftsPruefer': {'comment': 'Teletrust ProfessionInfo',
- 'description': 'wirtschaftsPruefer (1 3 36 8 3 11 1 15)',
- 'hexoid': '06 07 2B 24 08 03 0B 01 0F',
- 'name': 'wirtschaftsPruefer',
- 'oid': (1, 3, 36, 8, 3, 11, 1, 15)},
- 'wirtschaftsPrueferin': {'comment': 'Teletrust ProfessionInfo',
- 'description': 'wirtschaftsPrueferin (1 3 36 8 3 11 1 14)',
- 'hexoid': '06 07 2B 24 08 03 0B 01 0E',
- 'name': 'wirtschaftsPrueferin',
- 'oid': (1, 3, 36, 8, 3, 11, 1, 14)},
- 'wlanSSID': {'comment': 'PKIX key purpose',
- 'description': 'wlanSSID (1 3 6 1 5 5 7 3 14)',
- 'hexoid': '06 08 2B 06 01 05 05 07 03 0E',
- 'name': 'wlanSSID',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 14)},
- 'wtlsTemplate': {'comment': 'PKIX CRMF registration control',
- 'description': 'wtlsTemplate (1 3 6 1 5 5 7 5 1 8)',
- 'hexoid': '06 09 2B 06 01 05 05 07 05 01 08',
- 'name': 'wtlsTemplate',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 1, 8)},
- 'x121Address': {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'x121Address (2 5 4 24)',
- 'hexoid': '06 03 55 04 18',
- 'name': 'x121Address',
- 'oid': (2, 5, 4, 24)},
- 'x509Certificate': {'comment': 'PKCS #9 via PKCS #12',
- 'description': 'x509Certificate (for PKCS #12) (1 2 840 113549 1 9 22 1)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 16 01',
- 'name': 'x509Certificate',
- 'oid': (1, 2, 840, 113549, 1, 9, 22, 1)},
- 'x509CertificateList': {'comment': 'Telesec attribute',
- 'description': 'x509CertificateList (0 2 262 1 10 7 23)',
- 'hexoid': '06 07 02 82 06 01 0A 07 17',
- 'name': 'x509CertificateList',
- 'oid': (0, 2, 262, 1, 10, 7, 23)},
- 'x509Crl': {'comment': 'PKCS #9 via PKCS #12',
- 'description': 'x509Crl (for PKCS #12) (1 2 840 113549 1 9 23 1)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 17 01',
- 'name': 'x509Crl',
- 'oid': (1, 2, 840, 113549, 1, 9, 23, 1)},
- 'x9f1-cert-mgmt': {'comment': 'ANSI X9.57 module',
- 'description': 'x9f1-cert-mgmt (1 2 840 10040 1 1)',
- 'hexoid': '06 07 2A 86 48 CE 38 01 01',
- 'name': 'x9f1-cert-mgmt',
- 'oid': (1, 2, 840, 10040, 1, 1)},
- 'xYZZY': {'comment': 'cryptlib certificate policy',
- 'description': 'xYZZY policyIdentifier (1 3 6 1 4 1 3029 88 89 90 90 89)',
- 'hexoid': '06 0C 2B 06 01 04 01 97 55 58 59 5A 5A 59',
- 'name': 'xYZZY',
- 'oid': (1, 3, 6, 1, 4, 1, 3029, 88, 89, 90, 90, 89)},
- 'yesnoTrustAttr': {'comment': 'Microsoft attribute',
- 'description': 'yesnoTrustAttr (1 3 6 1 4 1 311 10 4 1)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 0A 04 01',
- 'name': 'yesnoTrustAttr',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 10, 4, 1)},
- 'zKeyData': {'comment': 'Telesec attribute',
- 'description': 'zKeyData (0 2 262 1 10 7 39)',
- 'hexoid': '06 07 02 82 06 01 0A 07 27',
- 'name': 'zKeyData',
- 'oid': (0, 2, 262, 1, 10, 7, 39)},
- 'zert93': {'comment': 'Telesec attribute',
- 'description': 'zert93 (0 2 262 1 10 7 14)',
- 'hexoid': '06 07 02 82 06 01 0A 07 0E',
- 'name': 'zert93',
- 'oid': (0, 2, 262, 1, 10, 7, 14)},
- 'zlib': {'comment': 'S/MIME Algorithms',
- 'description': 'zlib (1 2 840 113549 1 9 16 3 8)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 03 08',
- 'name': 'zlib',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 3, 8)}}
diff --git a/rpkid/rpki/POW/_oids.py b/rpkid/rpki/POW/_oids.py
deleted file mode 100644
index e170236b..00000000
--- a/rpkid/rpki/POW/_oids.py
+++ /dev/null
@@ -1,8636 +0,0 @@
-data = {(0, 2, 262, 1, 10): {'comment': 'Deutsche Telekom',
- 'description': 'Telesec (0 2 262 1 10)',
- 'hexoid': '06 05 02 82 06 01 0A',
- 'name': 'Telesec',
- 'oid': (0, 2, 262, 1, 10)},
- (0, 2, 262, 1, 10, 0): {'comment': 'Telesec',
- 'description': 'extension (0 2 262 1 10 0)',
- 'hexoid': '06 06 02 82 06 01 0A 00',
- 'name': 'extension',
- 'oid': (0, 2, 262, 1, 10, 0)},
- (0, 2, 262, 1, 10, 1): {'comment': 'Telesec',
- 'description': 'mechanism (0 2 262 1 10 1)',
- 'hexoid': '06 06 02 82 06 01 0A 01',
- 'name': 'mechanism',
- 'oid': (0, 2, 262, 1, 10, 1)},
- (0, 2, 262, 1, 10, 1, 0): {'comment': 'Telesec mechanism',
- 'description': 'authentication (0 2 262 1 10 1 0)',
- 'hexoid': '06 07 02 82 06 01 0A 01 00',
- 'name': 'authentication',
- 'oid': (0, 2, 262, 1, 10, 1, 0)},
- (0, 2, 262, 1, 10, 1, 0, 1): {'comment': 'Telesec authentication',
- 'description': 'passwordAuthentication (0 2 262 1 10 1 0 1)',
- 'hexoid': '06 08 02 82 06 01 0A 01 00 01',
- 'name': 'passwordAuthentication',
- 'oid': (0, 2, 262, 1, 10, 1, 0, 1)},
- (0, 2, 262, 1, 10, 1, 0, 2): {'comment': 'Telesec authentication',
- 'description': 'protectedPasswordAuthentication (0 2 262 1 10 1 0 2)',
- 'hexoid': '06 08 02 82 06 01 0A 01 00 02',
- 'name': 'protectedPasswordAuthentication',
- 'oid': (0, 2, 262, 1, 10, 1, 0, 2)},
- (0, 2, 262, 1, 10, 1, 0, 3): {'comment': 'Telesec authentication',
- 'description': 'oneWayX509Authentication (0 2 262 1 10 1 0 3)',
- 'hexoid': '06 08 02 82 06 01 0A 01 00 03',
- 'name': 'oneWayX509Authentication',
- 'oid': (0, 2, 262, 1, 10, 1, 0, 3)},
- (0, 2, 262, 1, 10, 1, 0, 4): {'comment': 'Telesec authentication',
- 'description': 'twoWayX509Authentication (0 2 262 1 10 1 0 4)',
- 'hexoid': '06 08 02 82 06 01 0A 01 00 04',
- 'name': 'twoWayX509Authentication',
- 'oid': (0, 2, 262, 1, 10, 1, 0, 4)},
- (0, 2, 262, 1, 10, 1, 0, 5): {'comment': 'Telesec authentication',
- 'description': 'threeWayX509Authentication (0 2 262 1 10 1 0 5)',
- 'hexoid': '06 08 02 82 06 01 0A 01 00 05',
- 'name': 'threeWayX509Authentication',
- 'oid': (0, 2, 262, 1, 10, 1, 0, 5)},
- (0, 2, 262, 1, 10, 1, 0, 6): {'comment': 'Telesec authentication',
- 'description': 'oneWayISO9798Authentication (0 2 262 1 10 1 0 6)',
- 'hexoid': '06 08 02 82 06 01 0A 01 00 06',
- 'name': 'oneWayISO9798Authentication',
- 'oid': (0, 2, 262, 1, 10, 1, 0, 6)},
- (0, 2, 262, 1, 10, 1, 0, 7): {'comment': 'Telesec authentication',
- 'description': 'twoWayISO9798Authentication (0 2 262 1 10 1 0 7)',
- 'hexoid': '06 08 02 82 06 01 0A 01 00 07',
- 'name': 'twoWayISO9798Authentication',
- 'oid': (0, 2, 262, 1, 10, 1, 0, 7)},
- (0, 2, 262, 1, 10, 1, 0, 8): {'comment': 'Telesec authentication',
- 'description': 'telekomAuthentication (0 2 262 1 10 1 0 8)',
- 'hexoid': '06 08 02 82 06 01 0A 01 00 08',
- 'name': 'telekomAuthentication',
- 'oid': (0, 2, 262, 1, 10, 1, 0, 8)},
- (0, 2, 262, 1, 10, 1, 1): {'comment': 'Telesec mechanism',
- 'description': 'signature (0 2 262 1 10 1 1)',
- 'hexoid': '06 07 02 82 06 01 0A 01 01',
- 'name': 'signature',
- 'oid': (0, 2, 262, 1, 10, 1, 1)},
- (0, 2, 262, 1, 10, 1, 1, 1): {'comment': 'Telesec mechanism',
- 'description': 'md4WithRSAAndISO9697 (0 2 262 1 10 1 1 1)',
- 'hexoid': '06 08 02 82 06 01 0A 01 01 01',
- 'name': 'md4WithRSAAndISO9697',
- 'oid': (0, 2, 262, 1, 10, 1, 1, 1)},
- (0, 2, 262, 1, 10, 1, 1, 2): {'comment': 'Telesec mechanism',
- 'description': 'md4WithRSAAndTelesecSignatureStandard (0 2 262 1 10 1 1 2)',
- 'hexoid': '06 08 02 82 06 01 0A 01 01 02',
- 'name': 'md4WithRSAAndTelesecSignatureStandard',
- 'oid': (0, 2, 262, 1, 10, 1, 1, 2)},
- (0, 2, 262, 1, 10, 1, 1, 3): {'comment': 'Telesec mechanism',
- 'description': 'md5WithRSAAndISO9697 (0 2 262 1 10 1 1 3)',
- 'hexoid': '06 08 02 82 06 01 0A 01 01 03',
- 'name': 'md5WithRSAAndISO9697',
- 'oid': (0, 2, 262, 1, 10, 1, 1, 3)},
- (0, 2, 262, 1, 10, 1, 1, 4): {'comment': 'Telesec mechanism',
- 'description': 'md5WithRSAAndTelesecSignatureStandard (0 2 262 1 10 1 1 4)',
- 'hexoid': '06 08 02 82 06 01 0A 01 01 04',
- 'name': 'md5WithRSAAndTelesecSignatureStandard',
- 'oid': (0, 2, 262, 1, 10, 1, 1, 4)},
- (0, 2, 262, 1, 10, 1, 1, 5): {'comment': 'Telesec mechanism',
- 'description': 'ripemd160WithRSAAndTelekomSignatureStandard (0 2 262 1 10 1 1 5)',
- 'hexoid': '06 08 02 82 06 01 0A 01 01 05',
- 'name': 'ripemd160WithRSAAndTelekomSignatureStandard',
- 'oid': (0, 2, 262, 1, 10, 1, 1, 5)},
- (0, 2, 262, 1, 10, 1, 1, 9): {'comment': 'Telesec signature',
- 'description': 'hbciRsaSignature (0 2 262 1 10 1 1 9)',
- 'hexoid': '06 08 02 82 06 01 0A 01 01 09',
- 'name': 'hbciRsaSignature',
- 'oid': (0, 2, 262, 1, 10, 1, 1, 9)},
- (0, 2, 262, 1, 10, 1, 2): {'comment': 'Telesec mechanism',
- 'description': 'encryption (0 2 262 1 10 1 2)',
- 'hexoid': '06 07 02 82 06 01 0A 01 02',
- 'name': 'encryption',
- 'oid': (0, 2, 262, 1, 10, 1, 2)},
- (0, 2, 262, 1, 10, 1, 2, 0): {'comment': 'Telesec encryption',
- 'description': 'none (0 2 262 1 10 1 2 0)',
- 'hexoid': '06 08 02 82 06 01 0A 01 02 00',
- 'name': 'none',
- 'oid': (0, 2, 262, 1, 10, 1, 2, 0)},
- (0, 2, 262, 1, 10, 1, 2, 1): {'comment': 'Telesec encryption',
- 'description': 'rsaTelesec (0 2 262 1 10 1 2 1)',
- 'hexoid': '06 08 02 82 06 01 0A 01 02 01',
- 'name': 'rsaTelesec',
- 'oid': (0, 2, 262, 1, 10, 1, 2, 1)},
- (0, 2, 262, 1, 10, 1, 2, 2): {'comment': 'Telesec encryption',
- 'description': 'des (0 2 262 1 10 1 2 2)',
- 'hexoid': '06 08 02 82 06 01 0A 01 02 02',
- 'name': 'des',
- 'oid': (0, 2, 262, 1, 10, 1, 2, 2)},
- (0, 2, 262, 1, 10, 1, 2, 2, 1): {'comment': 'Telesec encryption',
- 'description': 'desECB (0 2 262 1 10 1 2 2 1)',
- 'hexoid': '06 09 02 82 06 01 0A 01 02 02 01',
- 'name': 'desECB',
- 'oid': (0, 2, 262, 1, 10, 1, 2, 2, 1)},
- (0, 2, 262, 1, 10, 1, 2, 2, 2): {'comment': 'Telesec encryption',
- 'description': 'desCBC (0 2 262 1 10 1 2 2 2)',
- 'hexoid': '06 09 02 82 06 01 0A 01 02 02 02',
- 'name': 'desCBC',
- 'oid': (0, 2, 262, 1, 10, 1, 2, 2, 2)},
- (0, 2, 262, 1, 10, 1, 2, 2, 3): {'comment': 'Telesec encryption',
- 'description': 'desOFB (0 2 262 1 10 1 2 2 3)',
- 'hexoid': '06 09 02 82 06 01 0A 01 02 02 03',
- 'name': 'desOFB',
- 'oid': (0, 2, 262, 1, 10, 1, 2, 2, 3)},
- (0, 2, 262, 1, 10, 1, 2, 2, 4): {'comment': 'Telesec encryption',
- 'description': 'desCFB8 (0 2 262 1 10 1 2 2 4)',
- 'hexoid': '06 09 02 82 06 01 0A 01 02 02 04',
- 'name': 'desCFB8',
- 'oid': (0, 2, 262, 1, 10, 1, 2, 2, 4)},
- (0, 2, 262, 1, 10, 1, 2, 2, 5): {'comment': 'Telesec encryption',
- 'description': 'desCFB64 (0 2 262 1 10 1 2 2 5)',
- 'hexoid': '06 09 02 82 06 01 0A 01 02 02 05',
- 'name': 'desCFB64',
- 'oid': (0, 2, 262, 1, 10, 1, 2, 2, 5)},
- (0, 2, 262, 1, 10, 1, 2, 3): {'comment': 'Telesec encryption',
- 'description': 'des3 (0 2 262 1 10 1 2 3)',
- 'hexoid': '06 08 02 82 06 01 0A 01 02 03',
- 'name': 'des3',
- 'oid': (0, 2, 262, 1, 10, 1, 2, 3)},
- (0, 2, 262, 1, 10, 1, 2, 3, 1): {'comment': 'Telesec encryption',
- 'description': 'des3ECB (0 2 262 1 10 1 2 3 1)',
- 'hexoid': '06 09 02 82 06 01 0A 01 02 03 01',
- 'name': 'des3ECB',
- 'oid': (0, 2, 262, 1, 10, 1, 2, 3, 1)},
- (0, 2, 262, 1, 10, 1, 2, 3, 2): {'comment': 'Telesec encryption',
- 'description': 'des3CBC (0 2 262 1 10 1 2 3 2)',
- 'hexoid': '06 09 02 82 06 01 0A 01 02 03 02',
- 'name': 'des3CBC',
- 'oid': (0, 2, 262, 1, 10, 1, 2, 3, 2)},
- (0, 2, 262, 1, 10, 1, 2, 3, 3): {'comment': 'Telesec encryption',
- 'description': 'des3OFB (0 2 262 1 10 1 2 3 3)',
- 'hexoid': '06 09 02 82 06 01 0A 01 02 03 03',
- 'name': 'des3OFB',
- 'oid': (0, 2, 262, 1, 10, 1, 2, 3, 3)},
- (0, 2, 262, 1, 10, 1, 2, 3, 4): {'comment': 'Telesec encryption',
- 'description': 'des3CFB8 (0 2 262 1 10 1 2 3 4)',
- 'hexoid': '06 09 02 82 06 01 0A 01 02 03 04',
- 'name': 'des3CFB8',
- 'oid': (0, 2, 262, 1, 10, 1, 2, 3, 4)},
- (0, 2, 262, 1, 10, 1, 2, 3, 5): {'comment': 'Telesec encryption',
- 'description': 'des3CFB64 (0 2 262 1 10 1 2 3 5)',
- 'hexoid': '06 09 02 82 06 01 0A 01 02 03 05',
- 'name': 'des3CFB64',
- 'oid': (0, 2, 262, 1, 10, 1, 2, 3, 5)},
- (0, 2, 262, 1, 10, 1, 2, 4): {'comment': 'Telesec encryption',
- 'description': 'magenta (0 2 262 1 10 1 2 4)',
- 'hexoid': '06 08 02 82 06 01 0A 01 02 04',
- 'name': 'magenta',
- 'oid': (0, 2, 262, 1, 10, 1, 2, 4)},
- (0, 2, 262, 1, 10, 1, 2, 5): {'comment': 'Telesec encryption',
- 'description': 'idea (0 2 262 1 10 1 2 5)',
- 'hexoid': '06 08 02 82 06 01 0A 01 02 05',
- 'name': 'idea',
- 'oid': (0, 2, 262, 1, 10, 1, 2, 5)},
- (0, 2, 262, 1, 10, 1, 2, 5, 1): {'comment': 'Telesec encryption',
- 'description': 'ideaECB (0 2 262 1 10 1 2 5 1)',
- 'hexoid': '06 09 02 82 06 01 0A 01 02 05 01',
- 'name': 'ideaECB',
- 'oid': (0, 2, 262, 1, 10, 1, 2, 5, 1)},
- (0, 2, 262, 1, 10, 1, 2, 5, 2): {'comment': 'Telesec encryption',
- 'description': 'ideaCBC (0 2 262 1 10 1 2 5 2)',
- 'hexoid': '06 09 02 82 06 01 0A 01 02 05 02',
- 'name': 'ideaCBC',
- 'oid': (0, 2, 262, 1, 10, 1, 2, 5, 2)},
- (0, 2, 262, 1, 10, 1, 2, 5, 3): {'comment': 'Telesec encryption',
- 'description': 'ideaOFB (0 2 262 1 10 1 2 5 3)',
- 'hexoid': '06 09 02 82 06 01 0A 01 02 05 03',
- 'name': 'ideaOFB',
- 'oid': (0, 2, 262, 1, 10, 1, 2, 5, 3)},
- (0, 2, 262, 1, 10, 1, 2, 5, 4): {'comment': 'Telesec encryption',
- 'description': 'ideaCFB8 (0 2 262 1 10 1 2 5 4)',
- 'hexoid': '06 09 02 82 06 01 0A 01 02 05 04',
- 'name': 'ideaCFB8',
- 'oid': (0, 2, 262, 1, 10, 1, 2, 5, 4)},
- (0, 2, 262, 1, 10, 1, 2, 5, 5): {'comment': 'Telesec encryption',
- 'description': 'ideaCFB64 (0 2 262 1 10 1 2 5 5)',
- 'hexoid': '06 09 02 82 06 01 0A 01 02 05 05',
- 'name': 'ideaCFB64',
- 'oid': (0, 2, 262, 1, 10, 1, 2, 5, 5)},
- (0, 2, 262, 1, 10, 1, 3): {'comment': 'Telesec mechanism',
- 'description': 'oneWayFunction (0 2 262 1 10 1 3)',
- 'hexoid': '06 07 02 82 06 01 0A 01 03',
- 'name': 'oneWayFunction',
- 'oid': (0, 2, 262, 1, 10, 1, 3)},
- (0, 2, 262, 1, 10, 1, 3, 1): {'comment': 'Telesec one-way function',
- 'description': 'md4 (0 2 262 1 10 1 3 1)',
- 'hexoid': '06 08 02 82 06 01 0A 01 03 01',
- 'name': 'md4',
- 'oid': (0, 2, 262, 1, 10, 1, 3, 1)},
- (0, 2, 262, 1, 10, 1, 3, 2): {'comment': 'Telesec one-way function',
- 'description': 'md5 (0 2 262 1 10 1 3 2)',
- 'hexoid': '06 08 02 82 06 01 0A 01 03 02',
- 'name': 'md5',
- 'oid': (0, 2, 262, 1, 10, 1, 3, 2)},
- (0, 2, 262, 1, 10, 1, 3, 3): {'comment': 'Telesec one-way function',
- 'description': 'sqModNX509 (0 2 262 1 10 1 3 3)',
- 'hexoid': '06 08 02 82 06 01 0A 01 03 03',
- 'name': 'sqModNX509',
- 'oid': (0, 2, 262, 1, 10, 1, 3, 3)},
- (0, 2, 262, 1, 10, 1, 3, 4): {'comment': 'Telesec one-way function',
- 'description': 'sqModNISO (0 2 262 1 10 1 3 4)',
- 'hexoid': '06 08 02 82 06 01 0A 01 03 04',
- 'name': 'sqModNISO',
- 'oid': (0, 2, 262, 1, 10, 1, 3, 4)},
- (0, 2, 262, 1, 10, 1, 3, 5): {'comment': 'Telesec one-way function',
- 'description': 'ripemd128 (0 2 262 1 10 1 3 5)',
- 'hexoid': '06 08 02 82 06 01 0A 01 03 05',
- 'name': 'ripemd128',
- 'oid': (0, 2, 262, 1, 10, 1, 3, 5)},
- (0, 2, 262, 1, 10, 1, 3, 6): {'comment': 'Telesec one-way function',
- 'description': 'hashUsingBlockCipher (0 2 262 1 10 1 3 6)',
- 'hexoid': '06 08 02 82 06 01 0A 01 03 06',
- 'name': 'hashUsingBlockCipher',
- 'oid': (0, 2, 262, 1, 10, 1, 3, 6)},
- (0, 2, 262, 1, 10, 1, 3, 7): {'comment': 'Telesec one-way function',
- 'description': 'mac (0 2 262 1 10 1 3 7)',
- 'hexoid': '06 08 02 82 06 01 0A 01 03 07',
- 'name': 'mac',
- 'oid': (0, 2, 262, 1, 10, 1, 3, 7)},
- (0, 2, 262, 1, 10, 1, 3, 8): {'comment': 'Telesec one-way function',
- 'description': 'ripemd160 (0 2 262 1 10 1 3 8)',
- 'hexoid': '06 08 02 82 06 01 0A 01 03 08',
- 'name': 'ripemd160',
- 'oid': (0, 2, 262, 1, 10, 1, 3, 8)},
- (0, 2, 262, 1, 10, 1, 4): {'comment': 'Telesec mechanism',
- 'description': 'fecFunction (0 2 262 1 10 1 4)',
- 'hexoid': '06 07 02 82 06 01 0A 01 04',
- 'name': 'fecFunction',
- 'oid': (0, 2, 262, 1, 10, 1, 4)},
- (0, 2, 262, 1, 10, 1, 4, 1): {'comment': 'Telesec mechanism',
- 'description': 'reedSolomon (0 2 262 1 10 1 4 1)',
- 'hexoid': '06 08 02 82 06 01 0A 01 04 01',
- 'name': 'reedSolomon',
- 'oid': (0, 2, 262, 1, 10, 1, 4, 1)},
- (0, 2, 262, 1, 10, 2): {'comment': 'Telesec',
- 'description': 'module (0 2 262 1 10 2)',
- 'hexoid': '06 06 02 82 06 01 0A 02',
- 'name': 'module',
- 'oid': (0, 2, 262, 1, 10, 2)},
- (0, 2, 262, 1, 10, 2, 0): {'comment': 'Telesec module',
- 'description': 'algorithms (0 2 262 1 10 2 0)',
- 'hexoid': '06 07 02 82 06 01 0A 02 00',
- 'name': 'algorithms',
- 'oid': (0, 2, 262, 1, 10, 2, 0)},
- (0, 2, 262, 1, 10, 2, 1): {'comment': 'Telesec module',
- 'description': 'attributeTypes (0 2 262 1 10 2 1)',
- 'hexoid': '06 07 02 82 06 01 0A 02 01',
- 'name': 'attributeTypes',
- 'oid': (0, 2, 262, 1, 10, 2, 1)},
- (0, 2, 262, 1, 10, 2, 2): {'comment': 'Telesec module',
- 'description': 'certificateTypes (0 2 262 1 10 2 2)',
- 'hexoid': '06 07 02 82 06 01 0A 02 02',
- 'name': 'certificateTypes',
- 'oid': (0, 2, 262, 1, 10, 2, 2)},
- (0, 2, 262, 1, 10, 2, 3): {'comment': 'Telesec module',
- 'description': 'messageTypes (0 2 262 1 10 2 3)',
- 'hexoid': '06 07 02 82 06 01 0A 02 03',
- 'name': 'messageTypes',
- 'oid': (0, 2, 262, 1, 10, 2, 3)},
- (0, 2, 262, 1, 10, 2, 4): {'comment': 'Telesec module',
- 'description': 'plProtocol (0 2 262 1 10 2 4)',
- 'hexoid': '06 07 02 82 06 01 0A 02 04',
- 'name': 'plProtocol',
- 'oid': (0, 2, 262, 1, 10, 2, 4)},
- (0, 2, 262, 1, 10, 2, 5): {'comment': 'Telesec module',
- 'description': 'smeAndComponentsOfSme (0 2 262 1 10 2 5)',
- 'hexoid': '06 07 02 82 06 01 0A 02 05',
- 'name': 'smeAndComponentsOfSme',
- 'oid': (0, 2, 262, 1, 10, 2, 5)},
- (0, 2, 262, 1, 10, 2, 6): {'comment': 'Telesec module',
- 'description': 'fec (0 2 262 1 10 2 6)',
- 'hexoid': '06 07 02 82 06 01 0A 02 06',
- 'name': 'fec',
- 'oid': (0, 2, 262, 1, 10, 2, 6)},
- (0, 2, 262, 1, 10, 2, 7): {'comment': 'Telesec module',
- 'description': 'usefulDefinitions (0 2 262 1 10 2 7)',
- 'hexoid': '06 07 02 82 06 01 0A 02 07',
- 'name': 'usefulDefinitions',
- 'oid': (0, 2, 262, 1, 10, 2, 7)},
- (0, 2, 262, 1, 10, 2, 8): {'comment': 'Telesec module',
- 'description': 'stefiles (0 2 262 1 10 2 8)',
- 'hexoid': '06 07 02 82 06 01 0A 02 08',
- 'name': 'stefiles',
- 'oid': (0, 2, 262, 1, 10, 2, 8)},
- (0, 2, 262, 1, 10, 2, 9): {'comment': 'Telesec module',
- 'description': 'sadmib (0 2 262 1 10 2 9)',
- 'hexoid': '06 07 02 82 06 01 0A 02 09',
- 'name': 'sadmib',
- 'oid': (0, 2, 262, 1, 10, 2, 9)},
- (0, 2, 262, 1, 10, 2, 10): {'comment': 'Telesec module',
- 'description': 'electronicOrder (0 2 262 1 10 2 10)',
- 'hexoid': '06 07 02 82 06 01 0A 02 0A',
- 'name': 'electronicOrder',
- 'oid': (0, 2, 262, 1, 10, 2, 10)},
- (0, 2, 262, 1, 10, 2, 11): {'comment': 'Telesec module',
- 'description': 'telesecTtpAsymmetricApplication (0 2 262 1 10 2 11)',
- 'hexoid': '06 07 02 82 06 01 0A 02 0B',
- 'name': 'telesecTtpAsymmetricApplication',
- 'oid': (0, 2, 262, 1, 10, 2, 11)},
- (0, 2, 262, 1, 10, 2, 12): {'comment': 'Telesec module',
- 'description': 'telesecTtpBasisApplication (0 2 262 1 10 2 12)',
- 'hexoid': '06 07 02 82 06 01 0A 02 0C',
- 'name': 'telesecTtpBasisApplication',
- 'oid': (0, 2, 262, 1, 10, 2, 12)},
- (0, 2, 262, 1, 10, 2, 13): {'comment': 'Telesec module',
- 'description': 'telesecTtpMessages (0 2 262 1 10 2 13)',
- 'hexoid': '06 07 02 82 06 01 0A 02 0D',
- 'name': 'telesecTtpMessages',
- 'oid': (0, 2, 262, 1, 10, 2, 13)},
- (0, 2, 262, 1, 10, 2, 14): {'comment': 'Telesec module',
- 'description': 'telesecTtpTimeStampApplication (0 2 262 1 10 2 14)',
- 'hexoid': '06 07 02 82 06 01 0A 02 0E',
- 'name': 'telesecTtpTimeStampApplication',
- 'oid': (0, 2, 262, 1, 10, 2, 14)},
- (0, 2, 262, 1, 10, 3): {'comment': 'Telesec',
- 'description': 'objectClass (0 2 262 1 10 3)',
- 'hexoid': '06 06 02 82 06 01 0A 03',
- 'name': 'objectClass',
- 'oid': (0, 2, 262, 1, 10, 3)},
- (0, 2, 262, 1, 10, 3, 0): {'comment': 'Telesec object class',
- 'description': 'telesecOtherName (0 2 262 1 10 3 0)',
- 'hexoid': '06 07 02 82 06 01 0A 03 00',
- 'name': 'telesecOtherName',
- 'oid': (0, 2, 262, 1, 10, 3, 0)},
- (0, 2, 262, 1, 10, 3, 1): {'comment': 'Telesec object class',
- 'description': 'directory (0 2 262 1 10 3 1)',
- 'hexoid': '06 07 02 82 06 01 0A 03 01',
- 'name': 'directory',
- 'oid': (0, 2, 262, 1, 10, 3, 1)},
- (0, 2, 262, 1, 10, 3, 2): {'comment': 'Telesec object class',
- 'description': 'directoryType (0 2 262 1 10 3 2)',
- 'hexoid': '06 07 02 82 06 01 0A 03 02',
- 'name': 'directoryType',
- 'oid': (0, 2, 262, 1, 10, 3, 2)},
- (0, 2, 262, 1, 10, 3, 3): {'comment': 'Telesec object class',
- 'description': 'directoryGroup (0 2 262 1 10 3 3)',
- 'hexoid': '06 07 02 82 06 01 0A 03 03',
- 'name': 'directoryGroup',
- 'oid': (0, 2, 262, 1, 10, 3, 3)},
- (0, 2, 262, 1, 10, 3, 4): {'comment': 'Telesec object class',
- 'description': 'directoryUser (0 2 262 1 10 3 4)',
- 'hexoid': '06 07 02 82 06 01 0A 03 04',
- 'name': 'directoryUser',
- 'oid': (0, 2, 262, 1, 10, 3, 4)},
- (0, 2, 262, 1, 10, 3, 5): {'comment': 'Telesec object class',
- 'description': 'symmetricKeyEntry (0 2 262 1 10 3 5)',
- 'hexoid': '06 07 02 82 06 01 0A 03 05',
- 'name': 'symmetricKeyEntry',
- 'oid': (0, 2, 262, 1, 10, 3, 5)},
- (0, 2, 262, 1, 10, 4): {'comment': 'Telesec',
- 'description': 'package (0 2 262 1 10 4)',
- 'hexoid': '06 06 02 82 06 01 0A 04',
- 'name': 'package',
- 'oid': (0, 2, 262, 1, 10, 4)},
- (0, 2, 262, 1, 10, 5): {'comment': 'Telesec',
- 'description': 'parameter (0 2 262 1 10 5)',
- 'hexoid': '06 06 02 82 06 01 0A 05',
- 'name': 'parameter',
- 'oid': (0, 2, 262, 1, 10, 5)},
- (0, 2, 262, 1, 10, 6): {'comment': 'Telesec',
- 'description': 'nameBinding (0 2 262 1 10 6)',
- 'hexoid': '06 06 02 82 06 01 0A 06',
- 'name': 'nameBinding',
- 'oid': (0, 2, 262, 1, 10, 6)},
- (0, 2, 262, 1, 10, 7): {'comment': 'Telesec',
- 'description': 'attribute (0 2 262 1 10 7)',
- 'hexoid': '06 06 02 82 06 01 0A 07',
- 'name': 'attribute',
- 'oid': (0, 2, 262, 1, 10, 7)},
- (0, 2, 262, 1, 10, 7, 0): {'comment': 'Telesec attribute',
- 'description': 'applicationGroupIdentifier (0 2 262 1 10 7 0)',
- 'hexoid': '06 07 02 82 06 01 0A 07 00',
- 'name': 'applicationGroupIdentifier',
- 'oid': (0, 2, 262, 1, 10, 7, 0)},
- (0, 2, 262, 1, 10, 7, 1): {'comment': 'Telesec attribute',
- 'description': 'certificateType (0 2 262 1 10 7 1)',
- 'hexoid': '06 07 02 82 06 01 0A 07 01',
- 'name': 'certificateType',
- 'oid': (0, 2, 262, 1, 10, 7, 1)},
- (0, 2, 262, 1, 10, 7, 2): {'comment': 'Telesec attribute',
- 'description': 'telesecCertificate (0 2 262 1 10 7 2)',
- 'hexoid': '06 07 02 82 06 01 0A 07 02',
- 'name': 'telesecCertificate',
- 'oid': (0, 2, 262, 1, 10, 7, 2)},
- (0, 2, 262, 1, 10, 7, 3): {'comment': 'Telesec attribute',
- 'description': 'certificateNumber (0 2 262 1 10 7 3)',
- 'hexoid': '06 07 02 82 06 01 0A 07 03',
- 'name': 'certificateNumber',
- 'oid': (0, 2, 262, 1, 10, 7, 3)},
- (0, 2, 262, 1, 10, 7, 4): {'comment': 'Telesec attribute',
- 'description': 'certificateRevocationList (0 2 262 1 10 7 4)',
- 'hexoid': '06 07 02 82 06 01 0A 07 04',
- 'name': 'certificateRevocationList',
- 'oid': (0, 2, 262, 1, 10, 7, 4)},
- (0, 2, 262, 1, 10, 7, 5): {'comment': 'Telesec attribute',
- 'description': 'creationDate (0 2 262 1 10 7 5)',
- 'hexoid': '06 07 02 82 06 01 0A 07 05',
- 'name': 'creationDate',
- 'oid': (0, 2, 262, 1, 10, 7, 5)},
- (0, 2, 262, 1, 10, 7, 6): {'comment': 'Telesec attribute',
- 'description': 'issuer (0 2 262 1 10 7 6)',
- 'hexoid': '06 07 02 82 06 01 0A 07 06',
- 'name': 'issuer',
- 'oid': (0, 2, 262, 1, 10, 7, 6)},
- (0, 2, 262, 1, 10, 7, 7): {'comment': 'Telesec attribute',
- 'description': 'namingAuthority (0 2 262 1 10 7 7)',
- 'hexoid': '06 07 02 82 06 01 0A 07 07',
- 'name': 'namingAuthority',
- 'oid': (0, 2, 262, 1, 10, 7, 7)},
- (0, 2, 262, 1, 10, 7, 8): {'comment': 'Telesec attribute',
- 'description': 'publicKeyDirectory (0 2 262 1 10 7 8)',
- 'hexoid': '06 07 02 82 06 01 0A 07 08',
- 'name': 'publicKeyDirectory',
- 'oid': (0, 2, 262, 1, 10, 7, 8)},
- (0, 2, 262, 1, 10, 7, 9): {'comment': 'Telesec attribute',
- 'description': 'securityDomain (0 2 262 1 10 7 9)',
- 'hexoid': '06 07 02 82 06 01 0A 07 09',
- 'name': 'securityDomain',
- 'oid': (0, 2, 262, 1, 10, 7, 9)},
- (0, 2, 262, 1, 10, 7, 10): {'comment': 'Telesec attribute',
- 'description': 'subject (0 2 262 1 10 7 10)',
- 'hexoid': '06 07 02 82 06 01 0A 07 0A',
- 'name': 'subject',
- 'oid': (0, 2, 262, 1, 10, 7, 10)},
- (0, 2, 262, 1, 10, 7, 11): {'comment': 'Telesec attribute',
- 'description': 'timeOfRevocation (0 2 262 1 10 7 11)',
- 'hexoid': '06 07 02 82 06 01 0A 07 0B',
- 'name': 'timeOfRevocation',
- 'oid': (0, 2, 262, 1, 10, 7, 11)},
- (0, 2, 262, 1, 10, 7, 12): {'comment': 'Telesec attribute',
- 'description': 'userGroupReference (0 2 262 1 10 7 12)',
- 'hexoid': '06 07 02 82 06 01 0A 07 0C',
- 'name': 'userGroupReference',
- 'oid': (0, 2, 262, 1, 10, 7, 12)},
- (0, 2, 262, 1, 10, 7, 13): {'comment': 'Telesec attribute',
- 'description': 'validity (0 2 262 1 10 7 13)',
- 'hexoid': '06 07 02 82 06 01 0A 07 0D',
- 'name': 'validity',
- 'oid': (0, 2, 262, 1, 10, 7, 13)},
- (0, 2, 262, 1, 10, 7, 14): {'comment': 'Telesec attribute',
- 'description': 'zert93 (0 2 262 1 10 7 14)',
- 'hexoid': '06 07 02 82 06 01 0A 07 0E',
- 'name': 'zert93',
- 'oid': (0, 2, 262, 1, 10, 7, 14)},
- (0, 2, 262, 1, 10, 7, 15): {'comment': 'Telesec attribute',
- 'description': 'securityMessEnv (0 2 262 1 10 7 15)',
- 'hexoid': '06 07 02 82 06 01 0A 07 0F',
- 'name': 'securityMessEnv',
- 'oid': (0, 2, 262, 1, 10, 7, 15)},
- (0, 2, 262, 1, 10, 7, 16): {'comment': 'Telesec attribute',
- 'description': 'anonymizedPublicKeyDirectory (0 2 262 1 10 7 16)',
- 'hexoid': '06 07 02 82 06 01 0A 07 10',
- 'name': 'anonymizedPublicKeyDirectory',
- 'oid': (0, 2, 262, 1, 10, 7, 16)},
- (0, 2, 262, 1, 10, 7, 17): {'comment': 'Telesec attribute',
- 'description': 'telesecGivenName (0 2 262 1 10 7 17)',
- 'hexoid': '06 07 02 82 06 01 0A 07 11',
- 'name': 'telesecGivenName',
- 'oid': (0, 2, 262, 1, 10, 7, 17)},
- (0, 2, 262, 1, 10, 7, 18): {'comment': 'Telesec attribute',
- 'description': 'nameAdditions (0 2 262 1 10 7 18)',
- 'hexoid': '06 07 02 82 06 01 0A 07 12',
- 'name': 'nameAdditions',
- 'oid': (0, 2, 262, 1, 10, 7, 18)},
- (0, 2, 262, 1, 10, 7, 19): {'comment': 'Telesec attribute',
- 'description': 'telesecPostalCode (0 2 262 1 10 7 19)',
- 'hexoid': '06 07 02 82 06 01 0A 07 13',
- 'name': 'telesecPostalCode',
- 'oid': (0, 2, 262, 1, 10, 7, 19)},
- (0, 2, 262, 1, 10, 7, 20): {'comment': 'Telesec attribute',
- 'description': 'nameDistinguisher (0 2 262 1 10 7 20)',
- 'hexoid': '06 07 02 82 06 01 0A 07 14',
- 'name': 'nameDistinguisher',
- 'oid': (0, 2, 262, 1, 10, 7, 20)},
- (0, 2, 262, 1, 10, 7, 21): {'comment': 'Telesec attribute',
- 'description': 'telesecCertificateList (0 2 262 1 10 7 21)',
- 'hexoid': '06 07 02 82 06 01 0A 07 15',
- 'name': 'telesecCertificateList',
- 'oid': (0, 2, 262, 1, 10, 7, 21)},
- (0, 2, 262, 1, 10, 7, 22): {'comment': 'Telesec attribute',
- 'description': 'teletrustCertificateList (0 2 262 1 10 7 22)',
- 'hexoid': '06 07 02 82 06 01 0A 07 16',
- 'name': 'teletrustCertificateList',
- 'oid': (0, 2, 262, 1, 10, 7, 22)},
- (0, 2, 262, 1, 10, 7, 23): {'comment': 'Telesec attribute',
- 'description': 'x509CertificateList (0 2 262 1 10 7 23)',
- 'hexoid': '06 07 02 82 06 01 0A 07 17',
- 'name': 'x509CertificateList',
- 'oid': (0, 2, 262, 1, 10, 7, 23)},
- (0, 2, 262, 1, 10, 7, 24): {'comment': 'Telesec attribute',
- 'description': 'timeOfIssue (0 2 262 1 10 7 24)',
- 'hexoid': '06 07 02 82 06 01 0A 07 18',
- 'name': 'timeOfIssue',
- 'oid': (0, 2, 262, 1, 10, 7, 24)},
- (0, 2, 262, 1, 10, 7, 25): {'comment': 'Telesec attribute',
- 'description': 'physicalCardNumber (0 2 262 1 10 7 25)',
- 'hexoid': '06 07 02 82 06 01 0A 07 19',
- 'name': 'physicalCardNumber',
- 'oid': (0, 2, 262, 1, 10, 7, 25)},
- (0, 2, 262, 1, 10, 7, 26): {'comment': 'Telesec attribute',
- 'description': 'fileType (0 2 262 1 10 7 26)',
- 'hexoid': '06 07 02 82 06 01 0A 07 1A',
- 'name': 'fileType',
- 'oid': (0, 2, 262, 1, 10, 7, 26)},
- (0, 2, 262, 1, 10, 7, 27): {'comment': 'Telesec attribute',
- 'description': 'ctlFileIsArchive (0 2 262 1 10 7 27)',
- 'hexoid': '06 07 02 82 06 01 0A 07 1B',
- 'name': 'ctlFileIsArchive',
- 'oid': (0, 2, 262, 1, 10, 7, 27)},
- (0, 2, 262, 1, 10, 7, 28): {'comment': 'Telesec attribute',
- 'description': 'emailAddress (0 2 262 1 10 7 28)',
- 'hexoid': '06 07 02 82 06 01 0A 07 1C',
- 'name': 'emailAddress',
- 'oid': (0, 2, 262, 1, 10, 7, 28)},
- (0, 2, 262, 1, 10, 7, 29): {'comment': 'Telesec attribute',
- 'description': 'certificateTemplateList (0 2 262 1 10 7 29)',
- 'hexoid': '06 07 02 82 06 01 0A 07 1D',
- 'name': 'certificateTemplateList',
- 'oid': (0, 2, 262, 1, 10, 7, 29)},
- (0, 2, 262, 1, 10, 7, 30): {'comment': 'Telesec attribute',
- 'description': 'directoryName (0 2 262 1 10 7 30)',
- 'hexoid': '06 07 02 82 06 01 0A 07 1E',
- 'name': 'directoryName',
- 'oid': (0, 2, 262, 1, 10, 7, 30)},
- (0, 2, 262, 1, 10, 7, 31): {'comment': 'Telesec attribute',
- 'description': 'directoryTypeName (0 2 262 1 10 7 31)',
- 'hexoid': '06 07 02 82 06 01 0A 07 1F',
- 'name': 'directoryTypeName',
- 'oid': (0, 2, 262, 1, 10, 7, 31)},
- (0, 2, 262, 1, 10, 7, 32): {'comment': 'Telesec attribute',
- 'description': 'directoryGroupName (0 2 262 1 10 7 32)',
- 'hexoid': '06 07 02 82 06 01 0A 07 20',
- 'name': 'directoryGroupName',
- 'oid': (0, 2, 262, 1, 10, 7, 32)},
- (0, 2, 262, 1, 10, 7, 33): {'comment': 'Telesec attribute',
- 'description': 'directoryUserName (0 2 262 1 10 7 33)',
- 'hexoid': '06 07 02 82 06 01 0A 07 21',
- 'name': 'directoryUserName',
- 'oid': (0, 2, 262, 1, 10, 7, 33)},
- (0, 2, 262, 1, 10, 7, 34): {'comment': 'Telesec attribute',
- 'description': 'revocationFlag (0 2 262 1 10 7 34)',
- 'hexoid': '06 07 02 82 06 01 0A 07 22',
- 'name': 'revocationFlag',
- 'oid': (0, 2, 262, 1, 10, 7, 34)},
- (0, 2, 262, 1, 10, 7, 35): {'comment': 'Telesec attribute',
- 'description': 'symmetricKeyEntryName (0 2 262 1 10 7 35)',
- 'hexoid': '06 07 02 82 06 01 0A 07 23',
- 'name': 'symmetricKeyEntryName',
- 'oid': (0, 2, 262, 1, 10, 7, 35)},
- (0, 2, 262, 1, 10, 7, 36): {'comment': 'Telesec attribute',
- 'description': 'glNumber (0 2 262 1 10 7 36)',
- 'hexoid': '06 07 02 82 06 01 0A 07 24',
- 'name': 'glNumber',
- 'oid': (0, 2, 262, 1, 10, 7, 36)},
- (0, 2, 262, 1, 10, 7, 37): {'comment': 'Telesec attribute',
- 'description': 'goNumber (0 2 262 1 10 7 37)',
- 'hexoid': '06 07 02 82 06 01 0A 07 25',
- 'name': 'goNumber',
- 'oid': (0, 2, 262, 1, 10, 7, 37)},
- (0, 2, 262, 1, 10, 7, 38): {'comment': 'Telesec attribute',
- 'description': 'gKeyData (0 2 262 1 10 7 38)',
- 'hexoid': '06 07 02 82 06 01 0A 07 26',
- 'name': 'gKeyData',
- 'oid': (0, 2, 262, 1, 10, 7, 38)},
- (0, 2, 262, 1, 10, 7, 39): {'comment': 'Telesec attribute',
- 'description': 'zKeyData (0 2 262 1 10 7 39)',
- 'hexoid': '06 07 02 82 06 01 0A 07 27',
- 'name': 'zKeyData',
- 'oid': (0, 2, 262, 1, 10, 7, 39)},
- (0, 2, 262, 1, 10, 7, 40): {'comment': 'Telesec attribute',
- 'description': 'ktKeyData (0 2 262 1 10 7 40)',
- 'hexoid': '06 07 02 82 06 01 0A 07 28',
- 'name': 'ktKeyData',
- 'oid': (0, 2, 262, 1, 10, 7, 40)},
- (0, 2, 262, 1, 10, 7, 41): {'comment': 'Telesec attribute',
- 'description': 'ktKeyNumber (0 2 262 1 10 7 41)',
- 'hexoid': '06 07 02 82 06 01 0A 07 29',
- 'name': 'ktKeyNumber',
- 'oid': (0, 2, 262, 1, 10, 7, 41)},
- (0, 2, 262, 1, 10, 7, 51): {'comment': 'Telesec attribute',
- 'description': 'timeOfRevocationGen (0 2 262 1 10 7 51)',
- 'hexoid': '06 07 02 82 06 01 0A 07 33',
- 'name': 'timeOfRevocationGen',
- 'oid': (0, 2, 262, 1, 10, 7, 51)},
- (0, 2, 262, 1, 10, 7, 52): {'comment': 'Telesec attribute',
- 'description': 'liabilityText (0 2 262 1 10 7 52)',
- 'hexoid': '06 07 02 82 06 01 0A 07 34',
- 'name': 'liabilityText',
- 'oid': (0, 2, 262, 1, 10, 7, 52)},
- (0, 2, 262, 1, 10, 8): {'comment': 'Telesec',
- 'description': 'attributeGroup (0 2 262 1 10 8)',
- 'hexoid': '06 06 02 82 06 01 0A 08',
- 'name': 'attributeGroup',
- 'oid': (0, 2, 262, 1, 10, 8)},
- (0, 2, 262, 1, 10, 9): {'comment': 'Telesec',
- 'description': 'action (0 2 262 1 10 9)',
- 'hexoid': '06 06 02 82 06 01 0A 09',
- 'name': 'action',
- 'oid': (0, 2, 262, 1, 10, 9)},
- (0, 2, 262, 1, 10, 10): {'comment': 'Telesec',
- 'description': 'notification (0 2 262 1 10 10)',
- 'hexoid': '06 06 02 82 06 01 0A 0A',
- 'name': 'notification',
- 'oid': (0, 2, 262, 1, 10, 10)},
- (0, 2, 262, 1, 10, 11): {'comment': 'Telesec',
- 'description': 'snmp-mibs (0 2 262 1 10 11)',
- 'hexoid': '06 06 02 82 06 01 0A 0B',
- 'name': 'snmp-mibs',
- 'oid': (0, 2, 262, 1, 10, 11)},
- (0, 2, 262, 1, 10, 11, 1): {'comment': 'Telesec SNMP MIBs',
- 'description': 'securityApplication (0 2 262 1 10 11 1)',
- 'hexoid': '06 07 02 82 06 01 0A 0B 01',
- 'name': 'securityApplication',
- 'oid': (0, 2, 262, 1, 10, 11, 1)},
- (0, 2, 262, 1, 10, 12): {'comment': 'Telesec',
- 'description': 'certAndCrlExtensionDefinitions (0 2 262 1 10 12)',
- 'hexoid': '06 06 02 82 06 01 0A 0C',
- 'name': 'certAndCrlExtensionDefinitions',
- 'oid': (0, 2, 262, 1, 10, 12)},
- (0, 2, 262, 1, 10, 12, 0): {'comment': 'Telesec cert/CRL extension',
- 'description': 'liabilityLimitationFlag (0 2 262 1 10 12 0)',
- 'hexoid': '06 07 02 82 06 01 0A 0C 00',
- 'name': 'liabilityLimitationFlag',
- 'oid': (0, 2, 262, 1, 10, 12, 0)},
- (0, 2, 262, 1, 10, 12, 1): {'comment': 'Telesec cert/CRL extension',
- 'description': 'telesecCertIdExt (0 2 262 1 10 12 1)',
- 'hexoid': '06 07 02 82 06 01 0A 0C 01',
- 'name': 'telesecCertIdExt',
- 'oid': (0, 2, 262, 1, 10, 12, 1)},
- (0, 2, 262, 1, 10, 12, 2): {'comment': 'Telesec cert/CRL extension',
- 'description': 'Telesec policyIdentifier (0 2 262 1 10 12 2)',
- 'hexoid': '06 07 02 82 06 01 0A 0C 02',
- 'name': 'Telesec',
- 'oid': (0, 2, 262, 1, 10, 12, 2)},
- (0, 2, 262, 1, 10, 12, 3): {'comment': 'Telesec cert/CRL extension',
- 'description': 'telesecPolicyQualifierID (0 2 262 1 10 12 3)',
- 'hexoid': '06 07 02 82 06 01 0A 0C 03',
- 'name': 'telesecPolicyQualifierID',
- 'oid': (0, 2, 262, 1, 10, 12, 3)},
- (0, 2, 262, 1, 10, 12, 4): {'comment': 'Telesec cert/CRL extension',
- 'description': 'telesecCRLFilteredExt (0 2 262 1 10 12 4)',
- 'hexoid': '06 07 02 82 06 01 0A 0C 04',
- 'name': 'telesecCRLFilteredExt',
- 'oid': (0, 2, 262, 1, 10, 12, 4)},
- (0, 2, 262, 1, 10, 12, 5): {'comment': 'Telesec cert/CRL extension',
- 'description': 'telesecCRLFilterExt (0 2 262 1 10 12 5)',
- 'hexoid': '06 07 02 82 06 01 0A 0C 05',
- 'name': 'telesecCRLFilterExt',
- 'oid': (0, 2, 262, 1, 10, 12, 5)},
- (0, 2, 262, 1, 10, 12, 6): {'comment': 'Telesec cert/CRL extension',
- 'description': 'telesecNamingAuthorityExt (0 2 262 1 10 12 6)',
- 'hexoid': '06 07 02 82 06 01 0A 0C 06',
- 'name': 'telesecNamingAuthorityExt',
- 'oid': (0, 2, 262, 1, 10, 12, 6)},
- (0, 4, 0, 127, 0, 7): {'comment': 'BSI TR-03110/TR-03111',
- 'description': 'bsi (0 4 0 127 0 7)',
- 'hexoid': '06 05 04 00 7F 00 07',
- 'name': 'bsi',
- 'oid': (0, 4, 0, 127, 0, 7)},
- (0, 4, 0, 127, 0, 7, 1): {'comment': 'BSI TR-03111',
- 'description': 'bsiEcc (0 4 0 127 0 7 1)',
- 'hexoid': '06 06 04 00 7F 00 07 01',
- 'name': 'bsiEcc',
- 'oid': (0, 4, 0, 127, 0, 7, 1)},
- (0, 4, 0, 127, 0, 7, 1, 1): {'comment': 'BSI TR-03111',
- 'description': 'bsifieldType (0 4 0 127 0 7 1 1)',
- 'hexoid': '06 07 04 00 7F 00 07 01 01',
- 'name': 'bsifieldType',
- 'oid': (0, 4, 0, 127, 0, 7, 1, 1)},
- (0, 4, 0, 127, 0, 7, 1, 1, 1): {'comment': 'BSI TR-03111',
- 'description': 'bsiPrimeField (0 4 0 127 0 7 1 1 1)',
- 'hexoid': '06 08 04 00 7F 00 07 01 01 01',
- 'name': 'bsiPrimeField',
- 'oid': (0, 4, 0, 127, 0, 7, 1, 1, 1)},
- (0, 4, 0, 127, 0, 7, 1, 1, 2): {'comment': 'BSI TR-03111',
- 'description': 'bsiCharacteristicTwoField (0 4 0 127 0 7 1 1 2)',
- 'hexoid': '06 08 04 00 7F 00 07 01 01 02',
- 'name': 'bsiCharacteristicTwoField',
- 'oid': (0, 4, 0, 127, 0, 7, 1, 1, 2)},
- (0, 4, 0, 127, 0, 7, 1, 1, 2, 3): {'comment': 'BSI TR-03111',
- 'description': 'bsiCharacteristicTwoBasis (0 4 0 127 0 7 1 1 2 3)',
- 'hexoid': '06 09 04 00 7F 00 07 01 01 02 03',
- 'name': 'bsiCharacteristicTwoBasis',
- 'oid': (0, 4, 0, 127, 0, 7, 1, 1, 2, 3)},
- (0, 4, 0, 127, 0, 7, 1, 1, 2, 3, 1): {'comment': 'BSI TR-03111',
- 'description': 'bsiGnBasis (0 4 0 127 0 7 1 1 2 3 1)',
- 'hexoid': '06 0A 04 00 7F 00 07 01 01 02 03 01',
- 'name': 'bsiGnBasis',
- 'oid': (0,
- 4,
- 0,
- 127,
- 0,
- 7,
- 1,
- 1,
- 2,
- 3,
- 1)},
- (0, 4, 0, 127, 0, 7, 1, 1, 2, 3, 2): {'comment': 'BSI TR-03111',
- 'description': 'bsiTpBasis (0 4 0 127 0 7 1 1 2 3 2)',
- 'hexoid': '06 0A 04 00 7F 00 07 01 01 02 03 02',
- 'name': 'bsiTpBasis',
- 'oid': (0,
- 4,
- 0,
- 127,
- 0,
- 7,
- 1,
- 1,
- 2,
- 3,
- 2)},
- (0, 4, 0, 127, 0, 7, 1, 1, 2, 3, 3): {'comment': 'BSI TR-03111',
- 'description': 'bsiPpBasis (0 4 0 127 0 7 1 1 2 3 3)',
- 'hexoid': '06 0A 04 00 7F 00 07 01 01 02 03 03',
- 'name': 'bsiPpBasis',
- 'oid': (0,
- 4,
- 0,
- 127,
- 0,
- 7,
- 1,
- 1,
- 2,
- 3,
- 3)},
- (0, 4, 0, 127, 0, 7, 1, 2): {'comment': 'BSI TR-03111',
- 'description': 'bsiEcKeyType (0 4 0 127 0 7 1 2)',
- 'hexoid': '06 07 04 00 7F 00 07 01 02',
- 'name': 'bsiEcKeyType',
- 'oid': (0, 4, 0, 127, 0, 7, 1, 2)},
- (0, 4, 0, 127, 0, 7, 1, 2, 1): {'comment': 'BSI TR-03111',
- 'description': 'bsiEcPublicKey (0 4 0 127 0 7 1 2 1)',
- 'hexoid': '06 08 04 00 7F 00 07 01 02 01',
- 'name': 'bsiEcPublicKey',
- 'oid': (0, 4, 0, 127, 0, 7, 1, 2, 1)},
- (0, 4, 0, 127, 0, 7, 1, 4, 1): {'comment': 'BSI TR-03111',
- 'description': 'bsiEcdsaSignatures (0 4 0 127 0 7 1 4 1)',
- 'hexoid': '06 08 04 00 7F 00 07 01 04 01',
- 'name': 'bsiEcdsaSignatures',
- 'oid': (0, 4, 0, 127, 0, 7, 1, 4, 1)},
- (0, 4, 0, 127, 0, 7, 1, 4, 1, 1): {'comment': 'BSI TR-03111',
- 'description': 'bsiEcdsaWithSHA1 (0 4 0 127 0 7 1 4 1 1)',
- 'hexoid': '06 09 04 00 7F 00 07 01 04 01 01',
- 'name': 'bsiEcdsaWithSHA1',
- 'oid': (0, 4, 0, 127, 0, 7, 1, 4, 1, 1)},
- (0, 4, 0, 127, 0, 7, 1, 4, 1, 2): {'comment': 'BSI TR-03111',
- 'description': 'bsiEcdsaWithSHA224 (0 4 0 127 0 7 1 4 1 2)',
- 'hexoid': '06 09 04 00 7F 00 07 01 04 01 02',
- 'name': 'bsiEcdsaWithSHA224',
- 'oid': (0, 4, 0, 127, 0, 7, 1, 4, 1, 2)},
- (0, 4, 0, 127, 0, 7, 1, 4, 1, 3): {'comment': 'BSI TR-03111',
- 'description': 'bsiEcdsaWithSHA256 (0 4 0 127 0 7 1 4 1 3)',
- 'hexoid': '06 09 04 00 7F 00 07 01 04 01 03',
- 'name': 'bsiEcdsaWithSHA256',
- 'oid': (0, 4, 0, 127, 0, 7, 1, 4, 1, 3)},
- (0, 4, 0, 127, 0, 7, 1, 4, 1, 4): {'comment': 'BSI TR-03111',
- 'description': 'bsiEcdsaWithSHA384 (0 4 0 127 0 7 1 4 1 4)',
- 'hexoid': '06 09 04 00 7F 00 07 01 04 01 04',
- 'name': 'bsiEcdsaWithSHA384',
- 'oid': (0, 4, 0, 127, 0, 7, 1, 4, 1, 4)},
- (0, 4, 0, 127, 0, 7, 1, 4, 1, 5): {'comment': 'BSI TR-03111',
- 'description': 'bsiEcdsaWithSHA512 (0 4 0 127 0 7 1 4 1 5)',
- 'hexoid': '06 09 04 00 7F 00 07 01 04 01 05',
- 'name': 'bsiEcdsaWithSHA512',
- 'oid': (0, 4, 0, 127, 0, 7, 1, 4, 1, 5)},
- (0, 4, 0, 127, 0, 7, 1, 4, 1, 6): {'comment': 'BSI TR-03111',
- 'description': 'bsiEcdsaWithRIPEMD160 (0 4 0 127 0 7 1 4 1 6)',
- 'hexoid': '06 09 04 00 7F 00 07 01 04 01 06',
- 'name': 'bsiEcdsaWithRIPEMD160',
- 'oid': (0, 4, 0, 127, 0, 7, 1, 4, 1, 6)},
- (0, 4, 0, 127, 0, 7, 1, 5, 1): {'comment': 'BSI TR-03111',
- 'description': 'bsiKaeg (0 4 0 127 0 7 1 5 1)',
- 'hexoid': '06 08 04 00 7F 00 07 01 05 01',
- 'name': 'bsiKaeg',
- 'oid': (0, 4, 0, 127, 0, 7, 1, 5, 1)},
- (0, 4, 0, 127, 0, 7, 1, 5, 1, 1): {'comment': 'BSI TR-03111',
- 'description': 'bsiKaegWithX963KDF (0 4 0 127 0 7 1 5 1 1)',
- 'hexoid': '06 09 04 00 7F 00 07 01 05 01 01',
- 'name': 'bsiKaegWithX963KDF',
- 'oid': (0, 4, 0, 127, 0, 7, 1, 5, 1, 1)},
- (0, 4, 0, 127, 0, 7, 1, 5, 1, 2): {'comment': 'BSI TR-03111',
- 'description': 'bsiKaegWith3DESKDF (0 4 0 127 0 7 1 5 1 2)',
- 'hexoid': '06 09 04 00 7F 00 07 01 05 01 02',
- 'name': 'bsiKaegWith3DESKDF',
- 'oid': (0, 4, 0, 127, 0, 7, 1, 5, 1, 2)},
- (0, 4, 0, 127, 0, 7, 2, 2, 1): {'comment': 'BSI TR-03110',
- 'description': 'bsiCA (0 4 0 127 0 7 2 2 1)',
- 'hexoid': '06 08 04 00 7F 00 07 02 02 01',
- 'name': 'bsiCA',
- 'oid': (0, 4, 0, 127, 0, 7, 2, 2, 1)},
- (0, 4, 0, 127, 0, 7, 2, 2, 1, 1): {'comment': 'BSI TR-03110',
- 'description': 'bsiCA_DH (0 4 0 127 0 7 2 2 1 1)',
- 'hexoid': '06 09 04 00 7F 00 07 02 02 01 01',
- 'name': 'bsiCA_DH',
- 'oid': (0, 4, 0, 127, 0, 7, 2, 2, 1, 1)},
- (0, 4, 0, 127, 0, 7, 2, 2, 1, 2): {'comment': 'BSI TR-03110',
- 'description': 'bsiCA_ECDH (0 4 0 127 0 7 2 2 1 2)',
- 'hexoid': '06 09 04 00 7F 00 07 02 02 01 02',
- 'name': 'bsiCA_ECDH',
- 'oid': (0, 4, 0, 127, 0, 7, 2, 2, 1, 2)},
- (0, 4, 0, 127, 0, 7, 2, 2, 2): {'comment': 'BSI TR-03110',
- 'description': 'bsiTA (0 4 0 127 0 7 2 2 2)',
- 'hexoid': '06 08 04 00 7F 00 07 02 02 02',
- 'name': 'bsiTA',
- 'oid': (0, 4, 0, 127, 0, 7, 2, 2, 2)},
- (0, 4, 0, 127, 0, 7, 2, 2, 2, 1): {'comment': 'BSI TR-03110',
- 'description': 'bsiTA_RSA (0 4 0 127 0 7 2 2 2 1)',
- 'hexoid': '06 09 04 00 7F 00 07 02 02 02 01',
- 'name': 'bsiTA_RSA',
- 'oid': (0, 4, 0, 127, 0, 7, 2, 2, 2, 1)},
- (0, 4, 0, 127, 0, 7, 2, 2, 2, 1, 1): {'comment': 'BSI TR-03110',
- 'description': 'bsiTA_RSAv1_5_SHA1 (0 4 0 127 0 7 2 2 2 1 1)',
- 'hexoid': '06 0A 04 00 7F 00 07 02 02 02 01 01',
- 'name': 'bsiTA_RSAv1_5_SHA1',
- 'oid': (0,
- 4,
- 0,
- 127,
- 0,
- 7,
- 2,
- 2,
- 2,
- 1,
- 1)},
- (0, 4, 0, 127, 0, 7, 2, 2, 2, 1, 2): {'comment': 'BSI TR-03110',
- 'description': 'bsiTA_RSAv1_5_SHA256 (0 4 0 127 0 7 2 2 2 1 2)',
- 'hexoid': '06 0A 04 00 7F 00 07 02 02 02 01 02',
- 'name': 'bsiTA_RSAv1_5_SHA256',
- 'oid': (0,
- 4,
- 0,
- 127,
- 0,
- 7,
- 2,
- 2,
- 2,
- 1,
- 2)},
- (0, 4, 0, 127, 0, 7, 2, 2, 2, 1, 3): {'comment': 'BSI TR-03110',
- 'description': 'bsiTA_RSAPSS_SHA1 (0 4 0 127 0 7 2 2 2 1 3)',
- 'hexoid': '06 0A 04 00 7F 00 07 02 02 02 01 03',
- 'name': 'bsiTA_RSAPSS_SHA1',
- 'oid': (0,
- 4,
- 0,
- 127,
- 0,
- 7,
- 2,
- 2,
- 2,
- 1,
- 3)},
- (0, 4, 0, 127, 0, 7, 2, 2, 2, 1, 4): {'comment': 'BSI TR-03110',
- 'description': 'bsiTA_RSAPSS_SHA256 (0 4 0 127 0 7 2 2 2 1 4)',
- 'hexoid': '06 0A 04 00 7F 00 07 02 02 02 01 04',
- 'name': 'bsiTA_RSAPSS_SHA256',
- 'oid': (0,
- 4,
- 0,
- 127,
- 0,
- 7,
- 2,
- 2,
- 2,
- 1,
- 4)},
- (0, 4, 0, 127, 0, 7, 2, 2, 2, 2): {'comment': 'BSI TR-03110',
- 'description': 'bsiTA_ECDSA (0 4 0 127 0 7 2 2 2 2)',
- 'hexoid': '06 09 04 00 7F 00 07 02 02 02 02',
- 'name': 'bsiTA_ECDSA',
- 'oid': (0, 4, 0, 127, 0, 7, 2, 2, 2, 2)},
- (0, 4, 0, 127, 0, 7, 2, 2, 2, 2, 1): {'comment': 'BSI TR-03110',
- 'description': 'bsiTA_ECDSA_SHA1 (0 4 0 127 0 7 2 2 2 2 1)',
- 'hexoid': '06 0A 04 00 7F 00 07 02 02 02 02 01',
- 'name': 'bsiTA_ECDSA_SHA1',
- 'oid': (0,
- 4,
- 0,
- 127,
- 0,
- 7,
- 2,
- 2,
- 2,
- 2,
- 1)},
- (0, 4, 0, 127, 0, 7, 2, 2, 2, 2, 2): {'comment': 'BSI TR-03110',
- 'description': 'bsiTA_ECDSA_SHA224 (0 4 0 127 0 7 2 2 2 2 2)',
- 'hexoid': '06 0A 04 00 7F 00 07 02 02 02 02 02',
- 'name': 'bsiTA_ECDSA_SHA224',
- 'oid': (0,
- 4,
- 0,
- 127,
- 0,
- 7,
- 2,
- 2,
- 2,
- 2,
- 2)},
- (0, 4, 0, 127, 0, 7, 2, 2, 2, 2, 3): {'comment': 'BSI TR-03110',
- 'description': 'bsiTA_ECDSA_SHA256 (0 4 0 127 0 7 2 2 2 2 3)',
- 'hexoid': '06 0A 04 00 7F 00 07 02 02 02 02 03',
- 'name': 'bsiTA_ECDSA_SHA256',
- 'oid': (0,
- 4,
- 0,
- 127,
- 0,
- 7,
- 2,
- 2,
- 2,
- 2,
- 3)},
- (0, 4, 0, 127, 0, 7, 3, 1, 2): {'comment': 'BSI TR-03110',
- 'description': 'bsiRoleEAC (0 4 0 127 0 7 3 1 2)',
- 'hexoid': '06 08 04 00 7F 00 07 03 01 02',
- 'name': 'bsiRoleEAC',
- 'oid': (0, 4, 0, 127, 0, 7, 3, 1, 2)},
- (0, 4, 0, 1862): {'comment': 'ETSI TS 101 862 qualified certificates',
- 'description': 'etsiQcsProfile (0 4 0 1862)',
- 'hexoid': '06 04 04 00 8E 46',
- 'name': 'etsiQcsProfile',
- 'oid': (0, 4, 0, 1862)},
- (0, 4, 0, 1862, 1): {'comment': 'ETSI TS 101 862 qualified certificates',
- 'description': 'etsiQcs (0 4 0 1862 1)',
- 'hexoid': '06 05 04 00 8E 46 01',
- 'name': 'etsiQcs',
- 'oid': (0, 4, 0, 1862, 1)},
- (0, 4, 0, 1862, 1, 1): {'comment': 'ETSI TS 101 862 qualified certificates',
- 'description': 'etsiQcsCompliance (0 4 0 1862 1 1)',
- 'hexoid': '06 06 04 00 8E 46 01 01',
- 'name': 'etsiQcsCompliance',
- 'oid': (0, 4, 0, 1862, 1, 1)},
- (0, 4, 0, 1862, 1, 2): {'comment': 'ETSI TS 101 862 qualified certificates',
- 'description': 'etsiQcsLimitValue (0 4 0 1862 1 2)',
- 'hexoid': '06 06 04 00 8E 46 01 02',
- 'name': 'etsiQcsLimitValue',
- 'oid': (0, 4, 0, 1862, 1, 2)},
- (0, 4, 0, 1862, 1, 3): {'comment': 'ETSI TS 101 862 qualified certificates',
- 'description': 'etsiQcsRetentionPeriod (0 4 0 1862 1 3)',
- 'hexoid': '06 06 04 00 8E 46 01 03',
- 'name': 'etsiQcsRetentionPeriod',
- 'oid': (0, 4, 0, 1862, 1, 3)},
- (0, 4, 0, 1862, 1, 4): {'comment': 'ETSI TS 101 862 qualified certificates',
- 'description': 'etsiQcsQcSSCD (0 4 0 1862 1 4)',
- 'hexoid': '06 06 04 00 8E 46 01 04',
- 'name': 'etsiQcsQcSSCD',
- 'oid': (0, 4, 0, 1862, 1, 4)},
- (0, 9, 2342, 19200300, 100, 1, 1): {'comment': 'Some oddball X.500 attribute collection',
- 'description': 'userID (0 9 2342 19200300 100 1 1)',
- 'hexoid': '06 0A 09 92 26 89 93 F2 2C 64 01 01',
- 'name': 'userID',
- 'oid': (0, 9, 2342, 19200300, 100, 1, 1)},
- (0, 9, 2342, 19200300, 100, 1, 3): {'comment': 'Some oddball X.500 attribute collection',
- 'description': 'rfc822Mailbox (0 9 2342 19200300 100 1 3)',
- 'hexoid': '06 0A 09 92 26 89 93 F2 2C 64 01 03',
- 'name': 'rfc822Mailbox',
- 'oid': (0, 9, 2342, 19200300, 100, 1, 3)},
- (0, 9, 2342, 19200300, 100, 1, 25): {'comment': 'Men are from Mars, this OID is from Pluto',
- 'description': 'domainComponent (0 9 2342 19200300 100 1 25)',
- 'hexoid': '06 0A 09 92 26 89 93 F2 2C 64 01 19',
- 'name': 'domainComponent',
- 'oid': (0,
- 9,
- 2342,
- 19200300,
- 100,
- 1,
- 25)},
- (1, 2, 36, 1, 333, 1): {'comment': 'Australian Government corporate taxpayer ID',
- 'description': 'australianBusinessNumber (1 2 36 1 333 1)',
- 'hexoid': '06 06 2A 24 01 82 4D 01',
- 'name': 'australianBusinessNumber',
- 'oid': (1, 2, 36, 1, 333, 1)},
- (1, 2, 36, 68980861, 1, 1, 2): {'comment': 'Signet CA',
- 'description': 'Signet personal (1 2 36 68980861 1 1 2)',
- 'hexoid': '06 09 2A 24 A0 F2 A0 7D 01 01 02',
- 'name': 'Signet',
- 'oid': (1, 2, 36, 68980861, 1, 1, 2)},
- (1, 2, 36, 68980861, 1, 1, 3): {'comment': 'Signet CA',
- 'description': 'Signet business (1 2 36 68980861 1 1 3)',
- 'hexoid': '06 09 2A 24 A0 F2 A0 7D 01 01 03',
- 'name': 'Signet',
- 'oid': (1, 2, 36, 68980861, 1, 1, 3)},
- (1, 2, 36, 68980861, 1, 1, 4): {'comment': 'Signet CA',
- 'description': 'Signet legal (1 2 36 68980861 1 1 4)',
- 'hexoid': '06 09 2A 24 A0 F2 A0 7D 01 01 04',
- 'name': 'Signet',
- 'oid': (1, 2, 36, 68980861, 1, 1, 4)},
- (1, 2, 36, 68980861, 1, 1, 10): {'comment': 'Signet CA',
- 'description': 'Signet pilot (1 2 36 68980861 1 1 10)',
- 'hexoid': '06 09 2A 24 A0 F2 A0 7D 01 01 0A',
- 'name': 'Signet',
- 'oid': (1, 2, 36, 68980861, 1, 1, 10)},
- (1, 2, 36, 68980861, 1, 1, 11): {'comment': 'Signet CA',
- 'description': 'Signet intraNet (1 2 36 68980861 1 1 11)',
- 'hexoid': '06 09 2A 24 A0 F2 A0 7D 01 01 0B',
- 'name': 'Signet',
- 'oid': (1, 2, 36, 68980861, 1, 1, 11)},
- (1, 2, 36, 68980861, 1, 1, 20): {'comment': 'Signet CA',
- 'description': 'Signet policyIdentifier (1 2 36 68980861 1 1 20)',
- 'hexoid': '06 09 2A 24 A0 F2 A0 7D 01 01 14',
- 'name': 'Signet',
- 'oid': (1, 2, 36, 68980861, 1, 1, 20)},
- (1, 2, 36, 75878867, 1, 100, 1, 1): {'comment': 'Certificates Australia CA',
- 'description': 'Certificates Australia policyIdentifier (1 2 36 75878867 1 100 1 1)',
- 'hexoid': '06 0A 2A 24 A4 97 A3 53 01 64 01 01',
- 'name': 'Certificates',
- 'oid': (1,
- 2,
- 36,
- 75878867,
- 1,
- 100,
- 1,
- 1)},
- (1, 2, 392, 200011, 61, 1, 1, 1): {'comment': 'Mitsubishi security algorithm',
- 'description': 'symmetric-encryption-algorithm (1 2 392 200011 61 1 1 1)',
- 'hexoid': '06 0A 2A 83 08 8C 9A 4B 3D 01 01 01',
- 'name': 'symmetric-encryption-algorithm',
- 'oid': (1, 2, 392, 200011, 61, 1, 1, 1)},
- (1, 2, 392, 200011, 61, 1, 1, 1, 1): {'comment': 'Mitsubishi security algorithm',
- 'description': 'misty1-cbc (1 2 392 200011 61 1 1 1 1)',
- 'hexoid': '06 0B 2A 83 08 8C 9A 4B 3D 01 01 01 01',
- 'name': 'misty1-cbc',
- 'oid': (1,
- 2,
- 392,
- 200011,
- 61,
- 1,
- 1,
- 1,
- 1)},
- (1, 2, 752, 34, 1): {'comment': 'SEIS Project',
- 'description': 'seis-cp (1 2 752 34 1)',
- 'hexoid': '06 05 2A 85 70 22 01',
- 'name': 'seis-cp',
- 'oid': (1, 2, 752, 34, 1)},
- (1, 2, 752, 34, 1, 1): {'comment': 'SEIS Project certificate policies',
- 'description': 'SEIS high-assurance policyIdentifier (1 2 752 34 1 1)',
- 'hexoid': '06 06 2A 85 70 22 01 01',
- 'name': 'SEIS',
- 'oid': (1, 2, 752, 34, 1, 1)},
- (1, 2, 752, 34, 1, 2): {'comment': 'SEIS Project certificate policies',
- 'description': 'SEIS GAK policyIdentifier (1 2 752 34 1 2)',
- 'hexoid': '06 06 2A 85 70 22 01 02',
- 'name': 'SEIS',
- 'oid': (1, 2, 752, 34, 1, 2)},
- (1, 2, 752, 34, 2): {'comment': 'SEIS Project',
- 'description': 'SEIS pe (1 2 752 34 2)',
- 'hexoid': '06 05 2A 85 70 22 02',
- 'name': 'SEIS',
- 'oid': (1, 2, 752, 34, 2)},
- (1, 2, 752, 34, 3): {'comment': 'SEIS Project',
- 'description': 'SEIS at (1 2 752 34 3)',
- 'hexoid': '06 05 2A 85 70 22 03',
- 'name': 'SEIS',
- 'oid': (1, 2, 752, 34, 3)},
- (1, 2, 752, 34, 3, 1): {'comment': 'SEIS Project attribute',
- 'description': 'SEIS at-personalIdentifier (1 2 752 34 3 1)',
- 'hexoid': '06 06 2A 85 70 22 03 01',
- 'name': 'SEIS',
- 'oid': (1, 2, 752, 34, 3, 1)},
- (1, 2, 840, 10040, 1): {'comment': 'ANSI X9.57',
- 'description': 'module (1 2 840 10040 1)',
- 'hexoid': '06 06 2A 86 48 CE 38 01',
- 'name': 'module',
- 'oid': (1, 2, 840, 10040, 1)},
- (1, 2, 840, 10040, 1, 1): {'comment': 'ANSI X9.57 module',
- 'description': 'x9f1-cert-mgmt (1 2 840 10040 1 1)',
- 'hexoid': '06 07 2A 86 48 CE 38 01 01',
- 'name': 'x9f1-cert-mgmt',
- 'oid': (1, 2, 840, 10040, 1, 1)},
- (1, 2, 840, 10040, 2): {'comment': 'ANSI X9.57',
- 'description': 'holdinstruction (1 2 840 10040 2)',
- 'hexoid': '06 06 2A 86 48 CE 38 02',
- 'name': 'holdinstruction',
- 'oid': (1, 2, 840, 10040, 2)},
- (1, 2, 840, 10040, 2, 1): {'comment': 'ANSI X9.57 hold instruction',
- 'description': 'holdinstruction-none (1 2 840 10040 2 1)',
- 'hexoid': '06 07 2A 86 48 CE 38 02 01',
- 'name': 'holdinstruction-none',
- 'oid': (1, 2, 840, 10040, 2, 1)},
- (1, 2, 840, 10040, 2, 2): {'comment': 'ANSI X9.57 hold instruction',
- 'description': 'callissuer (1 2 840 10040 2 2)',
- 'hexoid': '06 07 2A 86 48 CE 38 02 02',
- 'name': 'callissuer',
- 'oid': (1, 2, 840, 10040, 2, 2)},
- (1, 2, 840, 10040, 2, 3): {'comment': 'ANSI X9.57 hold instruction',
- 'description': 'reject (1 2 840 10040 2 3)',
- 'hexoid': '06 07 2A 86 48 CE 38 02 03',
- 'name': 'reject',
- 'oid': (1, 2, 840, 10040, 2, 3)},
- (1, 2, 840, 10040, 2, 4): {'comment': 'ANSI X9.57 hold instruction',
- 'description': 'pickupToken (1 2 840 10040 2 4)',
- 'hexoid': '06 07 2A 86 48 CE 38 02 04',
- 'name': 'pickupToken',
- 'oid': (1, 2, 840, 10040, 2, 4)},
- (1, 2, 840, 10040, 3): {'comment': 'ANSI X9.57',
- 'description': 'attribute (1 2 840 10040 3)',
- 'hexoid': '06 06 2A 86 48 CE 38 03',
- 'name': 'attribute',
- 'oid': (1, 2, 840, 10040, 3)},
- (1, 2, 840, 10040, 3, 1): {'comment': 'ANSI X9.57 attribute',
- 'description': 'countersignature (1 2 840 10040 3 1)',
- 'hexoid': '06 07 2A 86 48 CE 38 03 01',
- 'name': 'countersignature',
- 'oid': (1, 2, 840, 10040, 3, 1)},
- (1, 2, 840, 10040, 3, 2): {'comment': 'ANSI X9.57 attribute',
- 'description': 'attribute-cert (1 2 840 10040 3 2)',
- 'hexoid': '06 07 2A 86 48 CE 38 03 02',
- 'name': 'attribute-cert',
- 'oid': (1, 2, 840, 10040, 3, 2)},
- (1, 2, 840, 10040, 4): {'comment': 'ANSI X9.57',
- 'description': 'algorithm (1 2 840 10040 4)',
- 'hexoid': '06 06 2A 86 48 CE 38 04',
- 'name': 'algorithm',
- 'oid': (1, 2, 840, 10040, 4)},
- (1, 2, 840, 10040, 4, 1): {'comment': 'ANSI X9.57 algorithm',
- 'description': 'dsa (1 2 840 10040 4 1)',
- 'hexoid': '06 07 2A 86 48 CE 38 04 01',
- 'name': 'dsa',
- 'oid': (1, 2, 840, 10040, 4, 1)},
- (1, 2, 840, 10040, 4, 2): {'comment': 'ANSI X9.57 algorithm',
- 'description': 'dsa-match (1 2 840 10040 4 2)',
- 'hexoid': '06 07 2A 86 48 CE 38 04 02',
- 'name': 'dsa-match',
- 'oid': (1, 2, 840, 10040, 4, 2)},
- (1, 2, 840, 10040, 4, 3): {'comment': 'ANSI X9.57 algorithm',
- 'description': 'dsaWithSha1 (1 2 840 10040 4 3)',
- 'hexoid': '06 07 2A 86 48 CE 38 04 03',
- 'name': 'dsaWithSha1',
- 'oid': (1, 2, 840, 10040, 4, 3)},
- (1, 2, 840, 10045, 1): {'comment': 'ANSI X9.62. This OID is also assigned as ecdsa-with-SHA1',
- 'description': 'fieldType (1 2 840 10045 1)',
- 'hexoid': '06 06 2A 86 48 CE 3D 01',
- 'name': 'fieldType',
- 'oid': (1, 2, 840, 10045, 1)},
- (1, 2, 840, 10045, 1, 1): {'comment': 'ANSI X9.62 field type',
- 'description': 'prime-field (1 2 840 10045 1 1)',
- 'hexoid': '06 07 2A 86 48 CE 3D 01 01',
- 'name': 'prime-field',
- 'oid': (1, 2, 840, 10045, 1, 1)},
- (1, 2, 840, 10045, 1, 2): {'comment': 'ANSI X9.62 field type',
- 'description': 'characteristic-two-field (1 2 840 10045 1 2)',
- 'hexoid': '06 07 2A 86 48 CE 3D 01 02',
- 'name': 'characteristic-two-field',
- 'oid': (1, 2, 840, 10045, 1, 2)},
- (1, 2, 840, 10045, 1, 2, 3): {'comment': 'ANSI X9.62 field type',
- 'description': 'characteristic-two-basis (1 2 840 10045 1 2 3)',
- 'hexoid': '06 08 2A 86 48 CE 3D 01 02 03',
- 'name': 'characteristic-two-basis',
- 'oid': (1, 2, 840, 10045, 1, 2, 3)},
- (1, 2, 840, 10045, 1, 2, 3, 1): {'comment': 'ANSI X9.62 field basis',
- 'description': 'onBasis (1 2 840 10045 1 2 3 1)',
- 'hexoid': '06 09 2A 86 48 CE 3D 01 02 03 01',
- 'name': 'onBasis',
- 'oid': (1, 2, 840, 10045, 1, 2, 3, 1)},
- (1, 2, 840, 10045, 1, 2, 3, 2): {'comment': 'ANSI X9.62 field basis',
- 'description': 'tpBasis (1 2 840 10045 1 2 3 2)',
- 'hexoid': '06 09 2A 86 48 CE 3D 01 02 03 02',
- 'name': 'tpBasis',
- 'oid': (1, 2, 840, 10045, 1, 2, 3, 2)},
- (1, 2, 840, 10045, 1, 2, 3, 3): {'comment': 'ANSI X9.62 field basis',
- 'description': 'ppBasis (1 2 840 10045 1 2 3 3)',
- 'hexoid': '06 09 2A 86 48 CE 3D 01 02 03 03',
- 'name': 'ppBasis',
- 'oid': (1, 2, 840, 10045, 1, 2, 3, 3)},
- (1, 2, 840, 10045, 2): {'comment': 'ANSI X9.62',
- 'description': 'publicKeyType (1 2 840 10045 2)',
- 'hexoid': '06 06 2A 86 48 CE 3D 02',
- 'name': 'publicKeyType',
- 'oid': (1, 2, 840, 10045, 2)},
- (1, 2, 840, 10045, 2, 1): {'comment': 'ANSI X9.62 public key type',
- 'description': 'ecPublicKey (1 2 840 10045 2 1)',
- 'hexoid': '06 07 2A 86 48 CE 3D 02 01',
- 'name': 'ecPublicKey',
- 'oid': (1, 2, 840, 10045, 2, 1)},
- (1, 2, 840, 10045, 3, 0, 1): {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'c2pnb163v1 (1 2 840 10045 3 0 1)',
- 'hexoid': '06 08 2A 86 48 CE 3D 03 00 01',
- 'name': 'c2pnb163v1',
- 'oid': (1, 2, 840, 10045, 3, 0, 1)},
- (1, 2, 840, 10045, 3, 0, 2): {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'c2pnb163v2 (1 2 840 10045 3 0 2)',
- 'hexoid': '06 08 2A 86 48 CE 3D 03 00 02',
- 'name': 'c2pnb163v2',
- 'oid': (1, 2, 840, 10045, 3, 0, 2)},
- (1, 2, 840, 10045, 3, 0, 3): {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'c2pnb163v3 (1 2 840 10045 3 0 3)',
- 'hexoid': '06 08 2A 86 48 CE 3D 03 00 03',
- 'name': 'c2pnb163v3',
- 'oid': (1, 2, 840, 10045, 3, 0, 3)},
- (1, 2, 840, 10045, 3, 0, 5): {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'c2tnb191v1 (1 2 840 10045 3 0 5)',
- 'hexoid': '06 08 2A 86 48 CE 3D 03 00 05',
- 'name': 'c2tnb191v1',
- 'oid': (1, 2, 840, 10045, 3, 0, 5)},
- (1, 2, 840, 10045, 3, 0, 6): {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'c2tnb191v2 (1 2 840 10045 3 0 6)',
- 'hexoid': '06 08 2A 86 48 CE 3D 03 00 06',
- 'name': 'c2tnb191v2',
- 'oid': (1, 2, 840, 10045, 3, 0, 6)},
- (1, 2, 840, 10045, 3, 0, 7): {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'c2tnb191v3 (1 2 840 10045 3 0 7)',
- 'hexoid': '06 08 2A 86 48 CE 3D 03 00 07',
- 'name': 'c2tnb191v3',
- 'oid': (1, 2, 840, 10045, 3, 0, 7)},
- (1, 2, 840, 10045, 3, 0, 10): {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'c2pnb208w1 (1 2 840 10045 3 0 10)',
- 'hexoid': '06 08 2A 86 48 CE 3D 03 00 0A',
- 'name': 'c2pnb208w1',
- 'oid': (1, 2, 840, 10045, 3, 0, 10)},
- (1, 2, 840, 10045, 3, 0, 11): {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'c2tnb239v1 (1 2 840 10045 3 0 11)',
- 'hexoid': '06 08 2A 86 48 CE 3D 03 00 0B',
- 'name': 'c2tnb239v1',
- 'oid': (1, 2, 840, 10045, 3, 0, 11)},
- (1, 2, 840, 10045, 3, 0, 12): {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'c2tnb239v2 (1 2 840 10045 3 0 12)',
- 'hexoid': '06 08 2A 86 48 CE 3D 03 00 0C',
- 'name': 'c2tnb239v2',
- 'oid': (1, 2, 840, 10045, 3, 0, 12)},
- (1, 2, 840, 10045, 3, 0, 13): {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'c2tnb239v3 (1 2 840 10045 3 0 13)',
- 'hexoid': '06 08 2A 86 48 CE 3D 03 00 0D',
- 'name': 'c2tnb239v3',
- 'oid': (1, 2, 840, 10045, 3, 0, 13)},
- (1, 2, 840, 10045, 3, 0, 16): {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'c2pnb272w1 (1 2 840 10045 3 0 16)',
- 'hexoid': '06 08 2A 86 48 CE 3D 03 00 10',
- 'name': 'c2pnb272w1',
- 'oid': (1, 2, 840, 10045, 3, 0, 16)},
- (1, 2, 840, 10045, 3, 0, 18): {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'c2tnb359v1 (1 2 840 10045 3 0 18)',
- 'hexoid': '06 08 2A 86 48 CE 3D 03 00 12',
- 'name': 'c2tnb359v1',
- 'oid': (1, 2, 840, 10045, 3, 0, 18)},
- (1, 2, 840, 10045, 3, 0, 19): {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'c2pnb368w1 (1 2 840 10045 3 0 19)',
- 'hexoid': '06 08 2A 86 48 CE 3D 03 00 13',
- 'name': 'c2pnb368w1',
- 'oid': (1, 2, 840, 10045, 3, 0, 19)},
- (1, 2, 840, 10045, 3, 0, 20): {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'c2tnb431r1 (1 2 840 10045 3 0 20)',
- 'hexoid': '06 08 2A 86 48 CE 3D 03 00 14',
- 'name': 'c2tnb431r1',
- 'oid': (1, 2, 840, 10045, 3, 0, 20)},
- (1, 2, 840, 10045, 3, 1, 1): {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'ansiX9p192r1 (1 2 840 10045 3 1 1)',
- 'hexoid': '06 08 2A 86 48 CE 3D 03 01 01',
- 'name': 'ansiX9p192r1',
- 'oid': (1, 2, 840, 10045, 3, 1, 1)},
- (1, 2, 840, 10045, 3, 1, 1, 1): {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'prime192v1 (1 2 840 10045 3 1 1 1)',
- 'hexoid': '06 09 2A 86 48 CE 3D 03 01 01 01',
- 'name': 'prime192v1',
- 'oid': (1, 2, 840, 10045, 3, 1, 1, 1)},
- (1, 2, 840, 10045, 3, 1, 1, 2): {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'prime192v2 (1 2 840 10045 3 1 1 2)',
- 'hexoid': '06 09 2A 86 48 CE 3D 03 01 01 02',
- 'name': 'prime192v2',
- 'oid': (1, 2, 840, 10045, 3, 1, 1, 2)},
- (1, 2, 840, 10045, 3, 1, 1, 3): {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'prime192v3 (1 2 840 10045 3 1 1 3)',
- 'hexoid': '06 09 2A 86 48 CE 3D 03 01 01 03',
- 'name': 'prime192v3',
- 'oid': (1, 2, 840, 10045, 3, 1, 1, 3)},
- (1, 2, 840, 10045, 3, 1, 1, 4): {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'prime239v1 (1 2 840 10045 3 1 1 4)',
- 'hexoid': '06 09 2A 86 48 CE 3D 03 01 01 04',
- 'name': 'prime239v1',
- 'oid': (1, 2, 840, 10045, 3, 1, 1, 4)},
- (1, 2, 840, 10045, 3, 1, 1, 5): {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'prime239v2 (1 2 840 10045 3 1 1 5)',
- 'hexoid': '06 09 2A 86 48 CE 3D 03 01 01 05',
- 'name': 'prime239v2',
- 'oid': (1, 2, 840, 10045, 3, 1, 1, 5)},
- (1, 2, 840, 10045, 3, 1, 1, 6): {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'prime239v3 (1 2 840 10045 3 1 1 6)',
- 'hexoid': '06 09 2A 86 48 CE 3D 03 01 01 06',
- 'name': 'prime239v3',
- 'oid': (1, 2, 840, 10045, 3, 1, 1, 6)},
- (1, 2, 840, 10045, 3, 1, 1, 7): {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'prime256v1 (1 2 840 10045 3 1 1 7)',
- 'hexoid': '06 09 2A 86 48 CE 3D 03 01 01 07',
- 'name': 'prime256v1',
- 'oid': (1, 2, 840, 10045, 3, 1, 1, 7)},
- (1, 2, 840, 10045, 3, 1, 7): {'comment': 'ANSI X9.62 named elliptic curve',
- 'description': 'ansiX9p256r1 (1 2 840 10045 3 1 7)',
- 'hexoid': '06 08 2A 86 48 CE 3D 03 01 07',
- 'name': 'ansiX9p256r1',
- 'oid': (1, 2, 840, 10045, 3, 1, 7)},
- (1, 2, 840, 10045, 4, 1): {'comment': 'ANSI X9.62 ECDSA algorithm with SHA1',
- 'description': 'ecdsaWithSHA1 (1 2 840 10045 4 1)',
- 'hexoid': '06 07 2A 86 48 CE 3D 04 01',
- 'name': 'ecdsaWithSHA1',
- 'oid': (1, 2, 840, 10045, 4, 1)},
- (1, 2, 840, 10045, 4, 2): {'comment': 'ANSI X9.62 ECDSA algorithm with Recommended',
- 'description': 'ecdsaWithRecommended (1 2 840 10045 4 2)',
- 'hexoid': '06 07 2A 86 48 CE 3D 04 02',
- 'name': 'ecdsaWithRecommended',
- 'oid': (1, 2, 840, 10045, 4, 2)},
- (1, 2, 840, 10045, 4, 3): {'comment': 'ANSI X9.62 ECDSA algorithm with Specified',
- 'description': 'ecdsaWithSpecified (1 2 840 10045 4 3)',
- 'hexoid': '06 07 2A 86 48 CE 3D 04 03',
- 'name': 'ecdsaWithSpecified',
- 'oid': (1, 2, 840, 10045, 4, 3)},
- (1, 2, 840, 10045, 4, 3, 1): {'comment': 'ANSI X9.62 ECDSA algorithm with SHA224',
- 'description': 'ecdsaWithSHA224 (1 2 840 10045 4 3 1)',
- 'hexoid': '06 08 2A 86 48 CE 3D 04 03 01',
- 'name': 'ecdsaWithSHA224',
- 'oid': (1, 2, 840, 10045, 4, 3, 1)},
- (1, 2, 840, 10045, 4, 3, 2): {'comment': 'ANSI X9.62 ECDSA algorithm with SHA256',
- 'description': 'ecdsaWithSHA256 (1 2 840 10045 4 3 2)',
- 'hexoid': '06 08 2A 86 48 CE 3D 04 03 02',
- 'name': 'ecdsaWithSHA256',
- 'oid': (1, 2, 840, 10045, 4, 3, 2)},
- (1, 2, 840, 10045, 4, 3, 3): {'comment': 'ANSI X9.62 ECDSA algorithm with SHA384',
- 'description': 'ecdsaWithSHA384 (1 2 840 10045 4 3 3)',
- 'hexoid': '06 08 2A 86 48 CE 3D 04 03 03',
- 'name': 'ecdsaWithSHA384',
- 'oid': (1, 2, 840, 10045, 4, 3, 3)},
- (1, 2, 840, 10045, 4, 3, 4): {'comment': 'ANSI X9.62 ECDSA algorithm with SHA512',
- 'description': 'ecdsaWithSHA512 (1 2 840 10045 4 3 4)',
- 'hexoid': '06 08 2A 86 48 CE 3D 04 03 04',
- 'name': 'ecdsaWithSHA512',
- 'oid': (1, 2, 840, 10045, 4, 3, 4)},
- (1, 2, 840, 10046, 1): {'comment': 'ANSI X9.42',
- 'description': 'fieldType (1 2 840 10046 1)',
- 'hexoid': '06 06 2A 86 48 CE 3E 01',
- 'name': 'fieldType',
- 'oid': (1, 2, 840, 10046, 1)},
- (1, 2, 840, 10046, 1, 1): {'comment': 'ANSI X9.42 field type',
- 'description': 'gf-prime (1 2 840 10046 1 1)',
- 'hexoid': '06 07 2A 86 48 CE 3E 01 01',
- 'name': 'gf-prime',
- 'oid': (1, 2, 840, 10046, 1, 1)},
- (1, 2, 840, 10046, 2): {'comment': 'ANSI X9.42',
- 'description': 'numberType (1 2 840 10046 2)',
- 'hexoid': '06 06 2A 86 48 CE 3E 02',
- 'name': 'numberType',
- 'oid': (1, 2, 840, 10046, 2)},
- (1, 2, 840, 10046, 2, 1): {'comment': 'ANSI X9.42 number type',
- 'description': 'dhPublicKey (1 2 840 10046 2 1)',
- 'hexoid': '06 07 2A 86 48 CE 3E 02 01',
- 'name': 'dhPublicKey',
- 'oid': (1, 2, 840, 10046, 2, 1)},
- (1, 2, 840, 10046, 3): {'comment': 'ANSI X9.42',
- 'description': 'scheme (1 2 840 10046 3)',
- 'hexoid': '06 06 2A 86 48 CE 3E 03',
- 'name': 'scheme',
- 'oid': (1, 2, 840, 10046, 3)},
- (1, 2, 840, 10046, 3, 1): {'comment': 'ANSI X9.42 scheme',
- 'description': 'dhStatic (1 2 840 10046 3 1)',
- 'hexoid': '06 07 2A 86 48 CE 3E 03 01',
- 'name': 'dhStatic',
- 'oid': (1, 2, 840, 10046, 3, 1)},
- (1, 2, 840, 10046, 3, 2): {'comment': 'ANSI X9.42 scheme',
- 'description': 'dhEphem (1 2 840 10046 3 2)',
- 'hexoid': '06 07 2A 86 48 CE 3E 03 02',
- 'name': 'dhEphem',
- 'oid': (1, 2, 840, 10046, 3, 2)},
- (1, 2, 840, 10046, 3, 3): {'comment': 'ANSI X9.42 scheme',
- 'description': 'dhHybrid1 (1 2 840 10046 3 3)',
- 'hexoid': '06 07 2A 86 48 CE 3E 03 03',
- 'name': 'dhHybrid1',
- 'oid': (1, 2, 840, 10046, 3, 3)},
- (1, 2, 840, 10046, 3, 4): {'comment': 'ANSI X9.42 scheme',
- 'description': 'dhHybrid2 (1 2 840 10046 3 4)',
- 'hexoid': '06 07 2A 86 48 CE 3E 03 04',
- 'name': 'dhHybrid2',
- 'oid': (1, 2, 840, 10046, 3, 4)},
- (1, 2, 840, 10046, 3, 5): {'comment': 'ANSI X9.42 scheme',
- 'description': 'mqv2 (1 2 840 10046 3 5)',
- 'hexoid': '06 07 2A 86 48 CE 3E 03 05',
- 'name': 'mqv2',
- 'oid': (1, 2, 840, 10046, 3, 5)},
- (1, 2, 840, 10046, 3, 6): {'comment': 'ANSI X9.42 scheme',
- 'description': 'mqv1 (1 2 840 10046 3 6)',
- 'hexoid': '06 07 2A 86 48 CE 3E 03 06',
- 'name': 'mqv1',
- 'oid': (1, 2, 840, 10046, 3, 6)},
- (1, 2, 840, 10065, 2, 2): {'comment': 'ASTM 31.20',
- 'description': '? (1 2 840 10065 2 2)',
- 'hexoid': '06 07 2A 86 48 CE 51 02 02',
- 'name': '?',
- 'oid': (1, 2, 840, 10065, 2, 2)},
- (1, 2, 840, 10065, 2, 3): {'comment': 'ASTM 31.20',
- 'description': 'healthcareLicense (1 2 840 10065 2 3)',
- 'hexoid': '06 07 2A 86 48 CE 51 02 03',
- 'name': 'healthcareLicense',
- 'oid': (1, 2, 840, 10065, 2, 3)},
- (1, 2, 840, 10065, 2, 3, 1, 1): {'comment': 'ASTM 31.20 healthcare license type',
- 'description': 'license? (1 2 840 10065 2 3 1 1)',
- 'hexoid': '06 09 2A 86 48 CE 51 02 03 01 01',
- 'name': 'license?',
- 'oid': (1, 2, 840, 10065, 2, 3, 1, 1)},
- (1, 2, 840, 113533, 7): {'description': 'nsn (1 2 840 113533 7)',
- 'hexoid': '06 07 2A 86 48 86 F6 7D 07',
- 'name': 'nsn',
- 'oid': (1, 2, 840, 113533, 7)},
- (1, 2, 840, 113533, 7, 65): {'description': 'nsn-ce (1 2 840 113533 7 65)',
- 'hexoid': '06 08 2A 86 48 86 F6 7D 07 41',
- 'name': 'nsn-ce',
- 'oid': (1, 2, 840, 113533, 7, 65)},
- (1, 2, 840, 113533, 7, 65, 0): {'comment': 'Nortel Secure Networks ce',
- 'description': 'entrustVersInfo (1 2 840 113533 7 65 0)',
- 'hexoid': '06 09 2A 86 48 86 F6 7D 07 41 00',
- 'name': 'entrustVersInfo',
- 'oid': (1, 2, 840, 113533, 7, 65, 0)},
- (1, 2, 840, 113533, 7, 66): {'description': 'nsn-alg (1 2 840 113533 7 66)',
- 'hexoid': '06 08 2A 86 48 86 F6 7D 07 42',
- 'name': 'nsn-alg',
- 'oid': (1, 2, 840, 113533, 7, 66)},
- (1, 2, 840, 113533, 7, 66, 3): {'comment': 'Nortel Secure Networks alg',
- 'description': 'cast3CBC (1 2 840 113533 7 66 3)',
- 'hexoid': '06 09 2A 86 48 86 F6 7D 07 42 03',
- 'name': 'cast3CBC',
- 'oid': (1, 2, 840, 113533, 7, 66, 3)},
- (1, 2, 840, 113533, 7, 66, 10): {'comment': 'Nortel Secure Networks alg',
- 'description': 'cast5CBC (1 2 840 113533 7 66 10)',
- 'hexoid': '06 09 2A 86 48 86 F6 7D 07 42 0A',
- 'name': 'cast5CBC',
- 'oid': (1, 2, 840, 113533, 7, 66, 10)},
- (1, 2, 840, 113533, 7, 66, 11): {'comment': 'Nortel Secure Networks alg',
- 'description': 'cast5MAC (1 2 840 113533 7 66 11)',
- 'hexoid': '06 09 2A 86 48 86 F6 7D 07 42 0B',
- 'name': 'cast5MAC',
- 'oid': (1, 2, 840, 113533, 7, 66, 11)},
- (1, 2, 840, 113533, 7, 66, 12): {'comment': 'Nortel Secure Networks alg',
- 'description': 'pbeWithMD5AndCAST5-CBC (1 2 840 113533 7 66 12)',
- 'hexoid': '06 09 2A 86 48 86 F6 7D 07 42 0C',
- 'name': 'pbeWithMD5AndCAST5-CBC',
- 'oid': (1, 2, 840, 113533, 7, 66, 12)},
- (1, 2, 840, 113533, 7, 66, 13): {'comment': 'Nortel Secure Networks alg',
- 'description': 'passwordBasedMac (1 2 840 113533 7 66 13)',
- 'hexoid': '06 09 2A 86 48 86 F6 7D 07 42 0D',
- 'name': 'passwordBasedMac',
- 'oid': (1, 2, 840, 113533, 7, 66, 13)},
- (1, 2, 840, 113533, 7, 67): {'description': 'nsn-oc (1 2 840 113533 7 67)',
- 'hexoid': '06 08 2A 86 48 86 F6 7D 07 43',
- 'name': 'nsn-oc',
- 'oid': (1, 2, 840, 113533, 7, 67)},
- (1, 2, 840, 113533, 7, 67, 0): {'comment': 'Nortel Secure Networks oc',
- 'description': 'entrustUser (1 2 840 113533 7 67 0)',
- 'hexoid': '06 09 2A 86 48 86 F6 7D 07 43 00',
- 'name': 'entrustUser',
- 'oid': (1, 2, 840, 113533, 7, 67, 0)},
- (1, 2, 840, 113533, 7, 68): {'description': 'nsn-at (1 2 840 113533 7 68)',
- 'hexoid': '06 08 2A 86 48 86 F6 7D 07 44',
- 'name': 'nsn-at',
- 'oid': (1, 2, 840, 113533, 7, 68)},
- (1, 2, 840, 113533, 7, 68, 0): {'comment': 'Nortel Secure Networks at',
- 'description': 'entrustCAInfo (1 2 840 113533 7 68 0)',
- 'hexoid': '06 09 2A 86 48 86 F6 7D 07 44 00',
- 'name': 'entrustCAInfo',
- 'oid': (1, 2, 840, 113533, 7, 68, 0)},
- (1, 2, 840, 113533, 7, 68, 10): {'comment': 'Nortel Secure Networks at',
- 'description': 'attributeCertificate (1 2 840 113533 7 68 10)',
- 'hexoid': '06 09 2A 86 48 86 F6 7D 07 44 0A',
- 'name': 'attributeCertificate',
- 'oid': (1, 2, 840, 113533, 7, 68, 10)},
- (1, 2, 840, 113549, 1, 1): {'description': 'pkcs-1 (1 2 840 113549 1 1)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 01 01',
- 'name': 'pkcs-1',
- 'oid': (1, 2, 840, 113549, 1, 1)},
- (1, 2, 840, 113549, 1, 1, 1): {'comment': 'PKCS #1',
- 'description': 'rsaEncryption (1 2 840 113549 1 1 1)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 01 01',
- 'name': 'rsaEncryption',
- 'oid': (1, 2, 840, 113549, 1, 1, 1)},
- (1, 2, 840, 113549, 1, 1, 2): {'comment': 'PKCS #1',
- 'description': 'md2withRSAEncryption (1 2 840 113549 1 1 2)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 01 02',
- 'name': 'md2withRSAEncryption',
- 'oid': (1, 2, 840, 113549, 1, 1, 2)},
- (1, 2, 840, 113549, 1, 1, 3): {'comment': 'PKCS #1',
- 'description': 'md4withRSAEncryption (1 2 840 113549 1 1 3)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 01 03',
- 'name': 'md4withRSAEncryption',
- 'oid': (1, 2, 840, 113549, 1, 1, 3)},
- (1, 2, 840, 113549, 1, 1, 4): {'comment': 'PKCS #1',
- 'description': 'md5withRSAEncryption (1 2 840 113549 1 1 4)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 01 04',
- 'name': 'md5withRSAEncryption',
- 'oid': (1, 2, 840, 113549, 1, 1, 4)},
- (1, 2, 840, 113549, 1, 1, 5): {'comment': 'PKCS #1',
- 'description': 'sha1withRSAEncryption (1 2 840 113549 1 1 5)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 01 05',
- 'name': 'sha1withRSAEncryption',
- 'oid': (1, 2, 840, 113549, 1, 1, 5)},
- (1, 2, 840, 113549, 1, 1, 6): {'comment': 'PKCS #1. This OID may also be assigned as ripemd160WithRSAEncryption',
- 'description': 'rsaOAEPEncryptionSET (1 2 840 113549 1 1 6)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 01 06',
- 'name': 'rsaOAEPEncryptionSET',
- 'oid': (1, 2, 840, 113549, 1, 1, 6)},
- (1, 2, 840, 113549, 1, 1, 7): {'comment': 'PKCS #1',
- 'description': 'rsaOAEP (1 2 840 113549 1 1 7)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 01 07',
- 'name': 'rsaOAEP',
- 'oid': (1, 2, 840, 113549, 1, 1, 7)},
- (1, 2, 840, 113549, 1, 1, 8): {'comment': 'PKCS #1',
- 'description': 'pkcs1-MGF (1 2 840 113549 1 1 8)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 01 08',
- 'name': 'pkcs1-MGF',
- 'oid': (1, 2, 840, 113549, 1, 1, 8)},
- (1, 2, 840, 113549, 1, 1, 9): {'comment': 'PKCS #1',
- 'description': 'rsaOAEP-pSpecified (1 2 840 113549 1 1 9)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 01 09',
- 'name': 'rsaOAEP-pSpecified',
- 'oid': (1, 2, 840, 113549, 1, 1, 9)},
- (1, 2, 840, 113549, 1, 1, 10): {'comment': 'PKCS #1',
- 'description': 'rsaPSS (1 2 840 113549 1 1 10)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 01 0A',
- 'name': 'rsaPSS',
- 'oid': (1, 2, 840, 113549, 1, 1, 10)},
- (1, 2, 840, 113549, 1, 1, 11): {'comment': 'PKCS #1',
- 'description': 'sha256WithRSAEncryption (1 2 840 113549 1 1 11)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 01 0B',
- 'name': 'sha256WithRSAEncryption',
- 'oid': (1, 2, 840, 113549, 1, 1, 11)},
- (1, 2, 840, 113549, 1, 1, 12): {'comment': 'PKCS #1',
- 'description': 'sha384WithRSAEncryption (1 2 840 113549 1 1 12)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 01 0C',
- 'name': 'sha384WithRSAEncryption',
- 'oid': (1, 2, 840, 113549, 1, 1, 12)},
- (1, 2, 840, 113549, 1, 1, 13): {'comment': 'PKCS #1',
- 'description': 'sha512WithRSAEncryption (1 2 840 113549 1 1 13)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 01 0D',
- 'name': 'sha512WithRSAEncryption',
- 'oid': (1, 2, 840, 113549, 1, 1, 13)},
- (1, 2, 840, 113549, 1, 3): {'description': 'pkcs-3 (1 2 840 113549 1 3)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 01 03',
- 'name': 'pkcs-3',
- 'oid': (1, 2, 840, 113549, 1, 3)},
- (1, 2, 840, 113549, 1, 3, 1): {'comment': 'PKCS #3',
- 'description': 'dhKeyAgreement (1 2 840 113549 1 3 1)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 03 01',
- 'name': 'dhKeyAgreement',
- 'oid': (1, 2, 840, 113549, 1, 3, 1)},
- (1, 2, 840, 113549, 1, 5): {'description': 'pkcs-5 (1 2 840 113549 1 5)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 01 05',
- 'name': 'pkcs-5',
- 'oid': (1, 2, 840, 113549, 1, 5)},
- (1, 2, 840, 113549, 1, 5, 1): {'comment': 'PKCS #5',
- 'description': 'pbeWithMD2AndDES-CBC (1 2 840 113549 1 5 1)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 05 01',
- 'name': 'pbeWithMD2AndDES-CBC',
- 'oid': (1, 2, 840, 113549, 1, 5, 1)},
- (1, 2, 840, 113549, 1, 5, 3): {'comment': 'PKCS #5',
- 'description': 'pbeWithMD5AndDES-CBC (1 2 840 113549 1 5 3)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 05 03',
- 'name': 'pbeWithMD5AndDES-CBC',
- 'oid': (1, 2, 840, 113549, 1, 5, 3)},
- (1, 2, 840, 113549, 1, 5, 4): {'comment': 'PKCS #5',
- 'description': 'pbeWithMD2AndRC2-CBC (1 2 840 113549 1 5 4)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 05 04',
- 'name': 'pbeWithMD2AndRC2-CBC',
- 'oid': (1, 2, 840, 113549, 1, 5, 4)},
- (1, 2, 840, 113549, 1, 5, 6): {'comment': 'PKCS #5',
- 'description': 'pbeWithMD5AndRC2-CBC (1 2 840 113549 1 5 6)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 05 06',
- 'name': 'pbeWithMD5AndRC2-CBC',
- 'oid': (1, 2, 840, 113549, 1, 5, 6)},
- (1, 2, 840, 113549, 1, 5, 10): {'comment': 'PKCS #5',
- 'description': 'pbeWithSHAAndDES-CBC (1 2 840 113549 1 5 10)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 05 0A',
- 'name': 'pbeWithSHAAndDES-CBC',
- 'oid': (1, 2, 840, 113549, 1, 5, 10)},
- (1, 2, 840, 113549, 1, 5, 12): {'comment': 'PKCS #5 v2.0',
- 'description': 'pkcs5PBKDF2 (1 2 840 113549 1 5 12)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 05 0C',
- 'name': 'pkcs5PBKDF2',
- 'oid': (1, 2, 840, 113549, 1, 5, 12)},
- (1, 2, 840, 113549, 1, 5, 13): {'comment': 'PKCS #5 v2.0',
- 'description': 'pkcs5PBES2 (1 2 840 113549 1 5 13)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 05 0D',
- 'name': 'pkcs5PBES2',
- 'oid': (1, 2, 840, 113549, 1, 5, 13)},
- (1, 2, 840, 113549, 1, 5, 14): {'comment': 'PKCS #5 v2.0',
- 'description': 'pkcs5PBMAC1 (1 2 840 113549 1 5 14)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 05 0E',
- 'name': 'pkcs5PBMAC1',
- 'oid': (1, 2, 840, 113549, 1, 5, 14)},
- (1, 2, 840, 113549, 1, 7): {'description': 'pkcs-7 (1 2 840 113549 1 7)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 01 07',
- 'name': 'pkcs-7',
- 'oid': (1, 2, 840, 113549, 1, 7)},
- (1, 2, 840, 113549, 1, 7, 1): {'comment': 'PKCS #7',
- 'description': 'data (1 2 840 113549 1 7 1)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 07 01',
- 'name': 'data',
- 'oid': (1, 2, 840, 113549, 1, 7, 1)},
- (1, 2, 840, 113549, 1, 7, 2): {'comment': 'PKCS #7',
- 'description': 'signedData (1 2 840 113549 1 7 2)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 07 02',
- 'name': 'signedData',
- 'oid': (1, 2, 840, 113549, 1, 7, 2)},
- (1, 2, 840, 113549, 1, 7, 3): {'comment': 'PKCS #7',
- 'description': 'envelopedData (1 2 840 113549 1 7 3)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 07 03',
- 'name': 'envelopedData',
- 'oid': (1, 2, 840, 113549, 1, 7, 3)},
- (1, 2, 840, 113549, 1, 7, 4): {'comment': 'PKCS #7',
- 'description': 'signedAndEnvelopedData (1 2 840 113549 1 7 4)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 07 04',
- 'name': 'signedAndEnvelopedData',
- 'oid': (1, 2, 840, 113549, 1, 7, 4)},
- (1, 2, 840, 113549, 1, 7, 5): {'comment': 'PKCS #7',
- 'description': 'digestedData (1 2 840 113549 1 7 5)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 07 05',
- 'name': 'digestedData',
- 'oid': (1, 2, 840, 113549, 1, 7, 5)},
- (1, 2, 840, 113549, 1, 7, 6): {'comment': 'PKCS #7',
- 'description': 'encryptedData (1 2 840 113549 1 7 6)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 07 06',
- 'name': 'encryptedData',
- 'oid': (1, 2, 840, 113549, 1, 7, 6)},
- (1, 2, 840, 113549, 1, 9): {'description': 'pkcs-9 (1 2 840 113549 1 9)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 01 09',
- 'name': 'pkcs-9',
- 'oid': (1, 2, 840, 113549, 1, 9)},
- (1, 2, 840, 113549, 1, 9, 1): {'comment': 'PKCS #9. Deprecated, use an altName extension instead',
- 'description': 'emailAddress (1 2 840 113549 1 9 1)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 01',
- 'name': 'emailAddress',
- 'oid': (1, 2, 840, 113549, 1, 9, 1)},
- (1, 2, 840, 113549, 1, 9, 2): {'comment': 'PKCS #9',
- 'description': 'unstructuredName (1 2 840 113549 1 9 2)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 02',
- 'name': 'unstructuredName',
- 'oid': (1, 2, 840, 113549, 1, 9, 2)},
- (1, 2, 840, 113549, 1, 9, 3): {'comment': 'PKCS #9',
- 'description': 'contentType (1 2 840 113549 1 9 3)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 03',
- 'name': 'contentType',
- 'oid': (1, 2, 840, 113549, 1, 9, 3)},
- (1, 2, 840, 113549, 1, 9, 4): {'comment': 'PKCS #9',
- 'description': 'messageDigest (1 2 840 113549 1 9 4)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 04',
- 'name': 'messageDigest',
- 'oid': (1, 2, 840, 113549, 1, 9, 4)},
- (1, 2, 840, 113549, 1, 9, 5): {'comment': 'PKCS #9',
- 'description': 'signingTime (1 2 840 113549 1 9 5)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 05',
- 'name': 'signingTime',
- 'oid': (1, 2, 840, 113549, 1, 9, 5)},
- (1, 2, 840, 113549, 1, 9, 6): {'comment': 'PKCS #9',
- 'description': 'countersignature (1 2 840 113549 1 9 6)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 06',
- 'name': 'countersignature',
- 'oid': (1, 2, 840, 113549, 1, 9, 6)},
- (1, 2, 840, 113549, 1, 9, 7): {'comment': 'PKCS #9',
- 'description': 'challengePassword (1 2 840 113549 1 9 7)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 07',
- 'name': 'challengePassword',
- 'oid': (1, 2, 840, 113549, 1, 9, 7)},
- (1, 2, 840, 113549, 1, 9, 8): {'comment': 'PKCS #9',
- 'description': 'unstructuredAddress (1 2 840 113549 1 9 8)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 08',
- 'name': 'unstructuredAddress',
- 'oid': (1, 2, 840, 113549, 1, 9, 8)},
- (1, 2, 840, 113549, 1, 9, 9): {'comment': 'PKCS #9',
- 'description': 'extendedCertificateAttributes (1 2 840 113549 1 9 9)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 09',
- 'name': 'extendedCertificateAttributes',
- 'oid': (1, 2, 840, 113549, 1, 9, 9)},
- (1, 2, 840, 113549, 1, 9, 13): {'comment': 'PKCS #9',
- 'description': 'signingDescription (1 2 840 113549 1 9 13)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 0D',
- 'name': 'signingDescription',
- 'oid': (1, 2, 840, 113549, 1, 9, 13)},
- (1, 2, 840, 113549, 1, 9, 14): {'comment': 'PKCS #9 via CRMF',
- 'description': 'extensionRequest (1 2 840 113549 1 9 14)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 0E',
- 'name': 'extensionRequest',
- 'oid': (1, 2, 840, 113549, 1, 9, 14)},
- (1, 2, 840, 113549, 1, 9, 15): {'comment': 'PKCS #9. This OID was formerly assigned as symmetricCapabilities, then reassigned as SMIMECapabilities, then renamed to the current name',
- 'description': 'sMIMECapabilities (1 2 840 113549 1 9 15)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 0F',
- 'name': 'sMIMECapabilities',
- 'oid': (1, 2, 840, 113549, 1, 9, 15)},
- (1, 2, 840, 113549, 1, 9, 15, 1): {'comment': 'sMIMECapabilities',
- 'description': 'preferSignedData (1 2 840 113549 1 9 15 1)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 0F 01',
- 'name': 'preferSignedData',
- 'oid': (1, 2, 840, 113549, 1, 9, 15, 1)},
- (1, 2, 840, 113549, 1, 9, 15, 2): {'comment': 'sMIMECapabilities',
- 'description': 'canNotDecryptAny (1 2 840 113549 1 9 15 2)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 0F 02',
- 'name': 'canNotDecryptAny',
- 'oid': (1, 2, 840, 113549, 1, 9, 15, 2)},
- (1, 2, 840, 113549, 1, 9, 16): {'comment': 'PKCS #9',
- 'description': 'id-sMIME (1 2 840 113549 1 9 16)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 10',
- 'name': 'id-sMIME',
- 'oid': (1, 2, 840, 113549, 1, 9, 16)},
- (1, 2, 840, 113549, 1, 9, 16, 0): {'comment': 'id-sMIME',
- 'description': 'id-mod (1 2 840 113549 1 9 16 0)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 10 00',
- 'name': 'id-mod',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 0)},
- (1, 2, 840, 113549, 1, 9, 16, 0, 1): {'comment': 'S/MIME Modules',
- 'description': 'id-mod-cms (1 2 840 113549 1 9 16 0 1)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 00 01',
- 'name': 'id-mod-cms',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 0,
- 1)},
- (1, 2, 840, 113549, 1, 9, 16, 0, 2): {'comment': 'S/MIME Modules',
- 'description': 'id-mod-ess (1 2 840 113549 1 9 16 0 2)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 00 02',
- 'name': 'id-mod-ess',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 0,
- 2)},
- (1, 2, 840, 113549, 1, 9, 16, 0, 3): {'comment': 'S/MIME Modules',
- 'description': 'id-mod-oid (1 2 840 113549 1 9 16 0 3)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 00 03',
- 'name': 'id-mod-oid',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 0,
- 3)},
- (1, 2, 840, 113549, 1, 9, 16, 0, 4): {'comment': 'S/MIME Modules',
- 'description': 'id-mod-msg-v3 (1 2 840 113549 1 9 16 0 4)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 00 04',
- 'name': 'id-mod-msg-v3',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 0,
- 4)},
- (1, 2, 840, 113549, 1, 9, 16, 0, 5): {'comment': 'S/MIME Modules',
- 'description': 'id-mod-ets-eSignature-88 (1 2 840 113549 1 9 16 0 5)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 00 05',
- 'name': 'id-mod-ets-eSignature-88',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 0,
- 5)},
- (1, 2, 840, 113549, 1, 9, 16, 0, 6): {'comment': 'S/MIME Modules',
- 'description': 'id-mod-ets-eSignature-97 (1 2 840 113549 1 9 16 0 6)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 00 06',
- 'name': 'id-mod-ets-eSignature-97',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 0,
- 6)},
- (1, 2, 840, 113549, 1, 9, 16, 0, 7): {'comment': 'S/MIME Modules',
- 'description': 'id-mod-ets-eSigPolicy-88 (1 2 840 113549 1 9 16 0 7)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 00 07',
- 'name': 'id-mod-ets-eSigPolicy-88',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 0,
- 7)},
- (1, 2, 840, 113549, 1, 9, 16, 0, 8): {'comment': 'S/MIME Modules',
- 'description': 'id-mod-ets-eSigPolicy-88 (1 2 840 113549 1 9 16 0 8)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 00 08',
- 'name': 'id-mod-ets-eSigPolicy-88',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 0,
- 8)},
- (1, 2, 840, 113549, 1, 9, 16, 1): {'comment': 'S/MIME',
- 'description': 'contentType (1 2 840 113549 1 9 16 1)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 10 01',
- 'name': 'contentType',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 1)},
- (1, 2, 840, 113549, 1, 9, 16, 1, 1): {'comment': 'S/MIME Content Types',
- 'description': 'receipt (1 2 840 113549 1 9 16 1 1)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 01',
- 'name': 'receipt',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 1,
- 1)},
- (1, 2, 840, 113549, 1, 9, 16, 1, 2): {'comment': 'S/MIME Content Types',
- 'description': 'authData (1 2 840 113549 1 9 16 1 2)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 02',
- 'name': 'authData',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 1,
- 2)},
- (1, 2, 840, 113549, 1, 9, 16, 1, 3): {'comment': 'S/MIME Content Types',
- 'description': 'publishCert (1 2 840 113549 1 9 16 1 3)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 03',
- 'name': 'publishCert',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 1,
- 3)},
- (1, 2, 840, 113549, 1, 9, 16, 1, 4): {'comment': 'S/MIME Content Types',
- 'description': 'tSTInfo (1 2 840 113549 1 9 16 1 4)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 04',
- 'name': 'tSTInfo',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 1,
- 4)},
- (1, 2, 840, 113549, 1, 9, 16, 1, 5): {'comment': 'S/MIME Content Types',
- 'description': 'tDTInfo (1 2 840 113549 1 9 16 1 5)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 05',
- 'name': 'tDTInfo',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 1,
- 5)},
- (1, 2, 840, 113549, 1, 9, 16, 1, 6): {'comment': 'S/MIME Content Types',
- 'description': 'contentInfo (1 2 840 113549 1 9 16 1 6)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 06',
- 'name': 'contentInfo',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 1,
- 6)},
- (1, 2, 840, 113549, 1, 9, 16, 1, 7): {'comment': 'S/MIME Content Types',
- 'description': 'dVCSRequestData (1 2 840 113549 1 9 16 1 7)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 07',
- 'name': 'dVCSRequestData',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 1,
- 7)},
- (1, 2, 840, 113549, 1, 9, 16, 1, 8): {'comment': 'S/MIME Content Types',
- 'description': 'dVCSResponseData (1 2 840 113549 1 9 16 1 8)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 08',
- 'name': 'dVCSResponseData',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 1,
- 8)},
- (1, 2, 840, 113549, 1, 9, 16, 1, 9): {'comment': 'S/MIME Content Types',
- 'description': 'compressedData (1 2 840 113549 1 9 16 1 9)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 09',
- 'name': 'compressedData',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 1,
- 9)},
- (1, 2, 840, 113549, 1, 9, 16, 1, 24): {'comment': 'RPKI project',
- 'description': 'id-ct-routeOriginAttestation (1 2 840 113549 1 9 16 1 24)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 18',
- 'name': 'id-ct-routeOriginAttestation',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 1,
- 24)},
- (1, 2, 840, 113549, 1, 9, 16, 1, 26): {'comment': 'RPKI project',
- 'description': 'id-ct-rpkiManifest (1 2 840 113549 1 9 16 1 26)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 1A',
- 'name': 'id-ct-rpkiManifest',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 1,
- 26)},
- (1, 2, 840, 113549, 1, 9, 16, 1, 28): {'comment': 'RPKI project',
- 'description': 'id-ct-xml (1 2 840 113549 1 9 16 1 28)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 1C',
- 'name': 'id-ct-xml',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 1,
- 28)},
- (1, 2, 840, 113549, 1, 9, 16, 2): {'comment': 'S/MIME',
- 'description': 'authenticatedAttributes (1 2 840 113549 1 9 16 2)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 10 02',
- 'name': 'authenticatedAttributes',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 2)},
- (1, 2, 840, 113549, 1, 9, 16, 2, 1): {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'receiptRequest (1 2 840 113549 1 9 16 2 1)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 01',
- 'name': 'receiptRequest',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 2,
- 1)},
- (1, 2, 840, 113549, 1, 9, 16, 2, 2): {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'securityLabel (1 2 840 113549 1 9 16 2 2)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 02',
- 'name': 'securityLabel',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 2,
- 2)},
- (1, 2, 840, 113549, 1, 9, 16, 2, 3): {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'mlExpandHistory (1 2 840 113549 1 9 16 2 3)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 03',
- 'name': 'mlExpandHistory',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 2,
- 3)},
- (1, 2, 840, 113549, 1, 9, 16, 2, 4): {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'contentHint (1 2 840 113549 1 9 16 2 4)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 04',
- 'name': 'contentHint',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 2,
- 4)},
- (1, 2, 840, 113549, 1, 9, 16, 2, 5): {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'msgSigDigest (1 2 840 113549 1 9 16 2 5)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 05',
- 'name': 'msgSigDigest',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 2,
- 5)},
- (1, 2, 840, 113549, 1, 9, 16, 2, 7): {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'contentIdentifier (1 2 840 113549 1 9 16 2 7)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 07',
- 'name': 'contentIdentifier',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 2,
- 7)},
- (1, 2, 840, 113549, 1, 9, 16, 2, 9): {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'equivalentLabels (1 2 840 113549 1 9 16 2 9)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 09',
- 'name': 'equivalentLabels',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 2,
- 9)},
- (1, 2, 840, 113549, 1, 9, 16, 2, 10): {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'contentReference (1 2 840 113549 1 9 16 2 10)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 0A',
- 'name': 'contentReference',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 2,
- 10)},
- (1, 2, 840, 113549, 1, 9, 16, 2, 11): {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'encrypKeyPref (1 2 840 113549 1 9 16 2 11)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 0B',
- 'name': 'encrypKeyPref',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 2,
- 11)},
- (1, 2, 840, 113549, 1, 9, 16, 2, 12): {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'signingCertificate (1 2 840 113549 1 9 16 2 12)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 0C',
- 'name': 'signingCertificate',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 2,
- 12)},
- (1, 2, 840, 113549, 1, 9, 16, 2, 13): {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'smimeEncryptCerts (1 2 840 113549 1 9 16 2 13)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 0D',
- 'name': 'smimeEncryptCerts',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 2,
- 13)},
- (1, 2, 840, 113549, 1, 9, 16, 2, 14): {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'timeStampToken (1 2 840 113549 1 9 16 2 14)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 0E',
- 'name': 'timeStampToken',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 2,
- 14)},
- (1, 2, 840, 113549, 1, 9, 16, 2, 15): {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'sigPolicyId (1 2 840 113549 1 9 16 2 15)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 0F',
- 'name': 'sigPolicyId',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 2,
- 15)},
- (1, 2, 840, 113549, 1, 9, 16, 2, 16): {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'commitmentType (1 2 840 113549 1 9 16 2 16)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 10',
- 'name': 'commitmentType',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 2,
- 16)},
- (1, 2, 840, 113549, 1, 9, 16, 2, 17): {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'signerLocation (1 2 840 113549 1 9 16 2 17)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 11',
- 'name': 'signerLocation',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 2,
- 17)},
- (1, 2, 840, 113549, 1, 9, 16, 2, 18): {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'signerAttr (1 2 840 113549 1 9 16 2 18)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 12',
- 'name': 'signerAttr',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 2,
- 18)},
- (1, 2, 840, 113549, 1, 9, 16, 2, 19): {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'otherSigCert (1 2 840 113549 1 9 16 2 19)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 13',
- 'name': 'otherSigCert',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 2,
- 19)},
- (1, 2, 840, 113549, 1, 9, 16, 2, 20): {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'contentTimestamp (1 2 840 113549 1 9 16 2 20)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 14',
- 'name': 'contentTimestamp',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 2,
- 20)},
- (1, 2, 840, 113549, 1, 9, 16, 2, 21): {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'certificateRefs (1 2 840 113549 1 9 16 2 21)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 15',
- 'name': 'certificateRefs',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 2,
- 21)},
- (1, 2, 840, 113549, 1, 9, 16, 2, 22): {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'revocationRefs (1 2 840 113549 1 9 16 2 22)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 16',
- 'name': 'revocationRefs',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 2,
- 22)},
- (1, 2, 840, 113549, 1, 9, 16, 2, 23): {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'certValues (1 2 840 113549 1 9 16 2 23)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 17',
- 'name': 'certValues',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 2,
- 23)},
- (1, 2, 840, 113549, 1, 9, 16, 2, 24): {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'revocationValues (1 2 840 113549 1 9 16 2 24)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 18',
- 'name': 'revocationValues',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 2,
- 24)},
- (1, 2, 840, 113549, 1, 9, 16, 2, 25): {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'escTimeStamp (1 2 840 113549 1 9 16 2 25)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 19',
- 'name': 'escTimeStamp',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 2,
- 25)},
- (1, 2, 840, 113549, 1, 9, 16, 2, 26): {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'certCRLTimestamp (1 2 840 113549 1 9 16 2 26)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 1A',
- 'name': 'certCRLTimestamp',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 2,
- 26)},
- (1, 2, 840, 113549, 1, 9, 16, 2, 27): {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'archiveTimeStamp (1 2 840 113549 1 9 16 2 27)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 1B',
- 'name': 'archiveTimeStamp',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 2,
- 27)},
- (1, 2, 840, 113549, 1, 9, 16, 2, 28): {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'signatureType (1 2 840 113549 1 9 16 2 28)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 1C',
- 'name': 'signatureType',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 2,
- 28)},
- (1, 2, 840, 113549, 1, 9, 16, 2, 29): {'comment': 'S/MIME Authenticated Attributes',
- 'description': 'dvcs-dvc (1 2 840 113549 1 9 16 2 29)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 1D',
- 'name': 'dvcs-dvc',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 2,
- 29)},
- (1, 2, 840, 113549, 1, 9, 16, 3, 5): {'comment': 'S/MIME Algorithms',
- 'description': 'esDH (1 2 840 113549 1 9 16 3 5)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 03 05',
- 'name': 'esDH',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 3,
- 5)},
- (1, 2, 840, 113549, 1, 9, 16, 3, 6): {'comment': 'S/MIME Algorithms',
- 'description': 'cms3DESwrap (1 2 840 113549 1 9 16 3 6)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 03 06',
- 'name': 'cms3DESwrap',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 3,
- 6)},
- (1, 2, 840, 113549, 1, 9, 16, 3, 7): {'comment': 'S/MIME Algorithms',
- 'description': 'cmsRC2wrap (1 2 840 113549 1 9 16 3 7)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 03 07',
- 'name': 'cmsRC2wrap',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 3,
- 7)},
- (1, 2, 840, 113549, 1, 9, 16, 3, 8): {'comment': 'S/MIME Algorithms',
- 'description': 'zlib (1 2 840 113549 1 9 16 3 8)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 03 08',
- 'name': 'zlib',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 3,
- 8)},
- (1, 2, 840, 113549, 1, 9, 16, 3, 9): {'comment': 'S/MIME Algorithms',
- 'description': 'pwri-KEK (1 2 840 113549 1 9 16 3 9)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 03 09',
- 'name': 'pwri-KEK',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 3,
- 9)},
- (1, 2, 840, 113549, 1, 9, 16, 4, 1): {'comment': 'S/MIME Certificate Distribution',
- 'description': 'certDist-ldap (1 2 840 113549 1 9 16 4 1)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 04 01',
- 'name': 'certDist-ldap',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 4,
- 1)},
- (1, 2, 840, 113549, 1, 9, 16, 5, 1): {'comment': 'S/MIME Signature Policy Qualifier',
- 'description': 'sigPolicyQualifier-spuri (1 2 840 113549 1 9 16 5 1)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 05 01',
- 'name': 'sigPolicyQualifier-spuri',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 5,
- 1)},
- (1, 2, 840, 113549, 1, 9, 16, 5, 2): {'comment': 'S/MIME Signature Policy Qualifier',
- 'description': 'sigPolicyQualifier-spUserNotice (1 2 840 113549 1 9 16 5 2)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 05 02',
- 'name': 'sigPolicyQualifier-spUserNotice',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 5,
- 2)},
- (1, 2, 840, 113549, 1, 9, 16, 6, 1): {'comment': 'S/MIME',
- 'description': 'proofOfOrigin (1 2 840 113549 1 9 16 6 1)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 06 01',
- 'name': 'proofOfOrigin',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 6,
- 1)},
- (1, 2, 840, 113549, 1, 9, 16, 6, 2): {'comment': 'S/MIME',
- 'description': 'proofOfReceipt (1 2 840 113549 1 9 16 6 2)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 06 02',
- 'name': 'proofOfReceipt',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 6,
- 2)},
- (1, 2, 840, 113549, 1, 9, 16, 6, 3): {'comment': 'S/MIME',
- 'description': 'proofOfDelivery (1 2 840 113549 1 9 16 6 3)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 06 03',
- 'name': 'proofOfDelivery',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 6,
- 3)},
- (1, 2, 840, 113549, 1, 9, 16, 6, 4): {'comment': 'S/MIME',
- 'description': 'proofOfSender (1 2 840 113549 1 9 16 6 4)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 06 04',
- 'name': 'proofOfSender',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 6,
- 4)},
- (1, 2, 840, 113549, 1, 9, 16, 6, 5): {'comment': 'S/MIME',
- 'description': 'proofOfApproval (1 2 840 113549 1 9 16 6 5)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 06 05',
- 'name': 'proofOfApproval',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 6,
- 5)},
- (1, 2, 840, 113549, 1, 9, 16, 6, 6): {'comment': 'S/MIME',
- 'description': 'proofOfCreation (1 2 840 113549 1 9 16 6 6)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 06 06',
- 'name': 'proofOfCreation',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 6,
- 6)},
- (1, 2, 840, 113549, 1, 9, 16, 9): {'comment': 'S/MIME',
- 'description': 'signatureTypeIdentifier (1 2 840 113549 1 9 16 9)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 10 09',
- 'name': 'signatureTypeIdentifier',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 9)},
- (1, 2, 840, 113549, 1, 9, 16, 9, 1): {'comment': 'S/MIME Signature Type Identifier',
- 'description': 'originatorSig (1 2 840 113549 1 9 16 9 1)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 09 01',
- 'name': 'originatorSig',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 9,
- 1)},
- (1, 2, 840, 113549, 1, 9, 16, 9, 2): {'comment': 'S/MIME Signature Type Identifier',
- 'description': 'domainSig (1 2 840 113549 1 9 16 9 2)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 09 02',
- 'name': 'domainSig',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 9,
- 2)},
- (1, 2, 840, 113549, 1, 9, 16, 9, 3): {'comment': 'S/MIME Signature Type Identifier',
- 'description': 'additionalAttributesSig (1 2 840 113549 1 9 16 9 3)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 09 03',
- 'name': 'additionalAttributesSig',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 9,
- 3)},
- (1, 2, 840, 113549, 1, 9, 16, 9, 4): {'comment': 'S/MIME Signature Type Identifier',
- 'description': 'reviewSig (1 2 840 113549 1 9 16 9 4)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 09 04',
- 'name': 'reviewSig',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 9,
- 4)},
- (1, 2, 840, 113549, 1, 9, 16, 11): {'comment': 'S/MIME',
- 'description': 'capabilities (1 2 840 113549 1 9 16 11)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 10 0B',
- 'name': 'capabilities',
- 'oid': (1, 2, 840, 113549, 1, 9, 16, 11)},
- (1, 2, 840, 113549, 1, 9, 16, 11, 1): {'comment': 'S/MIME Capability',
- 'description': 'preferBinaryInside (1 2 840 113549 1 9 16 11 1)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 0B 01',
- 'name': 'preferBinaryInside',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 9,
- 16,
- 11,
- 1)},
- (1, 2, 840, 113549, 1, 9, 20): {'comment': 'PKCS #9 via PKCS #12',
- 'description': 'friendlyName (for PKCS #12) (1 2 840 113549 1 9 20)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 14',
- 'name': 'friendlyName',
- 'oid': (1, 2, 840, 113549, 1, 9, 20)},
- (1, 2, 840, 113549, 1, 9, 21): {'comment': 'PKCS #9 via PKCS #12',
- 'description': 'localKeyID (for PKCS #12) (1 2 840 113549 1 9 21)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 15',
- 'name': 'localKeyID',
- 'oid': (1, 2, 840, 113549, 1, 9, 21)},
- (1, 2, 840, 113549, 1, 9, 22): {'comment': 'PKCS #9 via PKCS #12',
- 'description': 'certTypes (for PKCS #12) (1 2 840 113549 1 9 22)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 16',
- 'name': 'certTypes',
- 'oid': (1, 2, 840, 113549, 1, 9, 22)},
- (1, 2, 840, 113549, 1, 9, 22, 1): {'comment': 'PKCS #9 via PKCS #12',
- 'description': 'x509Certificate (for PKCS #12) (1 2 840 113549 1 9 22 1)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 16 01',
- 'name': 'x509Certificate',
- 'oid': (1, 2, 840, 113549, 1, 9, 22, 1)},
- (1, 2, 840, 113549, 1, 9, 22, 2): {'comment': 'PKCS #9 via PKCS #12',
- 'description': 'sdsiCertificate (for PKCS #12) (1 2 840 113549 1 9 22 2)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 16 02',
- 'name': 'sdsiCertificate',
- 'oid': (1, 2, 840, 113549, 1, 9, 22, 2)},
- (1, 2, 840, 113549, 1, 9, 23): {'comment': 'PKCS #9 via PKCS #12',
- 'description': 'crlTypes (for PKCS #12) (1 2 840 113549 1 9 23)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 17',
- 'name': 'crlTypes',
- 'oid': (1, 2, 840, 113549, 1, 9, 23)},
- (1, 2, 840, 113549, 1, 9, 23, 1): {'comment': 'PKCS #9 via PKCS #12',
- 'description': 'x509Crl (for PKCS #12) (1 2 840 113549 1 9 23 1)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 17 01',
- 'name': 'x509Crl',
- 'oid': (1, 2, 840, 113549, 1, 9, 23, 1)},
- (1, 2, 840, 113549, 1, 9, 24): {'comment': 'PKCS #9/RFC 2985',
- 'description': 'pkcs9objectClass (1 2 840 113549 1 9 24)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 18',
- 'name': 'pkcs9objectClass',
- 'oid': (1, 2, 840, 113549, 1, 9, 24)},
- (1, 2, 840, 113549, 1, 9, 25): {'comment': 'PKCS #9/RFC 2985',
- 'description': 'pkcs9attributes (1 2 840 113549 1 9 25)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 19',
- 'name': 'pkcs9attributes',
- 'oid': (1, 2, 840, 113549, 1, 9, 25)},
- (1, 2, 840, 113549, 1, 9, 25, 1): {'comment': 'PKCS #9/RFC 2985 attribute',
- 'description': 'pkcs15Token (1 2 840 113549 1 9 25 1)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 19 01',
- 'name': 'pkcs15Token',
- 'oid': (1, 2, 840, 113549, 1, 9, 25, 1)},
- (1, 2, 840, 113549, 1, 9, 25, 2): {'comment': 'PKCS #9/RFC 2985 attribute',
- 'description': 'encryptedPrivateKeyInfo (1 2 840 113549 1 9 25 2)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 19 02',
- 'name': 'encryptedPrivateKeyInfo',
- 'oid': (1, 2, 840, 113549, 1, 9, 25, 2)},
- (1, 2, 840, 113549, 1, 9, 25, 3): {'comment': 'PKCS #9/RFC 2985 attribute',
- 'description': 'randomNonce (1 2 840 113549 1 9 25 3)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 19 03',
- 'name': 'randomNonce',
- 'oid': (1, 2, 840, 113549, 1, 9, 25, 3)},
- (1, 2, 840, 113549, 1, 9, 25, 4): {'comment': 'PKCS #9/RFC 2985 attribute',
- 'description': 'sequenceNumber (1 2 840 113549 1 9 25 4)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 19 04',
- 'name': 'sequenceNumber',
- 'oid': (1, 2, 840, 113549, 1, 9, 25, 4)},
- (1, 2, 840, 113549, 1, 9, 25, 5): {'comment': 'PKCS #9/RFC 2985 attribute',
- 'description': 'pkcs7PDU (1 2 840 113549 1 9 25 5)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 19 05',
- 'name': 'pkcs7PDU',
- 'oid': (1, 2, 840, 113549, 1, 9, 25, 5)},
- (1, 2, 840, 113549, 1, 9, 26): {'comment': 'PKCS #9/RFC 2985',
- 'description': 'pkcs9syntax (1 2 840 113549 1 9 26)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 1A',
- 'name': 'pkcs9syntax',
- 'oid': (1, 2, 840, 113549, 1, 9, 26)},
- (1, 2, 840, 113549, 1, 9, 27): {'comment': 'PKCS #9/RFC 2985',
- 'description': 'pkcs9matchingRules (1 2 840 113549 1 9 27)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 1B',
- 'name': 'pkcs9matchingRules',
- 'oid': (1, 2, 840, 113549, 1, 9, 27)},
- (1, 2, 840, 113549, 1, 12): {'description': 'pkcs-12 (1 2 840 113549 1 12)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 01 0C',
- 'name': 'pkcs-12',
- 'oid': (1, 2, 840, 113549, 1, 12)},
- (1, 2, 840, 113549, 1, 12, 1): {'comment': 'This OID was formerly assigned as PKCS #12 modeID',
- 'description': 'pkcs-12-PbeIds (1 2 840 113549 1 12 1)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 0C 01',
- 'name': 'pkcs-12-PbeIds',
- 'oid': (1, 2, 840, 113549, 1, 12, 1)},
- (1, 2, 840, 113549, 1, 12, 1, 1): {'comment': 'PKCS #12 PbeIds. This OID was formerly assigned as pkcs-12-OfflineTransportMode',
- 'description': 'pbeWithSHAAnd128BitRC4 (1 2 840 113549 1 12 1 1)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 01 01',
- 'name': 'pbeWithSHAAnd128BitRC4',
- 'oid': (1, 2, 840, 113549, 1, 12, 1, 1)},
- (1, 2, 840, 113549, 1, 12, 1, 2): {'comment': 'PKCS #12 PbeIds. This OID was formerly assigned as pkcs-12-OnlineTransportMode',
- 'description': 'pbeWithSHAAnd40BitRC4 (1 2 840 113549 1 12 1 2)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 01 02',
- 'name': 'pbeWithSHAAnd40BitRC4',
- 'oid': (1, 2, 840, 113549, 1, 12, 1, 2)},
- (1, 2, 840, 113549, 1, 12, 1, 3): {'comment': 'PKCS #12 PbeIds',
- 'description': 'pbeWithSHAAnd3-KeyTripleDES-CBC (1 2 840 113549 1 12 1 3)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 01 03',
- 'name': 'pbeWithSHAAnd3-KeyTripleDES-CBC',
- 'oid': (1, 2, 840, 113549, 1, 12, 1, 3)},
- (1, 2, 840, 113549, 1, 12, 1, 4): {'comment': 'PKCS #12 PbeIds',
- 'description': 'pbeWithSHAAnd2-KeyTripleDES-CBC (1 2 840 113549 1 12 1 4)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 01 04',
- 'name': 'pbeWithSHAAnd2-KeyTripleDES-CBC',
- 'oid': (1, 2, 840, 113549, 1, 12, 1, 4)},
- (1, 2, 840, 113549, 1, 12, 1, 5): {'comment': 'PKCS #12 PbeIds',
- 'description': 'pbeWithSHAAnd128BitRC2-CBC (1 2 840 113549 1 12 1 5)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 01 05',
- 'name': 'pbeWithSHAAnd128BitRC2-CBC',
- 'oid': (1, 2, 840, 113549, 1, 12, 1, 5)},
- (1, 2, 840, 113549, 1, 12, 1, 6): {'comment': 'PKCS #12 PbeIds',
- 'description': 'pbeWithSHAAnd40BitRC2-CBC (1 2 840 113549 1 12 1 6)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 01 06',
- 'name': 'pbeWithSHAAnd40BitRC2-CBC',
- 'oid': (1, 2, 840, 113549, 1, 12, 1, 6)},
- (1, 2, 840, 113549, 1, 12, 3): {'description': 'pkcs-12-BagIds (1 2 840 113549 1 12 3)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 0C 03',
- 'name': 'pkcs-12-BagIds',
- 'oid': (1, 2, 840, 113549, 1, 12, 3)},
- (1, 2, 840, 113549, 1, 12, 3, 1): {'comment': 'PKCS #12 BagIds',
- 'description': 'pkcs-12-keyBagId (1 2 840 113549 1 12 3 1)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 03 01',
- 'name': 'pkcs-12-keyBagId',
- 'oid': (1, 2, 840, 113549, 1, 12, 3, 1)},
- (1, 2, 840, 113549, 1, 12, 3, 2): {'comment': 'PKCS #12 BagIds',
- 'description': 'pkcs-12-certAndCRLBagId (1 2 840 113549 1 12 3 2)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 03 02',
- 'name': 'pkcs-12-certAndCRLBagId',
- 'oid': (1, 2, 840, 113549, 1, 12, 3, 2)},
- (1, 2, 840, 113549, 1, 12, 3, 3): {'comment': 'PKCS #12 BagIds',
- 'description': 'pkcs-12-secretBagId (1 2 840 113549 1 12 3 3)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 03 03',
- 'name': 'pkcs-12-secretBagId',
- 'oid': (1, 2, 840, 113549, 1, 12, 3, 3)},
- (1, 2, 840, 113549, 1, 12, 3, 4): {'comment': 'PKCS #12 BagIds',
- 'description': 'pkcs-12-safeContentsId (1 2 840 113549 1 12 3 4)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 03 04',
- 'name': 'pkcs-12-safeContentsId',
- 'oid': (1, 2, 840, 113549, 1, 12, 3, 4)},
- (1, 2, 840, 113549, 1, 12, 3, 5): {'comment': 'PKCS #12 BagIds',
- 'description': 'pkcs-12-pkcs-8ShroudedKeyBagId (1 2 840 113549 1 12 3 5)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 03 05',
- 'name': 'pkcs-12-pkcs-8ShroudedKeyBagId',
- 'oid': (1, 2, 840, 113549, 1, 12, 3, 5)},
- (1, 2, 840, 113549, 1, 12, 4, 1): {'comment': 'PKCS #12 CertBagID. This OID was formerly assigned as pkcs-12-X509CertCRLBag',
- 'description': 'pkcs-12-X509CertCRLBagID (1 2 840 113549 1 12 4 1)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 04 01',
- 'name': 'pkcs-12-X509CertCRLBagID',
- 'oid': (1, 2, 840, 113549, 1, 12, 4, 1)},
- (1, 2, 840, 113549, 1, 12, 4, 2): {'comment': 'PKCS #12 CertBagID. This OID was formerly assigned as pkcs-12-SDSICertBag',
- 'description': 'pkcs-12-SDSICertBagID (1 2 840 113549 1 12 4 2)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 04 02',
- 'name': 'pkcs-12-SDSICertBagID',
- 'oid': (1, 2, 840, 113549, 1, 12, 4, 2)},
- (1, 2, 840, 113549, 1, 12, 5, 2): {'comment': 'PKCS #12 OID. Deprecated, use the conventional PKCS #1 OIDs instead',
- 'description': 'pkcs-12-EnvelopingID (1 2 840 113549 1 12 5 2)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 05 02',
- 'name': 'pkcs-12-EnvelopingID',
- 'oid': (1, 2, 840, 113549, 1, 12, 5, 2)},
- (1, 2, 840, 113549, 1, 12, 10): {'description': 'pkcs-12Version1 (1 2 840 113549 1 12 10)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 0C 0A',
- 'name': 'pkcs-12Version1',
- 'oid': (1, 2, 840, 113549, 1, 12, 10)},
- (1, 2, 840, 113549, 1, 12, 10, 1): {'description': 'pkcs-12BadIds (1 2 840 113549 1 12 10 1)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 0A 01',
- 'name': 'pkcs-12BadIds',
- 'oid': (1, 2, 840, 113549, 1, 12, 10, 1)},
- (1, 2, 840, 113549, 1, 12, 10, 1, 1): {'comment': 'PKCS #12 BagIds',
- 'description': 'pkcs-12-keyBag (1 2 840 113549 1 12 10 1 1)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 0A 01 01',
- 'name': 'pkcs-12-keyBag',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 12,
- 10,
- 1,
- 1)},
- (1, 2, 840, 113549, 1, 12, 10, 1, 2): {'comment': 'PKCS #12 BagIds',
- 'description': 'pkcs-12-pkcs-8ShroudedKeyBag (1 2 840 113549 1 12 10 1 2)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 0A 01 02',
- 'name': 'pkcs-12-pkcs-8ShroudedKeyBag',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 12,
- 10,
- 1,
- 2)},
- (1, 2, 840, 113549, 1, 12, 10, 1, 3): {'comment': 'PKCS #12 BagIds',
- 'description': 'pkcs-12-certBag (1 2 840 113549 1 12 10 1 3)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 0A 01 03',
- 'name': 'pkcs-12-certBag',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 12,
- 10,
- 1,
- 3)},
- (1, 2, 840, 113549, 1, 12, 10, 1, 4): {'comment': 'PKCS #12 BagIds',
- 'description': 'pkcs-12-crlBag (1 2 840 113549 1 12 10 1 4)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 0A 01 04',
- 'name': 'pkcs-12-crlBag',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 12,
- 10,
- 1,
- 4)},
- (1, 2, 840, 113549, 1, 12, 10, 1, 5): {'comment': 'PKCS #12 BagIds',
- 'description': 'pkcs-12-secretBag (1 2 840 113549 1 12 10 1 5)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 0A 01 05',
- 'name': 'pkcs-12-secretBag',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 12,
- 10,
- 1,
- 5)},
- (1, 2, 840, 113549, 1, 12, 10, 1, 6): {'comment': 'PKCS #12 BagIds',
- 'description': 'pkcs-12-safeContentsBag (1 2 840 113549 1 12 10 1 6)',
- 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 0A 01 06',
- 'name': 'pkcs-12-safeContentsBag',
- 'oid': (1,
- 2,
- 840,
- 113549,
- 1,
- 12,
- 10,
- 1,
- 6)},
- (1, 2, 840, 113549, 1, 15, 1): {'comment': 'PKCS #15',
- 'description': 'pkcs15modules (1 2 840 113549 1 15 1)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 0F 01',
- 'name': 'pkcs15modules',
- 'oid': (1, 2, 840, 113549, 1, 15, 1)},
- (1, 2, 840, 113549, 1, 15, 2): {'comment': 'PKCS #15',
- 'description': 'pkcs15attributes (1 2 840 113549 1 15 2)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 0F 02',
- 'name': 'pkcs15attributes',
- 'oid': (1, 2, 840, 113549, 1, 15, 2)},
- (1, 2, 840, 113549, 1, 15, 3): {'comment': 'PKCS #15',
- 'description': 'pkcs15contentType (1 2 840 113549 1 15 3)',
- 'hexoid': '06 09 2A 86 48 86 F7 0D 01 0F 03',
- 'name': 'pkcs15contentType',
- 'oid': (1, 2, 840, 113549, 1, 15, 3)},
- (1, 2, 840, 113549, 1, 15, 3, 1): {'comment': 'PKCS #15 content type',
- 'description': 'pkcs15content (1 2 840 113549 1 15 3 1)',
- 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0F 03 01',
- 'name': 'pkcs15content',
- 'oid': (1, 2, 840, 113549, 1, 15, 3, 1)},
- (1, 2, 840, 113549, 2): {'description': 'digestAlgorithm (1 2 840 113549 2)',
- 'hexoid': '06 07 2A 86 48 86 F7 0D 02',
- 'name': 'digestAlgorithm',
- 'oid': (1, 2, 840, 113549, 2)},
- (1, 2, 840, 113549, 2, 2): {'comment': 'RSADSI digestAlgorithm',
- 'description': 'md2 (1 2 840 113549 2 2)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 02 02',
- 'name': 'md2',
- 'oid': (1, 2, 840, 113549, 2, 2)},
- (1, 2, 840, 113549, 2, 4): {'comment': 'RSADSI digestAlgorithm',
- 'description': 'md4 (1 2 840 113549 2 4)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 02 04',
- 'name': 'md4',
- 'oid': (1, 2, 840, 113549, 2, 4)},
- (1, 2, 840, 113549, 2, 5): {'comment': 'RSADSI digestAlgorithm',
- 'description': 'md5 (1 2 840 113549 2 5)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 02 05',
- 'name': 'md5',
- 'oid': (1, 2, 840, 113549, 2, 5)},
- (1, 2, 840, 113549, 2, 7): {'comment': 'RSADSI digestAlgorithm',
- 'description': 'hmacWithSHA1 (1 2 840 113549 2 7)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 02 07',
- 'name': 'hmacWithSHA1',
- 'oid': (1, 2, 840, 113549, 2, 7)},
- (1, 2, 840, 113549, 2, 8): {'comment': 'RSADSI digestAlgorithm',
- 'description': 'hmacWithSHA224 (1 2 840 113549 2 8)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 02 08',
- 'name': 'hmacWithSHA224',
- 'oid': (1, 2, 840, 113549, 2, 8)},
- (1, 2, 840, 113549, 2, 9): {'comment': 'RSADSI digestAlgorithm',
- 'description': 'hmacWithSHA256 (1 2 840 113549 2 9)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 02 09',
- 'name': 'hmacWithSHA256',
- 'oid': (1, 2, 840, 113549, 2, 9)},
- (1, 2, 840, 113549, 2, 10): {'comment': 'RSADSI digestAlgorithm',
- 'description': 'hmacWithSHA384 (1 2 840 113549 2 10)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 02 0A',
- 'name': 'hmacWithSHA384',
- 'oid': (1, 2, 840, 113549, 2, 10)},
- (1, 2, 840, 113549, 2, 11): {'comment': 'RSADSI digestAlgorithm',
- 'description': 'hmacWithSHA512 (1 2 840 113549 2 11)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 02 0B',
- 'name': 'hmacWithSHA512',
- 'oid': (1, 2, 840, 113549, 2, 11)},
- (1, 2, 840, 113549, 3): {'description': 'encryptionAlgorithm (1 2 840 113549 3)',
- 'hexoid': '06 07 2A 86 48 86 F7 0D 03',
- 'name': 'encryptionAlgorithm',
- 'oid': (1, 2, 840, 113549, 3)},
- (1, 2, 840, 113549, 3, 2): {'comment': 'RSADSI encryptionAlgorithm',
- 'description': 'rc2CBC (1 2 840 113549 3 2)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 03 02',
- 'name': 'rc2CBC',
- 'oid': (1, 2, 840, 113549, 3, 2)},
- (1, 2, 840, 113549, 3, 3): {'comment': 'RSADSI encryptionAlgorithm',
- 'description': 'rc2ECB (1 2 840 113549 3 3)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 03 03',
- 'name': 'rc2ECB',
- 'oid': (1, 2, 840, 113549, 3, 3)},
- (1, 2, 840, 113549, 3, 4): {'comment': 'RSADSI encryptionAlgorithm',
- 'description': 'rc4 (1 2 840 113549 3 4)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 03 04',
- 'name': 'rc4',
- 'oid': (1, 2, 840, 113549, 3, 4)},
- (1, 2, 840, 113549, 3, 5): {'comment': 'RSADSI encryptionAlgorithm',
- 'description': 'rc4WithMAC (1 2 840 113549 3 5)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 03 05',
- 'name': 'rc4WithMAC',
- 'oid': (1, 2, 840, 113549, 3, 5)},
- (1, 2, 840, 113549, 3, 6): {'comment': 'RSADSI encryptionAlgorithm',
- 'description': 'desx-CBC (1 2 840 113549 3 6)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 03 06',
- 'name': 'desx-CBC',
- 'oid': (1, 2, 840, 113549, 3, 6)},
- (1, 2, 840, 113549, 3, 7): {'comment': 'RSADSI encryptionAlgorithm',
- 'description': 'des-EDE3-CBC (1 2 840 113549 3 7)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 03 07',
- 'name': 'des-EDE3-CBC',
- 'oid': (1, 2, 840, 113549, 3, 7)},
- (1, 2, 840, 113549, 3, 8): {'comment': 'RSADSI encryptionAlgorithm',
- 'description': 'rc5CBC (1 2 840 113549 3 8)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 03 08',
- 'name': 'rc5CBC',
- 'oid': (1, 2, 840, 113549, 3, 8)},
- (1, 2, 840, 113549, 3, 9): {'comment': 'RSADSI encryptionAlgorithm',
- 'description': 'rc5-CBCPad (1 2 840 113549 3 9)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 03 09',
- 'name': 'rc5-CBCPad',
- 'oid': (1, 2, 840, 113549, 3, 9)},
- (1, 2, 840, 113549, 3, 10): {'comment': 'RSADSI encryptionAlgorithm. Formerly called CDMFCBCPad',
- 'description': 'desCDMF (1 2 840 113549 3 10)',
- 'hexoid': '06 08 2A 86 48 86 F7 0D 03 0A',
- 'name': 'desCDMF',
- 'oid': (1, 2, 840, 113549, 3, 10)},
- (1, 2, 840, 113556, 1, 2, 241): {'comment': 'Microsoft Exchange Server - attribute',
- 'description': 'deliveryMechanism (1 2 840 113556 1 2 241)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 02 81 71',
- 'name': 'deliveryMechanism',
- 'oid': (1, 2, 840, 113556, 1, 2, 241)},
- (1, 2, 840, 113556, 1, 2, 281): {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'ntSecurityDescriptor (1 2 840 113556 1 2 281)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 02 82 19',
- 'name': 'ntSecurityDescriptor',
- 'oid': (1, 2, 840, 113556, 1, 2, 281)},
- (1, 2, 840, 113556, 1, 3, 0): {'comment': 'Microsoft Exchange Server - object class',
- 'description': 'site-Addressing (1 2 840 113556 1 3 0)',
- 'hexoid': '06 09 2A 86 48 86 F7 14 01 03 00',
- 'name': 'site-Addressing',
- 'oid': (1, 2, 840, 113556, 1, 3, 0)},
- (1, 2, 840, 113556, 1, 3, 13): {'comment': 'Microsoft Exchange Server - object class',
- 'description': 'classSchema (1 2 840 113556 1 3 13)',
- 'hexoid': '06 09 2A 86 48 86 F7 14 01 03 0D',
- 'name': 'classSchema',
- 'oid': (1, 2, 840, 113556, 1, 3, 13)},
- (1, 2, 840, 113556, 1, 3, 14): {'comment': 'Microsoft Exchange Server - object class',
- 'description': 'attributeSchema (1 2 840 113556 1 3 14)',
- 'hexoid': '06 09 2A 86 48 86 F7 14 01 03 0E',
- 'name': 'attributeSchema',
- 'oid': (1, 2, 840, 113556, 1, 3, 14)},
- (1, 2, 840, 113556, 1, 3, 17): {'comment': 'Microsoft Exchange Server - object class',
- 'description': 'mailbox-Agent (1 2 840 113556 1 3 17)',
- 'hexoid': '06 09 2A 86 48 86 F7 14 01 03 11',
- 'name': 'mailbox-Agent',
- 'oid': (1, 2, 840, 113556, 1, 3, 17)},
- (1, 2, 840, 113556, 1, 3, 22): {'comment': 'Microsoft Exchange Server - object class',
- 'description': 'mailbox (1 2 840 113556 1 3 22)',
- 'hexoid': '06 09 2A 86 48 86 F7 14 01 03 16',
- 'name': 'mailbox',
- 'oid': (1, 2, 840, 113556, 1, 3, 22)},
- (1, 2, 840, 113556, 1, 3, 23): {'comment': 'Microsoft Exchange Server - object class',
- 'description': 'container (1 2 840 113556 1 3 23)',
- 'hexoid': '06 09 2A 86 48 86 F7 14 01 03 17',
- 'name': 'container',
- 'oid': (1, 2, 840, 113556, 1, 3, 23)},
- (1, 2, 840, 113556, 1, 3, 46): {'comment': 'Microsoft Exchange Server - object class',
- 'description': 'mailRecipient (1 2 840 113556 1 3 46)',
- 'hexoid': '06 09 2A 86 48 86 F7 14 01 03 2E',
- 'name': 'mailRecipient',
- 'oid': (1, 2, 840, 113556, 1, 3, 46)},
- (1, 2, 840, 113556, 1, 4, 145): {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'revision (1 2 840 113556 1 4 145)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 81 11',
- 'name': 'revision',
- 'oid': (1, 2, 840, 113556, 1, 4, 145)},
- (1, 2, 840, 113556, 1, 4, 1327): {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'pKIDefaultKeySpec (1 2 840 113556 1 4 1327)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8A 2F',
- 'name': 'pKIDefaultKeySpec',
- 'oid': (1, 2, 840, 113556, 1, 4, 1327)},
- (1, 2, 840, 113556, 1, 4, 1328): {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'pKIKeyUsage (1 2 840 113556 1 4 1328)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8A 30',
- 'name': 'pKIKeyUsage',
- 'oid': (1, 2, 840, 113556, 1, 4, 1328)},
- (1, 2, 840, 113556, 1, 4, 1329): {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'pKIMaxIssuingDepth (1 2 840 113556 1 4 1329)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8A 31',
- 'name': 'pKIMaxIssuingDepth',
- 'oid': (1, 2, 840, 113556, 1, 4, 1329)},
- (1, 2, 840, 113556, 1, 4, 1330): {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'pKICriticalExtensions (1 2 840 113556 1 4 1330)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8A 32',
- 'name': 'pKICriticalExtensions',
- 'oid': (1, 2, 840, 113556, 1, 4, 1330)},
- (1, 2, 840, 113556, 1, 4, 1331): {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'pKIExpirationPeriod (1 2 840 113556 1 4 1331)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8A 33',
- 'name': 'pKIExpirationPeriod',
- 'oid': (1, 2, 840, 113556, 1, 4, 1331)},
- (1, 2, 840, 113556, 1, 4, 1332): {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'pKIOverlapPeriod (1 2 840 113556 1 4 1332)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8A 34',
- 'name': 'pKIOverlapPeriod',
- 'oid': (1, 2, 840, 113556, 1, 4, 1332)},
- (1, 2, 840, 113556, 1, 4, 1333): {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'pKIExtendedKeyUsage (1 2 840 113556 1 4 1333)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8A 35',
- 'name': 'pKIExtendedKeyUsage',
- 'oid': (1, 2, 840, 113556, 1, 4, 1333)},
- (1, 2, 840, 113556, 1, 4, 1334): {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'pKIDefaultCSPs (1 2 840 113556 1 4 1334)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8A 36',
- 'name': 'pKIDefaultCSPs',
- 'oid': (1, 2, 840, 113556, 1, 4, 1334)},
- (1, 2, 840, 113556, 1, 4, 1335): {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'pKIEnrollmentAccess (1 2 840 113556 1 4 1335)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8A 37',
- 'name': 'pKIEnrollmentAccess',
- 'oid': (1, 2, 840, 113556, 1, 4, 1335)},
- (1, 2, 840, 113556, 1, 4, 1429): {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'msPKI-RA-Signature (1 2 840 113556 1 4 1429)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8B 15',
- 'name': 'msPKI-RA-Signature',
- 'oid': (1, 2, 840, 113556, 1, 4, 1429)},
- (1, 2, 840, 113556, 1, 4, 1430): {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'msPKI-Enrollment-Flag (1 2 840 113556 1 4 1430)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8B 16',
- 'name': 'msPKI-Enrollment-Flag',
- 'oid': (1, 2, 840, 113556, 1, 4, 1430)},
- (1, 2, 840, 113556, 1, 4, 1431): {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'msPKI-Private-Key-Flag (1 2 840 113556 1 4 1431)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8B 17',
- 'name': 'msPKI-Private-Key-Flag',
- 'oid': (1, 2, 840, 113556, 1, 4, 1431)},
- (1, 2, 840, 113556, 1, 4, 1432): {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'msPKI-Certificate-Name-Flag (1 2 840 113556 1 4 1432)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8B 18',
- 'name': 'msPKI-Certificate-Name-Flag',
- 'oid': (1, 2, 840, 113556, 1, 4, 1432)},
- (1, 2, 840, 113556, 1, 4, 1433): {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'msPKI-Minimal-Key-Size (1 2 840 113556 1 4 1433)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8B 19',
- 'name': 'msPKI-Minimal-Key-Size',
- 'oid': (1, 2, 840, 113556, 1, 4, 1433)},
- (1, 2, 840, 113556, 1, 4, 1434): {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'msPKI-Template-Schema-Version (1 2 840 113556 1 4 1434)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8B 1A',
- 'name': 'msPKI-Template-Schema-Version',
- 'oid': (1, 2, 840, 113556, 1, 4, 1434)},
- (1, 2, 840, 113556, 1, 4, 1435): {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'msPKI-Template-Minor-Revision (1 2 840 113556 1 4 1435)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8B 1B',
- 'name': 'msPKI-Template-Minor-Revision',
- 'oid': (1, 2, 840, 113556, 1, 4, 1435)},
- (1, 2, 840, 113556, 1, 4, 1436): {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'msPKI-Cert-Template-OID (1 2 840 113556 1 4 1436)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8B 1C',
- 'name': 'msPKI-Cert-Template-OID',
- 'oid': (1, 2, 840, 113556, 1, 4, 1436)},
- (1, 2, 840, 113556, 1, 4, 1437): {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'msPKI-Supersede-Templates (1 2 840 113556 1 4 1437)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8B 1D',
- 'name': 'msPKI-Supersede-Templates',
- 'oid': (1, 2, 840, 113556, 1, 4, 1437)},
- (1, 2, 840, 113556, 1, 4, 1438): {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'msPKI-RA-Policies (1 2 840 113556 1 4 1438)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8B 1E',
- 'name': 'msPKI-RA-Policies',
- 'oid': (1, 2, 840, 113556, 1, 4, 1438)},
- (1, 2, 840, 113556, 1, 4, 1439): {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'msPKI-Certificate-Policy (1 2 840 113556 1 4 1439)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8B 1F',
- 'name': 'msPKI-Certificate-Policy',
- 'oid': (1, 2, 840, 113556, 1, 4, 1439)},
- (1, 2, 840, 113556, 1, 4, 1674): {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'msPKI-Certificate-Application-Policy (1 2 840 113556 1 4 1674)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8D 0A',
- 'name': 'msPKI-Certificate-Application-Policy',
- 'oid': (1, 2, 840, 113556, 1, 4, 1674)},
- (1, 2, 840, 113556, 1, 4, 1675): {'comment': 'Microsoft Cert Template - attribute',
- 'description': 'msPKI-RA-Application-Policies (1 2 840 113556 1 4 1675)',
- 'hexoid': '06 0A 2A 86 48 86 F7 14 01 04 8D 0B',
- 'name': 'msPKI-RA-Application-Policies',
- 'oid': (1, 2, 840, 113556, 1, 4, 1675)},
- (1, 2, 840, 113556, 4, 3): {'comment': 'Microsoft',
- 'description': 'microsoftExcel (1 2 840 113556 4 3)',
- 'hexoid': '06 08 2A 86 48 86 F7 14 04 03',
- 'name': 'microsoftExcel',
- 'oid': (1, 2, 840, 113556, 4, 3)},
- (1, 2, 840, 113556, 4, 4): {'comment': 'Microsoft',
- 'description': 'titledWithOID (1 2 840 113556 4 4)',
- 'hexoid': '06 08 2A 86 48 86 F7 14 04 04',
- 'name': 'titledWithOID',
- 'oid': (1, 2, 840, 113556, 4, 4)},
- (1, 2, 840, 113556, 4, 5): {'comment': 'Microsoft',
- 'description': 'microsoftPowerPoint (1 2 840 113556 4 5)',
- 'hexoid': '06 08 2A 86 48 86 F7 14 04 05',
- 'name': 'microsoftPowerPoint',
- 'oid': (1, 2, 840, 113556, 4, 5)},
- (1, 2, 840, 114021, 1, 6, 1): {'comment': 'Identrus',
- 'description': 'Identrus unknown policyIdentifier (1 2 840 114021 1 6 1)',
- 'hexoid': '06 09 2A 86 48 86 FA 65 01 06 01',
- 'name': 'Identrus',
- 'oid': (1, 2, 840, 114021, 1, 6, 1)},
- (1, 2, 840, 114021, 4, 1): {'comment': 'Identrus',
- 'description': 'identrusOCSP (1 2 840 114021 4 1)',
- 'hexoid': '06 08 2A 86 48 86 FA 65 04 01',
- 'name': 'identrusOCSP',
- 'oid': (1, 2, 840, 114021, 4, 1)},
- (1, 3, 6, 1, 4, 1, 188, 7, 1, 1): {'comment': 'Ascom Systech',
- 'description': 'ascom (1 3 6 1 4 1 188 7 1 1)',
- 'hexoid': '06 0A 2B 06 01 04 01 81 3C 07 01 01',
- 'name': 'ascom',
- 'oid': (1, 3, 6, 1, 4, 1, 188, 7, 1, 1)},
- (1, 3, 6, 1, 4, 1, 188, 7, 1, 1, 1): {'comment': 'Ascom Systech',
- 'description': 'ideaECB (1 3 6 1 4 1 188 7 1 1 1)',
- 'hexoid': '06 0B 2B 06 01 04 01 81 3C 07 01 01 01',
- 'name': 'ideaECB',
- 'oid': (1,
- 3,
- 6,
- 1,
- 4,
- 1,
- 188,
- 7,
- 1,
- 1,
- 1)},
- (1, 3, 6, 1, 4, 1, 188, 7, 1, 1, 2): {'comment': 'Ascom Systech',
- 'description': 'ideaCBC (1 3 6 1 4 1 188 7 1 1 2)',
- 'hexoid': '06 0B 2B 06 01 04 01 81 3C 07 01 01 02',
- 'name': 'ideaCBC',
- 'oid': (1,
- 3,
- 6,
- 1,
- 4,
- 1,
- 188,
- 7,
- 1,
- 1,
- 2)},
- (1, 3, 6, 1, 4, 1, 188, 7, 1, 1, 3): {'comment': 'Ascom Systech',
- 'description': 'ideaCFB (1 3 6 1 4 1 188 7 1 1 3)',
- 'hexoid': '06 0B 2B 06 01 04 01 81 3C 07 01 01 03',
- 'name': 'ideaCFB',
- 'oid': (1,
- 3,
- 6,
- 1,
- 4,
- 1,
- 188,
- 7,
- 1,
- 1,
- 3)},
- (1, 3, 6, 1, 4, 1, 188, 7, 1, 1, 4): {'comment': 'Ascom Systech',
- 'description': 'ideaOFB (1 3 6 1 4 1 188 7 1 1 4)',
- 'hexoid': '06 0B 2B 06 01 04 01 81 3C 07 01 01 04',
- 'name': 'ideaOFB',
- 'oid': (1,
- 3,
- 6,
- 1,
- 4,
- 1,
- 188,
- 7,
- 1,
- 1,
- 4)},
- (1, 3, 6, 1, 4, 1, 311, 2, 1, 4): {'comment': 'Microsoft code signing',
- 'description': 'spcIndirectDataContext (1 3 6 1 4 1 311 2 1 4)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 04',
- 'name': 'spcIndirectDataContext',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 4)},
- (1, 3, 6, 1, 4, 1, 311, 2, 1, 10): {'comment': 'Microsoft code signing. Also known as policyLink',
- 'description': 'spcAgencyInfo (1 3 6 1 4 1 311 2 1 10)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 0A',
- 'name': 'spcAgencyInfo',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 10)},
- (1, 3, 6, 1, 4, 1, 311, 2, 1, 11): {'comment': 'Microsoft code signing',
- 'description': 'spcStatementType (1 3 6 1 4 1 311 2 1 11)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 0B',
- 'name': 'spcStatementType',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 11)},
- (1, 3, 6, 1, 4, 1, 311, 2, 1, 12): {'comment': 'Microsoft code signing',
- 'description': 'spcSpOpusInfo (1 3 6 1 4 1 311 2 1 12)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 0C',
- 'name': 'spcSpOpusInfo',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 12)},
- (1, 3, 6, 1, 4, 1, 311, 2, 1, 14): {'comment': 'Microsoft',
- 'description': 'certReqExtensions (1 3 6 1 4 1 311 2 1 14)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 0E',
- 'name': 'certReqExtensions',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 14)},
- (1, 3, 6, 1, 4, 1, 311, 2, 1, 15): {'comment': 'Microsoft code signing',
- 'description': 'spcPEImageData (1 3 6 1 4 1 311 2 1 15)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 0F',
- 'name': 'spcPEImageData',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 15)},
- (1, 3, 6, 1, 4, 1, 311, 2, 1, 18): {'comment': 'Microsoft code signing',
- 'description': 'spcRawFileData (1 3 6 1 4 1 311 2 1 18)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 12',
- 'name': 'spcRawFileData',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 18)},
- (1, 3, 6, 1, 4, 1, 311, 2, 1, 19): {'comment': 'Microsoft code signing',
- 'description': 'spcStructuredStorageData (1 3 6 1 4 1 311 2 1 19)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 13',
- 'name': 'spcStructuredStorageData',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 19)},
- (1, 3, 6, 1, 4, 1, 311, 2, 1, 20): {'comment': 'Microsoft code signing. Formerly "link extension" aka "glue extension"',
- 'description': 'spcJavaClassData (type 1) (1 3 6 1 4 1 311 2 1 20)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 14',
- 'name': 'spcJavaClassData',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 20)},
- (1, 3, 6, 1, 4, 1, 311, 2, 1, 21): {'comment': 'Microsoft',
- 'description': 'individualCodeSigning (1 3 6 1 4 1 311 2 1 21)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 15',
- 'name': 'individualCodeSigning',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 21)},
- (1, 3, 6, 1, 4, 1, 311, 2, 1, 22): {'comment': 'Microsoft',
- 'description': 'commercialCodeSigning (1 3 6 1 4 1 311 2 1 22)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 16',
- 'name': 'commercialCodeSigning',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 22)},
- (1, 3, 6, 1, 4, 1, 311, 2, 1, 25): {'comment': 'Microsoft code signing. Also known as "glue extension"',
- 'description': 'spcLink (type 2) (1 3 6 1 4 1 311 2 1 25)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 19',
- 'name': 'spcLink',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 25)},
- (1, 3, 6, 1, 4, 1, 311, 2, 1, 26): {'comment': 'Microsoft code signing',
- 'description': 'spcMinimalCriteriaInfo (1 3 6 1 4 1 311 2 1 26)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 1A',
- 'name': 'spcMinimalCriteriaInfo',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 26)},
- (1, 3, 6, 1, 4, 1, 311, 2, 1, 27): {'comment': 'Microsoft code signing',
- 'description': 'spcFinancialCriteriaInfo (1 3 6 1 4 1 311 2 1 27)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 1B',
- 'name': 'spcFinancialCriteriaInfo',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 27)},
- (1, 3, 6, 1, 4, 1, 311, 2, 1, 28): {'comment': 'Microsoft code signing. Also known as "glue extension"',
- 'description': 'spcLink (type 3) (1 3 6 1 4 1 311 2 1 28)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 1C',
- 'name': 'spcLink',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 28)},
- (1, 3, 6, 1, 4, 1, 311, 3, 2, 1): {'comment': 'Microsoft code signing',
- 'description': 'timestampRequest (1 3 6 1 4 1 311 3 2 1)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 03 02 01',
- 'name': 'timestampRequest',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 3, 2, 1)},
- (1, 3, 6, 1, 4, 1, 311, 10, 1): {'comment': 'Microsoft PKCS #7 contentType',
- 'description': 'certTrustList (1 3 6 1 4 1 311 10 1)',
- 'hexoid': '06 09 2B 06 01 04 01 82 37 0A 01',
- 'name': 'certTrustList',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 10, 1)},
- (1, 3, 6, 1, 4, 1, 311, 10, 2): {'comment': 'Microsoft',
- 'description': 'nextUpdateLocation (1 3 6 1 4 1 311 10 2)',
- 'hexoid': '06 09 2B 06 01 04 01 82 37 0A 02',
- 'name': 'nextUpdateLocation',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 10, 2)},
- (1, 3, 6, 1, 4, 1, 311, 10, 3, 1): {'comment': 'Microsoft enhanced key usage',
- 'description': 'certTrustListSigning (1 3 6 1 4 1 311 10 3 1)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 0A 03 01',
- 'name': 'certTrustListSigning',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 10, 3, 1)},
- (1, 3, 6, 1, 4, 1, 311, 10, 3, 2): {'comment': 'Microsoft enhanced key usage',
- 'description': 'timeStampSigning (1 3 6 1 4 1 311 10 3 2)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 0A 03 02',
- 'name': 'timeStampSigning',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 10, 3, 2)},
- (1, 3, 6, 1, 4, 1, 311, 10, 3, 3): {'comment': 'Microsoft enhanced key usage',
- 'description': 'serverGatedCrypto (1 3 6 1 4 1 311 10 3 3)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 0A 03 03',
- 'name': 'serverGatedCrypto',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 10, 3, 3)},
- (1, 3, 6, 1, 4, 1, 311, 10, 3, 4): {'comment': 'Microsoft enhanced key usage',
- 'description': 'encryptedFileSystem (1 3 6 1 4 1 311 10 3 4)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 0A 03 04',
- 'name': 'encryptedFileSystem',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 10, 3, 4)},
- (1, 3, 6, 1, 4, 1, 311, 10, 4, 1): {'comment': 'Microsoft attribute',
- 'description': 'yesnoTrustAttr (1 3 6 1 4 1 311 10 4 1)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 0A 04 01',
- 'name': 'yesnoTrustAttr',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 10, 4, 1)},
- (1, 3, 6, 1, 4, 1, 311, 13, 1): {'comment': 'Microsoft attribute',
- 'description': 'renewalCertificate (1 3 6 1 4 1 311 13 1)',
- 'hexoid': '06 09 2B 06 01 04 01 82 37 0D 01',
- 'name': 'renewalCertificate',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 13, 1)},
- (1, 3, 6, 1, 4, 1, 311, 13, 2, 1): {'comment': 'Microsoft attribute',
- 'description': 'enrolmentNameValuePair (1 3 6 1 4 1 311 13 2 1)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 0D 02 01',
- 'name': 'enrolmentNameValuePair',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 13, 2, 1)},
- (1, 3, 6, 1, 4, 1, 311, 13, 2, 2): {'comment': 'Microsoft attribute',
- 'description': 'enrolmentCSP (1 3 6 1 4 1 311 13 2 2)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 0D 02 02',
- 'name': 'enrolmentCSP',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 13, 2, 2)},
- (1, 3, 6, 1, 4, 1, 311, 13, 2, 3): {'comment': 'Microsoft attribute',
- 'description': 'osVersion (1 3 6 1 4 1 311 13 2 3)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 0D 02 03',
- 'name': 'osVersion',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 13, 2, 3)},
- (1, 3, 6, 1, 4, 1, 311, 16, 4): {'comment': 'Microsoft attribute',
- 'description': 'microsoftRecipientInfo (1 3 6 1 4 1 311 16 4)',
- 'hexoid': '06 09 2B 06 01 04 01 82 37 10 04',
- 'name': 'microsoftRecipientInfo',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 16, 4)},
- (1, 3, 6, 1, 4, 1, 311, 20, 2): {'comment': 'Microsoft CAPICOM certificate template, V1',
- 'description': 'enrollCerttypeExtension (1 3 6 1 4 1 311 20 2)',
- 'hexoid': '06 09 2B 06 01 04 01 82 37 14 02',
- 'name': 'enrollCerttypeExtension',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 20, 2)},
- (1, 3, 6, 1, 4, 1, 311, 20, 2, 3): {'comment': 'Microsoft UPN',
- 'description': 'universalPrincipalName (1 3 6 1 4 1 311 20 2 3)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 14 02 03',
- 'name': 'universalPrincipalName',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 20, 2, 3)},
- (1, 3, 6, 1, 4, 1, 311, 21, 1): {'comment': 'Microsoft attribute',
- 'description': 'cAKeyCertIndexPair (1 3 6 1 4 1 311 21 1)',
- 'hexoid': '06 09 2B 06 01 04 01 82 37 15 01',
- 'name': 'cAKeyCertIndexPair',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 21, 1)},
- (1, 3, 6, 1, 4, 1, 311, 21, 7): {'comment': 'Microsoft CAPICOM certificate template, V2',
- 'description': 'certificateTemplate (1 3 6 1 4 1 311 21 7)',
- 'hexoid': '06 09 2B 06 01 04 01 82 37 15 07',
- 'name': 'certificateTemplate',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 21, 7)},
- (1, 3, 6, 1, 4, 1, 311, 21, 13): {'comment': 'Microsoft attribute',
- 'description': 'archivedKey (1 3 6 1 4 1 311 21 13)',
- 'hexoid': '06 09 2B 06 01 04 01 82 37 15 0D',
- 'name': 'archivedKey',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 21, 13)},
- (1, 3, 6, 1, 4, 1, 311, 21, 20): {'comment': 'Microsoft attribute',
- 'description': 'requestClientInfo (1 3 6 1 4 1 311 21 20)',
- 'hexoid': '06 09 2B 06 01 04 01 82 37 15 14',
- 'name': 'requestClientInfo',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 21, 20)},
- (1, 3, 6, 1, 4, 1, 311, 21, 21): {'comment': 'Microsoft attribute',
- 'description': 'encryptedKeyHash (1 3 6 1 4 1 311 21 21)',
- 'hexoid': '06 09 2B 06 01 04 01 82 37 15 15',
- 'name': 'encryptedKeyHash',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 21, 21)},
- (1, 3, 6, 1, 4, 1, 311, 47, 1, 1): {'comment': 'Microsoft extended key usage',
- 'description': 'systemHealth (1 3 6 1 4 1 311 47 1 1)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 2F 01 01',
- 'name': 'systemHealth',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 47, 1, 1)},
- (1, 3, 6, 1, 4, 1, 311, 47, 1, 3): {'comment': 'Microsoft extended key usage',
- 'description': 'systemHealthLoophole (1 3 6 1 4 1 311 47 1 3)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 2F 01 03',
- 'name': 'systemHealthLoophole',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 47, 1, 3)},
- (1, 3, 6, 1, 4, 1, 311, 88, 2, 1): {'comment': 'Microsoft attribute',
- 'description': 'originalFilename (1 3 6 1 4 1 311 88 2 1)',
- 'hexoid': '06 0A 2B 06 01 04 01 82 37 58 02 01',
- 'name': 'originalFilename',
- 'oid': (1, 3, 6, 1, 4, 1, 311, 88, 2, 1)},
- (1, 3, 6, 1, 4, 1, 2428, 10, 1, 1): {'comment': 'UNINETT PCA',
- 'description': 'UNINETT policyIdentifier (1 3 6 1 4 1 2428 10 1 1)',
- 'hexoid': '06 0A 2B 06 01 04 01 92 7C 0A 01 01',
- 'name': 'UNINETT',
- 'oid': (1,
- 3,
- 6,
- 1,
- 4,
- 1,
- 2428,
- 10,
- 1,
- 1)},
- (1, 3, 6, 1, 4, 1, 2712, 10): {'comment': 'ICE-TEL CA',
- 'description': 'ICE-TEL policyIdentifier (1 3 6 1 4 1 2712 10)',
- 'hexoid': '06 08 2B 06 01 04 01 95 18 0A',
- 'name': 'ICE-TEL',
- 'oid': (1, 3, 6, 1, 4, 1, 2712, 10)},
- (1, 3, 6, 1, 4, 1, 2786, 1, 1, 1): {'comment': 'ICE-TEL CA policy',
- 'description': 'ICE-TEL Italian policyIdentifier (1 3 6 1 4 1 2786 1 1 1)',
- 'hexoid': '06 0A 2B 06 01 04 01 95 62 01 01 01',
- 'name': 'ICE-TEL',
- 'oid': (1, 3, 6, 1, 4, 1, 2786, 1, 1, 1)},
- (1, 3, 6, 1, 4, 1, 3029, 1, 1, 1): {'comment': 'cryptlib encryption algorithm',
- 'description': 'blowfishECB (1 3 6 1 4 1 3029 1 1 1)',
- 'hexoid': '06 0A 2B 06 01 04 01 97 55 01 01 01',
- 'name': 'blowfishECB',
- 'oid': (1, 3, 6, 1, 4, 1, 3029, 1, 1, 1)},
- (1, 3, 6, 1, 4, 1, 3029, 1, 1, 2): {'comment': 'cryptlib encryption algorithm',
- 'description': 'blowfishCBC (1 3 6 1 4 1 3029 1 1 2)',
- 'hexoid': '06 0A 2B 06 01 04 01 97 55 01 01 02',
- 'name': 'blowfishCBC',
- 'oid': (1, 3, 6, 1, 4, 1, 3029, 1, 1, 2)},
- (1, 3, 6, 1, 4, 1, 3029, 1, 1, 3): {'comment': 'cryptlib encryption algorithm',
- 'description': 'blowfishCFB (1 3 6 1 4 1 3029 1 1 3)',
- 'hexoid': '06 0A 2B 06 01 04 01 97 55 01 01 03',
- 'name': 'blowfishCFB',
- 'oid': (1, 3, 6, 1, 4, 1, 3029, 1, 1, 3)},
- (1, 3, 6, 1, 4, 1, 3029, 1, 1, 4): {'comment': 'cryptlib encryption algorithm',
- 'description': 'blowfishOFB (1 3 6 1 4 1 3029 1 1 4)',
- 'hexoid': '06 0A 2B 06 01 04 01 97 55 01 01 04',
- 'name': 'blowfishOFB',
- 'oid': (1, 3, 6, 1, 4, 1, 3029, 1, 1, 4)},
- (1, 3, 6, 1, 4, 1, 3029, 1, 2, 1): {'comment': 'cryptlib public-key algorithm',
- 'description': 'elgamal (1 3 6 1 4 1 3029 1 2 1)',
- 'hexoid': '06 0A 2B 06 01 04 01 97 55 01 02 01',
- 'name': 'elgamal',
- 'oid': (1, 3, 6, 1, 4, 1, 3029, 1, 2, 1)},
- (1, 3, 6, 1, 4, 1, 3029, 1, 2, 1, 1): {'comment': 'cryptlib public-key algorithm',
- 'description': 'elgamalWithSHA-1 (1 3 6 1 4 1 3029 1 2 1 1)',
- 'hexoid': '06 0B 2B 06 01 04 01 97 55 01 02 01 01',
- 'name': 'elgamalWithSHA-1',
- 'oid': (1,
- 3,
- 6,
- 1,
- 4,
- 1,
- 3029,
- 1,
- 2,
- 1,
- 1)},
- (1, 3, 6, 1, 4, 1, 3029, 1, 2, 1, 2): {'comment': 'cryptlib public-key algorithm',
- 'description': 'elgamalWithRIPEMD-160 (1 3 6 1 4 1 3029 1 2 1 2)',
- 'hexoid': '06 0B 2B 06 01 04 01 97 55 01 02 01 02',
- 'name': 'elgamalWithRIPEMD-160',
- 'oid': (1,
- 3,
- 6,
- 1,
- 4,
- 1,
- 3029,
- 1,
- 2,
- 1,
- 2)},
- (1, 3, 6, 1, 4, 1, 3029, 3, 1, 1): {'comment': 'cryptlib attribute type',
- 'description': 'cryptlibPresenceCheck (1 3 6 1 4 1 3029 3 1 1)',
- 'hexoid': '06 0A 2B 06 01 04 01 97 55 03 01 01',
- 'name': 'cryptlibPresenceCheck',
- 'oid': (1, 3, 6, 1, 4, 1, 3029, 3, 1, 1)},
- (1, 3, 6, 1, 4, 1, 3029, 3, 1, 2): {'comment': 'cryptlib attribute type',
- 'description': 'pkiBoot (1 3 6 1 4 1 3029 3 1 2)',
- 'hexoid': '06 0A 2B 06 01 04 01 97 55 03 01 02',
- 'name': 'pkiBoot',
- 'oid': (1, 3, 6, 1, 4, 1, 3029, 3, 1, 2)},
- (1, 3, 6, 1, 4, 1, 3029, 3, 1, 4): {'comment': 'cryptlib attribute type',
- 'description': 'crlExtReason (1 3 6 1 4 1 3029 3 1 4)',
- 'hexoid': '06 0A 2B 06 01 04 01 97 55 03 01 04',
- 'name': 'crlExtReason',
- 'oid': (1, 3, 6, 1, 4, 1, 3029, 3, 1, 4)},
- (1, 3, 6, 1, 4, 1, 3029, 3, 1, 5): {'comment': 'cryptlib attribute type',
- 'description': 'keyFeatures (1 3 6 1 4 1 3029 3 1 5)',
- 'hexoid': '06 0A 2B 06 01 04 01 97 55 03 01 05',
- 'name': 'keyFeatures',
- 'oid': (1, 3, 6, 1, 4, 1, 3029, 3, 1, 5)},
- (1, 3, 6, 1, 4, 1, 3029, 4, 1): {'comment': 'cryptlib',
- 'description': 'cryptlibContent (1 3 6 1 4 1 3029 4 1)',
- 'hexoid': '06 09 2B 06 01 04 01 97 55 04 01',
- 'name': 'cryptlibContent',
- 'oid': (1, 3, 6, 1, 4, 1, 3029, 4, 1)},
- (1, 3, 6, 1, 4, 1, 3029, 4, 1, 1): {'comment': 'cryptlib content type',
- 'description': 'cryptlibConfigData (1 3 6 1 4 1 3029 4 1 1)',
- 'hexoid': '06 0A 2B 06 01 04 01 97 55 04 01 01',
- 'name': 'cryptlibConfigData',
- 'oid': (1, 3, 6, 1, 4, 1, 3029, 4, 1, 1)},
- (1, 3, 6, 1, 4, 1, 3029, 4, 1, 2): {'comment': 'cryptlib content type',
- 'description': 'cryptlibUserIndex (1 3 6 1 4 1 3029 4 1 2)',
- 'hexoid': '06 0A 2B 06 01 04 01 97 55 04 01 02',
- 'name': 'cryptlibUserIndex',
- 'oid': (1, 3, 6, 1, 4, 1, 3029, 4, 1, 2)},
- (1, 3, 6, 1, 4, 1, 3029, 4, 1, 3): {'comment': 'cryptlib content type',
- 'description': 'cryptlibUserInfo (1 3 6 1 4 1 3029 4 1 3)',
- 'hexoid': '06 0A 2B 06 01 04 01 97 55 04 01 03',
- 'name': 'cryptlibUserInfo',
- 'oid': (1, 3, 6, 1, 4, 1, 3029, 4, 1, 3)},
- (1, 3, 6, 1, 4, 1, 3029, 4, 1, 4): {'comment': 'cryptlib content type',
- 'description': 'rtcsRequest (1 3 6 1 4 1 3029 4 1 4)',
- 'hexoid': '06 0A 2B 06 01 04 01 97 55 04 01 04',
- 'name': 'rtcsRequest',
- 'oid': (1, 3, 6, 1, 4, 1, 3029, 4, 1, 4)},
- (1, 3, 6, 1, 4, 1, 3029, 4, 1, 5): {'comment': 'cryptlib content type',
- 'description': 'rtcsResponse (1 3 6 1 4 1 3029 4 1 5)',
- 'hexoid': '06 0A 2B 06 01 04 01 97 55 04 01 05',
- 'name': 'rtcsResponse',
- 'oid': (1, 3, 6, 1, 4, 1, 3029, 4, 1, 5)},
- (1, 3, 6, 1, 4, 1, 3029, 4, 1, 6): {'comment': 'cryptlib content type',
- 'description': 'rtcsResponseExt (1 3 6 1 4 1 3029 4 1 6)',
- 'hexoid': '06 0A 2B 06 01 04 01 97 55 04 01 06',
- 'name': 'rtcsResponseExt',
- 'oid': (1, 3, 6, 1, 4, 1, 3029, 4, 1, 6)},
- (1, 3, 6, 1, 4, 1, 3029, 42, 11172, 1): {'comment': 'cryptlib special MPEG-of-cat OID',
- 'description': 'mpeg-1 (1 3 6 1 4 1 3029 42 11172 1)',
- 'hexoid': '06 0B 2B 06 01 04 01 97 55 2A D7 24 01',
- 'name': 'mpeg-1',
- 'oid': (1,
- 3,
- 6,
- 1,
- 4,
- 1,
- 3029,
- 42,
- 11172,
- 1)},
- (1, 3, 6, 1, 4, 1, 3029, 88, 89, 90, 90, 89): {'comment': 'cryptlib certificate policy',
- 'description': 'xYZZY policyIdentifier (1 3 6 1 4 1 3029 88 89 90 90 89)',
- 'hexoid': '06 0C 2B 06 01 04 01 97 55 58 59 5A 5A 59',
- 'name': 'xYZZY',
- 'oid': (1,
- 3,
- 6,
- 1,
- 4,
- 1,
- 3029,
- 88,
- 89,
- 90,
- 90,
- 89)},
- (1, 3, 6, 1, 4, 1, 3401, 8, 1, 1): {'comment': 'PGP key information',
- 'description': 'pgpExtension (1 3 6 1 4 1 3401 8 1 1)',
- 'hexoid': '06 0A 2B 06 01 04 01 9A 49 08 01 01',
- 'name': 'pgpExtension',
- 'oid': (1, 3, 6, 1, 4, 1, 3401, 8, 1, 1)},
- (1, 3, 6, 1, 4, 1, 3576, 7): {'comment': 'TMN EDI for Interactive Agents',
- 'description': 'eciaAscX12Edi (1 3 6 1 4 1 3576 7)',
- 'hexoid': '06 08 2B 06 01 04 01 9B 78 07',
- 'name': 'eciaAscX12Edi',
- 'oid': (1, 3, 6, 1, 4, 1, 3576, 7)},
- (1, 3, 6, 1, 4, 1, 3576, 7, 1): {'comment': 'TMN EDI for Interactive Agents',
- 'description': 'plainEDImessage (1 3 6 1 4 1 3576 7 1)',
- 'hexoid': '06 09 2B 06 01 04 01 9B 78 07 01',
- 'name': 'plainEDImessage',
- 'oid': (1, 3, 6, 1, 4, 1, 3576, 7, 1)},
- (1, 3, 6, 1, 4, 1, 3576, 7, 2): {'comment': 'TMN EDI for Interactive Agents',
- 'description': 'signedEDImessage (1 3 6 1 4 1 3576 7 2)',
- 'hexoid': '06 09 2B 06 01 04 01 9B 78 07 02',
- 'name': 'signedEDImessage',
- 'oid': (1, 3, 6, 1, 4, 1, 3576, 7, 2)},
- (1, 3, 6, 1, 4, 1, 3576, 7, 5): {'comment': 'TMN EDI for Interactive Agents',
- 'description': 'integrityEDImessage (1 3 6 1 4 1 3576 7 5)',
- 'hexoid': '06 09 2B 06 01 04 01 9B 78 07 05',
- 'name': 'integrityEDImessage',
- 'oid': (1, 3, 6, 1, 4, 1, 3576, 7, 5)},
- (1, 3, 6, 1, 4, 1, 3576, 7, 65): {'comment': 'TMN EDI for Interactive Agents',
- 'description': 'iaReceiptMessage (1 3 6 1 4 1 3576 7 65)',
- 'hexoid': '06 09 2B 06 01 04 01 9B 78 07 41',
- 'name': 'iaReceiptMessage',
- 'oid': (1, 3, 6, 1, 4, 1, 3576, 7, 65)},
- (1, 3, 6, 1, 4, 1, 3576, 7, 97): {'comment': 'TMN EDI for Interactive Agents',
- 'description': 'iaStatusMessage (1 3 6 1 4 1 3576 7 97)',
- 'hexoid': '06 09 2B 06 01 04 01 9B 78 07 61',
- 'name': 'iaStatusMessage',
- 'oid': (1, 3, 6, 1, 4, 1, 3576, 7, 97)},
- (1, 3, 6, 1, 4, 1, 3576, 8): {'comment': 'TMN EDI for Interactive Agents',
- 'description': 'eciaEdifact (1 3 6 1 4 1 3576 8)',
- 'hexoid': '06 08 2B 06 01 04 01 9B 78 08',
- 'name': 'eciaEdifact',
- 'oid': (1, 3, 6, 1, 4, 1, 3576, 8)},
- (1, 3, 6, 1, 4, 1, 3576, 9): {'comment': 'TMN EDI for Interactive Agents',
- 'description': 'eciaNonEdi (1 3 6 1 4 1 3576 9)',
- 'hexoid': '06 08 2B 06 01 04 01 9B 78 09',
- 'name': 'eciaNonEdi',
- 'oid': (1, 3, 6, 1, 4, 1, 3576, 9)},
- (1, 3, 6, 1, 4, 1, 5472): {'comment': 'enterprise',
- 'description': 'timeproof (1 3 6 1 4 1 5472)',
- 'hexoid': '06 07 2B 06 01 04 01 AA 60',
- 'name': 'timeproof',
- 'oid': (1, 3, 6, 1, 4, 1, 5472)},
- (1, 3, 6, 1, 4, 1, 5472, 1): {'comment': 'timeproof',
- 'description': 'tss (1 3 6 1 4 1 5472 1)',
- 'hexoid': '06 08 2B 06 01 04 01 AA 60 01',
- 'name': 'tss',
- 'oid': (1, 3, 6, 1, 4, 1, 5472, 1)},
- (1, 3, 6, 1, 4, 1, 5472, 1, 1): {'comment': 'timeproof TSS',
- 'description': 'tss80 (1 3 6 1 4 1 5472 1 1)',
- 'hexoid': '06 09 2B 06 01 04 01 AA 60 01 01',
- 'name': 'tss80',
- 'oid': (1, 3, 6, 1, 4, 1, 5472, 1, 1)},
- (1, 3, 6, 1, 4, 1, 5472, 1, 2): {'comment': 'timeproof TSS',
- 'description': 'tss380 (1 3 6 1 4 1 5472 1 2)',
- 'hexoid': '06 09 2B 06 01 04 01 AA 60 01 02',
- 'name': 'tss380',
- 'oid': (1, 3, 6, 1, 4, 1, 5472, 1, 2)},
- (1, 3, 6, 1, 4, 1, 5472, 1, 3): {'comment': 'timeproof TSS',
- 'description': 'tss400 (1 3 6 1 4 1 5472 1 3)',
- 'hexoid': '06 09 2B 06 01 04 01 AA 60 01 03',
- 'name': 'tss400',
- 'oid': (1, 3, 6, 1, 4, 1, 5472, 1, 3)},
- (1, 3, 6, 1, 4, 1, 5770, 0, 3): {'comment': 'MEDePass',
- 'description': 'secondaryPractices (1 3 6 1 4 1 5770 0 3)',
- 'hexoid': '06 09 2B 06 01 04 01 AD 0A 00 03',
- 'name': 'secondaryPractices',
- 'oid': (1, 3, 6, 1, 4, 1, 5770, 0, 3)},
- (1, 3, 6, 1, 4, 1, 5770, 0, 4): {'comment': 'MEDePass',
- 'description': 'physicianIdentifiers (1 3 6 1 4 1 5770 0 4)',
- 'hexoid': '06 09 2B 06 01 04 01 AD 0A 00 04',
- 'name': 'physicianIdentifiers',
- 'oid': (1, 3, 6, 1, 4, 1, 5770, 0, 4)},
- (1, 3, 6, 1, 4, 1, 6449, 1, 2, 1, 3, 1): {'comment': 'Comodo CA',
- 'description': 'comodoPolicy (1 3 6 1 4 1 6449 1 2 1 3 1)',
- 'hexoid': '06 0C 2B 06 01 04 01 B2 31 01 02 01 03 01',
- 'name': 'comodoPolicy',
- 'oid': (1,
- 3,
- 6,
- 1,
- 4,
- 1,
- 6449,
- 1,
- 2,
- 1,
- 3,
- 1)},
- (1, 3, 6, 1, 4, 1, 6449, 1, 3, 5, 2): {'comment': 'Comodo CA',
- 'description': 'comodoCertifiedDeliveryService (1 3 6 1 4 1 6449 1 3 5 2)',
- 'hexoid': '06 0B 2B 06 01 04 01 B2 31 01 03 05 02',
- 'name': 'comodoCertifiedDeliveryService',
- 'oid': (1,
- 3,
- 6,
- 1,
- 4,
- 1,
- 6449,
- 1,
- 3,
- 5,
- 2)},
- (1, 3, 6, 1, 4, 1, 8231, 1): {'comment': 'Chilean Government national unique roll number',
- 'description': 'rolUnicoNacional (1 3 6 1 4 1 8231 1)',
- 'hexoid': '06 08 2B 06 01 04 01 C0 27 01',
- 'name': 'rolUnicoNacional',
- 'oid': (1, 3, 6, 1, 4, 1, 8231, 1)},
- (1, 3, 6, 1, 4, 1, 8301, 3, 5): {'comment': 'TU Darmstadt ValidityModel',
- 'description': 'validityModel (1 3 6 1 4 1 8301 3 5)',
- 'hexoid': '06 09 2B 06 01 04 01 C0 6D 03 05',
- 'name': 'validityModel',
- 'oid': (1, 3, 6, 1, 4, 1, 8301, 3, 5)},
- (1, 3, 6, 1, 4, 1, 8301, 3, 5, 1): {'comment': 'TU Darmstadt ValidityModel',
- 'description': 'validityModelChain (1 3 6 1 4 1 8301 3 5 1)',
- 'hexoid': '06 0A 2B 06 01 04 01 C0 6D 03 05 01',
- 'name': 'validityModelChain',
- 'oid': (1, 3, 6, 1, 4, 1, 8301, 3, 5, 1)},
- (1, 3, 6, 1, 4, 1, 8301, 3, 5, 2): {'comment': 'ValidityModel',
- 'description': 'validityModelShell (1 3 6 1 4 1 8301 3 5 2)',
- 'hexoid': '06 0A 2B 06 01 04 01 C0 6D 03 05 02',
- 'name': 'validityModelShell',
- 'oid': (1, 3, 6, 1, 4, 1, 8301, 3, 5, 2)},
- (1, 3, 6, 1, 4, 1, 11591): {'comment': 'GNU Project (see http://www.gnupg.org/oids.html)',
- 'description': 'gnu (1 3 6 1 4 1 11591)',
- 'hexoid': '06 07 2B 06 01 04 01 DA 47',
- 'name': 'gnu',
- 'oid': (1, 3, 6, 1, 4, 1, 11591)},
- (1, 3, 6, 1, 4, 1, 11591, 1): {'comment': 'GNU Radius',
- 'description': 'gnuRadius (1 3 6 1 4 1 11591 1)',
- 'hexoid': '06 08 2B 06 01 04 01 DA 47 01',
- 'name': 'gnuRadius',
- 'oid': (1, 3, 6, 1, 4, 1, 11591, 1)},
- (1, 3, 6, 1, 4, 1, 11591, 3): {'comment': 'GNU Radar',
- 'description': 'gnuRadar (1 3 6 1 4 1 11591 3)',
- 'hexoid': '06 08 2B 06 01 04 01 DA 47 03',
- 'name': 'gnuRadar',
- 'oid': (1, 3, 6, 1, 4, 1, 11591, 3)},
- (1, 3, 6, 1, 4, 1, 11591, 12): {'comment': 'GNU digest algorithm',
- 'description': 'gnuDigestAlgorithm (1 3 6 1 4 1 11591 12)',
- 'hexoid': '06 08 2B 06 01 04 01 DA 47 0C',
- 'name': 'gnuDigestAlgorithm',
- 'oid': (1, 3, 6, 1, 4, 1, 11591, 12)},
- (1, 3, 6, 1, 4, 1, 11591, 12, 2): {'comment': 'GNU digest algorithm',
- 'description': 'tiger (1 3 6 1 4 1 11591 12 2)',
- 'hexoid': '06 09 2B 06 01 04 01 DA 47 0C 02',
- 'name': 'tiger',
- 'oid': (1, 3, 6, 1, 4, 1, 11591, 12, 2)},
- (1, 3, 6, 1, 4, 1, 11591, 13): {'comment': 'GNU encryption algorithm',
- 'description': 'gnuEncryptionAlgorithm (1 3 6 1 4 1 11591 13)',
- 'hexoid': '06 08 2B 06 01 04 01 DA 47 0D',
- 'name': 'gnuEncryptionAlgorithm',
- 'oid': (1, 3, 6, 1, 4, 1, 11591, 13)},
- (1, 3, 6, 1, 4, 1, 11591, 13, 2): {'comment': 'GNU encryption algorithm',
- 'description': 'serpent (1 3 6 1 4 1 11591 13 2)',
- 'hexoid': '06 09 2B 06 01 04 01 DA 47 0D 02',
- 'name': 'serpent',
- 'oid': (1, 3, 6, 1, 4, 1, 11591, 13, 2)},
- (1, 3, 6, 1, 4, 1, 11591, 13, 2, 1): {'comment': 'GNU encryption algorithm',
- 'description': 'serpent128_ECB (1 3 6 1 4 1 11591 13 2 1)',
- 'hexoid': '06 0A 2B 06 01 04 01 DA 47 0D 02 01',
- 'name': 'serpent128_ECB',
- 'oid': (1,
- 3,
- 6,
- 1,
- 4,
- 1,
- 11591,
- 13,
- 2,
- 1)},
- (1, 3, 6, 1, 4, 1, 11591, 13, 2, 2): {'comment': 'GNU encryption algorithm',
- 'description': 'serpent128_CBC (1 3 6 1 4 1 11591 13 2 2)',
- 'hexoid': '06 0A 2B 06 01 04 01 DA 47 0D 02 02',
- 'name': 'serpent128_CBC',
- 'oid': (1,
- 3,
- 6,
- 1,
- 4,
- 1,
- 11591,
- 13,
- 2,
- 2)},
- (1, 3, 6, 1, 4, 1, 11591, 13, 2, 3): {'comment': 'GNU encryption algorithm',
- 'description': 'serpent128_OFB (1 3 6 1 4 1 11591 13 2 3)',
- 'hexoid': '06 0A 2B 06 01 04 01 DA 47 0D 02 03',
- 'name': 'serpent128_OFB',
- 'oid': (1,
- 3,
- 6,
- 1,
- 4,
- 1,
- 11591,
- 13,
- 2,
- 3)},
- (1, 3, 6, 1, 4, 1, 11591, 13, 2, 4): {'comment': 'GNU encryption algorithm',
- 'description': 'serpent128_CFB (1 3 6 1 4 1 11591 13 2 4)',
- 'hexoid': '06 0A 2B 06 01 04 01 DA 47 0D 02 04',
- 'name': 'serpent128_CFB',
- 'oid': (1,
- 3,
- 6,
- 1,
- 4,
- 1,
- 11591,
- 13,
- 2,
- 4)},
- (1, 3, 6, 1, 4, 1, 11591, 13, 2, 21): {'comment': 'GNU encryption algorithm',
- 'description': 'serpent192_ECB (1 3 6 1 4 1 11591 13 2 21)',
- 'hexoid': '06 0A 2B 06 01 04 01 DA 47 0D 02 15',
- 'name': 'serpent192_ECB',
- 'oid': (1,
- 3,
- 6,
- 1,
- 4,
- 1,
- 11591,
- 13,
- 2,
- 21)},
- (1, 3, 6, 1, 4, 1, 11591, 13, 2, 22): {'comment': 'GNU encryption algorithm',
- 'description': 'serpent192_CBC (1 3 6 1 4 1 11591 13 2 22)',
- 'hexoid': '06 0A 2B 06 01 04 01 DA 47 0D 02 16',
- 'name': 'serpent192_CBC',
- 'oid': (1,
- 3,
- 6,
- 1,
- 4,
- 1,
- 11591,
- 13,
- 2,
- 22)},
- (1, 3, 6, 1, 4, 1, 11591, 13, 2, 23): {'comment': 'GNU encryption algorithm',
- 'description': 'serpent192_OFB (1 3 6 1 4 1 11591 13 2 23)',
- 'hexoid': '06 0A 2B 06 01 04 01 DA 47 0D 02 17',
- 'name': 'serpent192_OFB',
- 'oid': (1,
- 3,
- 6,
- 1,
- 4,
- 1,
- 11591,
- 13,
- 2,
- 23)},
- (1, 3, 6, 1, 4, 1, 11591, 13, 2, 24): {'comment': 'GNU encryption algorithm',
- 'description': 'serpent192_CFB (1 3 6 1 4 1 11591 13 2 24)',
- 'hexoid': '06 0A 2B 06 01 04 01 DA 47 0D 02 18',
- 'name': 'serpent192_CFB',
- 'oid': (1,
- 3,
- 6,
- 1,
- 4,
- 1,
- 11591,
- 13,
- 2,
- 24)},
- (1, 3, 6, 1, 4, 1, 11591, 13, 2, 41): {'comment': 'GNU encryption algorithm',
- 'description': 'serpent256_ECB (1 3 6 1 4 1 11591 13 2 41)',
- 'hexoid': '06 0A 2B 06 01 04 01 DA 47 0D 02 29',
- 'name': 'serpent256_ECB',
- 'oid': (1,
- 3,
- 6,
- 1,
- 4,
- 1,
- 11591,
- 13,
- 2,
- 41)},
- (1, 3, 6, 1, 4, 1, 11591, 13, 2, 42): {'comment': 'GNU encryption algorithm',
- 'description': 'serpent256_CBC (1 3 6 1 4 1 11591 13 2 42)',
- 'hexoid': '06 0A 2B 06 01 04 01 DA 47 0D 02 2A',
- 'name': 'serpent256_CBC',
- 'oid': (1,
- 3,
- 6,
- 1,
- 4,
- 1,
- 11591,
- 13,
- 2,
- 42)},
- (1, 3, 6, 1, 4, 1, 11591, 13, 2, 43): {'comment': 'GNU encryption algorithm',
- 'description': 'serpent256_OFB (1 3 6 1 4 1 11591 13 2 43)',
- 'hexoid': '06 0A 2B 06 01 04 01 DA 47 0D 02 2B',
- 'name': 'serpent256_OFB',
- 'oid': (1,
- 3,
- 6,
- 1,
- 4,
- 1,
- 11591,
- 13,
- 2,
- 43)},
- (1, 3, 6, 1, 4, 1, 11591, 13, 2, 44): {'comment': 'GNU encryption algorithm',
- 'description': 'serpent256_CFB (1 3 6 1 4 1 11591 13 2 44)',
- 'hexoid': '06 0A 2B 06 01 04 01 DA 47 0D 02 2C',
- 'name': 'serpent256_CFB',
- 'oid': (1,
- 3,
- 6,
- 1,
- 4,
- 1,
- 11591,
- 13,
- 2,
- 44)},
- (1, 3, 6, 1, 4, 1, 16334, 509, 1, 1): {'comment': 'Northrop Grumman extended key usage',
- 'description': 'Northrop Grumman extKeyUsage? (1 3 6 1 4 1 16334 509 1 1)',
- 'hexoid': '06 0B 2B 06 01 04 01 FF 4E 83 7D 01 01',
- 'name': 'Northrop',
- 'oid': (1,
- 3,
- 6,
- 1,
- 4,
- 1,
- 16334,
- 509,
- 1,
- 1)},
- (1, 3, 6, 1, 4, 1, 16334, 509, 2, 1): {'comment': 'Northrop Grumman policy',
- 'description': 'ngcClass1 (1 3 6 1 4 1 16334 509 2 1)',
- 'hexoid': '06 0B 2B 06 01 04 01 FF 4E 83 7D 02 01',
- 'name': 'ngcClass1',
- 'oid': (1,
- 3,
- 6,
- 1,
- 4,
- 1,
- 16334,
- 509,
- 2,
- 1)},
- (1, 3, 6, 1, 4, 1, 16334, 509, 2, 2): {'comment': 'Northrop Grumman policy',
- 'description': 'ngcClass2 (1 3 6 1 4 1 16334 509 2 2)',
- 'hexoid': '06 0B 2B 06 01 04 01 FF 4E 83 7D 02 02',
- 'name': 'ngcClass2',
- 'oid': (1,
- 3,
- 6,
- 1,
- 4,
- 1,
- 16334,
- 509,
- 2,
- 2)},
- (1, 3, 6, 1, 4, 1, 16334, 509, 2, 3): {'comment': 'Northrop Grumman policy',
- 'description': 'ngcClass3 (1 3 6 1 4 1 16334 509 2 3)',
- 'hexoid': '06 0B 2B 06 01 04 01 FF 4E 83 7D 02 03',
- 'name': 'ngcClass3',
- 'oid': (1,
- 3,
- 6,
- 1,
- 4,
- 1,
- 16334,
- 509,
- 2,
- 3)},
- (1, 3, 6, 1, 5, 5, 7): {'description': 'pkix (1 3 6 1 5 5 7)',
- 'hexoid': '06 06 2B 06 01 05 05 07',
- 'name': 'pkix',
- 'oid': (1, 3, 6, 1, 5, 5, 7)},
- (1, 3, 6, 1, 5, 5, 7, 0, 12): {'comment': 'PKIX',
- 'description': 'attributeCert (1 3 6 1 5 5 7 0 12)',
- 'hexoid': '06 08 2B 06 01 05 05 07 00 0C',
- 'name': 'attributeCert',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 0, 12)},
- (1, 3, 6, 1, 5, 5, 7, 1): {'comment': 'PKIX',
- 'description': 'privateExtension (1 3 6 1 5 5 7 1)',
- 'hexoid': '06 07 2B 06 01 05 05 07 01',
- 'name': 'privateExtension',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 1)},
- (1, 3, 6, 1, 5, 5, 7, 1, 1): {'comment': 'PKIX private extension',
- 'description': 'authorityInfoAccess (1 3 6 1 5 5 7 1 1)',
- 'hexoid': '06 08 2B 06 01 05 05 07 01 01',
- 'name': 'authorityInfoAccess',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 1)},
- (1, 3, 6, 1, 5, 5, 7, 1, 2): {'comment': 'PKIX private extension',
- 'description': 'biometricInfo (1 3 6 1 5 5 7 1 2)',
- 'hexoid': '06 08 2B 06 01 05 05 07 01 02',
- 'name': 'biometricInfo',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 2)},
- (1, 3, 6, 1, 5, 5, 7, 1, 3): {'comment': 'PKIX private extension',
- 'description': 'qcStatements (1 3 6 1 5 5 7 1 3)',
- 'hexoid': '06 08 2B 06 01 05 05 07 01 03',
- 'name': 'qcStatements',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 3)},
- (1, 3, 6, 1, 5, 5, 7, 1, 4): {'comment': 'PKIX private extension',
- 'description': 'acAuditIdentity (1 3 6 1 5 5 7 1 4)',
- 'hexoid': '06 08 2B 06 01 05 05 07 01 04',
- 'name': 'acAuditIdentity',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 4)},
- (1, 3, 6, 1, 5, 5, 7, 1, 5): {'comment': 'PKIX private extension',
- 'description': 'acTargeting (1 3 6 1 5 5 7 1 5)',
- 'hexoid': '06 08 2B 06 01 05 05 07 01 05',
- 'name': 'acTargeting',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 5)},
- (1, 3, 6, 1, 5, 5, 7, 1, 6): {'comment': 'PKIX private extension',
- 'description': 'acAaControls (1 3 6 1 5 5 7 1 6)',
- 'hexoid': '06 08 2B 06 01 05 05 07 01 06',
- 'name': 'acAaControls',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 6)},
- (1, 3, 6, 1, 5, 5, 7, 1, 7): {'comment': 'PKIX private extension',
- 'description': 'sbgp-ipAddrBlock (1 3 6 1 5 5 7 1 7)',
- 'hexoid': '06 08 2B 06 01 05 05 07 01 07',
- 'name': 'sbgp-ipAddrBlock',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 7)},
- (1, 3, 6, 1, 5, 5, 7, 1, 8): {'comment': 'PKIX private extension',
- 'description': 'sbgp-autonomousSysNum (1 3 6 1 5 5 7 1 8)',
- 'hexoid': '06 08 2B 06 01 05 05 07 01 08',
- 'name': 'sbgp-autonomousSysNum',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 8)},
- (1, 3, 6, 1, 5, 5, 7, 1, 9): {'comment': 'PKIX private extension',
- 'description': 'sbgp-routerIdentifier (1 3 6 1 5 5 7 1 9)',
- 'hexoid': '06 08 2B 06 01 05 05 07 01 09',
- 'name': 'sbgp-routerIdentifier',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 9)},
- (1, 3, 6, 1, 5, 5, 7, 1, 10): {'comment': 'PKIX private extension',
- 'description': 'acProxying (1 3 6 1 5 5 7 1 10)',
- 'hexoid': '06 08 2B 06 01 05 05 07 01 0A',
- 'name': 'acProxying',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 10)},
- (1, 3, 6, 1, 5, 5, 7, 1, 11): {'comment': 'PKIX private extension',
- 'description': 'subjectInfoAccess (1 3 6 1 5 5 7 1 11)',
- 'hexoid': '06 08 2B 06 01 05 05 07 01 0B',
- 'name': 'subjectInfoAccess',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 11)},
- (1, 3, 6, 1, 5, 5, 7, 1, 12): {'comment': 'PKIX private extension',
- 'description': 'logoType (1 3 6 1 5 5 7 1 12)',
- 'hexoid': '06 08 2B 06 01 05 05 07 01 0C',
- 'name': 'logoType',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 12)},
- (1, 3, 6, 1, 5, 5, 7, 2): {'comment': 'PKIX',
- 'description': 'policyQualifierIds (1 3 6 1 5 5 7 2)',
- 'hexoid': '06 07 2B 06 01 05 05 07 02',
- 'name': 'policyQualifierIds',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 2)},
- (1, 3, 6, 1, 5, 5, 7, 2, 1): {'comment': 'PKIX policy qualifier',
- 'description': 'cps (1 3 6 1 5 5 7 2 1)',
- 'hexoid': '06 08 2B 06 01 05 05 07 02 01',
- 'name': 'cps',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 2, 1)},
- (1, 3, 6, 1, 5, 5, 7, 2, 2): {'comment': 'PKIX policy qualifier',
- 'description': 'unotice (1 3 6 1 5 5 7 2 2)',
- 'hexoid': '06 08 2B 06 01 05 05 07 02 02',
- 'name': 'unotice',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 2, 2)},
- (1, 3, 6, 1, 5, 5, 7, 2, 3): {'comment': 'PKIX policy qualifier',
- 'description': 'textNotice (1 3 6 1 5 5 7 2 3)',
- 'hexoid': '06 08 2B 06 01 05 05 07 02 03',
- 'name': 'textNotice',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 2, 3)},
- (1, 3, 6, 1, 5, 5, 7, 3): {'comment': 'PKIX',
- 'description': 'keyPurpose (1 3 6 1 5 5 7 3)',
- 'hexoid': '06 07 2B 06 01 05 05 07 03',
- 'name': 'keyPurpose',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 3)},
- (1, 3, 6, 1, 5, 5, 7, 3, 1): {'comment': 'PKIX key purpose',
- 'description': 'serverAuth (1 3 6 1 5 5 7 3 1)',
- 'hexoid': '06 08 2B 06 01 05 05 07 03 01',
- 'name': 'serverAuth',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 1)},
- (1, 3, 6, 1, 5, 5, 7, 3, 2): {'comment': 'PKIX key purpose',
- 'description': 'clientAuth (1 3 6 1 5 5 7 3 2)',
- 'hexoid': '06 08 2B 06 01 05 05 07 03 02',
- 'name': 'clientAuth',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 2)},
- (1, 3, 6, 1, 5, 5, 7, 3, 3): {'comment': 'PKIX key purpose',
- 'description': 'codeSigning (1 3 6 1 5 5 7 3 3)',
- 'hexoid': '06 08 2B 06 01 05 05 07 03 03',
- 'name': 'codeSigning',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 3)},
- (1, 3, 6, 1, 5, 5, 7, 3, 4): {'comment': 'PKIX key purpose',
- 'description': 'emailProtection (1 3 6 1 5 5 7 3 4)',
- 'hexoid': '06 08 2B 06 01 05 05 07 03 04',
- 'name': 'emailProtection',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 4)},
- (1, 3, 6, 1, 5, 5, 7, 3, 5): {'comment': 'PKIX key purpose',
- 'description': 'ipsecEndSystem (1 3 6 1 5 5 7 3 5)',
- 'hexoid': '06 08 2B 06 01 05 05 07 03 05',
- 'name': 'ipsecEndSystem',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 5)},
- (1, 3, 6, 1, 5, 5, 7, 3, 6): {'comment': 'PKIX key purpose',
- 'description': 'ipsecTunnel (1 3 6 1 5 5 7 3 6)',
- 'hexoid': '06 08 2B 06 01 05 05 07 03 06',
- 'name': 'ipsecTunnel',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 6)},
- (1, 3, 6, 1, 5, 5, 7, 3, 7): {'comment': 'PKIX key purpose',
- 'description': 'ipsecUser (1 3 6 1 5 5 7 3 7)',
- 'hexoid': '06 08 2B 06 01 05 05 07 03 07',
- 'name': 'ipsecUser',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 7)},
- (1, 3, 6, 1, 5, 5, 7, 3, 8): {'comment': 'PKIX key purpose',
- 'description': 'timeStamping (1 3 6 1 5 5 7 3 8)',
- 'hexoid': '06 08 2B 06 01 05 05 07 03 08',
- 'name': 'timeStamping',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 8)},
- (1, 3, 6, 1, 5, 5, 7, 3, 9): {'comment': 'PKIX key purpose',
- 'description': 'ocspSigning (1 3 6 1 5 5 7 3 9)',
- 'hexoid': '06 08 2B 06 01 05 05 07 03 09',
- 'name': 'ocspSigning',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 9)},
- (1, 3, 6, 1, 5, 5, 7, 3, 10): {'comment': 'PKIX key purpose',
- 'description': 'dvcs (1 3 6 1 5 5 7 3 10)',
- 'hexoid': '06 08 2B 06 01 05 05 07 03 0A',
- 'name': 'dvcs',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 10)},
- (1, 3, 6, 1, 5, 5, 7, 3, 11): {'comment': 'PKIX key purpose',
- 'description': 'sbgpCertAAServerAuth (1 3 6 1 5 5 7 3 11)',
- 'hexoid': '06 08 2B 06 01 05 05 07 03 0B',
- 'name': 'sbgpCertAAServerAuth',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 11)},
- (1, 3, 6, 1, 5, 5, 7, 3, 13): {'comment': 'PKIX key purpose',
- 'description': 'eapOverPPP (1 3 6 1 5 5 7 3 13)',
- 'hexoid': '06 08 2B 06 01 05 05 07 03 0D',
- 'name': 'eapOverPPP',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 13)},
- (1, 3, 6, 1, 5, 5, 7, 3, 14): {'comment': 'PKIX key purpose',
- 'description': 'wlanSSID (1 3 6 1 5 5 7 3 14)',
- 'hexoid': '06 08 2B 06 01 05 05 07 03 0E',
- 'name': 'wlanSSID',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 14)},
- (1, 3, 6, 1, 5, 5, 7, 4): {'comment': 'PKIX',
- 'description': 'cmpInformationTypes (1 3 6 1 5 5 7 4)',
- 'hexoid': '06 07 2B 06 01 05 05 07 04',
- 'name': 'cmpInformationTypes',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 4)},
- (1, 3, 6, 1, 5, 5, 7, 4, 1): {'comment': 'PKIX CMP information',
- 'description': 'caProtEncCert (1 3 6 1 5 5 7 4 1)',
- 'hexoid': '06 08 2B 06 01 05 05 07 04 01',
- 'name': 'caProtEncCert',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 1)},
- (1, 3, 6, 1, 5, 5, 7, 4, 2): {'comment': 'PKIX CMP information',
- 'description': 'signKeyPairTypes (1 3 6 1 5 5 7 4 2)',
- 'hexoid': '06 08 2B 06 01 05 05 07 04 02',
- 'name': 'signKeyPairTypes',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 2)},
- (1, 3, 6, 1, 5, 5, 7, 4, 3): {'comment': 'PKIX CMP information',
- 'description': 'encKeyPairTypes (1 3 6 1 5 5 7 4 3)',
- 'hexoid': '06 08 2B 06 01 05 05 07 04 03',
- 'name': 'encKeyPairTypes',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 3)},
- (1, 3, 6, 1, 5, 5, 7, 4, 4): {'comment': 'PKIX CMP information',
- 'description': 'preferredSymmAlg (1 3 6 1 5 5 7 4 4)',
- 'hexoid': '06 08 2B 06 01 05 05 07 04 04',
- 'name': 'preferredSymmAlg',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 4)},
- (1, 3, 6, 1, 5, 5, 7, 4, 5): {'comment': 'PKIX CMP information',
- 'description': 'caKeyUpdateInfo (1 3 6 1 5 5 7 4 5)',
- 'hexoid': '06 08 2B 06 01 05 05 07 04 05',
- 'name': 'caKeyUpdateInfo',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 5)},
- (1, 3, 6, 1, 5, 5, 7, 4, 6): {'comment': 'PKIX CMP information',
- 'description': 'currentCRL (1 3 6 1 5 5 7 4 6)',
- 'hexoid': '06 08 2B 06 01 05 05 07 04 06',
- 'name': 'currentCRL',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 6)},
- (1, 3, 6, 1, 5, 5, 7, 4, 7): {'comment': 'PKIX CMP information',
- 'description': 'unsupportedOIDs (1 3 6 1 5 5 7 4 7)',
- 'hexoid': '06 08 2B 06 01 05 05 07 04 07',
- 'name': 'unsupportedOIDs',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 7)},
- (1, 3, 6, 1, 5, 5, 7, 4, 10): {'comment': 'PKIX CMP information',
- 'description': 'keyPairParamReq (1 3 6 1 5 5 7 4 10)',
- 'hexoid': '06 08 2B 06 01 05 05 07 04 0A',
- 'name': 'keyPairParamReq',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 10)},
- (1, 3, 6, 1, 5, 5, 7, 4, 11): {'comment': 'PKIX CMP information',
- 'description': 'keyPairParamRep (1 3 6 1 5 5 7 4 11)',
- 'hexoid': '06 08 2B 06 01 05 05 07 04 0B',
- 'name': 'keyPairParamRep',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 11)},
- (1, 3, 6, 1, 5, 5, 7, 4, 12): {'comment': 'PKIX CMP information',
- 'description': 'revPassphrase (1 3 6 1 5 5 7 4 12)',
- 'hexoid': '06 08 2B 06 01 05 05 07 04 0C',
- 'name': 'revPassphrase',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 12)},
- (1, 3, 6, 1, 5, 5, 7, 4, 13): {'comment': 'PKIX CMP information',
- 'description': 'implicitConfirm (1 3 6 1 5 5 7 4 13)',
- 'hexoid': '06 08 2B 06 01 05 05 07 04 0D',
- 'name': 'implicitConfirm',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 13)},
- (1, 3, 6, 1, 5, 5, 7, 4, 14): {'comment': 'PKIX CMP information',
- 'description': 'confirmWaitTime (1 3 6 1 5 5 7 4 14)',
- 'hexoid': '06 08 2B 06 01 05 05 07 04 0E',
- 'name': 'confirmWaitTime',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 14)},
- (1, 3, 6, 1, 5, 5, 7, 4, 15): {'comment': 'PKIX CMP information',
- 'description': 'origPKIMessage (1 3 6 1 5 5 7 4 15)',
- 'hexoid': '06 08 2B 06 01 05 05 07 04 0F',
- 'name': 'origPKIMessage',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 15)},
- (1, 3, 6, 1, 5, 5, 7, 4, 16): {'comment': 'PKIX CMP information',
- 'description': 'suppLangTags (1 3 6 1 5 5 7 4 16)',
- 'hexoid': '06 08 2B 06 01 05 05 07 04 10',
- 'name': 'suppLangTags',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 16)},
- (1, 3, 6, 1, 5, 5, 7, 5): {'comment': 'PKIX',
- 'description': 'crmfRegistration (1 3 6 1 5 5 7 5)',
- 'hexoid': '06 07 2B 06 01 05 05 07 05',
- 'name': 'crmfRegistration',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 5)},
- (1, 3, 6, 1, 5, 5, 7, 5, 1): {'comment': 'PKIX CRMF registration',
- 'description': 'regCtrl (1 3 6 1 5 5 7 5 1)',
- 'hexoid': '06 08 2B 06 01 05 05 07 05 01',
- 'name': 'regCtrl',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 1)},
- (1, 3, 6, 1, 5, 5, 7, 5, 1, 1): {'comment': 'PKIX CRMF registration control',
- 'description': 'regToken (1 3 6 1 5 5 7 5 1 1)',
- 'hexoid': '06 09 2B 06 01 05 05 07 05 01 01',
- 'name': 'regToken',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 1, 1)},
- (1, 3, 6, 1, 5, 5, 7, 5, 1, 2): {'comment': 'PKIX CRMF registration control',
- 'description': 'authenticator (1 3 6 1 5 5 7 5 1 2)',
- 'hexoid': '06 09 2B 06 01 05 05 07 05 01 02',
- 'name': 'authenticator',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 1, 2)},
- (1, 3, 6, 1, 5, 5, 7, 5, 1, 3): {'comment': 'PKIX CRMF registration control',
- 'description': 'pkiPublicationInfo (1 3 6 1 5 5 7 5 1 3)',
- 'hexoid': '06 09 2B 06 01 05 05 07 05 01 03',
- 'name': 'pkiPublicationInfo',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 1, 3)},
- (1, 3, 6, 1, 5, 5, 7, 5, 1, 4): {'comment': 'PKIX CRMF registration control',
- 'description': 'pkiArchiveOptions (1 3 6 1 5 5 7 5 1 4)',
- 'hexoid': '06 09 2B 06 01 05 05 07 05 01 04',
- 'name': 'pkiArchiveOptions',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 1, 4)},
- (1, 3, 6, 1, 5, 5, 7, 5, 1, 5): {'comment': 'PKIX CRMF registration control',
- 'description': 'oldCertID (1 3 6 1 5 5 7 5 1 5)',
- 'hexoid': '06 09 2B 06 01 05 05 07 05 01 05',
- 'name': 'oldCertID',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 1, 5)},
- (1, 3, 6, 1, 5, 5, 7, 5, 1, 6): {'comment': 'PKIX CRMF registration control',
- 'description': 'protocolEncrKey (1 3 6 1 5 5 7 5 1 6)',
- 'hexoid': '06 09 2B 06 01 05 05 07 05 01 06',
- 'name': 'protocolEncrKey',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 1, 6)},
- (1, 3, 6, 1, 5, 5, 7, 5, 1, 7): {'comment': 'PKIX CRMF registration control',
- 'description': 'altCertTemplate (1 3 6 1 5 5 7 5 1 7)',
- 'hexoid': '06 09 2B 06 01 05 05 07 05 01 07',
- 'name': 'altCertTemplate',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 1, 7)},
- (1, 3, 6, 1, 5, 5, 7, 5, 1, 8): {'comment': 'PKIX CRMF registration control',
- 'description': 'wtlsTemplate (1 3 6 1 5 5 7 5 1 8)',
- 'hexoid': '06 09 2B 06 01 05 05 07 05 01 08',
- 'name': 'wtlsTemplate',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 1, 8)},
- (1, 3, 6, 1, 5, 5, 7, 5, 2): {'comment': 'PKIX CRMF registration',
- 'description': 'utf8Pairs (1 3 6 1 5 5 7 5 2)',
- 'hexoid': '06 08 2B 06 01 05 05 07 05 02',
- 'name': 'utf8Pairs',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 2)},
- (1, 3, 6, 1, 5, 5, 7, 5, 2, 1): {'comment': 'PKIX CRMF registration control',
- 'description': 'utf8Pairs (1 3 6 1 5 5 7 5 2 1)',
- 'hexoid': '06 09 2B 06 01 05 05 07 05 02 01',
- 'name': 'utf8Pairs',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 2, 1)},
- (1, 3, 6, 1, 5, 5, 7, 5, 2, 2): {'comment': 'PKIX CRMF registration control',
- 'description': 'certReq (1 3 6 1 5 5 7 5 2 2)',
- 'hexoid': '06 09 2B 06 01 05 05 07 05 02 02',
- 'name': 'certReq',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 2, 2)},
- (1, 3, 6, 1, 5, 5, 7, 6): {'comment': 'PKIX',
- 'description': 'algorithms (1 3 6 1 5 5 7 6)',
- 'hexoid': '06 07 2B 06 01 05 05 07 06',
- 'name': 'algorithms',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 6)},
- (1, 3, 6, 1, 5, 5, 7, 6, 1): {'comment': 'PKIX algorithm',
- 'description': 'des40 (1 3 6 1 5 5 7 6 1)',
- 'hexoid': '06 08 2B 06 01 05 05 07 06 01',
- 'name': 'des40',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 6, 1)},
- (1, 3, 6, 1, 5, 5, 7, 6, 2): {'comment': 'PKIX algorithm',
- 'description': 'noSignature (1 3 6 1 5 5 7 6 2)',
- 'hexoid': '06 08 2B 06 01 05 05 07 06 02',
- 'name': 'noSignature',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 6, 2)},
- (1, 3, 6, 1, 5, 5, 7, 6, 3): {'comment': 'PKIX algorithm',
- 'description': 'dh-sig-hmac-sha1 (1 3 6 1 5 5 7 6 3)',
- 'hexoid': '06 08 2B 06 01 05 05 07 06 03',
- 'name': 'dh-sig-hmac-sha1',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 6, 3)},
- (1, 3, 6, 1, 5, 5, 7, 6, 4): {'comment': 'PKIX algorithm',
- 'description': 'dh-pop (1 3 6 1 5 5 7 6 4)',
- 'hexoid': '06 08 2B 06 01 05 05 07 06 04',
- 'name': 'dh-pop',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 6, 4)},
- (1, 3, 6, 1, 5, 5, 7, 7): {'comment': 'PKIX',
- 'description': 'cmcControls (1 3 6 1 5 5 7 7)',
- 'hexoid': '06 07 2B 06 01 05 05 07 07',
- 'name': 'cmcControls',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 7)},
- (1, 3, 6, 1, 5, 5, 7, 8): {'comment': 'PKIX',
- 'description': 'otherNames (1 3 6 1 5 5 7 8)',
- 'hexoid': '06 07 2B 06 01 05 05 07 08',
- 'name': 'otherNames',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 8)},
- (1, 3, 6, 1, 5, 5, 7, 8, 1): {'comment': 'PKIX other name',
- 'description': 'personalData (1 3 6 1 5 5 7 8 1)',
- 'hexoid': '06 08 2B 06 01 05 05 07 08 01',
- 'name': 'personalData',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 8, 1)},
- (1, 3, 6, 1, 5, 5, 7, 8, 2): {'comment': 'PKIX other name',
- 'description': 'userGroup (1 3 6 1 5 5 7 8 2)',
- 'hexoid': '06 08 2B 06 01 05 05 07 08 02',
- 'name': 'userGroup',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 8, 2)},
- (1, 3, 6, 1, 5, 5, 7, 9): {'comment': 'PKIX qualified certificates',
- 'description': 'personalData (1 3 6 1 5 5 7 9)',
- 'hexoid': '06 07 2B 06 01 05 05 07 09',
- 'name': 'personalData',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 9)},
- (1, 3, 6, 1, 5, 5, 7, 9, 1): {'comment': 'PKIX personal data',
- 'description': 'dateOfBirth (1 3 6 1 5 5 7 9 1)',
- 'hexoid': '06 08 2B 06 01 05 05 07 09 01',
- 'name': 'dateOfBirth',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 9, 1)},
- (1, 3, 6, 1, 5, 5, 7, 9, 2): {'comment': 'PKIX personal data',
- 'description': 'placeOfBirth (1 3 6 1 5 5 7 9 2)',
- 'hexoid': '06 08 2B 06 01 05 05 07 09 02',
- 'name': 'placeOfBirth',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 9, 2)},
- (1, 3, 6, 1, 5, 5, 7, 9, 3): {'comment': 'PKIX personal data',
- 'description': 'gender (1 3 6 1 5 5 7 9 3)',
- 'hexoid': '06 08 2B 06 01 05 05 07 09 03',
- 'name': 'gender',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 9, 3)},
- (1, 3, 6, 1, 5, 5, 7, 9, 4): {'comment': 'PKIX personal data',
- 'description': 'countryOfCitizenship (1 3 6 1 5 5 7 9 4)',
- 'hexoid': '06 08 2B 06 01 05 05 07 09 04',
- 'name': 'countryOfCitizenship',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 9, 4)},
- (1, 3, 6, 1, 5, 5, 7, 9, 5): {'comment': 'PKIX personal data',
- 'description': 'countryOfResidence (1 3 6 1 5 5 7 9 5)',
- 'hexoid': '06 08 2B 06 01 05 05 07 09 05',
- 'name': 'countryOfResidence',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 9, 5)},
- (1, 3, 6, 1, 5, 5, 7, 10): {'comment': 'PKIX',
- 'description': 'attributeCertificate (1 3 6 1 5 5 7 10)',
- 'hexoid': '06 07 2B 06 01 05 05 07 0A',
- 'name': 'attributeCertificate',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 10)},
- (1, 3, 6, 1, 5, 5, 7, 10, 1): {'comment': 'PKIX attribute certificate extension',
- 'description': 'authenticationInfo (1 3 6 1 5 5 7 10 1)',
- 'hexoid': '06 08 2B 06 01 05 05 07 0A 01',
- 'name': 'authenticationInfo',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 10, 1)},
- (1, 3, 6, 1, 5, 5, 7, 10, 2): {'comment': 'PKIX attribute certificate extension',
- 'description': 'accessIdentity (1 3 6 1 5 5 7 10 2)',
- 'hexoid': '06 08 2B 06 01 05 05 07 0A 02',
- 'name': 'accessIdentity',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 10, 2)},
- (1, 3, 6, 1, 5, 5, 7, 10, 3): {'comment': 'PKIX attribute certificate extension',
- 'description': 'chargingIdentity (1 3 6 1 5 5 7 10 3)',
- 'hexoid': '06 08 2B 06 01 05 05 07 0A 03',
- 'name': 'chargingIdentity',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 10, 3)},
- (1, 3, 6, 1, 5, 5, 7, 10, 4): {'comment': 'PKIX attribute certificate extension',
- 'description': 'group (1 3 6 1 5 5 7 10 4)',
- 'hexoid': '06 08 2B 06 01 05 05 07 0A 04',
- 'name': 'group',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 10, 4)},
- (1, 3, 6, 1, 5, 5, 7, 10, 5): {'comment': 'PKIX attribute certificate extension',
- 'description': 'role (1 3 6 1 5 5 7 10 5)',
- 'hexoid': '06 08 2B 06 01 05 05 07 0A 05',
- 'name': 'role',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 10, 5)},
- (1, 3, 6, 1, 5, 5, 7, 10, 6): {'comment': 'PKIX attribute certificate extension',
- 'description': 'encAttrs (1 3 6 1 5 5 7 10 6)',
- 'hexoid': '06 08 2B 06 01 05 05 07 0A 06',
- 'name': 'encAttrs',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 10, 6)},
- (1, 3, 6, 1, 5, 5, 7, 11): {'comment': 'PKIX qualified certificates',
- 'description': 'personalData (1 3 6 1 5 5 7 11)',
- 'hexoid': '06 07 2B 06 01 05 05 07 0B',
- 'name': 'personalData',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 11)},
- (1, 3, 6, 1, 5, 5, 7, 11, 1): {'comment': 'PKIX qualified certificates',
- 'description': 'pkixQCSyntax-v1 (1 3 6 1 5 5 7 11 1)',
- 'hexoid': '06 08 2B 06 01 05 05 07 0B 01',
- 'name': 'pkixQCSyntax-v1',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 11, 1)},
- (1, 3, 6, 1, 5, 5, 7, 14, 2): {'comment': 'RPKI project',
- 'description': 'id-cp-ipAddr-asNumber (1 3 6 1 5 5 7 14 2)',
- 'hexoid': '06 08 2B 06 01 05 05 07 0E 02',
- 'name': 'id-cp-ipAddr-asNumber',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 14, 2)},
- (1, 3, 6, 1, 5, 5, 7, 20): {'comment': 'PKIX qualified certificates',
- 'description': 'logo (1 3 6 1 5 5 7 20)',
- 'hexoid': '06 07 2B 06 01 05 05 07 14',
- 'name': 'logo',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 20)},
- (1, 3, 6, 1, 5, 5, 7, 20, 1): {'comment': 'PKIX',
- 'description': 'logoLoyalty (1 3 6 1 5 5 7 20 1)',
- 'hexoid': '06 08 2B 06 01 05 05 07 14 01',
- 'name': 'logoLoyalty',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 20, 1)},
- (1, 3, 6, 1, 5, 5, 7, 20, 2): {'comment': 'PKIX',
- 'description': 'logoBackground (1 3 6 1 5 5 7 20 2)',
- 'hexoid': '06 08 2B 06 01 05 05 07 14 02',
- 'name': 'logoBackground',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 20, 2)},
- (1, 3, 6, 1, 5, 5, 7, 48, 1): {'comment': 'PKIX',
- 'description': 'ocsp (1 3 6 1 5 5 7 48 1)',
- 'hexoid': '06 08 2B 06 01 05 05 07 30 01',
- 'name': 'ocsp',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 1)},
- (1, 3, 6, 1, 5, 5, 7, 48, 1, 1): {'comment': 'OCSP',
- 'description': 'ocspBasic (1 3 6 1 5 5 7 48 1 1)',
- 'hexoid': '06 09 2B 06 01 05 05 07 30 01 01',
- 'name': 'ocspBasic',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 1, 1)},
- (1, 3, 6, 1, 5, 5, 7, 48, 1, 2): {'comment': 'OCSP',
- 'description': 'ocspNonce (1 3 6 1 5 5 7 48 1 2)',
- 'hexoid': '06 09 2B 06 01 05 05 07 30 01 02',
- 'name': 'ocspNonce',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 1, 2)},
- (1, 3, 6, 1, 5, 5, 7, 48, 1, 3): {'comment': 'OCSP',
- 'description': 'ocspCRL (1 3 6 1 5 5 7 48 1 3)',
- 'hexoid': '06 09 2B 06 01 05 05 07 30 01 03',
- 'name': 'ocspCRL',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 1, 3)},
- (1, 3, 6, 1, 5, 5, 7, 48, 1, 4): {'comment': 'OCSP',
- 'description': 'ocspResponse (1 3 6 1 5 5 7 48 1 4)',
- 'hexoid': '06 09 2B 06 01 05 05 07 30 01 04',
- 'name': 'ocspResponse',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 1, 4)},
- (1, 3, 6, 1, 5, 5, 7, 48, 1, 5): {'comment': 'OCSP',
- 'description': 'ocspNoCheck (1 3 6 1 5 5 7 48 1 5)',
- 'hexoid': '06 09 2B 06 01 05 05 07 30 01 05',
- 'name': 'ocspNoCheck',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 1, 5)},
- (1, 3, 6, 1, 5, 5, 7, 48, 1, 6): {'comment': 'OCSP',
- 'description': 'ocspArchiveCutoff (1 3 6 1 5 5 7 48 1 6)',
- 'hexoid': '06 09 2B 06 01 05 05 07 30 01 06',
- 'name': 'ocspArchiveCutoff',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 1, 6)},
- (1, 3, 6, 1, 5, 5, 7, 48, 1, 7): {'comment': 'OCSP',
- 'description': 'ocspServiceLocator (1 3 6 1 5 5 7 48 1 7)',
- 'hexoid': '06 09 2B 06 01 05 05 07 30 01 07',
- 'name': 'ocspServiceLocator',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 1, 7)},
- (1, 3, 6, 1, 5, 5, 7, 48, 2): {'comment': 'PKIX subject/authority info access descriptor',
- 'description': 'caIssuers (1 3 6 1 5 5 7 48 2)',
- 'hexoid': '06 08 2B 06 01 05 05 07 30 02',
- 'name': 'caIssuers',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 2)},
- (1, 3, 6, 1, 5, 5, 7, 48, 3): {'comment': 'PKIX subject/authority info access descriptor',
- 'description': 'timeStamping (1 3 6 1 5 5 7 48 3)',
- 'hexoid': '06 08 2B 06 01 05 05 07 30 03',
- 'name': 'timeStamping',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 3)},
- (1, 3, 6, 1, 5, 5, 7, 48, 5): {'comment': 'PKIX subject/authority info access descriptor',
- 'description': 'caRepository (1 3 6 1 5 5 7 48 5)',
- 'hexoid': '06 08 2B 06 01 05 05 07 30 05',
- 'name': 'caRepository',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 5)},
- (1, 3, 6, 1, 5, 5, 7, 48, 9): {'comment': 'RPKI project',
- 'description': 'id-ad-signedObjectRepository (1 3 6 1 5 5 7 48 9)',
- 'hexoid': '06 08 2B 06 01 05 05 07 30 09',
- 'name': 'id-ad-signedObjectRepository',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 9)},
- (1, 3, 6, 1, 5, 5, 7, 48, 10): {'comment': 'RPKI project',
- 'description': 'id-ad-rpkiManifest (1 3 6 1 5 5 7 48 10)',
- 'hexoid': '06 08 2B 06 01 05 05 07 30 0A',
- 'name': 'id-ad-rpkiManifest',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 10)},
- (1, 3, 6, 1, 5, 5, 7, 48, 11): {'comment': 'RPKI project',
- 'description': 'id-ad-signedObject (1 3 6 1 5 5 7 48 11)',
- 'hexoid': '06 08 2B 06 01 05 05 07 30 0B',
- 'name': 'id-ad-signedObject',
- 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 11)},
- (1, 3, 6, 1, 5, 5, 8, 1, 1): {'comment': 'ISAKMP HMAC algorithm',
- 'description': 'hmacMD5 (1 3 6 1 5 5 8 1 1)',
- 'hexoid': '06 08 2B 06 01 05 05 08 01 01',
- 'name': 'hmacMD5',
- 'oid': (1, 3, 6, 1, 5, 5, 8, 1, 1)},
- (1, 3, 6, 1, 5, 5, 8, 1, 2): {'comment': 'ISAKMP HMAC algorithm',
- 'description': 'hmacSHA (1 3 6 1 5 5 8 1 2)',
- 'hexoid': '06 08 2B 06 01 05 05 08 01 02',
- 'name': 'hmacSHA',
- 'oid': (1, 3, 6, 1, 5, 5, 8, 1, 2)},
- (1, 3, 6, 1, 5, 5, 8, 1, 3): {'comment': 'ISAKMP HMAC algorithm',
- 'description': 'hmacTiger (1 3 6 1 5 5 8 1 3)',
- 'hexoid': '06 08 2B 06 01 05 05 08 01 03',
- 'name': 'hmacTiger',
- 'oid': (1, 3, 6, 1, 5, 5, 8, 1, 3)},
- (1, 3, 6, 1, 5, 5, 8, 2, 2): {'comment': 'IKE ???',
- 'description': 'iKEIntermediate (1 3 6 1 5 5 8 2 2)',
- 'hexoid': '06 08 2B 06 01 05 05 08 02 02',
- 'name': 'iKEIntermediate',
- 'oid': (1, 3, 6, 1, 5, 5, 8, 2, 2)},
- (1, 3, 12, 2, 1011, 7, 1): {'comment': 'DASS algorithm',
- 'description': 'decEncryptionAlgorithm (1 3 12 2 1011 7 1)',
- 'hexoid': '06 07 2B 0C 02 87 73 07 01',
- 'name': 'decEncryptionAlgorithm',
- 'oid': (1, 3, 12, 2, 1011, 7, 1)},
- (1, 3, 12, 2, 1011, 7, 1, 2): {'comment': 'DASS encryption algorithm',
- 'description': 'decDEA (1 3 12 2 1011 7 1 2)',
- 'hexoid': '06 08 2B 0C 02 87 73 07 01 02',
- 'name': 'decDEA',
- 'oid': (1, 3, 12, 2, 1011, 7, 1, 2)},
- (1, 3, 12, 2, 1011, 7, 2): {'comment': 'DASS algorithm',
- 'description': 'decHashAlgorithm (1 3 12 2 1011 7 2)',
- 'hexoid': '06 07 2B 0C 02 87 73 07 02',
- 'name': 'decHashAlgorithm',
- 'oid': (1, 3, 12, 2, 1011, 7, 2)},
- (1, 3, 12, 2, 1011, 7, 2, 1): {'comment': 'DASS hash algorithm',
- 'description': 'decMD2 (1 3 12 2 1011 7 2 1)',
- 'hexoid': '06 08 2B 0C 02 87 73 07 02 01',
- 'name': 'decMD2',
- 'oid': (1, 3, 12, 2, 1011, 7, 2, 1)},
- (1, 3, 12, 2, 1011, 7, 2, 2): {'comment': 'DASS hash algorithm',
- 'description': 'decMD4 (1 3 12 2 1011 7 2 2)',
- 'hexoid': '06 08 2B 0C 02 87 73 07 02 02',
- 'name': 'decMD4',
- 'oid': (1, 3, 12, 2, 1011, 7, 2, 2)},
- (1, 3, 12, 2, 1011, 7, 3): {'comment': 'DASS algorithm',
- 'description': 'decSignatureAlgorithm (1 3 12 2 1011 7 3)',
- 'hexoid': '06 07 2B 0C 02 87 73 07 03',
- 'name': 'decSignatureAlgorithm',
- 'oid': (1, 3, 12, 2, 1011, 7, 3)},
- (1, 3, 12, 2, 1011, 7, 3, 1): {'comment': 'DASS signature algorithm',
- 'description': 'decMD2withRSA (1 3 12 2 1011 7 3 1)',
- 'hexoid': '06 08 2B 0C 02 87 73 07 03 01',
- 'name': 'decMD2withRSA',
- 'oid': (1, 3, 12, 2, 1011, 7, 3, 1)},
- (1, 3, 12, 2, 1011, 7, 3, 2): {'comment': 'DASS signature algorithm',
- 'description': 'decMD4withRSA (1 3 12 2 1011 7 3 2)',
- 'hexoid': '06 08 2B 0C 02 87 73 07 03 02',
- 'name': 'decMD4withRSA',
- 'oid': (1, 3, 12, 2, 1011, 7, 3, 2)},
- (1, 3, 12, 2, 1011, 7, 3, 3): {'comment': 'DASS signature algorithm',
- 'description': 'decDEAMAC (1 3 12 2 1011 7 3 3)',
- 'hexoid': '06 08 2B 0C 02 87 73 07 03 03',
- 'name': 'decDEAMAC',
- 'oid': (1, 3, 12, 2, 1011, 7, 3, 3)},
- (1, 3, 14, 2, 26, 5): {'comment': 'Unsure about this OID',
- 'description': 'sha (1 3 14 2 26 5)',
- 'hexoid': '06 05 2B 0E 02 1A 05',
- 'name': 'sha',
- 'oid': (1, 3, 14, 2, 26, 5)},
- (1, 3, 14, 3, 2, 1, 1): {'comment': 'X.509. Unsure about this OID',
- 'description': 'rsa (1 3 14 3 2 1 1)',
- 'hexoid': '06 06 2B 0E 03 02 01 01',
- 'name': 'rsa',
- 'oid': (1, 3, 14, 3, 2, 1, 1)},
- (1, 3, 14, 3, 2, 2): {'comment': 'Oddball OIW OID',
- 'description': 'md4WitRSA (1 3 14 3 2 2)',
- 'hexoid': '06 05 2B 0E 03 02 02',
- 'name': 'md4WitRSA',
- 'oid': (1, 3, 14, 3, 2, 2)},
- (1, 3, 14, 3, 2, 3): {'comment': 'Oddball OIW OID',
- 'description': 'md5WithRSA (1 3 14 3 2 3)',
- 'hexoid': '06 05 2B 0E 03 02 03',
- 'name': 'md5WithRSA',
- 'oid': (1, 3, 14, 3, 2, 3)},
- (1, 3, 14, 3, 2, 4): {'comment': 'Oddball OIW OID',
- 'description': 'md4WithRSAEncryption (1 3 14 3 2 4)',
- 'hexoid': '06 05 2B 0E 03 02 04',
- 'name': 'md4WithRSAEncryption',
- 'oid': (1, 3, 14, 3, 2, 4)},
- (1, 3, 14, 3, 2, 6): {'description': 'desECB (1 3 14 3 2 6)',
- 'hexoid': '06 05 2B 0E 03 02 06',
- 'name': 'desECB',
- 'oid': (1, 3, 14, 3, 2, 6)},
- (1, 3, 14, 3, 2, 7): {'description': 'desCBC (1 3 14 3 2 7)',
- 'hexoid': '06 05 2B 0E 03 02 07',
- 'name': 'desCBC',
- 'oid': (1, 3, 14, 3, 2, 7)},
- (1, 3, 14, 3, 2, 8): {'description': 'desOFB (1 3 14 3 2 8)',
- 'hexoid': '06 05 2B 0E 03 02 08',
- 'name': 'desOFB',
- 'oid': (1, 3, 14, 3, 2, 8)},
- (1, 3, 14, 3, 2, 9): {'description': 'desCFB (1 3 14 3 2 9)',
- 'hexoid': '06 05 2B 0E 03 02 09',
- 'name': 'desCFB',
- 'oid': (1, 3, 14, 3, 2, 9)},
- (1, 3, 14, 3, 2, 10): {'description': 'desMAC (1 3 14 3 2 10)',
- 'hexoid': '06 05 2B 0E 03 02 0A',
- 'name': 'desMAC',
- 'oid': (1, 3, 14, 3, 2, 10)},
- (1, 3, 14, 3, 2, 11): {'comment': 'ISO 9796-2, also X9.31 Part 1',
- 'description': 'rsaSignature (1 3 14 3 2 11)',
- 'hexoid': '06 05 2B 0E 03 02 0B',
- 'name': 'rsaSignature',
- 'oid': (1, 3, 14, 3, 2, 11)},
- (1, 3, 14, 3, 2, 14): {'comment': 'Oddball OIW OID using 9796-2 padding rules',
- 'description': 'mdc2WithRSASignature (1 3 14 3 2 14)',
- 'hexoid': '06 05 2B 0E 03 02 0E',
- 'name': 'mdc2WithRSASignature',
- 'oid': (1, 3, 14, 3, 2, 14)},
- (1, 3, 14, 3, 2, 15): {'comment': 'Oddball OIW OID using 9796-2 padding rules',
- 'description': 'shaWithRSASignature (1 3 14 3 2 15)',
- 'hexoid': '06 05 2B 0E 03 02 0F',
- 'name': 'shaWithRSASignature',
- 'oid': (1, 3, 14, 3, 2, 15)},
- (1, 3, 14, 3, 2, 17): {'comment': 'Oddball OIW OID. Mode is ECB',
- 'description': 'desEDE (1 3 14 3 2 17)',
- 'hexoid': '06 05 2B 0E 03 02 11',
- 'name': 'desEDE',
- 'oid': (1, 3, 14, 3, 2, 17)},
- (1, 3, 14, 3, 2, 18): {'comment': 'Oddball OIW OID',
- 'description': 'sha (1 3 14 3 2 18)',
- 'hexoid': '06 05 2B 0E 03 02 12',
- 'name': 'sha',
- 'oid': (1, 3, 14, 3, 2, 18)},
- (1, 3, 14, 3, 2, 19): {'comment': 'Oddball OIW OID, DES-based hash, planned for X9.31 Part 2',
- 'description': 'mdc-2 (1 3 14 3 2 19)',
- 'hexoid': '06 05 2B 0E 03 02 13',
- 'name': 'mdc-2',
- 'oid': (1, 3, 14, 3, 2, 19)},
- (1, 3, 14, 3, 2, 22): {'comment': 'Oddball OIW OID',
- 'description': 'rsaKeyTransport (1 3 14 3 2 22)',
- 'hexoid': '06 05 2B 0E 03 02 16',
- 'name': 'rsaKeyTransport',
- 'oid': (1, 3, 14, 3, 2, 22)},
- (1, 3, 14, 3, 2, 23): {'comment': 'Oddball OIW OID',
- 'description': 'keyed-hash-seal (1 3 14 3 2 23)',
- 'hexoid': '06 05 2B 0E 03 02 17',
- 'name': 'keyed-hash-seal',
- 'oid': (1, 3, 14, 3, 2, 23)},
- (1, 3, 14, 3, 2, 24): {'comment': 'Oddball OIW OID using 9796-2 padding rules',
- 'description': 'md2WithRSASignature (1 3 14 3 2 24)',
- 'hexoid': '06 05 2B 0E 03 02 18',
- 'name': 'md2WithRSASignature',
- 'oid': (1, 3, 14, 3, 2, 24)},
- (1, 3, 14, 3, 2, 25): {'comment': 'Oddball OIW OID using 9796-2 padding rules',
- 'description': 'md5WithRSASignature (1 3 14 3 2 25)',
- 'hexoid': '06 05 2B 0E 03 02 19',
- 'name': 'md5WithRSASignature',
- 'oid': (1, 3, 14, 3, 2, 25)},
- (1, 3, 14, 3, 2, 26): {'comment': 'OIW',
- 'description': 'sha1 (1 3 14 3 2 26)',
- 'hexoid': '06 05 2B 0E 03 02 1A',
- 'name': 'sha1',
- 'oid': (1, 3, 14, 3, 2, 26)},
- (1, 3, 14, 3, 2, 27): {'comment': 'OIW. This OID may also be assigned as ripemd-160',
- 'description': 'dsaWithSHA1 (1 3 14 3 2 27)',
- 'hexoid': '06 05 2B 0E 03 02 1B',
- 'name': 'dsaWithSHA1',
- 'oid': (1, 3, 14, 3, 2, 27)},
- (1, 3, 14, 3, 2, 28): {'comment': 'OIW',
- 'description': 'dsaWithCommonSHA1 (1 3 14 3 2 28)',
- 'hexoid': '06 05 2B 0E 03 02 1C',
- 'name': 'dsaWithCommonSHA1',
- 'oid': (1, 3, 14, 3, 2, 28)},
- (1, 3, 14, 3, 2, 29): {'comment': 'Oddball OIW OID',
- 'description': 'sha-1WithRSAEncryption (1 3 14 3 2 29)',
- 'hexoid': '06 05 2B 0E 03 02 1D',
- 'name': 'sha-1WithRSAEncryption',
- 'oid': (1, 3, 14, 3, 2, 29)},
- (1, 3, 14, 3, 3, 1): {'comment': 'Oddball OIW OID',
- 'description': 'simple-strong-auth-mechanism (1 3 14 3 3 1)',
- 'hexoid': '06 05 2B 0E 03 03 01',
- 'name': 'simple-strong-auth-mechanism',
- 'oid': (1, 3, 14, 3, 3, 1)},
- (1, 3, 14, 7, 2, 1, 1): {'comment': 'Unsure about this OID',
- 'description': 'ElGamal (1 3 14 7 2 1 1)',
- 'hexoid': '06 06 2B 0E 07 02 01 01',
- 'name': 'ElGamal',
- 'oid': (1, 3, 14, 7, 2, 1, 1)},
- (1, 3, 14, 7, 2, 3, 1): {'comment': 'Unsure about this OID',
- 'description': 'md2WithRSA (1 3 14 7 2 3 1)',
- 'hexoid': '06 06 2B 0E 07 02 03 01',
- 'name': 'md2WithRSA',
- 'oid': (1, 3, 14, 7, 2, 3, 1)},
- (1, 3, 14, 7, 2, 3, 2): {'comment': 'Unsure about this OID',
- 'description': 'md2WithElGamal (1 3 14 7 2 3 2)',
- 'hexoid': '06 06 2B 0E 07 02 03 02',
- 'name': 'md2WithElGamal',
- 'oid': (1, 3, 14, 7, 2, 3, 2)},
- (1, 3, 36, 1): {'comment': 'Teletrust document',
- 'description': 'document (1 3 36 1)',
- 'hexoid': '06 03 2B 24 01',
- 'name': 'document',
- 'oid': (1, 3, 36, 1)},
- (1, 3, 36, 1, 1): {'comment': 'Teletrust document',
- 'description': 'finalVersion (1 3 36 1 1)',
- 'hexoid': '06 04 2B 24 01 01',
- 'name': 'finalVersion',
- 'oid': (1, 3, 36, 1, 1)},
- (1, 3, 36, 1, 2): {'comment': 'Teletrust document',
- 'description': 'draft (1 3 36 1 2)',
- 'hexoid': '06 04 2B 24 01 02',
- 'name': 'draft',
- 'oid': (1, 3, 36, 1, 2)},
- (1, 3, 36, 2): {'comment': 'Teletrust sio',
- 'description': 'sio (1 3 36 2)',
- 'hexoid': '06 03 2B 24 02',
- 'name': 'sio',
- 'oid': (1, 3, 36, 2)},
- (1, 3, 36, 2, 1): {'comment': 'Teletrust sio',
- 'description': 'sedu (1 3 36 2 1)',
- 'hexoid': '06 04 2B 24 02 01',
- 'name': 'sedu',
- 'oid': (1, 3, 36, 2, 1)},
- (1, 3, 36, 3): {'comment': 'Teletrust algorithm',
- 'description': 'algorithm (1 3 36 3)',
- 'hexoid': '06 03 2B 24 03',
- 'name': 'algorithm',
- 'oid': (1, 3, 36, 3)},
- (1, 3, 36, 3, 1): {'comment': 'Teletrust algorithm',
- 'description': 'encryptionAlgorithm (1 3 36 3 1)',
- 'hexoid': '06 04 2B 24 03 01',
- 'name': 'encryptionAlgorithm',
- 'oid': (1, 3, 36, 3, 1)},
- (1, 3, 36, 3, 1, 1): {'comment': 'Teletrust encryption algorithm',
- 'description': 'des (1 3 36 3 1 1)',
- 'hexoid': '06 05 2B 24 03 01 01',
- 'name': 'des',
- 'oid': (1, 3, 36, 3, 1, 1)},
- (1, 3, 36, 3, 1, 1, 1): {'comment': 'Teletrust encryption algorithm',
- 'description': 'desECB_pad (1 3 36 3 1 1 1)',
- 'hexoid': '06 06 2B 24 03 01 01 01',
- 'name': 'desECB_pad',
- 'oid': (1, 3, 36, 3, 1, 1, 1)},
- (1, 3, 36, 3, 1, 1, 1, 1): {'comment': 'Teletrust encryption algorithm',
- 'description': 'desECB_ISOpad (1 3 36 3 1 1 1 1)',
- 'hexoid': '06 07 2B 24 03 01 01 01 01',
- 'name': 'desECB_ISOpad',
- 'oid': (1, 3, 36, 3, 1, 1, 1, 1)},
- (1, 3, 36, 3, 1, 1, 2, 1): {'comment': 'Teletrust encryption algorithm',
- 'description': 'desCBC_pad (1 3 36 3 1 1 2 1)',
- 'hexoid': '06 07 2B 24 03 01 01 02 01',
- 'name': 'desCBC_pad',
- 'oid': (1, 3, 36, 3, 1, 1, 2, 1)},
- (1, 3, 36, 3, 1, 1, 2, 1, 1): {'comment': 'Teletrust encryption algorithm',
- 'description': 'desCBC_ISOpad (1 3 36 3 1 1 2 1 1)',
- 'hexoid': '06 08 2B 24 03 01 01 02 01 01',
- 'name': 'desCBC_ISOpad',
- 'oid': (1, 3, 36, 3, 1, 1, 2, 1, 1)},
- (1, 3, 36, 3, 1, 2): {'comment': 'Teletrust encryption algorithm',
- 'description': 'idea (1 3 36 3 1 2)',
- 'hexoid': '06 05 2B 24 03 01 02',
- 'name': 'idea',
- 'oid': (1, 3, 36, 3, 1, 2)},
- (1, 3, 36, 3, 1, 2, 1): {'comment': 'Teletrust encryption algorithm',
- 'description': 'ideaECB (1 3 36 3 1 2 1)',
- 'hexoid': '06 06 2B 24 03 01 02 01',
- 'name': 'ideaECB',
- 'oid': (1, 3, 36, 3, 1, 2, 1)},
- (1, 3, 36, 3, 1, 2, 1, 1): {'comment': 'Teletrust encryption algorithm',
- 'description': 'ideaECB_pad (1 3 36 3 1 2 1 1)',
- 'hexoid': '06 07 2B 24 03 01 02 01 01',
- 'name': 'ideaECB_pad',
- 'oid': (1, 3, 36, 3, 1, 2, 1, 1)},
- (1, 3, 36, 3, 1, 2, 1, 1, 1): {'comment': 'Teletrust encryption algorithm',
- 'description': 'ideaECB_ISOpad (1 3 36 3 1 2 1 1 1)',
- 'hexoid': '06 08 2B 24 03 01 02 01 01 01',
- 'name': 'ideaECB_ISOpad',
- 'oid': (1, 3, 36, 3, 1, 2, 1, 1, 1)},
- (1, 3, 36, 3, 1, 2, 2): {'comment': 'Teletrust encryption algorithm',
- 'description': 'ideaCBC (1 3 36 3 1 2 2)',
- 'hexoid': '06 06 2B 24 03 01 02 02',
- 'name': 'ideaCBC',
- 'oid': (1, 3, 36, 3, 1, 2, 2)},
- (1, 3, 36, 3, 1, 2, 2, 1): {'comment': 'Teletrust encryption algorithm',
- 'description': 'ideaCBC_pad (1 3 36 3 1 2 2 1)',
- 'hexoid': '06 07 2B 24 03 01 02 02 01',
- 'name': 'ideaCBC_pad',
- 'oid': (1, 3, 36, 3, 1, 2, 2, 1)},
- (1, 3, 36, 3, 1, 2, 2, 1, 1): {'comment': 'Teletrust encryption algorithm',
- 'description': 'ideaCBC_ISOpad (1 3 36 3 1 2 2 1 1)',
- 'hexoid': '06 08 2B 24 03 01 02 02 01 01',
- 'name': 'ideaCBC_ISOpad',
- 'oid': (1, 3, 36, 3, 1, 2, 2, 1, 1)},
- (1, 3, 36, 3, 1, 2, 3): {'comment': 'Teletrust encryption algorithm',
- 'description': 'ideaOFB (1 3 36 3 1 2 3)',
- 'hexoid': '06 06 2B 24 03 01 02 03',
- 'name': 'ideaOFB',
- 'oid': (1, 3, 36, 3, 1, 2, 3)},
- (1, 3, 36, 3, 1, 2, 4): {'comment': 'Teletrust encryption algorithm',
- 'description': 'ideaCFB (1 3 36 3 1 2 4)',
- 'hexoid': '06 06 2B 24 03 01 02 04',
- 'name': 'ideaCFB',
- 'oid': (1, 3, 36, 3, 1, 2, 4)},
- (1, 3, 36, 3, 1, 3): {'comment': 'Teletrust encryption algorithm',
- 'description': 'des_3 (1 3 36 3 1 3)',
- 'hexoid': '06 05 2B 24 03 01 03',
- 'name': 'des_3',
- 'oid': (1, 3, 36, 3, 1, 3)},
- (1, 3, 36, 3, 1, 3, 1, 1): {'comment': 'Teletrust encryption algorithm. EDE triple DES',
- 'description': 'des_3ECB_pad (1 3 36 3 1 3 1 1)',
- 'hexoid': '06 07 2B 24 03 01 03 01 01',
- 'name': 'des_3ECB_pad',
- 'oid': (1, 3, 36, 3, 1, 3, 1, 1)},
- (1, 3, 36, 3, 1, 3, 1, 1, 1): {'comment': 'Teletrust encryption algorithm. EDE triple DES',
- 'description': 'des_3ECB_ISOpad (1 3 36 3 1 3 1 1 1)',
- 'hexoid': '06 08 2B 24 03 01 03 01 01 01',
- 'name': 'des_3ECB_ISOpad',
- 'oid': (1, 3, 36, 3, 1, 3, 1, 1, 1)},
- (1, 3, 36, 3, 1, 3, 2, 1): {'comment': 'Teletrust encryption algorithm. EDE triple DES',
- 'description': 'des_3CBC_pad (1 3 36 3 1 3 2 1)',
- 'hexoid': '06 07 2B 24 03 01 03 02 01',
- 'name': 'des_3CBC_pad',
- 'oid': (1, 3, 36, 3, 1, 3, 2, 1)},
- (1, 3, 36, 3, 1, 3, 2, 1, 1): {'comment': 'Teletrust encryption algorithm. EDE triple DES',
- 'description': 'des_3CBC_ISOpad (1 3 36 3 1 3 2 1 1)',
- 'hexoid': '06 08 2B 24 03 01 03 02 01 01',
- 'name': 'des_3CBC_ISOpad',
- 'oid': (1, 3, 36, 3, 1, 3, 2, 1, 1)},
- (1, 3, 36, 3, 1, 4): {'comment': 'Teletrust encryption algorithm',
- 'description': 'rsaEncryption (1 3 36 3 1 4)',
- 'hexoid': '06 05 2B 24 03 01 04',
- 'name': 'rsaEncryption',
- 'oid': (1, 3, 36, 3, 1, 4)},
- (1, 3, 36, 3, 1, 4, 512, 17): {'comment': 'Teletrust encryption algorithm',
- 'description': 'rsaEncryptionWithlmod512expe17 (1 3 36 3 1 4 512 17)',
- 'hexoid': '06 08 2B 24 03 01 04 84 00 11',
- 'name': 'rsaEncryptionWithlmod512expe17',
- 'oid': (1, 3, 36, 3, 1, 4, 512, 17)},
- (1, 3, 36, 3, 1, 5): {'comment': 'Teletrust encryption algorithm',
- 'description': 'bsi-1 (1 3 36 3 1 5)',
- 'hexoid': '06 05 2B 24 03 01 05',
- 'name': 'bsi-1',
- 'oid': (1, 3, 36, 3, 1, 5)},
- (1, 3, 36, 3, 1, 5, 1): {'comment': 'Teletrust encryption algorithm',
- 'description': 'bsi_1ECB_pad (1 3 36 3 1 5 1)',
- 'hexoid': '06 06 2B 24 03 01 05 01',
- 'name': 'bsi_1ECB_pad',
- 'oid': (1, 3, 36, 3, 1, 5, 1)},
- (1, 3, 36, 3, 1, 5, 2): {'comment': 'Teletrust encryption algorithm',
- 'description': 'bsi_1CBC_pad (1 3 36 3 1 5 2)',
- 'hexoid': '06 06 2B 24 03 01 05 02',
- 'name': 'bsi_1CBC_pad',
- 'oid': (1, 3, 36, 3, 1, 5, 2)},
- (1, 3, 36, 3, 1, 5, 2, 1): {'comment': 'Teletrust encryption algorithm',
- 'description': 'bsi_1CBC_PEMpad (1 3 36 3 1 5 2 1)',
- 'hexoid': '06 07 2B 24 03 01 05 02 01',
- 'name': 'bsi_1CBC_PEMpad',
- 'oid': (1, 3, 36, 3, 1, 5, 2, 1)},
- (1, 3, 36, 3, 2): {'comment': 'Teletrust algorithm',
- 'description': 'hashAlgorithm (1 3 36 3 2)',
- 'hexoid': '06 04 2B 24 03 02',
- 'name': 'hashAlgorithm',
- 'oid': (1, 3, 36, 3, 2)},
- (1, 3, 36, 3, 2, 1): {'comment': 'Teletrust hash algorithm',
- 'description': 'ripemd160 (1 3 36 3 2 1)',
- 'hexoid': '06 05 2B 24 03 02 01',
- 'name': 'ripemd160',
- 'oid': (1, 3, 36, 3, 2, 1)},
- (1, 3, 36, 3, 2, 2): {'comment': 'Teletrust hash algorithm',
- 'description': 'ripemd128 (1 3 36 3 2 2)',
- 'hexoid': '06 05 2B 24 03 02 02',
- 'name': 'ripemd128',
- 'oid': (1, 3, 36, 3, 2, 2)},
- (1, 3, 36, 3, 2, 3): {'comment': 'Teletrust hash algorithm',
- 'description': 'ripemd256 (1 3 36 3 2 3)',
- 'hexoid': '06 05 2B 24 03 02 03',
- 'name': 'ripemd256',
- 'oid': (1, 3, 36, 3, 2, 3)},
- (1, 3, 36, 3, 2, 4): {'comment': 'Teletrust hash algorithm',
- 'description': 'mdc2singleLength (1 3 36 3 2 4)',
- 'hexoid': '06 05 2B 24 03 02 04',
- 'name': 'mdc2singleLength',
- 'oid': (1, 3, 36, 3, 2, 4)},
- (1, 3, 36, 3, 2, 5): {'comment': 'Teletrust hash algorithm',
- 'description': 'mdc2doubleLength (1 3 36 3 2 5)',
- 'hexoid': '06 05 2B 24 03 02 05',
- 'name': 'mdc2doubleLength',
- 'oid': (1, 3, 36, 3, 2, 5)},
- (1, 3, 36, 3, 3): {'comment': 'Teletrust algorithm',
- 'description': 'signatureAlgorithm (1 3 36 3 3)',
- 'hexoid': '06 04 2B 24 03 03',
- 'name': 'signatureAlgorithm',
- 'oid': (1, 3, 36, 3, 3)},
- (1, 3, 36, 3, 3, 1): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignature (1 3 36 3 3 1)',
- 'hexoid': '06 05 2B 24 03 03 01',
- 'name': 'rsaSignature',
- 'oid': (1, 3, 36, 3, 3, 1)},
- (1, 3, 36, 3, 3, 1, 1): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1 (1 3 36 3 3 1 1)',
- 'hexoid': '06 06 2B 24 03 03 01 01',
- 'name': 'rsaSignatureWithsha1',
- 'oid': (1, 3, 36, 3, 3, 1, 1)},
- (1, 3, 36, 3, 3, 1, 1, 512, 2): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l512_l2 (1 3 36 3 3 1 1 512 2)',
- 'hexoid': '06 09 2B 24 03 03 01 01 84 00 02',
- 'name': 'rsaSignatureWithsha1_l512_l2',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 512, 2)},
- (1, 3, 36, 3, 3, 1, 1, 512, 3): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l512_l3 (1 3 36 3 3 1 1 512 3)',
- 'hexoid': '06 09 2B 24 03 03 01 01 84 00 03',
- 'name': 'rsaSignatureWithsha1_l512_l3',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 512, 3)},
- (1, 3, 36, 3, 3, 1, 1, 512, 5): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l512_l5 (1 3 36 3 3 1 1 512 5)',
- 'hexoid': '06 09 2B 24 03 03 01 01 84 00 05',
- 'name': 'rsaSignatureWithsha1_l512_l5',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 512, 5)},
- (1, 3, 36, 3, 3, 1, 1, 512, 9): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l512_l9 (1 3 36 3 3 1 1 512 9)',
- 'hexoid': '06 09 2B 24 03 03 01 01 84 00 09',
- 'name': 'rsaSignatureWithsha1_l512_l9',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 512, 9)},
- (1, 3, 36, 3, 3, 1, 1, 512, 11): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l512_l11 (1 3 36 3 3 1 1 512 11)',
- 'hexoid': '06 09 2B 24 03 03 01 01 84 00 0B',
- 'name': 'rsaSignatureWithsha1_l512_l11',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 512, 11)},
- (1, 3, 36, 3, 3, 1, 1, 640, 2): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l640_l2 (1 3 36 3 3 1 1 640 2)',
- 'hexoid': '06 09 2B 24 03 03 01 01 85 00 02',
- 'name': 'rsaSignatureWithsha1_l640_l2',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 640, 2)},
- (1, 3, 36, 3, 3, 1, 1, 640, 3): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l640_l3 (1 3 36 3 3 1 1 640 3)',
- 'hexoid': '06 09 2B 24 03 03 01 01 85 00 03',
- 'name': 'rsaSignatureWithsha1_l640_l3',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 640, 3)},
- (1, 3, 36, 3, 3, 1, 1, 640, 5): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l640_l5 (1 3 36 3 3 1 1 640 5)',
- 'hexoid': '06 09 2B 24 03 03 01 01 85 00 05',
- 'name': 'rsaSignatureWithsha1_l640_l5',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 640, 5)},
- (1, 3, 36, 3, 3, 1, 1, 640, 9): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l640_l9 (1 3 36 3 3 1 1 640 9)',
- 'hexoid': '06 09 2B 24 03 03 01 01 85 00 09',
- 'name': 'rsaSignatureWithsha1_l640_l9',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 640, 9)},
- (1, 3, 36, 3, 3, 1, 1, 640, 11): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l640_l11 (1 3 36 3 3 1 1 640 11)',
- 'hexoid': '06 09 2B 24 03 03 01 01 85 00 0B',
- 'name': 'rsaSignatureWithsha1_l640_l11',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 640, 11)},
- (1, 3, 36, 3, 3, 1, 1, 768, 2): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l768_l2 (1 3 36 3 3 1 1 768 2)',
- 'hexoid': '06 09 2B 24 03 03 01 01 86 00 02',
- 'name': 'rsaSignatureWithsha1_l768_l2',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 768, 2)},
- (1, 3, 36, 3, 3, 1, 1, 768, 3): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l768_l3 (1 3 36 3 3 1 1 768 3)',
- 'hexoid': '06 09 2B 24 03 03 01 01 86 00 03',
- 'name': 'rsaSignatureWithsha1_l768_l3',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 768, 3)},
- (1, 3, 36, 3, 3, 1, 1, 768, 5): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l768_l5 (1 3 36 3 3 1 1 768 5)',
- 'hexoid': '06 09 2B 24 03 03 01 01 86 00 05',
- 'name': 'rsaSignatureWithsha1_l768_l5',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 768, 5)},
- (1, 3, 36, 3, 3, 1, 1, 768, 9): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l768_l9 (1 3 36 3 3 1 1 768 9)',
- 'hexoid': '06 09 2B 24 03 03 01 01 86 00 09',
- 'name': 'rsaSignatureWithsha1_l768_l9',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 768, 9)},
- (1, 3, 36, 3, 3, 1, 1, 768, 11): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l768_l11 (1 3 36 3 3 1 1 768 11)',
- 'hexoid': '06 09 2B 24 03 03 01 01 86 00 0B',
- 'name': 'rsaSignatureWithsha1_l768_l11',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 768, 11)},
- (1, 3, 36, 3, 3, 1, 1, 896, 2): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l896_l2 (1 3 36 3 3 1 1 896 2)',
- 'hexoid': '06 09 2B 24 03 03 01 01 87 00 02',
- 'name': 'rsaSignatureWithsha1_l896_l2',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 896, 2)},
- (1, 3, 36, 3, 3, 1, 1, 896, 3): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l896_l3 (1 3 36 3 3 1 1 896 3)',
- 'hexoid': '06 09 2B 24 03 03 01 01 87 00 03',
- 'name': 'rsaSignatureWithsha1_l896_l3',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 896, 3)},
- (1, 3, 36, 3, 3, 1, 1, 896, 5): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l896_l5 (1 3 36 3 3 1 1 896 5)',
- 'hexoid': '06 09 2B 24 03 03 01 01 87 00 05',
- 'name': 'rsaSignatureWithsha1_l896_l5',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 896, 5)},
- (1, 3, 36, 3, 3, 1, 1, 896, 9): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l896_l9 (1 3 36 3 3 1 1 896 9)',
- 'hexoid': '06 09 2B 24 03 03 01 01 87 00 09',
- 'name': 'rsaSignatureWithsha1_l896_l9',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 896, 9)},
- (1, 3, 36, 3, 3, 1, 1, 896, 11): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l896_l11 (1 3 36 3 3 1 1 896 11)',
- 'hexoid': '06 09 2B 24 03 03 01 01 87 00 0B',
- 'name': 'rsaSignatureWithsha1_l896_l11',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 896, 11)},
- (1, 3, 36, 3, 3, 1, 1, 1024, 2): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l1024_l2 (1 3 36 3 3 1 1 1024 2)',
- 'hexoid': '06 09 2B 24 03 03 01 01 88 00 02',
- 'name': 'rsaSignatureWithsha1_l1024_l2',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 1024, 2)},
- (1, 3, 36, 3, 3, 1, 1, 1024, 3): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l1024_l3 (1 3 36 3 3 1 1 1024 3)',
- 'hexoid': '06 09 2B 24 03 03 01 01 88 00 03',
- 'name': 'rsaSignatureWithsha1_l1024_l3',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 1024, 3)},
- (1, 3, 36, 3, 3, 1, 1, 1024, 5): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l1024_l5 (1 3 36 3 3 1 1 1024 5)',
- 'hexoid': '06 09 2B 24 03 03 01 01 88 00 05',
- 'name': 'rsaSignatureWithsha1_l1024_l5',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 1024, 5)},
- (1, 3, 36, 3, 3, 1, 1, 1024, 9): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l1024_l9 (1 3 36 3 3 1 1 1024 9)',
- 'hexoid': '06 09 2B 24 03 03 01 01 88 00 09',
- 'name': 'rsaSignatureWithsha1_l1024_l9',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 1024, 9)},
- (1, 3, 36, 3, 3, 1, 1, 1024, 11): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithsha1_l1024_l11 (1 3 36 3 3 1 1 1024 11)',
- 'hexoid': '06 09 2B 24 03 03 01 01 88 00 0B',
- 'name': 'rsaSignatureWithsha1_l1024_l11',
- 'oid': (1, 3, 36, 3, 3, 1, 1, 1024, 11)},
- (1, 3, 36, 3, 3, 1, 2): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160 (1 3 36 3 3 1 2)',
- 'hexoid': '06 06 2B 24 03 03 01 02',
- 'name': 'rsaSignatureWithripemd160',
- 'oid': (1, 3, 36, 3, 3, 1, 2)},
- (1, 3, 36, 3, 3, 1, 2, 512, 2): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l512_l2 (1 3 36 3 3 1 2 512 2)',
- 'hexoid': '06 09 2B 24 03 03 01 02 84 00 02',
- 'name': 'rsaSignatureWithripemd160_l512_l2',
- 'oid': (1, 3, 36, 3, 3, 1, 2, 512, 2)},
- (1, 3, 36, 3, 3, 1, 2, 512, 3): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l512_l3 (1 3 36 3 3 1 2 512 3)',
- 'hexoid': '06 09 2B 24 03 03 01 02 84 00 03',
- 'name': 'rsaSignatureWithripemd160_l512_l3',
- 'oid': (1, 3, 36, 3, 3, 1, 2, 512, 3)},
- (1, 3, 36, 3, 3, 1, 2, 512, 5): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l512_l5 (1 3 36 3 3 1 2 512 5)',
- 'hexoid': '06 09 2B 24 03 03 01 02 84 00 05',
- 'name': 'rsaSignatureWithripemd160_l512_l5',
- 'oid': (1, 3, 36, 3, 3, 1, 2, 512, 5)},
- (1, 3, 36, 3, 3, 1, 2, 512, 9): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l512_l9 (1 3 36 3 3 1 2 512 9)',
- 'hexoid': '06 09 2B 24 03 03 01 02 84 00 09',
- 'name': 'rsaSignatureWithripemd160_l512_l9',
- 'oid': (1, 3, 36, 3, 3, 1, 2, 512, 9)},
- (1, 3, 36, 3, 3, 1, 2, 512, 11): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l512_l11 (1 3 36 3 3 1 2 512 11)',
- 'hexoid': '06 09 2B 24 03 03 01 02 84 00 0B',
- 'name': 'rsaSignatureWithripemd160_l512_l11',
- 'oid': (1, 3, 36, 3, 3, 1, 2, 512, 11)},
- (1, 3, 36, 3, 3, 1, 2, 640, 2): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l640_l2 (1 3 36 3 3 1 2 640 2)',
- 'hexoid': '06 09 2B 24 03 03 01 02 85 00 02',
- 'name': 'rsaSignatureWithripemd160_l640_l2',
- 'oid': (1, 3, 36, 3, 3, 1, 2, 640, 2)},
- (1, 3, 36, 3, 3, 1, 2, 640, 3): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l640_l3 (1 3 36 3 3 1 2 640 3)',
- 'hexoid': '06 09 2B 24 03 03 01 02 85 00 03',
- 'name': 'rsaSignatureWithripemd160_l640_l3',
- 'oid': (1, 3, 36, 3, 3, 1, 2, 640, 3)},
- (1, 3, 36, 3, 3, 1, 2, 640, 5): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l640_l5 (1 3 36 3 3 1 2 640 5)',
- 'hexoid': '06 09 2B 24 03 03 01 02 85 00 05',
- 'name': 'rsaSignatureWithripemd160_l640_l5',
- 'oid': (1, 3, 36, 3, 3, 1, 2, 640, 5)},
- (1, 3, 36, 3, 3, 1, 2, 640, 9): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l640_l9 (1 3 36 3 3 1 2 640 9)',
- 'hexoid': '06 09 2B 24 03 03 01 02 85 00 09',
- 'name': 'rsaSignatureWithripemd160_l640_l9',
- 'oid': (1, 3, 36, 3, 3, 1, 2, 640, 9)},
- (1, 3, 36, 3, 3, 1, 2, 640, 11): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l640_l11 (1 3 36 3 3 1 2 640 11)',
- 'hexoid': '06 09 2B 24 03 03 01 02 85 00 0B',
- 'name': 'rsaSignatureWithripemd160_l640_l11',
- 'oid': (1, 3, 36, 3, 3, 1, 2, 640, 11)},
- (1, 3, 36, 3, 3, 1, 2, 768, 2): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l768_l2 (1 3 36 3 3 1 2 768 2)',
- 'hexoid': '06 09 2B 24 03 03 01 02 86 00 02',
- 'name': 'rsaSignatureWithripemd160_l768_l2',
- 'oid': (1, 3, 36, 3, 3, 1, 2, 768, 2)},
- (1, 3, 36, 3, 3, 1, 2, 768, 3): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l768_l3 (1 3 36 3 3 1 2 768 3)',
- 'hexoid': '06 09 2B 24 03 03 01 02 86 00 03',
- 'name': 'rsaSignatureWithripemd160_l768_l3',
- 'oid': (1, 3, 36, 3, 3, 1, 2, 768, 3)},
- (1, 3, 36, 3, 3, 1, 2, 768, 5): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l768_l5 (1 3 36 3 3 1 2 768 5)',
- 'hexoid': '06 09 2B 24 03 03 01 02 86 00 05',
- 'name': 'rsaSignatureWithripemd160_l768_l5',
- 'oid': (1, 3, 36, 3, 3, 1, 2, 768, 5)},
- (1, 3, 36, 3, 3, 1, 2, 768, 9): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l768_l9 (1 3 36 3 3 1 2 768 9)',
- 'hexoid': '06 09 2B 24 03 03 01 02 86 00 09',
- 'name': 'rsaSignatureWithripemd160_l768_l9',
- 'oid': (1, 3, 36, 3, 3, 1, 2, 768, 9)},
- (1, 3, 36, 3, 3, 1, 2, 768, 11): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l768_l11 (1 3 36 3 3 1 2 768 11)',
- 'hexoid': '06 09 2B 24 03 03 01 02 86 00 0B',
- 'name': 'rsaSignatureWithripemd160_l768_l11',
- 'oid': (1, 3, 36, 3, 3, 1, 2, 768, 11)},
- (1, 3, 36, 3, 3, 1, 2, 896, 2): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l896_l2 (1 3 36 3 3 1 2 896 2)',
- 'hexoid': '06 09 2B 24 03 03 01 02 87 00 02',
- 'name': 'rsaSignatureWithripemd160_l896_l2',
- 'oid': (1, 3, 36, 3, 3, 1, 2, 896, 2)},
- (1, 3, 36, 3, 3, 1, 2, 896, 3): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l896_l3 (1 3 36 3 3 1 2 896 3)',
- 'hexoid': '06 09 2B 24 03 03 01 02 87 00 03',
- 'name': 'rsaSignatureWithripemd160_l896_l3',
- 'oid': (1, 3, 36, 3, 3, 1, 2, 896, 3)},
- (1, 3, 36, 3, 3, 1, 2, 896, 5): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l896_l5 (1 3 36 3 3 1 2 896 5)',
- 'hexoid': '06 09 2B 24 03 03 01 02 87 00 05',
- 'name': 'rsaSignatureWithripemd160_l896_l5',
- 'oid': (1, 3, 36, 3, 3, 1, 2, 896, 5)},
- (1, 3, 36, 3, 3, 1, 2, 896, 9): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l896_l9 (1 3 36 3 3 1 2 896 9)',
- 'hexoid': '06 09 2B 24 03 03 01 02 87 00 09',
- 'name': 'rsaSignatureWithripemd160_l896_l9',
- 'oid': (1, 3, 36, 3, 3, 1, 2, 896, 9)},
- (1, 3, 36, 3, 3, 1, 2, 896, 11): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l896_l11 (1 3 36 3 3 1 2 896 11)',
- 'hexoid': '06 09 2B 24 03 03 01 02 87 00 0B',
- 'name': 'rsaSignatureWithripemd160_l896_l11',
- 'oid': (1, 3, 36, 3, 3, 1, 2, 896, 11)},
- (1, 3, 36, 3, 3, 1, 2, 1024, 2): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l1024_l2 (1 3 36 3 3 1 2 1024 2)',
- 'hexoid': '06 09 2B 24 03 03 01 02 88 00 02',
- 'name': 'rsaSignatureWithripemd160_l1024_l2',
- 'oid': (1, 3, 36, 3, 3, 1, 2, 1024, 2)},
- (1, 3, 36, 3, 3, 1, 2, 1024, 3): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l1024_l3 (1 3 36 3 3 1 2 1024 3)',
- 'hexoid': '06 09 2B 24 03 03 01 02 88 00 03',
- 'name': 'rsaSignatureWithripemd160_l1024_l3',
- 'oid': (1, 3, 36, 3, 3, 1, 2, 1024, 3)},
- (1, 3, 36, 3, 3, 1, 2, 1024, 5): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l1024_l5 (1 3 36 3 3 1 2 1024 5)',
- 'hexoid': '06 09 2B 24 03 03 01 02 88 00 05',
- 'name': 'rsaSignatureWithripemd160_l1024_l5',
- 'oid': (1, 3, 36, 3, 3, 1, 2, 1024, 5)},
- (1, 3, 36, 3, 3, 1, 2, 1024, 9): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l1024_l9 (1 3 36 3 3 1 2 1024 9)',
- 'hexoid': '06 09 2B 24 03 03 01 02 88 00 09',
- 'name': 'rsaSignatureWithripemd160_l1024_l9',
- 'oid': (1, 3, 36, 3, 3, 1, 2, 1024, 9)},
- (1, 3, 36, 3, 3, 1, 2, 1024, 11): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithripemd160_l1024_l11 (1 3 36 3 3 1 2 1024 11)',
- 'hexoid': '06 09 2B 24 03 03 01 02 88 00 0B',
- 'name': 'rsaSignatureWithripemd160_l1024_l11',
- 'oid': (1, 3, 36, 3, 3, 1, 2, 1024, 11)},
- (1, 3, 36, 3, 3, 1, 3): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithrimpemd128 (1 3 36 3 3 1 3)',
- 'hexoid': '06 06 2B 24 03 03 01 03',
- 'name': 'rsaSignatureWithrimpemd128',
- 'oid': (1, 3, 36, 3, 3, 1, 3)},
- (1, 3, 36, 3, 3, 1, 4): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaSignatureWithrimpemd256 (1 3 36 3 3 1 4)',
- 'hexoid': '06 06 2B 24 03 03 01 04',
- 'name': 'rsaSignatureWithrimpemd256',
- 'oid': (1, 3, 36, 3, 3, 1, 4)},
- (1, 3, 36, 3, 3, 2): {'comment': 'Teletrust signature algorithm',
- 'description': 'ecsieSign (1 3 36 3 3 2)',
- 'hexoid': '06 05 2B 24 03 03 02',
- 'name': 'ecsieSign',
- 'oid': (1, 3, 36, 3, 3, 2)},
- (1, 3, 36, 3, 3, 2, 1): {'comment': 'Teletrust signature algorithm',
- 'description': 'ecsieSignWithsha1 (1 3 36 3 3 2 1)',
- 'hexoid': '06 06 2B 24 03 03 02 01',
- 'name': 'ecsieSignWithsha1',
- 'oid': (1, 3, 36, 3, 3, 2, 1)},
- (1, 3, 36, 3, 3, 2, 2): {'comment': 'Teletrust signature algorithm',
- 'description': 'ecsieSignWithripemd160 (1 3 36 3 3 2 2)',
- 'hexoid': '06 06 2B 24 03 03 02 02',
- 'name': 'ecsieSignWithripemd160',
- 'oid': (1, 3, 36, 3, 3, 2, 2)},
- (1, 3, 36, 3, 3, 2, 3): {'comment': 'Teletrust signature algorithm',
- 'description': 'ecsieSignWithmd2 (1 3 36 3 3 2 3)',
- 'hexoid': '06 06 2B 24 03 03 02 03',
- 'name': 'ecsieSignWithmd2',
- 'oid': (1, 3, 36, 3, 3, 2, 3)},
- (1, 3, 36, 3, 3, 2, 4): {'comment': 'Teletrust signature algorithm',
- 'description': 'ecsieSignWithmd5 (1 3 36 3 3 2 4)',
- 'hexoid': '06 06 2B 24 03 03 02 04',
- 'name': 'ecsieSignWithmd5',
- 'oid': (1, 3, 36, 3, 3, 2, 4)},
- (1, 3, 36, 3, 3, 2, 8, 1, 1, 1): {'comment': 'ECC Brainpool Standard Curves and Curve Generation',
- 'description': 'brainpoolP224r1 (1 3 36 3 3 2 8 1 1 1)',
- 'hexoid': '06 09 2B 24 03 03 02 08 01 01 01',
- 'name': 'brainpoolP224r1',
- 'oid': (1, 3, 36, 3, 3, 2, 8, 1, 1, 1)},
- (1, 3, 36, 3, 3, 2, 8, 1, 1, 2): {'comment': 'ECC Brainpool Standard Curves and Curve Generation',
- 'description': 'brainpoolP224r1 (1 3 36 3 3 2 8 1 1 2)',
- 'hexoid': '06 09 2B 24 03 03 02 08 01 01 02',
- 'name': 'brainpoolP224r1',
- 'oid': (1, 3, 36, 3, 3, 2, 8, 1, 1, 2)},
- (1, 3, 36, 3, 3, 2, 8, 1, 1, 3): {'comment': 'ECC Brainpool Standard Curves and Curve Generation',
- 'description': 'brainpoolP224r1 (1 3 36 3 3 2 8 1 1 3)',
- 'hexoid': '06 09 2B 24 03 03 02 08 01 01 03',
- 'name': 'brainpoolP224r1',
- 'oid': (1, 3, 36, 3, 3, 2, 8, 1, 1, 3)},
- (1, 3, 36, 3, 3, 2, 8, 1, 1, 4): {'comment': 'ECC Brainpool Standard Curves and Curve Generation',
- 'description': 'brainpoolP224r1 (1 3 36 3 3 2 8 1 1 4)',
- 'hexoid': '06 09 2B 24 03 03 02 08 01 01 04',
- 'name': 'brainpoolP224r1',
- 'oid': (1, 3, 36, 3, 3, 2, 8, 1, 1, 4)},
- (1, 3, 36, 3, 3, 2, 8, 1, 1, 5): {'comment': 'ECC Brainpool Standard Curves and Curve Generation',
- 'description': 'brainpoolP224r1 (1 3 36 3 3 2 8 1 1 5)',
- 'hexoid': '06 09 2B 24 03 03 02 08 01 01 05',
- 'name': 'brainpoolP224r1',
- 'oid': (1, 3, 36, 3, 3, 2, 8, 1, 1, 5)},
- (1, 3, 36, 3, 3, 2, 8, 1, 1, 6): {'comment': 'ECC Brainpool Standard Curves and Curve Generation',
- 'description': 'brainpoolP224r1 (1 3 36 3 3 2 8 1 1 6)',
- 'hexoid': '06 09 2B 24 03 03 02 08 01 01 06',
- 'name': 'brainpoolP224r1',
- 'oid': (1, 3, 36, 3, 3, 2, 8, 1, 1, 6)},
- (1, 3, 36, 3, 3, 2, 8, 1, 1, 7): {'comment': 'ECC Brainpool Standard Curves and Curve Generation',
- 'description': 'brainpoolP224r1 (1 3 36 3 3 2 8 1 1 7)',
- 'hexoid': '06 09 2B 24 03 03 02 08 01 01 07',
- 'name': 'brainpoolP224r1',
- 'oid': (1, 3, 36, 3, 3, 2, 8, 1, 1, 7)},
- (1, 3, 36, 3, 3, 2, 8, 1, 1, 8): {'comment': 'ECC Brainpool Standard Curves and Curve Generation',
- 'description': 'brainpoolP224r1 (1 3 36 3 3 2 8 1 1 8)',
- 'hexoid': '06 09 2B 24 03 03 02 08 01 01 08',
- 'name': 'brainpoolP224r1',
- 'oid': (1, 3, 36, 3, 3, 2, 8, 1, 1, 8)},
- (1, 3, 36, 3, 3, 2, 8, 1, 1, 9): {'comment': 'ECC Brainpool Standard Curves and Curve Generation',
- 'description': 'brainpoolP224r1 (1 3 36 3 3 2 8 1 1 9)',
- 'hexoid': '06 09 2B 24 03 03 02 08 01 01 09',
- 'name': 'brainpoolP224r1',
- 'oid': (1, 3, 36, 3, 3, 2, 8, 1, 1, 9)},
- (1, 3, 36, 3, 3, 2, 8, 1, 1, 10): {'comment': 'ECC Brainpool Standard Curves and Curve Generation',
- 'description': 'brainpoolP224r1 (1 3 36 3 3 2 8 1 1 10)',
- 'hexoid': '06 09 2B 24 03 03 02 08 01 01 0A',
- 'name': 'brainpoolP224r1',
- 'oid': (1, 3, 36, 3, 3, 2, 8, 1, 1, 10)},
- (1, 3, 36, 3, 3, 2, 8, 1, 1, 11): {'comment': 'ECC Brainpool Standard Curves and Curve Generation',
- 'description': 'brainpoolP224r1 (1 3 36 3 3 2 8 1 1 11)',
- 'hexoid': '06 09 2B 24 03 03 02 08 01 01 0B',
- 'name': 'brainpoolP224r1',
- 'oid': (1, 3, 36, 3, 3, 2, 8, 1, 1, 11)},
- (1, 3, 36, 3, 3, 2, 8, 1, 1, 12): {'comment': 'ECC Brainpool Standard Curves and Curve Generation',
- 'description': 'brainpoolP224r1 (1 3 36 3 3 2 8 1 1 12)',
- 'hexoid': '06 09 2B 24 03 03 02 08 01 01 0C',
- 'name': 'brainpoolP224r1',
- 'oid': (1, 3, 36, 3, 3, 2, 8, 1, 1, 12)},
- (1, 3, 36, 3, 3, 2, 8, 1, 1, 13): {'comment': 'ECC Brainpool Standard Curves and Curve Generation',
- 'description': 'brainpoolP224r1 (1 3 36 3 3 2 8 1 1 13)',
- 'hexoid': '06 09 2B 24 03 03 02 08 01 01 0D',
- 'name': 'brainpoolP224r1',
- 'oid': (1, 3, 36, 3, 3, 2, 8, 1, 1, 13)},
- (1, 3, 36, 3, 3, 2, 8, 1, 1, 14): {'comment': 'ECC Brainpool Standard Curves and Curve Generation',
- 'description': 'brainpoolP224r1 (1 3 36 3 3 2 8 1 1 14)',
- 'hexoid': '06 09 2B 24 03 03 02 08 01 01 0E',
- 'name': 'brainpoolP224r1',
- 'oid': (1, 3, 36, 3, 3, 2, 8, 1, 1, 14)},
- (1, 3, 36, 3, 4): {'comment': 'Teletrust algorithm',
- 'description': 'signatureScheme (1 3 36 3 4)',
- 'hexoid': '06 04 2B 24 03 04',
- 'name': 'signatureScheme',
- 'oid': (1, 3, 36, 3, 4)},
- (1, 3, 36, 3, 4, 1): {'comment': 'Teletrust signature scheme',
- 'description': 'sigS_ISO9796-1 (1 3 36 3 4 1)',
- 'hexoid': '06 05 2B 24 03 04 01',
- 'name': 'sigS_ISO9796-1',
- 'oid': (1, 3, 36, 3, 4, 1)},
- (1, 3, 36, 3, 4, 2): {'comment': 'Teletrust signature scheme',
- 'description': 'sigS_ISO9796-2 (1 3 36 3 4 2)',
- 'hexoid': '06 05 2B 24 03 04 02',
- 'name': 'sigS_ISO9796-2',
- 'oid': (1, 3, 36, 3, 4, 2)},
- (1, 3, 36, 3, 4, 2, 1): {'comment': 'Teletrust signature scheme. Unsure what this is supposed to be',
- 'description': 'sigS_ISO9796-2Withred (1 3 36 3 4 2 1)',
- 'hexoid': '06 06 2B 24 03 04 02 01',
- 'name': 'sigS_ISO9796-2Withred',
- 'oid': (1, 3, 36, 3, 4, 2, 1)},
- (1, 3, 36, 3, 4, 2, 2): {'comment': 'Teletrust signature scheme. Unsure what this is supposed to be',
- 'description': 'sigS_ISO9796-2Withrsa (1 3 36 3 4 2 2)',
- 'hexoid': '06 06 2B 24 03 04 02 02',
- 'name': 'sigS_ISO9796-2Withrsa',
- 'oid': (1, 3, 36, 3, 4, 2, 2)},
- (1, 3, 36, 3, 4, 2, 3): {'comment': 'Teletrust signature scheme. 9796-2 with random number in padding field',
- 'description': 'sigS_ISO9796-2Withrnd (1 3 36 3 4 2 3)',
- 'hexoid': '06 06 2B 24 03 04 02 03',
- 'name': 'sigS_ISO9796-2Withrnd',
- 'oid': (1, 3, 36, 3, 4, 2, 3)},
- (1, 3, 36, 4): {'comment': 'Teletrust attribute',
- 'description': 'attribute (1 3 36 4)',
- 'hexoid': '06 03 2B 24 04',
- 'name': 'attribute',
- 'oid': (1, 3, 36, 4)},
- (1, 3, 36, 5): {'comment': 'Teletrust policy',
- 'description': 'policy (1 3 36 5)',
- 'hexoid': '06 03 2B 24 05',
- 'name': 'policy',
- 'oid': (1, 3, 36, 5)},
- (1, 3, 36, 6): {'comment': 'Teletrust API',
- 'description': 'api (1 3 36 6)',
- 'hexoid': '06 03 2B 24 06',
- 'name': 'api',
- 'oid': (1, 3, 36, 6)},
- (1, 3, 36, 6, 1): {'comment': 'Teletrust API',
- 'description': 'manufacturer-specific_api (1 3 36 6 1)',
- 'hexoid': '06 04 2B 24 06 01',
- 'name': 'manufacturer-specific_api',
- 'oid': (1, 3, 36, 6, 1)},
- (1, 3, 36, 6, 1, 1): {'comment': 'Teletrust API',
- 'description': 'utimaco-api (1 3 36 6 1 1)',
- 'hexoid': '06 05 2B 24 06 01 01',
- 'name': 'utimaco-api',
- 'oid': (1, 3, 36, 6, 1, 1)},
- (1, 3, 36, 6, 2): {'comment': 'Teletrust API',
- 'description': 'functionality-specific_api (1 3 36 6 2)',
- 'hexoid': '06 04 2B 24 06 02',
- 'name': 'functionality-specific_api',
- 'oid': (1, 3, 36, 6, 2)},
- (1, 3, 36, 7): {'comment': 'Teletrust key management',
- 'description': 'keymgmnt (1 3 36 7)',
- 'hexoid': '06 03 2B 24 07',
- 'name': 'keymgmnt',
- 'oid': (1, 3, 36, 7)},
- (1, 3, 36, 7, 1): {'comment': 'Teletrust key management',
- 'description': 'keyagree (1 3 36 7 1)',
- 'hexoid': '06 04 2B 24 07 01',
- 'name': 'keyagree',
- 'oid': (1, 3, 36, 7, 1)},
- (1, 3, 36, 7, 1, 1): {'comment': 'Teletrust key management',
- 'description': 'bsiPKE (1 3 36 7 1 1)',
- 'hexoid': '06 05 2B 24 07 01 01',
- 'name': 'bsiPKE',
- 'oid': (1, 3, 36, 7, 1, 1)},
- (1, 3, 36, 7, 2): {'comment': 'Teletrust key management',
- 'description': 'keytrans (1 3 36 7 2)',
- 'hexoid': '06 04 2B 24 07 02',
- 'name': 'keytrans',
- 'oid': (1, 3, 36, 7, 2)},
- (1, 3, 36, 7, 2, 1): {'comment': 'Teletrust key management. 9796-2 with key stored in hash field',
- 'description': 'encISO9796-2Withrsa (1 3 36 7 2 1)',
- 'hexoid': '06 05 2B 24 07 02 01',
- 'name': 'encISO9796-2Withrsa',
- 'oid': (1, 3, 36, 7, 2, 1)},
- (1, 3, 36, 8, 1, 1): {'comment': 'Teletrust policy',
- 'description': 'Teletrust SigGConform policyIdentifier (1 3 36 8 1 1)',
- 'hexoid': '06 05 2B 24 08 01 01',
- 'name': 'Teletrust',
- 'oid': (1, 3, 36, 8, 1, 1)},
- (1, 3, 36, 8, 2, 1): {'comment': 'Teletrust extended key usage',
- 'description': 'directoryService (1 3 36 8 2 1)',
- 'hexoid': '06 05 2B 24 08 02 01',
- 'name': 'directoryService',
- 'oid': (1, 3, 36, 8, 2, 1)},
- (1, 3, 36, 8, 3, 1): {'comment': 'Teletrust attribute',
- 'description': 'dateOfCertGen (1 3 36 8 3 1)',
- 'hexoid': '06 05 2B 24 08 03 01',
- 'name': 'dateOfCertGen',
- 'oid': (1, 3, 36, 8, 3, 1)},
- (1, 3, 36, 8, 3, 2): {'comment': 'Teletrust attribute',
- 'description': 'procuration (1 3 36 8 3 2)',
- 'hexoid': '06 05 2B 24 08 03 02',
- 'name': 'procuration',
- 'oid': (1, 3, 36, 8, 3, 2)},
- (1, 3, 36, 8, 3, 3): {'comment': 'Teletrust attribute',
- 'description': 'admission (1 3 36 8 3 3)',
- 'hexoid': '06 05 2B 24 08 03 03',
- 'name': 'admission',
- 'oid': (1, 3, 36, 8, 3, 3)},
- (1, 3, 36, 8, 3, 4): {'comment': 'Teletrust attribute',
- 'description': 'monetaryLimit (1 3 36 8 3 4)',
- 'hexoid': '06 05 2B 24 08 03 04',
- 'name': 'monetaryLimit',
- 'oid': (1, 3, 36, 8, 3, 4)},
- (1, 3, 36, 8, 3, 5): {'comment': 'Teletrust attribute',
- 'description': 'declarationOfMajority (1 3 36 8 3 5)',
- 'hexoid': '06 05 2B 24 08 03 05',
- 'name': 'declarationOfMajority',
- 'oid': (1, 3, 36, 8, 3, 5)},
- (1, 3, 36, 8, 3, 6): {'comment': 'Teletrust attribute',
- 'description': 'integratedCircuitCardSerialNumber (1 3 36 8 3 6)',
- 'hexoid': '06 05 2B 24 08 03 06',
- 'name': 'integratedCircuitCardSerialNumber',
- 'oid': (1, 3, 36, 8, 3, 6)},
- (1, 3, 36, 8, 3, 7): {'comment': 'Teletrust attribute',
- 'description': 'pKReference (1 3 36 8 3 7)',
- 'hexoid': '06 05 2B 24 08 03 07',
- 'name': 'pKReference',
- 'oid': (1, 3, 36, 8, 3, 7)},
- (1, 3, 36, 8, 3, 8): {'comment': 'Teletrust attribute',
- 'description': 'restriction (1 3 36 8 3 8)',
- 'hexoid': '06 05 2B 24 08 03 08',
- 'name': 'restriction',
- 'oid': (1, 3, 36, 8, 3, 8)},
- (1, 3, 36, 8, 3, 9): {'comment': 'Teletrust attribute',
- 'description': 'retrieveIfAllowed (1 3 36 8 3 9)',
- 'hexoid': '06 05 2B 24 08 03 09',
- 'name': 'retrieveIfAllowed',
- 'oid': (1, 3, 36, 8, 3, 9)},
- (1, 3, 36, 8, 3, 10): {'comment': 'Teletrust attribute',
- 'description': 'requestedCertificate (1 3 36 8 3 10)',
- 'hexoid': '06 05 2B 24 08 03 0A',
- 'name': 'requestedCertificate',
- 'oid': (1, 3, 36, 8, 3, 10)},
- (1, 3, 36, 8, 3, 11): {'comment': 'Teletrust attribute',
- 'description': 'namingAuthorities (1 3 36 8 3 11)',
- 'hexoid': '06 05 2B 24 08 03 0B',
- 'name': 'namingAuthorities',
- 'oid': (1, 3, 36, 8, 3, 11)},
- (1, 3, 36, 8, 3, 11, 1): {'comment': 'Teletrust naming authorities',
- 'description': 'rechtWirtschaftSteuern (1 3 36 8 3 11 1)',
- 'hexoid': '06 06 2B 24 08 03 0B 01',
- 'name': 'rechtWirtschaftSteuern',
- 'oid': (1, 3, 36, 8, 3, 11, 1)},
- (1, 3, 36, 8, 3, 11, 1, 1): {'comment': 'Teletrust ProfessionInfo',
- 'description': 'rechtsanwaeltin (1 3 36 8 3 11 1 1)',
- 'hexoid': '06 07 2B 24 08 03 0B 01 01',
- 'name': 'rechtsanwaeltin',
- 'oid': (1, 3, 36, 8, 3, 11, 1, 1)},
- (1, 3, 36, 8, 3, 11, 1, 2): {'comment': 'Teletrust ProfessionInfo',
- 'description': 'rechtsanwalt (1 3 36 8 3 11 1 2)',
- 'hexoid': '06 07 2B 24 08 03 0B 01 02',
- 'name': 'rechtsanwalt',
- 'oid': (1, 3, 36, 8, 3, 11, 1, 2)},
- (1, 3, 36, 8, 3, 11, 1, 3): {'comment': 'Teletrust ProfessionInfo',
- 'description': 'rechtsBeistand (1 3 36 8 3 11 1 3)',
- 'hexoid': '06 07 2B 24 08 03 0B 01 03',
- 'name': 'rechtsBeistand',
- 'oid': (1, 3, 36, 8, 3, 11, 1, 3)},
- (1, 3, 36, 8, 3, 11, 1, 4): {'comment': 'Teletrust ProfessionInfo',
- 'description': 'steuerBeraterin (1 3 36 8 3 11 1 4)',
- 'hexoid': '06 07 2B 24 08 03 0B 01 04',
- 'name': 'steuerBeraterin',
- 'oid': (1, 3, 36, 8, 3, 11, 1, 4)},
- (1, 3, 36, 8, 3, 11, 1, 5): {'comment': 'Teletrust ProfessionInfo',
- 'description': 'steuerBerater (1 3 36 8 3 11 1 5)',
- 'hexoid': '06 07 2B 24 08 03 0B 01 05',
- 'name': 'steuerBerater',
- 'oid': (1, 3, 36, 8, 3, 11, 1, 5)},
- (1, 3, 36, 8, 3, 11, 1, 6): {'comment': 'Teletrust ProfessionInfo',
- 'description': 'steuerBevollmaechtigte (1 3 36 8 3 11 1 6)',
- 'hexoid': '06 07 2B 24 08 03 0B 01 06',
- 'name': 'steuerBevollmaechtigte',
- 'oid': (1, 3, 36, 8, 3, 11, 1, 6)},
- (1, 3, 36, 8, 3, 11, 1, 7): {'comment': 'Teletrust ProfessionInfo',
- 'description': 'steuerBevollmaechtigter (1 3 36 8 3 11 1 7)',
- 'hexoid': '06 07 2B 24 08 03 0B 01 07',
- 'name': 'steuerBevollmaechtigter',
- 'oid': (1, 3, 36, 8, 3, 11, 1, 7)},
- (1, 3, 36, 8, 3, 11, 1, 8): {'comment': 'Teletrust ProfessionInfo',
- 'description': 'notarin (1 3 36 8 3 11 1 8)',
- 'hexoid': '06 07 2B 24 08 03 0B 01 08',
- 'name': 'notarin',
- 'oid': (1, 3, 36, 8, 3, 11, 1, 8)},
- (1, 3, 36, 8, 3, 11, 1, 9): {'comment': 'Teletrust ProfessionInfo',
- 'description': 'notar (1 3 36 8 3 11 1 9)',
- 'hexoid': '06 07 2B 24 08 03 0B 01 09',
- 'name': 'notar',
- 'oid': (1, 3, 36, 8, 3, 11, 1, 9)},
- (1, 3, 36, 8, 3, 11, 1, 10): {'comment': 'Teletrust ProfessionInfo',
- 'description': 'notarVertreterin (1 3 36 8 3 11 1 10)',
- 'hexoid': '06 07 2B 24 08 03 0B 01 0A',
- 'name': 'notarVertreterin',
- 'oid': (1, 3, 36, 8, 3, 11, 1, 10)},
- (1, 3, 36, 8, 3, 11, 1, 11): {'comment': 'Teletrust ProfessionInfo',
- 'description': 'notarVertreter (1 3 36 8 3 11 1 11)',
- 'hexoid': '06 07 2B 24 08 03 0B 01 0B',
- 'name': 'notarVertreter',
- 'oid': (1, 3, 36, 8, 3, 11, 1, 11)},
- (1, 3, 36, 8, 3, 11, 1, 12): {'comment': 'Teletrust ProfessionInfo',
- 'description': 'notariatsVerwalterin (1 3 36 8 3 11 1 12)',
- 'hexoid': '06 07 2B 24 08 03 0B 01 0C',
- 'name': 'notariatsVerwalterin',
- 'oid': (1, 3, 36, 8, 3, 11, 1, 12)},
- (1, 3, 36, 8, 3, 11, 1, 13): {'comment': 'Teletrust ProfessionInfo',
- 'description': 'notariatsVerwalter (1 3 36 8 3 11 1 13)',
- 'hexoid': '06 07 2B 24 08 03 0B 01 0D',
- 'name': 'notariatsVerwalter',
- 'oid': (1, 3, 36, 8, 3, 11, 1, 13)},
- (1, 3, 36, 8, 3, 11, 1, 14): {'comment': 'Teletrust ProfessionInfo',
- 'description': 'wirtschaftsPrueferin (1 3 36 8 3 11 1 14)',
- 'hexoid': '06 07 2B 24 08 03 0B 01 0E',
- 'name': 'wirtschaftsPrueferin',
- 'oid': (1, 3, 36, 8, 3, 11, 1, 14)},
- (1, 3, 36, 8, 3, 11, 1, 15): {'comment': 'Teletrust ProfessionInfo',
- 'description': 'wirtschaftsPruefer (1 3 36 8 3 11 1 15)',
- 'hexoid': '06 07 2B 24 08 03 0B 01 0F',
- 'name': 'wirtschaftsPruefer',
- 'oid': (1, 3, 36, 8, 3, 11, 1, 15)},
- (1, 3, 36, 8, 3, 11, 1, 16): {'comment': 'Teletrust ProfessionInfo',
- 'description': 'vereidigteBuchprueferin (1 3 36 8 3 11 1 16)',
- 'hexoid': '06 07 2B 24 08 03 0B 01 10',
- 'name': 'vereidigteBuchprueferin',
- 'oid': (1, 3, 36, 8, 3, 11, 1, 16)},
- (1, 3, 36, 8, 3, 11, 1, 17): {'comment': 'Teletrust ProfessionInfo',
- 'description': 'vereidigterBuchpruefer (1 3 36 8 3 11 1 17)',
- 'hexoid': '06 07 2B 24 08 03 0B 01 11',
- 'name': 'vereidigterBuchpruefer',
- 'oid': (1, 3, 36, 8, 3, 11, 1, 17)},
- (1, 3, 36, 8, 3, 11, 1, 18): {'comment': 'Teletrust ProfessionInfo',
- 'description': 'patentAnwaeltin (1 3 36 8 3 11 1 18)',
- 'hexoid': '06 07 2B 24 08 03 0B 01 12',
- 'name': 'patentAnwaeltin',
- 'oid': (1, 3, 36, 8, 3, 11, 1, 18)},
- (1, 3, 36, 8, 3, 11, 1, 19): {'comment': 'Teletrust ProfessionInfo',
- 'description': 'patentAnwalt (1 3 36 8 3 11 1 19)',
- 'hexoid': '06 07 2B 24 08 03 0B 01 13',
- 'name': 'patentAnwalt',
- 'oid': (1, 3, 36, 8, 3, 11, 1, 19)},
- (1, 3, 36, 8, 3, 13): {'comment': 'Teletrust OCSP attribute',
- 'description': 'certHash (1 3 36 8 3 13)',
- 'hexoid': '06 05 2B 24 08 03 0D',
- 'name': 'certHash',
- 'oid': (1, 3, 36, 8, 3, 13)},
- (1, 3, 36, 8, 3, 14): {'comment': 'Teletrust attribute',
- 'description': 'nameAtBirth (1 3 36 8 3 14)',
- 'hexoid': '06 05 2B 24 08 03 0E',
- 'name': 'nameAtBirth',
- 'oid': (1, 3, 36, 8, 3, 14)},
- (1, 3, 36, 8, 3, 15): {'comment': 'Teletrust attribute',
- 'description': 'additionalInformation (1 3 36 8 3 15)',
- 'hexoid': '06 05 2B 24 08 03 0F',
- 'name': 'additionalInformation',
- 'oid': (1, 3, 36, 8, 3, 15)},
- (1, 3, 36, 8, 4, 1): {'comment': 'Teletrust OtherName attribute',
- 'description': 'personalData (1 3 36 8 4 1)',
- 'hexoid': '06 05 2B 24 08 04 01',
- 'name': 'personalData',
- 'oid': (1, 3, 36, 8, 4, 1)},
- (1, 3, 36, 8, 4, 8): {'comment': 'Teletrust attribute certificate attribute',
- 'description': 'restriction (1 3 36 8 4 8)',
- 'hexoid': '06 05 2B 24 08 04 08',
- 'name': 'restriction',
- 'oid': (1, 3, 36, 8, 4, 8)},
- (1, 3, 36, 8, 5, 1, 1, 1): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaIndicateSHA1 (1 3 36 8 5 1 1 1)',
- 'hexoid': '06 07 2B 24 08 05 01 01 01',
- 'name': 'rsaIndicateSHA1',
- 'oid': (1, 3, 36, 8, 5, 1, 1, 1)},
- (1, 3, 36, 8, 5, 1, 1, 2): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaIndicateRIPEMD160 (1 3 36 8 5 1 1 2)',
- 'hexoid': '06 07 2B 24 08 05 01 01 02',
- 'name': 'rsaIndicateRIPEMD160',
- 'oid': (1, 3, 36, 8, 5, 1, 1, 2)},
- (1, 3, 36, 8, 5, 1, 1, 3): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaWithSHA1 (1 3 36 8 5 1 1 3)',
- 'hexoid': '06 07 2B 24 08 05 01 01 03',
- 'name': 'rsaWithSHA1',
- 'oid': (1, 3, 36, 8, 5, 1, 1, 3)},
- (1, 3, 36, 8, 5, 1, 1, 4): {'comment': 'Teletrust signature algorithm',
- 'description': 'rsaWithRIPEMD160 (1 3 36 8 5 1 1 4)',
- 'hexoid': '06 07 2B 24 08 05 01 01 04',
- 'name': 'rsaWithRIPEMD160',
- 'oid': (1, 3, 36, 8, 5, 1, 1, 4)},
- (1, 3, 36, 8, 5, 1, 2, 1): {'comment': 'Teletrust signature algorithm',
- 'description': 'dsaExtended (1 3 36 8 5 1 2 1)',
- 'hexoid': '06 07 2B 24 08 05 01 02 01',
- 'name': 'dsaExtended',
- 'oid': (1, 3, 36, 8, 5, 1, 2, 1)},
- (1, 3, 36, 8, 5, 1, 2, 2): {'comment': 'Teletrust signature algorithm',
- 'description': 'dsaWithRIPEMD160 (1 3 36 8 5 1 2 2)',
- 'hexoid': '06 07 2B 24 08 05 01 02 02',
- 'name': 'dsaWithRIPEMD160',
- 'oid': (1, 3, 36, 8, 5, 1, 2, 2)},
- (1, 3, 36, 8, 6, 1): {'comment': 'Teletrust signature attributes',
- 'description': 'cert (1 3 36 8 6 1)',
- 'hexoid': '06 05 2B 24 08 06 01',
- 'name': 'cert',
- 'oid': (1, 3, 36, 8, 6, 1)},
- (1, 3, 36, 8, 6, 2): {'comment': 'Teletrust signature attributes',
- 'description': 'certRef (1 3 36 8 6 2)',
- 'hexoid': '06 05 2B 24 08 06 02',
- 'name': 'certRef',
- 'oid': (1, 3, 36, 8, 6, 2)},
- (1, 3, 36, 8, 6, 3): {'comment': 'Teletrust signature attributes',
- 'description': 'attrCert (1 3 36 8 6 3)',
- 'hexoid': '06 05 2B 24 08 06 03',
- 'name': 'attrCert',
- 'oid': (1, 3, 36, 8, 6, 3)},
- (1, 3, 36, 8, 6, 4): {'comment': 'Teletrust signature attributes',
- 'description': 'attrRef (1 3 36 8 6 4)',
- 'hexoid': '06 05 2B 24 08 06 04',
- 'name': 'attrRef',
- 'oid': (1, 3, 36, 8, 6, 4)},
- (1, 3, 36, 8, 6, 5): {'comment': 'Teletrust signature attributes',
- 'description': 'fileName (1 3 36 8 6 5)',
- 'hexoid': '06 05 2B 24 08 06 05',
- 'name': 'fileName',
- 'oid': (1, 3, 36, 8, 6, 5)},
- (1, 3, 36, 8, 6, 6): {'comment': 'Teletrust signature attributes',
- 'description': 'storageTime (1 3 36 8 6 6)',
- 'hexoid': '06 05 2B 24 08 06 06',
- 'name': 'storageTime',
- 'oid': (1, 3, 36, 8, 6, 6)},
- (1, 3, 36, 8, 6, 7): {'comment': 'Teletrust signature attributes',
- 'description': 'fileSize (1 3 36 8 6 7)',
- 'hexoid': '06 05 2B 24 08 06 07',
- 'name': 'fileSize',
- 'oid': (1, 3, 36, 8, 6, 7)},
- (1, 3, 36, 8, 6, 8): {'comment': 'Teletrust signature attributes',
- 'description': 'location (1 3 36 8 6 8)',
- 'hexoid': '06 05 2B 24 08 06 08',
- 'name': 'location',
- 'oid': (1, 3, 36, 8, 6, 8)},
- (1, 3, 36, 8, 6, 9): {'comment': 'Teletrust signature attributes',
- 'description': 'sigNumber (1 3 36 8 6 9)',
- 'hexoid': '06 05 2B 24 08 06 09',
- 'name': 'sigNumber',
- 'oid': (1, 3, 36, 8, 6, 9)},
- (1, 3, 36, 8, 6, 10): {'comment': 'Teletrust signature attributes',
- 'description': 'autoGen (1 3 36 8 6 10)',
- 'hexoid': '06 05 2B 24 08 06 0A',
- 'name': 'autoGen',
- 'oid': (1, 3, 36, 8, 6, 10)},
- (1, 3, 36, 8, 7, 1, 1): {'comment': 'Teletrust presentation types',
- 'description': 'ptAdobeILL (1 3 36 8 7 1 1)',
- 'hexoid': '06 06 2B 24 08 07 01 01',
- 'name': 'ptAdobeILL',
- 'oid': (1, 3, 36, 8, 7, 1, 1)},
- (1, 3, 36, 8, 7, 1, 2): {'comment': 'Teletrust presentation types',
- 'description': 'ptAmiPro (1 3 36 8 7 1 2)',
- 'hexoid': '06 06 2B 24 08 07 01 02',
- 'name': 'ptAmiPro',
- 'oid': (1, 3, 36, 8, 7, 1, 2)},
- (1, 3, 36, 8, 7, 1, 3): {'comment': 'Teletrust presentation types',
- 'description': 'ptAutoCAD (1 3 36 8 7 1 3)',
- 'hexoid': '06 06 2B 24 08 07 01 03',
- 'name': 'ptAutoCAD',
- 'oid': (1, 3, 36, 8, 7, 1, 3)},
- (1, 3, 36, 8, 7, 1, 4): {'comment': 'Teletrust presentation types',
- 'description': 'ptBinary (1 3 36 8 7 1 4)',
- 'hexoid': '06 06 2B 24 08 07 01 04',
- 'name': 'ptBinary',
- 'oid': (1, 3, 36, 8, 7, 1, 4)},
- (1, 3, 36, 8, 7, 1, 5): {'comment': 'Teletrust presentation types',
- 'description': 'ptBMP (1 3 36 8 7 1 5)',
- 'hexoid': '06 06 2B 24 08 07 01 05',
- 'name': 'ptBMP',
- 'oid': (1, 3, 36, 8, 7, 1, 5)},
- (1, 3, 36, 8, 7, 1, 6): {'comment': 'Teletrust presentation types',
- 'description': 'ptCGM (1 3 36 8 7 1 6)',
- 'hexoid': '06 06 2B 24 08 07 01 06',
- 'name': 'ptCGM',
- 'oid': (1, 3, 36, 8, 7, 1, 6)},
- (1, 3, 36, 8, 7, 1, 7): {'comment': 'Teletrust presentation types',
- 'description': 'ptCorelCRT (1 3 36 8 7 1 7)',
- 'hexoid': '06 06 2B 24 08 07 01 07',
- 'name': 'ptCorelCRT',
- 'oid': (1, 3, 36, 8, 7, 1, 7)},
- (1, 3, 36, 8, 7, 1, 8): {'comment': 'Teletrust presentation types',
- 'description': 'ptCorelDRW (1 3 36 8 7 1 8)',
- 'hexoid': '06 06 2B 24 08 07 01 08',
- 'name': 'ptCorelDRW',
- 'oid': (1, 3, 36, 8, 7, 1, 8)},
- (1, 3, 36, 8, 7, 1, 9): {'comment': 'Teletrust presentation types',
- 'description': 'ptCorelEXC (1 3 36 8 7 1 9)',
- 'hexoid': '06 06 2B 24 08 07 01 09',
- 'name': 'ptCorelEXC',
- 'oid': (1, 3, 36, 8, 7, 1, 9)},
- (1, 3, 36, 8, 7, 1, 10): {'comment': 'Teletrust presentation types',
- 'description': 'ptCorelPHT (1 3 36 8 7 1 10)',
- 'hexoid': '06 06 2B 24 08 07 01 0A',
- 'name': 'ptCorelPHT',
- 'oid': (1, 3, 36, 8, 7, 1, 10)},
- (1, 3, 36, 8, 7, 1, 11): {'comment': 'Teletrust presentation types',
- 'description': 'ptDraw (1 3 36 8 7 1 11)',
- 'hexoid': '06 06 2B 24 08 07 01 0B',
- 'name': 'ptDraw',
- 'oid': (1, 3, 36, 8, 7, 1, 11)},
- (1, 3, 36, 8, 7, 1, 12): {'comment': 'Teletrust presentation types',
- 'description': 'ptDVI (1 3 36 8 7 1 12)',
- 'hexoid': '06 06 2B 24 08 07 01 0C',
- 'name': 'ptDVI',
- 'oid': (1, 3, 36, 8, 7, 1, 12)},
- (1, 3, 36, 8, 7, 1, 13): {'comment': 'Teletrust presentation types',
- 'description': 'ptEPS (1 3 36 8 7 1 13)',
- 'hexoid': '06 06 2B 24 08 07 01 0D',
- 'name': 'ptEPS',
- 'oid': (1, 3, 36, 8, 7, 1, 13)},
- (1, 3, 36, 8, 7, 1, 14): {'comment': 'Teletrust presentation types',
- 'description': 'ptExcel (1 3 36 8 7 1 14)',
- 'hexoid': '06 06 2B 24 08 07 01 0E',
- 'name': 'ptExcel',
- 'oid': (1, 3, 36, 8, 7, 1, 14)},
- (1, 3, 36, 8, 7, 1, 15): {'comment': 'Teletrust presentation types',
- 'description': 'ptGEM (1 3 36 8 7 1 15)',
- 'hexoid': '06 06 2B 24 08 07 01 0F',
- 'name': 'ptGEM',
- 'oid': (1, 3, 36, 8, 7, 1, 15)},
- (1, 3, 36, 8, 7, 1, 16): {'comment': 'Teletrust presentation types',
- 'description': 'ptGIF (1 3 36 8 7 1 16)',
- 'hexoid': '06 06 2B 24 08 07 01 10',
- 'name': 'ptGIF',
- 'oid': (1, 3, 36, 8, 7, 1, 16)},
- (1, 3, 36, 8, 7, 1, 17): {'comment': 'Teletrust presentation types',
- 'description': 'ptHPGL (1 3 36 8 7 1 17)',
- 'hexoid': '06 06 2B 24 08 07 01 11',
- 'name': 'ptHPGL',
- 'oid': (1, 3, 36, 8, 7, 1, 17)},
- (1, 3, 36, 8, 7, 1, 18): {'comment': 'Teletrust presentation types',
- 'description': 'ptJPEG (1 3 36 8 7 1 18)',
- 'hexoid': '06 06 2B 24 08 07 01 12',
- 'name': 'ptJPEG',
- 'oid': (1, 3, 36, 8, 7, 1, 18)},
- (1, 3, 36, 8, 7, 1, 19): {'comment': 'Teletrust presentation types',
- 'description': 'ptKodak (1 3 36 8 7 1 19)',
- 'hexoid': '06 06 2B 24 08 07 01 13',
- 'name': 'ptKodak',
- 'oid': (1, 3, 36, 8, 7, 1, 19)},
- (1, 3, 36, 8, 7, 1, 20): {'comment': 'Teletrust presentation types',
- 'description': 'ptLaTeX (1 3 36 8 7 1 20)',
- 'hexoid': '06 06 2B 24 08 07 01 14',
- 'name': 'ptLaTeX',
- 'oid': (1, 3, 36, 8, 7, 1, 20)},
- (1, 3, 36, 8, 7, 1, 21): {'comment': 'Teletrust presentation types',
- 'description': 'ptLotus (1 3 36 8 7 1 21)',
- 'hexoid': '06 06 2B 24 08 07 01 15',
- 'name': 'ptLotus',
- 'oid': (1, 3, 36, 8, 7, 1, 21)},
- (1, 3, 36, 8, 7, 1, 22): {'comment': 'Teletrust presentation types',
- 'description': 'ptLotusPIC (1 3 36 8 7 1 22)',
- 'hexoid': '06 06 2B 24 08 07 01 16',
- 'name': 'ptLotusPIC',
- 'oid': (1, 3, 36, 8, 7, 1, 22)},
- (1, 3, 36, 8, 7, 1, 23): {'comment': 'Teletrust presentation types',
- 'description': 'ptMacPICT (1 3 36 8 7 1 23)',
- 'hexoid': '06 06 2B 24 08 07 01 17',
- 'name': 'ptMacPICT',
- 'oid': (1, 3, 36, 8, 7, 1, 23)},
- (1, 3, 36, 8, 7, 1, 24): {'comment': 'Teletrust presentation types',
- 'description': 'ptMacWord (1 3 36 8 7 1 24)',
- 'hexoid': '06 06 2B 24 08 07 01 18',
- 'name': 'ptMacWord',
- 'oid': (1, 3, 36, 8, 7, 1, 24)},
- (1, 3, 36, 8, 7, 1, 25): {'comment': 'Teletrust presentation types',
- 'description': 'ptMSWfD (1 3 36 8 7 1 25)',
- 'hexoid': '06 06 2B 24 08 07 01 19',
- 'name': 'ptMSWfD',
- 'oid': (1, 3, 36, 8, 7, 1, 25)},
- (1, 3, 36, 8, 7, 1, 26): {'comment': 'Teletrust presentation types',
- 'description': 'ptMSWord (1 3 36 8 7 1 26)',
- 'hexoid': '06 06 2B 24 08 07 01 1A',
- 'name': 'ptMSWord',
- 'oid': (1, 3, 36, 8, 7, 1, 26)},
- (1, 3, 36, 8, 7, 1, 27): {'comment': 'Teletrust presentation types',
- 'description': 'ptMSWord2 (1 3 36 8 7 1 27)',
- 'hexoid': '06 06 2B 24 08 07 01 1B',
- 'name': 'ptMSWord2',
- 'oid': (1, 3, 36, 8, 7, 1, 27)},
- (1, 3, 36, 8, 7, 1, 28): {'comment': 'Teletrust presentation types',
- 'description': 'ptMSWord6 (1 3 36 8 7 1 28)',
- 'hexoid': '06 06 2B 24 08 07 01 1C',
- 'name': 'ptMSWord6',
- 'oid': (1, 3, 36, 8, 7, 1, 28)},
- (1, 3, 36, 8, 7, 1, 29): {'comment': 'Teletrust presentation types',
- 'description': 'ptMSWord8 (1 3 36 8 7 1 29)',
- 'hexoid': '06 06 2B 24 08 07 01 1D',
- 'name': 'ptMSWord8',
- 'oid': (1, 3, 36, 8, 7, 1, 29)},
- (1, 3, 36, 8, 7, 1, 30): {'comment': 'Teletrust presentation types',
- 'description': 'ptPDF (1 3 36 8 7 1 30)',
- 'hexoid': '06 06 2B 24 08 07 01 1E',
- 'name': 'ptPDF',
- 'oid': (1, 3, 36, 8, 7, 1, 30)},
- (1, 3, 36, 8, 7, 1, 31): {'comment': 'Teletrust presentation types',
- 'description': 'ptPIF (1 3 36 8 7 1 31)',
- 'hexoid': '06 06 2B 24 08 07 01 1F',
- 'name': 'ptPIF',
- 'oid': (1, 3, 36, 8, 7, 1, 31)},
- (1, 3, 36, 8, 7, 1, 32): {'comment': 'Teletrust presentation types',
- 'description': 'ptPostscript (1 3 36 8 7 1 32)',
- 'hexoid': '06 06 2B 24 08 07 01 20',
- 'name': 'ptPostscript',
- 'oid': (1, 3, 36, 8, 7, 1, 32)},
- (1, 3, 36, 8, 7, 1, 33): {'comment': 'Teletrust presentation types',
- 'description': 'ptRTF (1 3 36 8 7 1 33)',
- 'hexoid': '06 06 2B 24 08 07 01 21',
- 'name': 'ptRTF',
- 'oid': (1, 3, 36, 8, 7, 1, 33)},
- (1, 3, 36, 8, 7, 1, 34): {'comment': 'Teletrust presentation types',
- 'description': 'ptSCITEX (1 3 36 8 7 1 34)',
- 'hexoid': '06 06 2B 24 08 07 01 22',
- 'name': 'ptSCITEX',
- 'oid': (1, 3, 36, 8, 7, 1, 34)},
- (1, 3, 36, 8, 7, 1, 35): {'comment': 'Teletrust presentation types',
- 'description': 'ptTAR (1 3 36 8 7 1 35)',
- 'hexoid': '06 06 2B 24 08 07 01 23',
- 'name': 'ptTAR',
- 'oid': (1, 3, 36, 8, 7, 1, 35)},
- (1, 3, 36, 8, 7, 1, 36): {'comment': 'Teletrust presentation types',
- 'description': 'ptTarga (1 3 36 8 7 1 36)',
- 'hexoid': '06 06 2B 24 08 07 01 24',
- 'name': 'ptTarga',
- 'oid': (1, 3, 36, 8, 7, 1, 36)},
- (1, 3, 36, 8, 7, 1, 37): {'comment': 'Teletrust presentation types',
- 'description': 'ptTeX (1 3 36 8 7 1 37)',
- 'hexoid': '06 06 2B 24 08 07 01 25',
- 'name': 'ptTeX',
- 'oid': (1, 3, 36, 8, 7, 1, 37)},
- (1, 3, 36, 8, 7, 1, 38): {'comment': 'Teletrust presentation types',
- 'description': 'ptText (1 3 36 8 7 1 38)',
- 'hexoid': '06 06 2B 24 08 07 01 26',
- 'name': 'ptText',
- 'oid': (1, 3, 36, 8, 7, 1, 38)},
- (1, 3, 36, 8, 7, 1, 39): {'comment': 'Teletrust presentation types',
- 'description': 'ptTIFF (1 3 36 8 7 1 39)',
- 'hexoid': '06 06 2B 24 08 07 01 27',
- 'name': 'ptTIFF',
- 'oid': (1, 3, 36, 8, 7, 1, 39)},
- (1, 3, 36, 8, 7, 1, 40): {'comment': 'Teletrust presentation types',
- 'description': 'ptTIFF-FC (1 3 36 8 7 1 40)',
- 'hexoid': '06 06 2B 24 08 07 01 28',
- 'name': 'ptTIFF-FC',
- 'oid': (1, 3, 36, 8, 7, 1, 40)},
- (1, 3, 36, 8, 7, 1, 41): {'comment': 'Teletrust presentation types',
- 'description': 'ptUID (1 3 36 8 7 1 41)',
- 'hexoid': '06 06 2B 24 08 07 01 29',
- 'name': 'ptUID',
- 'oid': (1, 3, 36, 8, 7, 1, 41)},
- (1, 3, 36, 8, 7, 1, 42): {'comment': 'Teletrust presentation types',
- 'description': 'ptUUEncode (1 3 36 8 7 1 42)',
- 'hexoid': '06 06 2B 24 08 07 01 2A',
- 'name': 'ptUUEncode',
- 'oid': (1, 3, 36, 8, 7, 1, 42)},
- (1, 3, 36, 8, 7, 1, 43): {'comment': 'Teletrust presentation types',
- 'description': 'ptWMF (1 3 36 8 7 1 43)',
- 'hexoid': '06 06 2B 24 08 07 01 2B',
- 'name': 'ptWMF',
- 'oid': (1, 3, 36, 8, 7, 1, 43)},
- (1, 3, 36, 8, 7, 1, 44): {'comment': 'Teletrust presentation types',
- 'description': 'ptWordPerfect (1 3 36 8 7 1 44)',
- 'hexoid': '06 06 2B 24 08 07 01 2C',
- 'name': 'ptWordPerfect',
- 'oid': (1, 3, 36, 8, 7, 1, 44)},
- (1, 3, 36, 8, 7, 1, 45): {'comment': 'Teletrust presentation types',
- 'description': 'ptWPGrph (1 3 36 8 7 1 45)',
- 'hexoid': '06 06 2B 24 08 07 01 2D',
- 'name': 'ptWPGrph',
- 'oid': (1, 3, 36, 8, 7, 1, 45)},
- (1, 3, 101, 1, 4): {'comment': 'Thawte',
- 'description': 'thawte-ce (1 3 101 1 4)',
- 'hexoid': '06 04 2B 65 01 04',
- 'name': 'thawte-ce',
- 'oid': (1, 3, 101, 1, 4)},
- (1, 3, 101, 1, 4, 1): {'comment': 'Thawte certificate extension',
- 'description': 'strongExtranet (1 3 101 1 4 1)',
- 'hexoid': '06 05 2B 65 01 04 01',
- 'name': 'strongExtranet',
- 'oid': (1, 3, 101, 1, 4, 1)},
- (1, 3, 132, 0, 1): {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'sect163k1 (1 3 132 0 1)',
- 'hexoid': '06 05 2B 81 04 00 01',
- 'name': 'sect163k1',
- 'oid': (1, 3, 132, 0, 1)},
- (1, 3, 132, 0, 2): {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'sect163r1 (1 3 132 0 2)',
- 'hexoid': '06 05 2B 81 04 00 02',
- 'name': 'sect163r1',
- 'oid': (1, 3, 132, 0, 2)},
- (1, 3, 132, 0, 3): {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'sect239k1 (1 3 132 0 3)',
- 'hexoid': '06 05 2B 81 04 00 03',
- 'name': 'sect239k1',
- 'oid': (1, 3, 132, 0, 3)},
- (1, 3, 132, 0, 4): {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'sect113r1 (1 3 132 0 4)',
- 'hexoid': '06 05 2B 81 04 00 04',
- 'name': 'sect113r1',
- 'oid': (1, 3, 132, 0, 4)},
- (1, 3, 132, 0, 5): {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'sect113r2 (1 3 132 0 5)',
- 'hexoid': '06 05 2B 81 04 00 05',
- 'name': 'sect113r2',
- 'oid': (1, 3, 132, 0, 5)},
- (1, 3, 132, 0, 6): {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'secp112r1 (1 3 132 0 6)',
- 'hexoid': '06 05 2B 81 04 00 06',
- 'name': 'secp112r1',
- 'oid': (1, 3, 132, 0, 6)},
- (1, 3, 132, 0, 7): {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'secp112r2 (1 3 132 0 7)',
- 'hexoid': '06 05 2B 81 04 00 07',
- 'name': 'secp112r2',
- 'oid': (1, 3, 132, 0, 7)},
- (1, 3, 132, 0, 8): {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'secp160r1 (1 3 132 0 8)',
- 'hexoid': '06 05 2B 81 04 00 08',
- 'name': 'secp160r1',
- 'oid': (1, 3, 132, 0, 8)},
- (1, 3, 132, 0, 9): {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'secp160k1 (1 3 132 0 9)',
- 'hexoid': '06 05 2B 81 04 00 09',
- 'name': 'secp160k1',
- 'oid': (1, 3, 132, 0, 9)},
- (1, 3, 132, 0, 10): {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'secp256k1 (1 3 132 0 10)',
- 'hexoid': '06 05 2B 81 04 00 0A',
- 'name': 'secp256k1',
- 'oid': (1, 3, 132, 0, 10)},
- (1, 3, 132, 0, 15): {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'sect163r2 (1 3 132 0 15)',
- 'hexoid': '06 05 2B 81 04 00 0F',
- 'name': 'sect163r2',
- 'oid': (1, 3, 132, 0, 15)},
- (1, 3, 132, 0, 16): {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'sect283k1 (1 3 132 0 16)',
- 'hexoid': '06 05 2B 81 04 00 10',
- 'name': 'sect283k1',
- 'oid': (1, 3, 132, 0, 16)},
- (1, 3, 132, 0, 17): {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'sect283r1 (1 3 132 0 17)',
- 'hexoid': '06 05 2B 81 04 00 11',
- 'name': 'sect283r1',
- 'oid': (1, 3, 132, 0, 17)},
- (1, 3, 132, 0, 22): {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'sect131r1 (1 3 132 0 22)',
- 'hexoid': '06 05 2B 81 04 00 16',
- 'name': 'sect131r1',
- 'oid': (1, 3, 132, 0, 22)},
- (1, 3, 132, 0, 23): {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'sect131r2 (1 3 132 0 23)',
- 'hexoid': '06 05 2B 81 04 00 17',
- 'name': 'sect131r2',
- 'oid': (1, 3, 132, 0, 23)},
- (1, 3, 132, 0, 24): {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'sect193r1 (1 3 132 0 24)',
- 'hexoid': '06 05 2B 81 04 00 18',
- 'name': 'sect193r1',
- 'oid': (1, 3, 132, 0, 24)},
- (1, 3, 132, 0, 25): {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'sect193r2 (1 3 132 0 25)',
- 'hexoid': '06 05 2B 81 04 00 19',
- 'name': 'sect193r2',
- 'oid': (1, 3, 132, 0, 25)},
- (1, 3, 132, 0, 26): {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'sect233k1 (1 3 132 0 26)',
- 'hexoid': '06 05 2B 81 04 00 1A',
- 'name': 'sect233k1',
- 'oid': (1, 3, 132, 0, 26)},
- (1, 3, 132, 0, 27): {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'sect233r1 (1 3 132 0 27)',
- 'hexoid': '06 05 2B 81 04 00 1B',
- 'name': 'sect233r1',
- 'oid': (1, 3, 132, 0, 27)},
- (1, 3, 132, 0, 28): {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'secp128r1 (1 3 132 0 28)',
- 'hexoid': '06 05 2B 81 04 00 1C',
- 'name': 'secp128r1',
- 'oid': (1, 3, 132, 0, 28)},
- (1, 3, 132, 0, 29): {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'secp128r2 (1 3 132 0 29)',
- 'hexoid': '06 05 2B 81 04 00 1D',
- 'name': 'secp128r2',
- 'oid': (1, 3, 132, 0, 29)},
- (1, 3, 132, 0, 30): {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'secp160r2 (1 3 132 0 30)',
- 'hexoid': '06 05 2B 81 04 00 1E',
- 'name': 'secp160r2',
- 'oid': (1, 3, 132, 0, 30)},
- (1, 3, 132, 0, 31): {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'secp192k1 (1 3 132 0 31)',
- 'hexoid': '06 05 2B 81 04 00 1F',
- 'name': 'secp192k1',
- 'oid': (1, 3, 132, 0, 31)},
- (1, 3, 132, 0, 32): {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'secp224k1 (1 3 132 0 32)',
- 'hexoid': '06 05 2B 81 04 00 20',
- 'name': 'secp224k1',
- 'oid': (1, 3, 132, 0, 32)},
- (1, 3, 132, 0, 33): {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'secp224r1 (1 3 132 0 33)',
- 'hexoid': '06 05 2B 81 04 00 21',
- 'name': 'secp224r1',
- 'oid': (1, 3, 132, 0, 33)},
- (1, 3, 132, 0, 34): {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'secp384r1 (1 3 132 0 34)',
- 'hexoid': '06 05 2B 81 04 00 22',
- 'name': 'secp384r1',
- 'oid': (1, 3, 132, 0, 34)},
- (1, 3, 132, 0, 35): {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'secp521r1 (1 3 132 0 35)',
- 'hexoid': '06 05 2B 81 04 00 23',
- 'name': 'secp521r1',
- 'oid': (1, 3, 132, 0, 35)},
- (1, 3, 132, 0, 36): {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'sect409k1 (1 3 132 0 36)',
- 'hexoid': '06 05 2B 81 04 00 24',
- 'name': 'sect409k1',
- 'oid': (1, 3, 132, 0, 36)},
- (1, 3, 132, 0, 37): {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'sect409r1 (1 3 132 0 37)',
- 'hexoid': '06 05 2B 81 04 00 25',
- 'name': 'sect409r1',
- 'oid': (1, 3, 132, 0, 37)},
- (1, 3, 132, 0, 38): {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'sect571k1 (1 3 132 0 38)',
- 'hexoid': '06 05 2B 81 04 00 26',
- 'name': 'sect571k1',
- 'oid': (1, 3, 132, 0, 38)},
- (1, 3, 132, 0, 39): {'comment': 'SECG (Certicom) named elliptic curve',
- 'description': 'sect571r1 (1 3 132 0 39)',
- 'hexoid': '06 05 2B 81 04 00 27',
- 'name': 'sect571r1',
- 'oid': (1, 3, 132, 0, 39)},
- (2, 5, 4, 0): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'objectClass (2 5 4 0)',
- 'hexoid': '06 03 55 04 00',
- 'name': 'objectClass',
- 'oid': (2, 5, 4, 0)},
- (2, 5, 4, 1): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'aliasedEntryName (2 5 4 1)',
- 'hexoid': '06 03 55 04 01',
- 'name': 'aliasedEntryName',
- 'oid': (2, 5, 4, 1)},
- (2, 5, 4, 2): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'knowledgeInformation (2 5 4 2)',
- 'hexoid': '06 03 55 04 02',
- 'name': 'knowledgeInformation',
- 'oid': (2, 5, 4, 2)},
- (2, 5, 4, 3): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'commonName (2 5 4 3)',
- 'hexoid': '06 03 55 04 03',
- 'name': 'commonName',
- 'oid': (2, 5, 4, 3)},
- (2, 5, 4, 4): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'surname (2 5 4 4)',
- 'hexoid': '06 03 55 04 04',
- 'name': 'surname',
- 'oid': (2, 5, 4, 4)},
- (2, 5, 4, 5): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'serialNumber (2 5 4 5)',
- 'hexoid': '06 03 55 04 05',
- 'name': 'serialNumber',
- 'oid': (2, 5, 4, 5)},
- (2, 5, 4, 6): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'countryName (2 5 4 6)',
- 'hexoid': '06 03 55 04 06',
- 'name': 'countryName',
- 'oid': (2, 5, 4, 6)},
- (2, 5, 4, 7): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'localityName (2 5 4 7)',
- 'hexoid': '06 03 55 04 07',
- 'name': 'localityName',
- 'oid': (2, 5, 4, 7)},
- (2, 5, 4, 7, 1): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'collectiveLocalityName (2 5 4 7 1)',
- 'hexoid': '06 04 55 04 07 01',
- 'name': 'collectiveLocalityName',
- 'oid': (2, 5, 4, 7, 1)},
- (2, 5, 4, 8): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'stateOrProvinceName (2 5 4 8)',
- 'hexoid': '06 03 55 04 08',
- 'name': 'stateOrProvinceName',
- 'oid': (2, 5, 4, 8)},
- (2, 5, 4, 8, 1): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'collectiveStateOrProvinceName (2 5 4 8 1)',
- 'hexoid': '06 04 55 04 08 01',
- 'name': 'collectiveStateOrProvinceName',
- 'oid': (2, 5, 4, 8, 1)},
- (2, 5, 4, 9): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'streetAddress (2 5 4 9)',
- 'hexoid': '06 03 55 04 09',
- 'name': 'streetAddress',
- 'oid': (2, 5, 4, 9)},
- (2, 5, 4, 9, 1): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'collectiveStreetAddress (2 5 4 9 1)',
- 'hexoid': '06 04 55 04 09 01',
- 'name': 'collectiveStreetAddress',
- 'oid': (2, 5, 4, 9, 1)},
- (2, 5, 4, 10): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'organizationName (2 5 4 10)',
- 'hexoid': '06 03 55 04 0A',
- 'name': 'organizationName',
- 'oid': (2, 5, 4, 10)},
- (2, 5, 4, 10, 1): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'collectiveOrganizationName (2 5 4 10 1)',
- 'hexoid': '06 04 55 04 0A 01',
- 'name': 'collectiveOrganizationName',
- 'oid': (2, 5, 4, 10, 1)},
- (2, 5, 4, 11): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'organizationalUnitName (2 5 4 11)',
- 'hexoid': '06 03 55 04 0B',
- 'name': 'organizationalUnitName',
- 'oid': (2, 5, 4, 11)},
- (2, 5, 4, 11, 1): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'collectiveOrganizationalUnitName (2 5 4 11 1)',
- 'hexoid': '06 04 55 04 0B 01',
- 'name': 'collectiveOrganizationalUnitName',
- 'oid': (2, 5, 4, 11, 1)},
- (2, 5, 4, 12): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'title (2 5 4 12)',
- 'hexoid': '06 03 55 04 0C',
- 'name': 'title',
- 'oid': (2, 5, 4, 12)},
- (2, 5, 4, 13): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'description (2 5 4 13)',
- 'hexoid': '06 03 55 04 0D',
- 'name': 'description',
- 'oid': (2, 5, 4, 13)},
- (2, 5, 4, 14): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'searchGuide (2 5 4 14)',
- 'hexoid': '06 03 55 04 0E',
- 'name': 'searchGuide',
- 'oid': (2, 5, 4, 14)},
- (2, 5, 4, 15): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'businessCategory (2 5 4 15)',
- 'hexoid': '06 03 55 04 0F',
- 'name': 'businessCategory',
- 'oid': (2, 5, 4, 15)},
- (2, 5, 4, 16): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'postalAddress (2 5 4 16)',
- 'hexoid': '06 03 55 04 10',
- 'name': 'postalAddress',
- 'oid': (2, 5, 4, 16)},
- (2, 5, 4, 16, 1): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'collectivePostalAddress (2 5 4 16 1)',
- 'hexoid': '06 04 55 04 10 01',
- 'name': 'collectivePostalAddress',
- 'oid': (2, 5, 4, 16, 1)},
- (2, 5, 4, 17): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'postalCode (2 5 4 17)',
- 'hexoid': '06 03 55 04 11',
- 'name': 'postalCode',
- 'oid': (2, 5, 4, 17)},
- (2, 5, 4, 17, 1): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'collectivePostalCode (2 5 4 17 1)',
- 'hexoid': '06 04 55 04 11 01',
- 'name': 'collectivePostalCode',
- 'oid': (2, 5, 4, 17, 1)},
- (2, 5, 4, 18): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'postOfficeBox (2 5 4 18)',
- 'hexoid': '06 03 55 04 12',
- 'name': 'postOfficeBox',
- 'oid': (2, 5, 4, 18)},
- (2, 5, 4, 18, 1): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'collectivePostOfficeBox (2 5 4 18 1)',
- 'hexoid': '06 04 55 04 12 01',
- 'name': 'collectivePostOfficeBox',
- 'oid': (2, 5, 4, 18, 1)},
- (2, 5, 4, 19): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'physicalDeliveryOfficeName (2 5 4 19)',
- 'hexoid': '06 03 55 04 13',
- 'name': 'physicalDeliveryOfficeName',
- 'oid': (2, 5, 4, 19)},
- (2, 5, 4, 19, 1): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'collectivePhysicalDeliveryOfficeName (2 5 4 19 1)',
- 'hexoid': '06 04 55 04 13 01',
- 'name': 'collectivePhysicalDeliveryOfficeName',
- 'oid': (2, 5, 4, 19, 1)},
- (2, 5, 4, 20): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'telephoneNumber (2 5 4 20)',
- 'hexoid': '06 03 55 04 14',
- 'name': 'telephoneNumber',
- 'oid': (2, 5, 4, 20)},
- (2, 5, 4, 20, 1): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'collectiveTelephoneNumber (2 5 4 20 1)',
- 'hexoid': '06 04 55 04 14 01',
- 'name': 'collectiveTelephoneNumber',
- 'oid': (2, 5, 4, 20, 1)},
- (2, 5, 4, 21): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'telexNumber (2 5 4 21)',
- 'hexoid': '06 03 55 04 15',
- 'name': 'telexNumber',
- 'oid': (2, 5, 4, 21)},
- (2, 5, 4, 21, 1): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'collectiveTelexNumber (2 5 4 21 1)',
- 'hexoid': '06 04 55 04 15 01',
- 'name': 'collectiveTelexNumber',
- 'oid': (2, 5, 4, 21, 1)},
- (2, 5, 4, 22): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'teletexTerminalIdentifier (2 5 4 22)',
- 'hexoid': '06 03 55 04 16',
- 'name': 'teletexTerminalIdentifier',
- 'oid': (2, 5, 4, 22)},
- (2, 5, 4, 22, 1): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'collectiveTeletexTerminalIdentifier (2 5 4 22 1)',
- 'hexoid': '06 04 55 04 16 01',
- 'name': 'collectiveTeletexTerminalIdentifier',
- 'oid': (2, 5, 4, 22, 1)},
- (2, 5, 4, 23): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'facsimileTelephoneNumber (2 5 4 23)',
- 'hexoid': '06 03 55 04 17',
- 'name': 'facsimileTelephoneNumber',
- 'oid': (2, 5, 4, 23)},
- (2, 5, 4, 23, 1): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'collectiveFacsimileTelephoneNumber (2 5 4 23 1)',
- 'hexoid': '06 04 55 04 17 01',
- 'name': 'collectiveFacsimileTelephoneNumber',
- 'oid': (2, 5, 4, 23, 1)},
- (2, 5, 4, 24): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'x121Address (2 5 4 24)',
- 'hexoid': '06 03 55 04 18',
- 'name': 'x121Address',
- 'oid': (2, 5, 4, 24)},
- (2, 5, 4, 25): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'internationalISDNNumber (2 5 4 25)',
- 'hexoid': '06 03 55 04 19',
- 'name': 'internationalISDNNumber',
- 'oid': (2, 5, 4, 25)},
- (2, 5, 4, 25, 1): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'collectiveInternationalISDNNumber (2 5 4 25 1)',
- 'hexoid': '06 04 55 04 19 01',
- 'name': 'collectiveInternationalISDNNumber',
- 'oid': (2, 5, 4, 25, 1)},
- (2, 5, 4, 26): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'registeredAddress (2 5 4 26)',
- 'hexoid': '06 03 55 04 1A',
- 'name': 'registeredAddress',
- 'oid': (2, 5, 4, 26)},
- (2, 5, 4, 27): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'destinationIndicator (2 5 4 27)',
- 'hexoid': '06 03 55 04 1B',
- 'name': 'destinationIndicator',
- 'oid': (2, 5, 4, 27)},
- (2, 5, 4, 28): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'preferredDeliveryMehtod (2 5 4 28)',
- 'hexoid': '06 03 55 04 1C',
- 'name': 'preferredDeliveryMehtod',
- 'oid': (2, 5, 4, 28)},
- (2, 5, 4, 29): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'presentationAddress (2 5 4 29)',
- 'hexoid': '06 03 55 04 1D',
- 'name': 'presentationAddress',
- 'oid': (2, 5, 4, 29)},
- (2, 5, 4, 30): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'supportedApplicationContext (2 5 4 30)',
- 'hexoid': '06 03 55 04 1E',
- 'name': 'supportedApplicationContext',
- 'oid': (2, 5, 4, 30)},
- (2, 5, 4, 31): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'member (2 5 4 31)',
- 'hexoid': '06 03 55 04 1F',
- 'name': 'member',
- 'oid': (2, 5, 4, 31)},
- (2, 5, 4, 32): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'owner (2 5 4 32)',
- 'hexoid': '06 03 55 04 20',
- 'name': 'owner',
- 'oid': (2, 5, 4, 32)},
- (2, 5, 4, 33): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'roleOccupant (2 5 4 33)',
- 'hexoid': '06 03 55 04 21',
- 'name': 'roleOccupant',
- 'oid': (2, 5, 4, 33)},
- (2, 5, 4, 34): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'seeAlso (2 5 4 34)',
- 'hexoid': '06 03 55 04 22',
- 'name': 'seeAlso',
- 'oid': (2, 5, 4, 34)},
- (2, 5, 4, 35): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'userPassword (2 5 4 35)',
- 'hexoid': '06 03 55 04 23',
- 'name': 'userPassword',
- 'oid': (2, 5, 4, 35)},
- (2, 5, 4, 36): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'userCertificate (2 5 4 36)',
- 'hexoid': '06 03 55 04 24',
- 'name': 'userCertificate',
- 'oid': (2, 5, 4, 36)},
- (2, 5, 4, 37): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'caCertificate (2 5 4 37)',
- 'hexoid': '06 03 55 04 25',
- 'name': 'caCertificate',
- 'oid': (2, 5, 4, 37)},
- (2, 5, 4, 38): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'authorityRevocationList (2 5 4 38)',
- 'hexoid': '06 03 55 04 26',
- 'name': 'authorityRevocationList',
- 'oid': (2, 5, 4, 38)},
- (2, 5, 4, 39): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'certificateRevocationList (2 5 4 39)',
- 'hexoid': '06 03 55 04 27',
- 'name': 'certificateRevocationList',
- 'oid': (2, 5, 4, 39)},
- (2, 5, 4, 40): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'crossCertificatePair (2 5 4 40)',
- 'hexoid': '06 03 55 04 28',
- 'name': 'crossCertificatePair',
- 'oid': (2, 5, 4, 40)},
- (2, 5, 4, 41): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'name (2 5 4 41)',
- 'hexoid': '06 03 55 04 29',
- 'name': 'name',
- 'oid': (2, 5, 4, 41)},
- (2, 5, 4, 42): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'givenName (2 5 4 42)',
- 'hexoid': '06 03 55 04 2A',
- 'name': 'givenName',
- 'oid': (2, 5, 4, 42)},
- (2, 5, 4, 43): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'initials (2 5 4 43)',
- 'hexoid': '06 03 55 04 2B',
- 'name': 'initials',
- 'oid': (2, 5, 4, 43)},
- (2, 5, 4, 44): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'generationQualifier (2 5 4 44)',
- 'hexoid': '06 03 55 04 2C',
- 'name': 'generationQualifier',
- 'oid': (2, 5, 4, 44)},
- (2, 5, 4, 45): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'uniqueIdentifier (2 5 4 45)',
- 'hexoid': '06 03 55 04 2D',
- 'name': 'uniqueIdentifier',
- 'oid': (2, 5, 4, 45)},
- (2, 5, 4, 46): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'dnQualifier (2 5 4 46)',
- 'hexoid': '06 03 55 04 2E',
- 'name': 'dnQualifier',
- 'oid': (2, 5, 4, 46)},
- (2, 5, 4, 47): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'enhancedSearchGuide (2 5 4 47)',
- 'hexoid': '06 03 55 04 2F',
- 'name': 'enhancedSearchGuide',
- 'oid': (2, 5, 4, 47)},
- (2, 5, 4, 48): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'protocolInformation (2 5 4 48)',
- 'hexoid': '06 03 55 04 30',
- 'name': 'protocolInformation',
- 'oid': (2, 5, 4, 48)},
- (2, 5, 4, 49): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'distinguishedName (2 5 4 49)',
- 'hexoid': '06 03 55 04 31',
- 'name': 'distinguishedName',
- 'oid': (2, 5, 4, 49)},
- (2, 5, 4, 50): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'uniqueMember (2 5 4 50)',
- 'hexoid': '06 03 55 04 32',
- 'name': 'uniqueMember',
- 'oid': (2, 5, 4, 50)},
- (2, 5, 4, 51): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'houseIdentifier (2 5 4 51)',
- 'hexoid': '06 03 55 04 33',
- 'name': 'houseIdentifier',
- 'oid': (2, 5, 4, 51)},
- (2, 5, 4, 52): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'supportedAlgorithms (2 5 4 52)',
- 'hexoid': '06 03 55 04 34',
- 'name': 'supportedAlgorithms',
- 'oid': (2, 5, 4, 52)},
- (2, 5, 4, 53): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'deltaRevocationList (2 5 4 53)',
- 'hexoid': '06 03 55 04 35',
- 'name': 'deltaRevocationList',
- 'oid': (2, 5, 4, 53)},
- (2, 5, 4, 54): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'dmdName (2 5 4 54)',
- 'hexoid': '06 03 55 04 36',
- 'name': 'dmdName',
- 'oid': (2, 5, 4, 54)},
- (2, 5, 4, 55): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'clearance (2 5 4 55)',
- 'hexoid': '06 03 55 04 37',
- 'name': 'clearance',
- 'oid': (2, 5, 4, 55)},
- (2, 5, 4, 56): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'defaultDirQop (2 5 4 56)',
- 'hexoid': '06 03 55 04 38',
- 'name': 'defaultDirQop',
- 'oid': (2, 5, 4, 56)},
- (2, 5, 4, 57): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'attributeIntegrityInfo (2 5 4 57)',
- 'hexoid': '06 03 55 04 39',
- 'name': 'attributeIntegrityInfo',
- 'oid': (2, 5, 4, 57)},
- (2, 5, 4, 58): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'attributeCertificate (2 5 4 58)',
- 'hexoid': '06 03 55 04 3A',
- 'name': 'attributeCertificate',
- 'oid': (2, 5, 4, 58)},
- (2, 5, 4, 59): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'attributeCertificateRevocationList (2 5 4 59)',
- 'hexoid': '06 03 55 04 3B',
- 'name': 'attributeCertificateRevocationList',
- 'oid': (2, 5, 4, 59)},
- (2, 5, 4, 60): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'confKeyInfo (2 5 4 60)',
- 'hexoid': '06 03 55 04 3C',
- 'name': 'confKeyInfo',
- 'oid': (2, 5, 4, 60)},
- (2, 5, 4, 61): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'aACertificate (2 5 4 61)',
- 'hexoid': '06 03 55 04 3D',
- 'name': 'aACertificate',
- 'oid': (2, 5, 4, 61)},
- (2, 5, 4, 62): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'attributeDescriptorCertificate (2 5 4 62)',
- 'hexoid': '06 03 55 04 3E',
- 'name': 'attributeDescriptorCertificate',
- 'oid': (2, 5, 4, 62)},
- (2, 5, 4, 63): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'attributeAuthorityRevocationList (2 5 4 63)',
- 'hexoid': '06 03 55 04 3F',
- 'name': 'attributeAuthorityRevocationList',
- 'oid': (2, 5, 4, 63)},
- (2, 5, 4, 64): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'familyInformation (2 5 4 64)',
- 'hexoid': '06 03 55 04 40',
- 'name': 'familyInformation',
- 'oid': (2, 5, 4, 64)},
- (2, 5, 4, 65): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'pseudonym (2 5 4 65)',
- 'hexoid': '06 03 55 04 41',
- 'name': 'pseudonym',
- 'oid': (2, 5, 4, 65)},
- (2, 5, 4, 66): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'communicationsService (2 5 4 66)',
- 'hexoid': '06 03 55 04 42',
- 'name': 'communicationsService',
- 'oid': (2, 5, 4, 66)},
- (2, 5, 4, 67): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'communicationsNetwork (2 5 4 67)',
- 'hexoid': '06 03 55 04 43',
- 'name': 'communicationsNetwork',
- 'oid': (2, 5, 4, 67)},
- (2, 5, 4, 68): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'certificationPracticeStmt (2 5 4 68)',
- 'hexoid': '06 03 55 04 44',
- 'name': 'certificationPracticeStmt',
- 'oid': (2, 5, 4, 68)},
- (2, 5, 4, 69): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'certificatePolicy (2 5 4 69)',
- 'hexoid': '06 03 55 04 45',
- 'name': 'certificatePolicy',
- 'oid': (2, 5, 4, 69)},
- (2, 5, 4, 70): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'pkiPath (2 5 4 70)',
- 'hexoid': '06 03 55 04 46',
- 'name': 'pkiPath',
- 'oid': (2, 5, 4, 70)},
- (2, 5, 4, 71): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'privPolicy (2 5 4 71)',
- 'hexoid': '06 03 55 04 47',
- 'name': 'privPolicy',
- 'oid': (2, 5, 4, 71)},
- (2, 5, 4, 72): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'role (2 5 4 72)',
- 'hexoid': '06 03 55 04 48',
- 'name': 'role',
- 'oid': (2, 5, 4, 72)},
- (2, 5, 4, 73): {'comment': 'X.520 id-at (2 5 4)',
- 'description': 'delegationPath (2 5 4 73)',
- 'hexoid': '06 03 55 04 49',
- 'name': 'delegationPath',
- 'oid': (2, 5, 4, 73)},
- (2, 5, 6, 0): {'comment': 'X.520 objectClass (2 5 6)',
- 'description': 'top (2 5 6 0)',
- 'hexoid': '06 03 55 06 00',
- 'name': 'top',
- 'oid': (2, 5, 6, 0)},
- (2, 5, 6, 1): {'comment': 'X.520 objectClass (2 5 6)',
- 'description': 'alias (2 5 6 1)',
- 'hexoid': '06 03 55 06 01',
- 'name': 'alias',
- 'oid': (2, 5, 6, 1)},
- (2, 5, 6, 2): {'comment': 'X.520 objectClass (2 5 6)',
- 'description': 'country (2 5 6 2)',
- 'hexoid': '06 03 55 06 02',
- 'name': 'country',
- 'oid': (2, 5, 6, 2)},
- (2, 5, 6, 3): {'comment': 'X.520 objectClass (2 5 6)',
- 'description': 'locality (2 5 6 3)',
- 'hexoid': '06 03 55 06 03',
- 'name': 'locality',
- 'oid': (2, 5, 6, 3)},
- (2, 5, 6, 4): {'comment': 'X.520 objectClass (2 5 6)',
- 'description': 'organization (2 5 6 4)',
- 'hexoid': '06 03 55 06 04',
- 'name': 'organization',
- 'oid': (2, 5, 6, 4)},
- (2, 5, 6, 5): {'comment': 'X.520 objectClass (2 5 6)',
- 'description': 'organizationalUnit (2 5 6 5)',
- 'hexoid': '06 03 55 06 05',
- 'name': 'organizationalUnit',
- 'oid': (2, 5, 6, 5)},
- (2, 5, 6, 6): {'comment': 'X.520 objectClass (2 5 6)',
- 'description': 'person (2 5 6 6)',
- 'hexoid': '06 03 55 06 06',
- 'name': 'person',
- 'oid': (2, 5, 6, 6)},
- (2, 5, 6, 7): {'comment': 'X.520 objectClass (2 5 6)',
- 'description': 'organizationalPerson (2 5 6 7)',
- 'hexoid': '06 03 55 06 07',
- 'name': 'organizationalPerson',
- 'oid': (2, 5, 6, 7)},
- (2, 5, 6, 8): {'comment': 'X.520 objectClass (2 5 6)',
- 'description': 'organizationalRole (2 5 6 8)',
- 'hexoid': '06 03 55 06 08',
- 'name': 'organizationalRole',
- 'oid': (2, 5, 6, 8)},
- (2, 5, 6, 9): {'comment': 'X.520 objectClass (2 5 6)',
- 'description': 'groupOfNames (2 5 6 9)',
- 'hexoid': '06 03 55 06 09',
- 'name': 'groupOfNames',
- 'oid': (2, 5, 6, 9)},
- (2, 5, 6, 10): {'comment': 'X.520 objectClass (2 5 6)',
- 'description': 'residentialPerson (2 5 6 10)',
- 'hexoid': '06 03 55 06 0A',
- 'name': 'residentialPerson',
- 'oid': (2, 5, 6, 10)},
- (2, 5, 6, 11): {'comment': 'X.520 objectClass (2 5 6)',
- 'description': 'applicationProcess (2 5 6 11)',
- 'hexoid': '06 03 55 06 0B',
- 'name': 'applicationProcess',
- 'oid': (2, 5, 6, 11)},
- (2, 5, 6, 12): {'comment': 'X.520 objectClass (2 5 6)',
- 'description': 'applicationEntity (2 5 6 12)',
- 'hexoid': '06 03 55 06 0C',
- 'name': 'applicationEntity',
- 'oid': (2, 5, 6, 12)},
- (2, 5, 6, 13): {'comment': 'X.520 objectClass (2 5 6)',
- 'description': 'dSA (2 5 6 13)',
- 'hexoid': '06 03 55 06 0D',
- 'name': 'dSA',
- 'oid': (2, 5, 6, 13)},
- (2, 5, 6, 14): {'comment': 'X.520 objectClass (2 5 6)',
- 'description': 'device (2 5 6 14)',
- 'hexoid': '06 03 55 06 0E',
- 'name': 'device',
- 'oid': (2, 5, 6, 14)},
- (2, 5, 6, 15): {'comment': 'X.520 objectClass (2 5 6)',
- 'description': 'strongAuthenticationUser (2 5 6 15)',
- 'hexoid': '06 03 55 06 0F',
- 'name': 'strongAuthenticationUser',
- 'oid': (2, 5, 6, 15)},
- (2, 5, 6, 16): {'comment': 'X.520 objectClass (2 5 6)',
- 'description': 'certificateAuthority (2 5 6 16)',
- 'hexoid': '06 03 55 06 10',
- 'name': 'certificateAuthority',
- 'oid': (2, 5, 6, 16)},
- (2, 5, 6, 17): {'comment': 'X.520 objectClass (2 5 6)',
- 'description': 'groupOfUniqueNames (2 5 6 17)',
- 'hexoid': '06 03 55 06 11',
- 'name': 'groupOfUniqueNames',
- 'oid': (2, 5, 6, 17)},
- (2, 5, 6, 21): {'comment': 'X.520 objectClass (2 5 6)',
- 'description': 'pkiUser (2 5 6 21)',
- 'hexoid': '06 03 55 06 15',
- 'name': 'pkiUser',
- 'oid': (2, 5, 6, 21)},
- (2, 5, 6, 22): {'comment': 'X.520 objectClass (2 5 6)',
- 'description': 'pkiCA (2 5 6 22)',
- 'hexoid': '06 03 55 06 16',
- 'name': 'pkiCA',
- 'oid': (2, 5, 6, 22)},
- (2, 5, 8): {'description': 'X.500-Algorithms (2 5 8)',
- 'hexoid': '06 02 55 08',
- 'name': 'X.500-Algorithms',
- 'oid': (2, 5, 8)},
- (2, 5, 8, 1): {'description': 'X.500-Alg-Encryption (2 5 8 1)',
- 'hexoid': '06 03 55 08 01',
- 'name': 'X.500-Alg-Encryption',
- 'oid': (2, 5, 8, 1)},
- (2, 5, 29, 9): {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'subjectDirectoryAttributes (2 5 29 9)',
- 'hexoid': '06 03 55 1D 09',
- 'name': 'subjectDirectoryAttributes',
- 'oid': (2, 5, 29, 9)},
- (2, 5, 29, 14): {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'subjectKeyIdentifier (2 5 29 14)',
- 'hexoid': '06 03 55 1D 0E',
- 'name': 'subjectKeyIdentifier',
- 'oid': (2, 5, 29, 14)},
- (2, 5, 29, 15): {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'keyUsage (2 5 29 15)',
- 'hexoid': '06 03 55 1D 0F',
- 'name': 'keyUsage',
- 'oid': (2, 5, 29, 15)},
- (2, 5, 29, 16): {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'privateKeyUsagePeriod (2 5 29 16)',
- 'hexoid': '06 03 55 1D 10',
- 'name': 'privateKeyUsagePeriod',
- 'oid': (2, 5, 29, 16)},
- (2, 5, 29, 17): {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'subjectAltName (2 5 29 17)',
- 'hexoid': '06 03 55 1D 11',
- 'name': 'subjectAltName',
- 'oid': (2, 5, 29, 17)},
- (2, 5, 29, 18): {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'issuerAltName (2 5 29 18)',
- 'hexoid': '06 03 55 1D 12',
- 'name': 'issuerAltName',
- 'oid': (2, 5, 29, 18)},
- (2, 5, 29, 19): {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'basicConstraints (2 5 29 19)',
- 'hexoid': '06 03 55 1D 13',
- 'name': 'basicConstraints',
- 'oid': (2, 5, 29, 19)},
- (2, 5, 29, 20): {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'cRLNumber (2 5 29 20)',
- 'hexoid': '06 03 55 1D 14',
- 'name': 'cRLNumber',
- 'oid': (2, 5, 29, 20)},
- (2, 5, 29, 21): {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'cRLReason (2 5 29 21)',
- 'hexoid': '06 03 55 1D 15',
- 'name': 'cRLReason',
- 'oid': (2, 5, 29, 21)},
- (2, 5, 29, 23): {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'instructionCode (2 5 29 23)',
- 'hexoid': '06 03 55 1D 17',
- 'name': 'instructionCode',
- 'oid': (2, 5, 29, 23)},
- (2, 5, 29, 24): {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'invalidityDate (2 5 29 24)',
- 'hexoid': '06 03 55 1D 18',
- 'name': 'invalidityDate',
- 'oid': (2, 5, 29, 24)},
- (2, 5, 29, 27): {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'deltaCRLIndicator (2 5 29 27)',
- 'hexoid': '06 03 55 1D 1B',
- 'name': 'deltaCRLIndicator',
- 'oid': (2, 5, 29, 27)},
- (2, 5, 29, 28): {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'issuingDistributionPoint (2 5 29 28)',
- 'hexoid': '06 03 55 1D 1C',
- 'name': 'issuingDistributionPoint',
- 'oid': (2, 5, 29, 28)},
- (2, 5, 29, 29): {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'certificateIssuer (2 5 29 29)',
- 'hexoid': '06 03 55 1D 1D',
- 'name': 'certificateIssuer',
- 'oid': (2, 5, 29, 29)},
- (2, 5, 29, 30): {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'nameConstraints (2 5 29 30)',
- 'hexoid': '06 03 55 1D 1E',
- 'name': 'nameConstraints',
- 'oid': (2, 5, 29, 30)},
- (2, 5, 29, 31): {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'cRLDistributionPoints (2 5 29 31)',
- 'hexoid': '06 03 55 1D 1F',
- 'name': 'cRLDistributionPoints',
- 'oid': (2, 5, 29, 31)},
- (2, 5, 29, 32): {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'certificatePolicies (2 5 29 32)',
- 'hexoid': '06 03 55 1D 20',
- 'name': 'certificatePolicies',
- 'oid': (2, 5, 29, 32)},
- (2, 5, 29, 32, 0): {'comment': 'X.509 certificatePolicies (2 5 29 32)',
- 'description': 'anyPolicy (2 5 29 32 0)',
- 'hexoid': '06 04 55 1D 20 00',
- 'name': 'anyPolicy',
- 'oid': (2, 5, 29, 32, 0)},
- (2, 5, 29, 33): {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'policyMappings (2 5 29 33)',
- 'hexoid': '06 03 55 1D 21',
- 'name': 'policyMappings',
- 'oid': (2, 5, 29, 33)},
- (2, 5, 29, 35): {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'authorityKeyIdentifier (2 5 29 35)',
- 'hexoid': '06 03 55 1D 23',
- 'name': 'authorityKeyIdentifier',
- 'oid': (2, 5, 29, 35)},
- (2, 5, 29, 36): {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'policyConstraints (2 5 29 36)',
- 'hexoid': '06 03 55 1D 24',
- 'name': 'policyConstraints',
- 'oid': (2, 5, 29, 36)},
- (2, 5, 29, 37): {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'extKeyUsage (2 5 29 37)',
- 'hexoid': '06 03 55 1D 25',
- 'name': 'extKeyUsage',
- 'oid': (2, 5, 29, 37)},
- (2, 5, 29, 37, 0): {'comment': 'X.509 extended key usage',
- 'description': 'anyExtendedKeyUsage (2 5 29 37 0)',
- 'hexoid': '06 04 55 1D 25 00',
- 'name': 'anyExtendedKeyUsage',
- 'oid': (2, 5, 29, 37, 0)},
- (2, 5, 29, 46): {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'freshestCRL (2 5 29 46)',
- 'hexoid': '06 03 55 1D 2E',
- 'name': 'freshestCRL',
- 'oid': (2, 5, 29, 46)},
- (2, 5, 29, 54): {'comment': 'X.509 id-ce (2 5 29)',
- 'description': 'inhibitAnyPolicy (2 5 29 54)',
- 'hexoid': '06 03 55 1D 36',
- 'name': 'inhibitAnyPolicy',
- 'oid': (2, 5, 29, 54)},
- (2, 16, 840, 1, 101, 2, 1, 1, 1): {'comment': 'SDN.700 INFOSEC algorithms',
- 'description': 'sdnsSignatureAlgorithm (2 16 840 1 101 2 1 1 1)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 01',
- 'name': 'sdnsSignatureAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 1)},
- (2, 16, 840, 1, 101, 2, 1, 1, 2): {'comment': 'SDN.700 INFOSEC algorithms. Formerly known as mosaicSignatureAlgorithm, this OID is better known as dsaWithSHA-1.',
- 'description': 'fortezzaSignatureAlgorithm (2 16 840 1 101 2 1 1 2)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 02',
- 'name': 'fortezzaSignatureAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 2)},
- (2, 16, 840, 1, 101, 2, 1, 1, 3): {'comment': 'SDN.700 INFOSEC algorithms',
- 'description': 'sdnsConfidentialityAlgorithm (2 16 840 1 101 2 1 1 3)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 03',
- 'name': 'sdnsConfidentialityAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 3)},
- (2, 16, 840, 1, 101, 2, 1, 1, 4): {'comment': 'SDN.700 INFOSEC algorithms. Formerly known as mosaicConfidentialityAlgorithm',
- 'description': 'fortezzaConfidentialityAlgorithm (2 16 840 1 101 2 1 1 4)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 04',
- 'name': 'fortezzaConfidentialityAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 4)},
- (2, 16, 840, 1, 101, 2, 1, 1, 5): {'comment': 'SDN.700 INFOSEC algorithms',
- 'description': 'sdnsIntegrityAlgorithm (2 16 840 1 101 2 1 1 5)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 05',
- 'name': 'sdnsIntegrityAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 5)},
- (2, 16, 840, 1, 101, 2, 1, 1, 6): {'comment': 'SDN.700 INFOSEC algorithms. Formerly known as mosaicIntegrityAlgorithm',
- 'description': 'fortezzaIntegrityAlgorithm (2 16 840 1 101 2 1 1 6)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 06',
- 'name': 'fortezzaIntegrityAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 6)},
- (2, 16, 840, 1, 101, 2, 1, 1, 7): {'comment': 'SDN.700 INFOSEC algorithms',
- 'description': 'sdnsTokenProtectionAlgorithm (2 16 840 1 101 2 1 1 7)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 07',
- 'name': 'sdnsTokenProtectionAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 7)},
- (2, 16, 840, 1, 101, 2, 1, 1, 8): {'comment': 'SDN.700 INFOSEC algorithms. Formerly know as mosaicTokenProtectionAlgorithm',
- 'description': 'fortezzaTokenProtectionAlgorithm (2 16 840 1 101 2 1 1 8)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 08',
- 'name': 'fortezzaTokenProtectionAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 8)},
- (2, 16, 840, 1, 101, 2, 1, 1, 9): {'comment': 'SDN.700 INFOSEC algorithms',
- 'description': 'sdnsKeyManagementAlgorithm (2 16 840 1 101 2 1 1 9)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 09',
- 'name': 'sdnsKeyManagementAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 9)},
- (2, 16, 840, 1, 101, 2, 1, 1, 10): {'comment': 'SDN.700 INFOSEC algorithms. Formerly known as mosaicKeyManagementAlgorithm',
- 'description': 'fortezzaKeyManagementAlgorithm (2 16 840 1 101 2 1 1 10)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 0A',
- 'name': 'fortezzaKeyManagementAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 10)},
- (2, 16, 840, 1, 101, 2, 1, 1, 11): {'comment': 'SDN.700 INFOSEC algorithms',
- 'description': 'sdnsKMandSigAlgorithm (2 16 840 1 101 2 1 1 11)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 0B',
- 'name': 'sdnsKMandSigAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 11)},
- (2, 16, 840, 1, 101, 2, 1, 1, 12): {'comment': 'SDN.700 INFOSEC algorithms. Formerly known as mosaicKMandSigAlgorithm',
- 'description': 'fortezzaKMandSigAlgorithm (2 16 840 1 101 2 1 1 12)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 0C',
- 'name': 'fortezzaKMandSigAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 12)},
- (2, 16, 840, 1, 101, 2, 1, 1, 13): {'comment': 'SDN.700 INFOSEC algorithms',
- 'description': 'suiteASignatureAlgorithm (2 16 840 1 101 2 1 1 13)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 0D',
- 'name': 'suiteASignatureAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 13)},
- (2, 16, 840, 1, 101, 2, 1, 1, 14): {'comment': 'SDN.700 INFOSEC algorithms',
- 'description': 'suiteAConfidentialityAlgorithm (2 16 840 1 101 2 1 1 14)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 0E',
- 'name': 'suiteAConfidentialityAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 14)},
- (2, 16, 840, 1, 101, 2, 1, 1, 15): {'comment': 'SDN.700 INFOSEC algorithms',
- 'description': 'suiteAIntegrityAlgorithm (2 16 840 1 101 2 1 1 15)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 0F',
- 'name': 'suiteAIntegrityAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 15)},
- (2, 16, 840, 1, 101, 2, 1, 1, 16): {'comment': 'SDN.700 INFOSEC algorithms',
- 'description': 'suiteATokenProtectionAlgorithm (2 16 840 1 101 2 1 1 16)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 10',
- 'name': 'suiteATokenProtectionAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 16)},
- (2, 16, 840, 1, 101, 2, 1, 1, 17): {'comment': 'SDN.700 INFOSEC algorithms',
- 'description': 'suiteAKeyManagementAlgorithm (2 16 840 1 101 2 1 1 17)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 11',
- 'name': 'suiteAKeyManagementAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 17)},
- (2, 16, 840, 1, 101, 2, 1, 1, 18): {'comment': 'SDN.700 INFOSEC algorithms',
- 'description': 'suiteAKMandSigAlgorithm (2 16 840 1 101 2 1 1 18)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 12',
- 'name': 'suiteAKMandSigAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 18)},
- (2, 16, 840, 1, 101, 2, 1, 1, 19): {'comment': 'SDN.700 INFOSEC algorithms. Formerly known as mosaicUpdatedSigAlgorithm',
- 'description': 'fortezzaUpdatedSigAlgorithm (2 16 840 1 101 2 1 1 19)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 13',
- 'name': 'fortezzaUpdatedSigAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 19)},
- (2, 16, 840, 1, 101, 2, 1, 1, 20): {'comment': 'SDN.700 INFOSEC algorithms. Formerly known as mosaicKMandUpdSigAlgorithms',
- 'description': 'fortezzaKMandUpdSigAlgorithms (2 16 840 1 101 2 1 1 20)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 14',
- 'name': 'fortezzaKMandUpdSigAlgorithms',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 20)},
- (2, 16, 840, 1, 101, 2, 1, 1, 21): {'comment': 'SDN.700 INFOSEC algorithms. Formerly known as mosaicUpdatedIntegAlgorithm',
- 'description': 'fortezzaUpdatedIntegAlgorithm (2 16 840 1 101 2 1 1 21)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 15',
- 'name': 'fortezzaUpdatedIntegAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 21)},
- (2, 16, 840, 1, 101, 2, 1, 1, 22): {'comment': 'SDN.700 INFOSEC algorithms. Formerly known as mosaicKeyEncryptionAlgorithm',
- 'description': 'keyExchangeAlgorithm (2 16 840 1 101 2 1 1 22)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 16',
- 'name': 'keyExchangeAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 22)},
- (2, 16, 840, 1, 101, 2, 1, 1, 23): {'comment': 'SDN.700 INFOSEC algorithms',
- 'description': 'fortezzaWrap80Algorithm (2 16 840 1 101 2 1 1 23)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 17',
- 'name': 'fortezzaWrap80Algorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 23)},
- (2, 16, 840, 1, 101, 2, 1, 1, 24): {'comment': 'SDN.700 INFOSEC algorithms',
- 'description': 'kEAKeyEncryptionAlgorithm (2 16 840 1 101 2 1 1 24)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 01 18',
- 'name': 'kEAKeyEncryptionAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 24)},
- (2, 16, 840, 1, 101, 2, 1, 2, 1): {'comment': 'SDN.700 INFOSEC format',
- 'description': 'rfc822MessageFormat (2 16 840 1 101 2 1 2 1)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 02 01',
- 'name': 'rfc822MessageFormat',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 1)},
- (2, 16, 840, 1, 101, 2, 1, 2, 2): {'comment': 'SDN.700 INFOSEC format',
- 'description': 'emptyContent (2 16 840 1 101 2 1 2 2)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 02 02',
- 'name': 'emptyContent',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 2)},
- (2, 16, 840, 1, 101, 2, 1, 2, 3): {'comment': 'SDN.700 INFOSEC format',
- 'description': 'cspContentType (2 16 840 1 101 2 1 2 3)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 02 03',
- 'name': 'cspContentType',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 3)},
- (2, 16, 840, 1, 101, 2, 1, 2, 42): {'comment': 'SDN.700 INFOSEC format',
- 'description': 'mspRev3ContentType (2 16 840 1 101 2 1 2 42)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 02 2A',
- 'name': 'mspRev3ContentType',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 42)},
- (2, 16, 840, 1, 101, 2, 1, 2, 48): {'comment': 'SDN.700 INFOSEC format',
- 'description': 'mspContentType (2 16 840 1 101 2 1 2 48)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 02 30',
- 'name': 'mspContentType',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 48)},
- (2, 16, 840, 1, 101, 2, 1, 2, 49): {'comment': 'SDN.700 INFOSEC format',
- 'description': 'mspRekeyAgentProtocol (2 16 840 1 101 2 1 2 49)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 02 31',
- 'name': 'mspRekeyAgentProtocol',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 49)},
- (2, 16, 840, 1, 101, 2, 1, 2, 50): {'comment': 'SDN.700 INFOSEC format',
- 'description': 'mspMMP (2 16 840 1 101 2 1 2 50)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 02 32',
- 'name': 'mspMMP',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 50)},
- (2, 16, 840, 1, 101, 2, 1, 2, 66): {'comment': 'SDN.700 INFOSEC format',
- 'description': 'mspRev3-1ContentType (2 16 840 1 101 2 1 2 66)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 02 42',
- 'name': 'mspRev3-1ContentType',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 66)},
- (2, 16, 840, 1, 101, 2, 1, 2, 72): {'comment': 'SDN.700 INFOSEC format',
- 'description': 'forwardedMSPMessageBodyPart (2 16 840 1 101 2 1 2 72)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 02 48',
- 'name': 'forwardedMSPMessageBodyPart',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 72)},
- (2, 16, 840, 1, 101, 2, 1, 2, 73): {'comment': 'SDN.700 INFOSEC format',
- 'description': 'mspForwardedMessageParameters (2 16 840 1 101 2 1 2 73)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 02 49',
- 'name': 'mspForwardedMessageParameters',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 73)},
- (2, 16, 840, 1, 101, 2, 1, 2, 74): {'comment': 'SDN.700 INFOSEC format',
- 'description': 'forwardedCSPMsgBodyPart (2 16 840 1 101 2 1 2 74)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 02 4A',
- 'name': 'forwardedCSPMsgBodyPart',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 74)},
- (2, 16, 840, 1, 101, 2, 1, 2, 75): {'comment': 'SDN.700 INFOSEC format',
- 'description': 'cspForwardedMessageParameters (2 16 840 1 101 2 1 2 75)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 02 4B',
- 'name': 'cspForwardedMessageParameters',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 75)},
- (2, 16, 840, 1, 101, 2, 1, 2, 76): {'comment': 'SDN.700 INFOSEC format',
- 'description': 'mspMMP2 (2 16 840 1 101 2 1 2 76)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 02 4C',
- 'name': 'mspMMP2',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 76)},
- (2, 16, 840, 1, 101, 2, 1, 3, 1): {'comment': 'SDN.700 INFOSEC policy',
- 'description': 'sdnsSecurityPolicy (2 16 840 1 101 2 1 3 1)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 03 01',
- 'name': 'sdnsSecurityPolicy',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 1)},
- (2, 16, 840, 1, 101, 2, 1, 3, 2): {'comment': 'SDN.700 INFOSEC policy',
- 'description': 'sdnsPRBAC (2 16 840 1 101 2 1 3 2)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 03 02',
- 'name': 'sdnsPRBAC',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 2)},
- (2, 16, 840, 1, 101, 2, 1, 3, 3): {'comment': 'SDN.700 INFOSEC policy',
- 'description': 'mosaicPRBAC (2 16 840 1 101 2 1 3 3)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 03 03',
- 'name': 'mosaicPRBAC',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 3)},
- (2, 16, 840, 1, 101, 2, 1, 3, 10): {'comment': 'SDN.700 INFOSEC policy',
- 'description': 'siSecurityPolicy (2 16 840 1 101 2 1 3 10)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 03 0A',
- 'name': 'siSecurityPolicy',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 10)},
- (2, 16, 840, 1, 101, 2, 1, 3, 11): {'comment': 'SDN.700 INFOSEC policy',
- 'description': 'genser (2 16 840 1 101 2 1 3 11)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 03 0B',
- 'name': 'genser',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 11)},
- (2, 16, 840, 1, 101, 2, 1, 3, 11, 3): {'comment': 'SDN.700 INFOSEC policy',
- 'description': 'genserSecurityCategories (2 16 840 1 101 2 1 3 11 3)',
- 'hexoid': '06 0A 60 86 48 01 65 02 01 03 0B 03',
- 'name': 'genserSecurityCategories',
- 'oid': (2,
- 16,
- 840,
- 1,
- 101,
- 2,
- 1,
- 3,
- 11,
- 3)},
- (2, 16, 840, 1, 101, 2, 1, 3, 11, 3, 0): {'comment': 'SDN.700 INFOSEC GENSER policy',
- 'description': 'genserTagSetName (2 16 840 1 101 2 1 3 11 3 0)',
- 'hexoid': '06 0B 60 86 48 01 65 02 01 03 0B 03 00',
- 'name': 'genserTagSetName',
- 'oid': (2,
- 16,
- 840,
- 1,
- 101,
- 2,
- 1,
- 3,
- 11,
- 3,
- 0)},
- (2, 16, 840, 1, 101, 2, 1, 3, 12): {'comment': 'SDN.700 INFOSEC policy',
- 'description': 'defaultSecurityPolicy (2 16 840 1 101 2 1 3 12)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 03 0C',
- 'name': 'defaultSecurityPolicy',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 12)},
- (2, 16, 840, 1, 101, 2, 1, 3, 13): {'comment': 'SDN.700 INFOSEC policy',
- 'description': 'capcoMarkings (2 16 840 1 101 2 1 3 13)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 03 0D',
- 'name': 'capcoMarkings',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 13)},
- (2, 16, 840, 1, 101, 2, 1, 3, 13, 0): {'comment': 'SDN.700 INFOSEC policy CAPCO markings',
- 'description': 'capcoSecurityCategories (2 16 840 1 101 2 1 3 13 0)',
- 'hexoid': '06 0A 60 86 48 01 65 02 01 03 0D 00',
- 'name': 'capcoSecurityCategories',
- 'oid': (2,
- 16,
- 840,
- 1,
- 101,
- 2,
- 1,
- 3,
- 13,
- 0)},
- (2, 16, 840, 1, 101, 2, 1, 3, 13, 0, 1): {'comment': 'SDN.700 INFOSEC policy CAPCO markings',
- 'description': 'capcoTagSetName1 (2 16 840 1 101 2 1 3 13 0 1)',
- 'hexoid': '06 0B 60 86 48 01 65 02 01 03 0D 00 01',
- 'name': 'capcoTagSetName1',
- 'oid': (2,
- 16,
- 840,
- 1,
- 101,
- 2,
- 1,
- 3,
- 13,
- 0,
- 1)},
- (2, 16, 840, 1, 101, 2, 1, 3, 13, 0, 2): {'comment': 'SDN.700 INFOSEC policy CAPCO markings',
- 'description': 'capcoTagSetName2 (2 16 840 1 101 2 1 3 13 0 2)',
- 'hexoid': '06 0B 60 86 48 01 65 02 01 03 0D 00 02',
- 'name': 'capcoTagSetName2',
- 'oid': (2,
- 16,
- 840,
- 1,
- 101,
- 2,
- 1,
- 3,
- 13,
- 0,
- 2)},
- (2, 16, 840, 1, 101, 2, 1, 3, 13, 0, 3): {'comment': 'SDN.700 INFOSEC policy CAPCO markings',
- 'description': 'capcoTagSetName3 (2 16 840 1 101 2 1 3 13 0 3)',
- 'hexoid': '06 0B 60 86 48 01 65 02 01 03 0D 00 03',
- 'name': 'capcoTagSetName3',
- 'oid': (2,
- 16,
- 840,
- 1,
- 101,
- 2,
- 1,
- 3,
- 13,
- 0,
- 3)},
- (2, 16, 840, 1, 101, 2, 1, 3, 13, 0, 4): {'comment': 'SDN.700 INFOSEC policy CAPCO markings',
- 'description': 'capcoTagSetName4 (2 16 840 1 101 2 1 3 13 0 4)',
- 'hexoid': '06 0B 60 86 48 01 65 02 01 03 0D 00 04',
- 'name': 'capcoTagSetName4',
- 'oid': (2,
- 16,
- 840,
- 1,
- 101,
- 2,
- 1,
- 3,
- 13,
- 0,
- 4)},
- (2, 16, 840, 1, 101, 2, 1, 5, 11): {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'mlReceiptPolicy (2 16 840 1 101 2 1 5 11)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 0B',
- 'name': 'mlReceiptPolicy',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 11)},
- (2, 16, 840, 1, 101, 2, 1, 5, 12): {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'mlMembership (2 16 840 1 101 2 1 5 12)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 0C',
- 'name': 'mlMembership',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 12)},
- (2, 16, 840, 1, 101, 2, 1, 5, 13): {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'mlAdministrators (2 16 840 1 101 2 1 5 13)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 0D',
- 'name': 'mlAdministrators',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 13)},
- (2, 16, 840, 1, 101, 2, 1, 5, 14): {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'alid (2 16 840 1 101 2 1 5 14)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 0E',
- 'name': 'alid',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 14)},
- (2, 16, 840, 1, 101, 2, 1, 5, 20): {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'janUKMs (2 16 840 1 101 2 1 5 20)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 14',
- 'name': 'janUKMs',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 20)},
- (2, 16, 840, 1, 101, 2, 1, 5, 21): {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'febUKMs (2 16 840 1 101 2 1 5 21)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 15',
- 'name': 'febUKMs',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 21)},
- (2, 16, 840, 1, 101, 2, 1, 5, 22): {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'marUKMs (2 16 840 1 101 2 1 5 22)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 16',
- 'name': 'marUKMs',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 22)},
- (2, 16, 840, 1, 101, 2, 1, 5, 23): {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'aprUKMs (2 16 840 1 101 2 1 5 23)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 17',
- 'name': 'aprUKMs',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 23)},
- (2, 16, 840, 1, 101, 2, 1, 5, 24): {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'mayUKMs (2 16 840 1 101 2 1 5 24)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 18',
- 'name': 'mayUKMs',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 24)},
- (2, 16, 840, 1, 101, 2, 1, 5, 25): {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'junUKMs (2 16 840 1 101 2 1 5 25)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 19',
- 'name': 'junUKMs',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 25)},
- (2, 16, 840, 1, 101, 2, 1, 5, 26): {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'julUKMs (2 16 840 1 101 2 1 5 26)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 1A',
- 'name': 'julUKMs',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 26)},
- (2, 16, 840, 1, 101, 2, 1, 5, 27): {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'augUKMs (2 16 840 1 101 2 1 5 27)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 1B',
- 'name': 'augUKMs',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 27)},
- (2, 16, 840, 1, 101, 2, 1, 5, 28): {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'sepUKMs (2 16 840 1 101 2 1 5 28)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 1C',
- 'name': 'sepUKMs',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 28)},
- (2, 16, 840, 1, 101, 2, 1, 5, 29): {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'octUKMs (2 16 840 1 101 2 1 5 29)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 1D',
- 'name': 'octUKMs',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 29)},
- (2, 16, 840, 1, 101, 2, 1, 5, 30): {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'novUKMs (2 16 840 1 101 2 1 5 30)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 1E',
- 'name': 'novUKMs',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 30)},
- (2, 16, 840, 1, 101, 2, 1, 5, 31): {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'decUKMs (2 16 840 1 101 2 1 5 31)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 1F',
- 'name': 'decUKMs',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 31)},
- (2, 16, 840, 1, 101, 2, 1, 5, 40): {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'metaSDNSckl (2 16 840 1 101 2 1 5 40)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 28',
- 'name': 'metaSDNSckl',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 40)},
- (2, 16, 840, 1, 101, 2, 1, 5, 41): {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'sdnsCKL (2 16 840 1 101 2 1 5 41)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 29',
- 'name': 'sdnsCKL',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 41)},
- (2, 16, 840, 1, 101, 2, 1, 5, 42): {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'metaSDNSsignatureCKL (2 16 840 1 101 2 1 5 42)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 2A',
- 'name': 'metaSDNSsignatureCKL',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 42)},
- (2, 16, 840, 1, 101, 2, 1, 5, 43): {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'sdnsSignatureCKL (2 16 840 1 101 2 1 5 43)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 2B',
- 'name': 'sdnsSignatureCKL',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 43)},
- (2, 16, 840, 1, 101, 2, 1, 5, 44): {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'sdnsCertificateRevocationList (2 16 840 1 101 2 1 5 44)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 2C',
- 'name': 'sdnsCertificateRevocationList',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 44)},
- (2, 16, 840, 1, 101, 2, 1, 5, 46): {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'fortezzaCKL (2 16 840 1 101 2 1 5 46)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 2E',
- 'name': 'fortezzaCKL',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 46)},
- (2, 16, 840, 1, 101, 2, 1, 5, 47): {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'alExemptedAddressProcessor (2 16 840 1 101 2 1 5 47)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 2F',
- 'name': 'alExemptedAddressProcessor',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 47)},
- (2, 16, 840, 1, 101, 2, 1, 5, 53): {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'prbacInfo (2 16 840 1 101 2 1 5 53)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 35',
- 'name': 'prbacInfo',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 53)},
- (2, 16, 840, 1, 101, 2, 1, 5, 54): {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'prbacCAConstraints (2 16 840 1 101 2 1 5 54)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 36',
- 'name': 'prbacCAConstraints',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 54)},
- (2, 16, 840, 1, 101, 2, 1, 5, 55): {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'sigOrKMPrivileges (2 16 840 1 101 2 1 5 55)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 37',
- 'name': 'sigOrKMPrivileges',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 55)},
- (2, 16, 840, 1, 101, 2, 1, 5, 56): {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'commPrivileges (2 16 840 1 101 2 1 5 56)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 38',
- 'name': 'commPrivileges',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 56)},
- (2, 16, 840, 1, 101, 2, 1, 5, 57): {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'labeledAttribute (2 16 840 1 101 2 1 5 57)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 39',
- 'name': 'labeledAttribute',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 57)},
- (2, 16, 840, 1, 101, 2, 1, 5, 59): {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'secPolicyInformationFile (2 16 840 1 101 2 1 5 59)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 3B',
- 'name': 'secPolicyInformationFile',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 59)},
- (2, 16, 840, 1, 101, 2, 1, 5, 60): {'comment': 'SDN.700 INFOSEC attributes',
- 'description': 'cAClearanceConstraint (2 16 840 1 101 2 1 5 60)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 05 3C',
- 'name': 'cAClearanceConstraint',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 60)},
- (2, 16, 840, 1, 101, 2, 1, 7, 1): {'comment': 'SDN.700 INFOSEC extensions',
- 'description': 'cspExtns (2 16 840 1 101 2 1 7 1)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 07 01',
- 'name': 'cspExtns',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 7, 1)},
- (2, 16, 840, 1, 101, 2, 1, 7, 1, 0): {'comment': 'SDN.700 INFOSEC extensions',
- 'description': 'cspCsExtn (2 16 840 1 101 2 1 7 1 0)',
- 'hexoid': '06 0A 60 86 48 01 65 02 01 07 01 00',
- 'name': 'cspCsExtn',
- 'oid': (2,
- 16,
- 840,
- 1,
- 101,
- 2,
- 1,
- 7,
- 1,
- 0)},
- (2, 16, 840, 1, 101, 2, 1, 8, 1): {'comment': 'SDN.700 INFOSEC security category',
- 'description': 'mISSISecurityCategories (2 16 840 1 101 2 1 8 1)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 08 01',
- 'name': 'mISSISecurityCategories',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 8, 1)},
- (2, 16, 840, 1, 101, 2, 1, 8, 2): {'comment': 'SDN.700 INFOSEC security category',
- 'description': 'standardSecurityLabelPrivileges (2 16 840 1 101 2 1 8 2)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 08 02',
- 'name': 'standardSecurityLabelPrivileges',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 8, 2)},
- (2, 16, 840, 1, 101, 2, 1, 10, 1): {'comment': 'SDN.700 INFOSEC privileges',
- 'description': 'sigPrivileges (2 16 840 1 101 2 1 10 1)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 0A 01',
- 'name': 'sigPrivileges',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 10, 1)},
- (2, 16, 840, 1, 101, 2, 1, 10, 2): {'comment': 'SDN.700 INFOSEC privileges',
- 'description': 'kmPrivileges (2 16 840 1 101 2 1 10 2)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 0A 02',
- 'name': 'kmPrivileges',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 10, 2)},
- (2, 16, 840, 1, 101, 2, 1, 10, 3): {'comment': 'SDN.700 INFOSEC privileges',
- 'description': 'namedTagSetPrivilege (2 16 840 1 101 2 1 10 3)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 0A 03',
- 'name': 'namedTagSetPrivilege',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 10, 3)},
- (2, 16, 840, 1, 101, 2, 1, 11, 1): {'comment': 'SDN.700 INFOSEC certificate policy',
- 'description': 'ukDemo (2 16 840 1 101 2 1 11 1)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 0B 01',
- 'name': 'ukDemo',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 11, 1)},
- (2, 16, 840, 1, 101, 2, 1, 11, 2): {'comment': 'SDN.700 INFOSEC certificate policy',
- 'description': 'usDODClass2 (2 16 840 1 101 2 1 11 2)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 0B 02',
- 'name': 'usDODClass2',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 11, 2)},
- (2, 16, 840, 1, 101, 2, 1, 11, 3): {'comment': 'SDN.700 INFOSEC certificate policy',
- 'description': 'usMediumPilot (2 16 840 1 101 2 1 11 3)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 0B 03',
- 'name': 'usMediumPilot',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 11, 3)},
- (2, 16, 840, 1, 101, 2, 1, 11, 4): {'comment': 'SDN.700 INFOSEC certificate policy',
- 'description': 'usDODClass4 (2 16 840 1 101 2 1 11 4)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 0B 04',
- 'name': 'usDODClass4',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 11, 4)},
- (2, 16, 840, 1, 101, 2, 1, 11, 5): {'comment': 'SDN.700 INFOSEC certificate policy',
- 'description': 'usDODClass3 (2 16 840 1 101 2 1 11 5)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 0B 05',
- 'name': 'usDODClass3',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 11, 5)},
- (2, 16, 840, 1, 101, 2, 1, 11, 6): {'comment': 'SDN.700 INFOSEC certificate policy',
- 'description': 'usDODClass5 (2 16 840 1 101 2 1 11 6)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 0B 06',
- 'name': 'usDODClass5',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 11, 6)},
- (2, 16, 840, 1, 101, 2, 1, 12, 0): {'comment': 'SDN.700 INFOSEC test objects',
- 'description': 'testSecurityPolicy (2 16 840 1 101 2 1 12 0)',
- 'hexoid': '06 09 60 86 48 01 65 02 01 0C 00',
- 'name': 'testSecurityPolicy',
- 'oid': (2, 16, 840, 1, 101, 2, 1, 12, 0)},
- (2, 16, 840, 1, 101, 2, 1, 12, 0, 1): {'comment': 'SDN.700 INFOSEC test objects',
- 'description': 'tsp1 (2 16 840 1 101 2 1 12 0 1)',
- 'hexoid': '06 0A 60 86 48 01 65 02 01 0C 00 01',
- 'name': 'tsp1',
- 'oid': (2,
- 16,
- 840,
- 1,
- 101,
- 2,
- 1,
- 12,
- 0,
- 1)},
- (2, 16, 840, 1, 101, 2, 1, 12, 0, 1, 0): {'comment': 'SDN.700 INFOSEC test objects',
- 'description': 'tsp1SecurityCategories (2 16 840 1 101 2 1 12 0 1 0)',
- 'hexoid': '06 0B 60 86 48 01 65 02 01 0C 00 01 00',
- 'name': 'tsp1SecurityCategories',
- 'oid': (2,
- 16,
- 840,
- 1,
- 101,
- 2,
- 1,
- 12,
- 0,
- 1,
- 0)},
- (2, 16, 840, 1, 101, 2, 1, 12, 0, 1, 0, 0): {'comment': 'SDN.700 INFOSEC test objects',
- 'description': 'tsp1TagSetZero (2 16 840 1 101 2 1 12 0 1 0 0)',
- 'hexoid': '06 0C 60 86 48 01 65 02 01 0C 00 01 00 00',
- 'name': 'tsp1TagSetZero',
- 'oid': (2,
- 16,
- 840,
- 1,
- 101,
- 2,
- 1,
- 12,
- 0,
- 1,
- 0,
- 0)},
- (2, 16, 840, 1, 101, 2, 1, 12, 0, 1, 0, 1): {'comment': 'SDN.700 INFOSEC test objects',
- 'description': 'tsp1TagSetOne (2 16 840 1 101 2 1 12 0 1 0 1)',
- 'hexoid': '06 0C 60 86 48 01 65 02 01 0C 00 01 00 01',
- 'name': 'tsp1TagSetOne',
- 'oid': (2,
- 16,
- 840,
- 1,
- 101,
- 2,
- 1,
- 12,
- 0,
- 1,
- 0,
- 1)},
- (2, 16, 840, 1, 101, 2, 1, 12, 0, 1, 0, 2): {'comment': 'SDN.700 INFOSEC test objects',
- 'description': 'tsp1TagSetTwo (2 16 840 1 101 2 1 12 0 1 0 2)',
- 'hexoid': '06 0C 60 86 48 01 65 02 01 0C 00 01 00 02',
- 'name': 'tsp1TagSetTwo',
- 'oid': (2,
- 16,
- 840,
- 1,
- 101,
- 2,
- 1,
- 12,
- 0,
- 1,
- 0,
- 2)},
- (2, 16, 840, 1, 101, 2, 1, 12, 0, 2): {'comment': 'SDN.700 INFOSEC test objects',
- 'description': 'tsp2 (2 16 840 1 101 2 1 12 0 2)',
- 'hexoid': '06 0A 60 86 48 01 65 02 01 0C 00 02',
- 'name': 'tsp2',
- 'oid': (2,
- 16,
- 840,
- 1,
- 101,
- 2,
- 1,
- 12,
- 0,
- 2)},
- (2, 16, 840, 1, 101, 2, 1, 12, 0, 2, 0): {'comment': 'SDN.700 INFOSEC test objects',
- 'description': 'tsp2SecurityCategories (2 16 840 1 101 2 1 12 0 2 0)',
- 'hexoid': '06 0B 60 86 48 01 65 02 01 0C 00 02 00',
- 'name': 'tsp2SecurityCategories',
- 'oid': (2,
- 16,
- 840,
- 1,
- 101,
- 2,
- 1,
- 12,
- 0,
- 2,
- 0)},
- (2, 16, 840, 1, 101, 2, 1, 12, 0, 2, 0, 0): {'comment': 'SDN.700 INFOSEC test objects',
- 'description': 'tsp2TagSetZero (2 16 840 1 101 2 1 12 0 2 0 0)',
- 'hexoid': '06 0C 60 86 48 01 65 02 01 0C 00 02 00 00',
- 'name': 'tsp2TagSetZero',
- 'oid': (2,
- 16,
- 840,
- 1,
- 101,
- 2,
- 1,
- 12,
- 0,
- 2,
- 0,
- 0)},
- (2, 16, 840, 1, 101, 2, 1, 12, 0, 2, 0, 1): {'comment': 'SDN.700 INFOSEC test objects',
- 'description': 'tsp2TagSetOne (2 16 840 1 101 2 1 12 0 2 0 1)',
- 'hexoid': '06 0C 60 86 48 01 65 02 01 0C 00 02 00 01',
- 'name': 'tsp2TagSetOne',
- 'oid': (2,
- 16,
- 840,
- 1,
- 101,
- 2,
- 1,
- 12,
- 0,
- 2,
- 0,
- 1)},
- (2, 16, 840, 1, 101, 2, 1, 12, 0, 2, 0, 2): {'comment': 'SDN.700 INFOSEC test objects',
- 'description': 'tsp2TagSetTwo (2 16 840 1 101 2 1 12 0 2 0 2)',
- 'hexoid': '06 0C 60 86 48 01 65 02 01 0C 00 02 00 02',
- 'name': 'tsp2TagSetTwo',
- 'oid': (2,
- 16,
- 840,
- 1,
- 101,
- 2,
- 1,
- 12,
- 0,
- 2,
- 0,
- 2)},
- (2, 16, 840, 1, 101, 2, 1, 12, 0, 3): {'comment': 'SDN.700 INFOSEC test objects',
- 'description': 'kafka (2 16 840 1 101 2 1 12 0 3)',
- 'hexoid': '06 0A 60 86 48 01 65 02 01 0C 00 03',
- 'name': 'kafka',
- 'oid': (2,
- 16,
- 840,
- 1,
- 101,
- 2,
- 1,
- 12,
- 0,
- 3)},
- (2, 16, 840, 1, 101, 2, 1, 12, 0, 3, 0): {'comment': 'SDN.700 INFOSEC test objects',
- 'description': 'kafkaSecurityCategories (2 16 840 1 101 2 1 12 0 3 0)',
- 'hexoid': '06 0B 60 86 48 01 65 02 01 0C 00 03 00',
- 'name': 'kafkaSecurityCategories',
- 'oid': (2,
- 16,
- 840,
- 1,
- 101,
- 2,
- 1,
- 12,
- 0,
- 3,
- 0)},
- (2, 16, 840, 1, 101, 2, 1, 12, 0, 3, 0, 1): {'comment': 'SDN.700 INFOSEC test objects',
- 'description': 'kafkaTagSetName1 (2 16 840 1 101 2 1 12 0 3 0 1)',
- 'hexoid': '06 0C 60 86 48 01 65 02 01 0C 00 03 00 01',
- 'name': 'kafkaTagSetName1',
- 'oid': (2,
- 16,
- 840,
- 1,
- 101,
- 2,
- 1,
- 12,
- 0,
- 3,
- 0,
- 1)},
- (2, 16, 840, 1, 101, 2, 1, 12, 0, 3, 0, 2): {'comment': 'SDN.700 INFOSEC test objects',
- 'description': 'kafkaTagSetName2 (2 16 840 1 101 2 1 12 0 3 0 2)',
- 'hexoid': '06 0C 60 86 48 01 65 02 01 0C 00 03 00 02',
- 'name': 'kafkaTagSetName2',
- 'oid': (2,
- 16,
- 840,
- 1,
- 101,
- 2,
- 1,
- 12,
- 0,
- 3,
- 0,
- 2)},
- (2, 16, 840, 1, 101, 2, 1, 12, 0, 3, 0, 3): {'comment': 'SDN.700 INFOSEC test objects',
- 'description': 'kafkaTagSetName3 (2 16 840 1 101 2 1 12 0 3 0 3)',
- 'hexoid': '06 0C 60 86 48 01 65 02 01 0C 00 03 00 03',
- 'name': 'kafkaTagSetName3',
- 'oid': (2,
- 16,
- 840,
- 1,
- 101,
- 2,
- 1,
- 12,
- 0,
- 3,
- 0,
- 3)},
- (2, 16, 840, 1, 101, 2, 1, 12, 1, 1): {'comment': 'SDN.700 INFOSEC test objects',
- 'description': 'tcp1 (2 16 840 1 101 2 1 12 1 1)',
- 'hexoid': '06 0A 60 86 48 01 65 02 01 0C 01 01',
- 'name': 'tcp1',
- 'oid': (2,
- 16,
- 840,
- 1,
- 101,
- 2,
- 1,
- 12,
- 1,
- 1)},
- (2, 16, 840, 1, 101, 3, 2, 1, 3, 1): {'comment': 'Federal Bridge CA Policy',
- 'description': 'FBCA-Rudimentary policyIdentifier (2 16 840 1 101 3 2 1 3 1)',
- 'hexoid': '06 0A 60 86 48 01 65 03 02 01 03 01',
- 'name': 'FBCA-Rudimentary',
- 'oid': (2,
- 16,
- 840,
- 1,
- 101,
- 3,
- 2,
- 1,
- 3,
- 1)},
- (2, 16, 840, 1, 101, 3, 2, 1, 3, 2): {'comment': 'Federal Bridge CA Policy',
- 'description': 'FBCA-Basic policyIdentifier (2 16 840 1 101 3 2 1 3 2)',
- 'hexoid': '06 0A 60 86 48 01 65 03 02 01 03 02',
- 'name': 'FBCA-Basic',
- 'oid': (2,
- 16,
- 840,
- 1,
- 101,
- 3,
- 2,
- 1,
- 3,
- 2)},
- (2, 16, 840, 1, 101, 3, 2, 1, 3, 3): {'comment': 'Federal Bridge CA Policy',
- 'description': 'FBCA-Medium policyIdentifier (2 16 840 1 101 3 2 1 3 3)',
- 'hexoid': '06 0A 60 86 48 01 65 03 02 01 03 03',
- 'name': 'FBCA-Medium',
- 'oid': (2,
- 16,
- 840,
- 1,
- 101,
- 3,
- 2,
- 1,
- 3,
- 3)},
- (2, 16, 840, 1, 101, 3, 2, 1, 3, 4): {'comment': 'Federal Bridge CA Policy',
- 'description': 'FBCA-High policyIdentifier (2 16 840 1 101 3 2 1 3 4)',
- 'hexoid': '06 0A 60 86 48 01 65 03 02 01 03 04',
- 'name': 'FBCA-High',
- 'oid': (2,
- 16,
- 840,
- 1,
- 101,
- 3,
- 2,
- 1,
- 3,
- 4)},
- (2, 16, 840, 1, 101, 3, 4): {'comment': 'NIST Algorithm',
- 'description': 'nistAlgorithm (2 16 840 1 101 3 4)',
- 'hexoid': '06 07 60 86 48 01 65 03 04',
- 'name': 'nistAlgorithm',
- 'oid': (2, 16, 840, 1, 101, 3, 4)},
- (2, 16, 840, 1, 101, 3, 4, 1): {'comment': 'NIST Algorithm',
- 'description': 'aes (2 16 840 1 101 3 4 1)',
- 'hexoid': '06 08 60 86 48 01 65 03 04 01',
- 'name': 'aes',
- 'oid': (2, 16, 840, 1, 101, 3, 4, 1)},
- (2, 16, 840, 1, 101, 3, 4, 1, 1): {'comment': 'NIST Algorithm',
- 'description': 'aes128-ECB (2 16 840 1 101 3 4 1 1)',
- 'hexoid': '06 09 60 86 48 01 65 03 04 01 01',
- 'name': 'aes128-ECB',
- 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 1)},
- (2, 16, 840, 1, 101, 3, 4, 1, 2): {'comment': 'NIST Algorithm',
- 'description': 'aes128-CBC (2 16 840 1 101 3 4 1 2)',
- 'hexoid': '06 09 60 86 48 01 65 03 04 01 02',
- 'name': 'aes128-CBC',
- 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 2)},
- (2, 16, 840, 1, 101, 3, 4, 1, 3): {'comment': 'NIST Algorithm',
- 'description': 'aes128-OFB (2 16 840 1 101 3 4 1 3)',
- 'hexoid': '06 09 60 86 48 01 65 03 04 01 03',
- 'name': 'aes128-OFB',
- 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 3)},
- (2, 16, 840, 1, 101, 3, 4, 1, 4): {'comment': 'NIST Algorithm',
- 'description': 'aes128-CFB (2 16 840 1 101 3 4 1 4)',
- 'hexoid': '06 09 60 86 48 01 65 03 04 01 04',
- 'name': 'aes128-CFB',
- 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 4)},
- (2, 16, 840, 1, 101, 3, 4, 1, 21): {'comment': 'NIST Algorithm',
- 'description': 'aes192-ECB (2 16 840 1 101 3 4 1 21)',
- 'hexoid': '06 09 60 86 48 01 65 03 04 01 15',
- 'name': 'aes192-ECB',
- 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 21)},
- (2, 16, 840, 1, 101, 3, 4, 1, 22): {'comment': 'NIST Algorithm',
- 'description': 'aes192-CBC (2 16 840 1 101 3 4 1 22)',
- 'hexoid': '06 09 60 86 48 01 65 03 04 01 16',
- 'name': 'aes192-CBC',
- 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 22)},
- (2, 16, 840, 1, 101, 3, 4, 1, 23): {'comment': 'NIST Algorithm',
- 'description': 'aes192-OFB (2 16 840 1 101 3 4 1 23)',
- 'hexoid': '06 09 60 86 48 01 65 03 04 01 17',
- 'name': 'aes192-OFB',
- 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 23)},
- (2, 16, 840, 1, 101, 3, 4, 1, 24): {'comment': 'NIST Algorithm',
- 'description': 'aes192-CFB (2 16 840 1 101 3 4 1 24)',
- 'hexoid': '06 09 60 86 48 01 65 03 04 01 18',
- 'name': 'aes192-CFB',
- 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 24)},
- (2, 16, 840, 1, 101, 3, 4, 1, 41): {'comment': 'NIST Algorithm',
- 'description': 'aes256-ECB (2 16 840 1 101 3 4 1 41)',
- 'hexoid': '06 09 60 86 48 01 65 03 04 01 29',
- 'name': 'aes256-ECB',
- 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 41)},
- (2, 16, 840, 1, 101, 3, 4, 1, 42): {'comment': 'NIST Algorithm',
- 'description': 'aes256-CBC (2 16 840 1 101 3 4 1 42)',
- 'hexoid': '06 09 60 86 48 01 65 03 04 01 2A',
- 'name': 'aes256-CBC',
- 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 42)},
- (2, 16, 840, 1, 101, 3, 4, 1, 43): {'comment': 'NIST Algorithm',
- 'description': 'aes256-OFB (2 16 840 1 101 3 4 1 43)',
- 'hexoid': '06 09 60 86 48 01 65 03 04 01 2B',
- 'name': 'aes256-OFB',
- 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 43)},
- (2, 16, 840, 1, 101, 3, 4, 1, 44): {'comment': 'NIST Algorithm',
- 'description': 'aes256-CFB (2 16 840 1 101 3 4 1 44)',
- 'hexoid': '06 09 60 86 48 01 65 03 04 01 2C',
- 'name': 'aes256-CFB',
- 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 44)},
- (2, 16, 840, 1, 101, 3, 4, 2): {'comment': 'NIST Algorithm',
- 'description': 'hashAlgos (2 16 840 1 101 3 4 2)',
- 'hexoid': '06 08 60 86 48 01 65 03 04 02',
- 'name': 'hashAlgos',
- 'oid': (2, 16, 840, 1, 101, 3, 4, 2)},
- (2, 16, 840, 1, 101, 3, 4, 2, 1): {'comment': 'NIST Algorithm',
- 'description': 'sha-256 (2 16 840 1 101 3 4 2 1)',
- 'hexoid': '06 09 60 86 48 01 65 03 04 02 01',
- 'name': 'sha-256',
- 'oid': (2, 16, 840, 1, 101, 3, 4, 2, 1)},
- (2, 16, 840, 1, 101, 3, 4, 2, 2): {'comment': 'NIST Algorithm',
- 'description': 'sha-384 (2 16 840 1 101 3 4 2 2)',
- 'hexoid': '06 09 60 86 48 01 65 03 04 02 02',
- 'name': 'sha-384',
- 'oid': (2, 16, 840, 1, 101, 3, 4, 2, 2)},
- (2, 16, 840, 1, 101, 3, 4, 2, 3): {'comment': 'NIST Algorithm',
- 'description': 'sha-512 (2 16 840 1 101 3 4 2 3)',
- 'hexoid': '06 09 60 86 48 01 65 03 04 02 03',
- 'name': 'sha-512',
- 'oid': (2, 16, 840, 1, 101, 3, 4, 2, 3)},
- (2, 16, 840, 1, 101, 3, 4, 2, 4): {'comment': 'NIST Algorithm',
- 'description': 'sha-224 (2 16 840 1 101 3 4 2 4)',
- 'hexoid': '06 09 60 86 48 01 65 03 04 02 04',
- 'name': 'sha-224',
- 'oid': (2, 16, 840, 1, 101, 3, 4, 2, 4)},
- (2, 16, 840, 1, 101, 3, 4, 3, 1): {'comment': 'NIST Algorithm',
- 'description': 'dsaWithSha224 (2 16 840 1 101 3 4 3 1)',
- 'hexoid': '06 09 60 86 48 01 65 03 04 03 01',
- 'name': 'dsaWithSha224',
- 'oid': (2, 16, 840, 1, 101, 3, 4, 3, 1)},
- (2, 16, 840, 1, 101, 3, 4, 3, 2): {'comment': 'NIST Algorithm',
- 'description': 'dsaWithSha256 (2 16 840 1 101 3 4 3 2)',
- 'hexoid': '06 09 60 86 48 01 65 03 04 03 02',
- 'name': 'dsaWithSha256',
- 'oid': (2, 16, 840, 1, 101, 3, 4, 3, 2)},
- (2, 16, 840, 1, 113719, 1, 2, 8): {'comment': 'Novell',
- 'description': 'novellAlgorithm (2 16 840 1 113719 1 2 8)',
- 'hexoid': '06 0A 60 86 48 01 86 F8 37 01 02 08',
- 'name': 'novellAlgorithm',
- 'oid': (2, 16, 840, 1, 113719, 1, 2, 8)},
- (2, 16, 840, 1, 113719, 1, 2, 8, 22): {'comment': 'Novell encryption algorithm',
- 'description': 'desCbcIV8 (2 16 840 1 113719 1 2 8 22)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 16',
- 'name': 'desCbcIV8',
- 'oid': (2,
- 16,
- 840,
- 1,
- 113719,
- 1,
- 2,
- 8,
- 22)},
- (2, 16, 840, 1, 113719, 1, 2, 8, 23): {'comment': 'Novell encryption algorithm',
- 'description': 'desCbcPadIV8 (2 16 840 1 113719 1 2 8 23)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 17',
- 'name': 'desCbcPadIV8',
- 'oid': (2,
- 16,
- 840,
- 1,
- 113719,
- 1,
- 2,
- 8,
- 23)},
- (2, 16, 840, 1, 113719, 1, 2, 8, 24): {'comment': 'Novell encryption algorithm',
- 'description': 'desEDE2CbcIV8 (2 16 840 1 113719 1 2 8 24)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 18',
- 'name': 'desEDE2CbcIV8',
- 'oid': (2,
- 16,
- 840,
- 1,
- 113719,
- 1,
- 2,
- 8,
- 24)},
- (2, 16, 840, 1, 113719, 1, 2, 8, 25): {'comment': 'Novell encryption algorithm',
- 'description': 'desEDE2CbcPadIV8 (2 16 840 1 113719 1 2 8 25)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 19',
- 'name': 'desEDE2CbcPadIV8',
- 'oid': (2,
- 16,
- 840,
- 1,
- 113719,
- 1,
- 2,
- 8,
- 25)},
- (2, 16, 840, 1, 113719, 1, 2, 8, 26): {'comment': 'Novell encryption algorithm',
- 'description': 'desEDE3CbcIV8 (2 16 840 1 113719 1 2 8 26)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 1A',
- 'name': 'desEDE3CbcIV8',
- 'oid': (2,
- 16,
- 840,
- 1,
- 113719,
- 1,
- 2,
- 8,
- 26)},
- (2, 16, 840, 1, 113719, 1, 2, 8, 27): {'comment': 'Novell encryption algorithm',
- 'description': 'desEDE3CbcPadIV8 (2 16 840 1 113719 1 2 8 27)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 1B',
- 'name': 'desEDE3CbcPadIV8',
- 'oid': (2,
- 16,
- 840,
- 1,
- 113719,
- 1,
- 2,
- 8,
- 27)},
- (2, 16, 840, 1, 113719, 1, 2, 8, 28): {'comment': 'Novell encryption algorithm',
- 'description': 'rc5CbcPad (2 16 840 1 113719 1 2 8 28)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 1C',
- 'name': 'rc5CbcPad',
- 'oid': (2,
- 16,
- 840,
- 1,
- 113719,
- 1,
- 2,
- 8,
- 28)},
- (2, 16, 840, 1, 113719, 1, 2, 8, 29): {'comment': 'Novell signature algorithm',
- 'description': 'md2WithRSAEncryptionBSafe1 (2 16 840 1 113719 1 2 8 29)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 1D',
- 'name': 'md2WithRSAEncryptionBSafe1',
- 'oid': (2,
- 16,
- 840,
- 1,
- 113719,
- 1,
- 2,
- 8,
- 29)},
- (2, 16, 840, 1, 113719, 1, 2, 8, 30): {'comment': 'Novell signature algorithm',
- 'description': 'md5WithRSAEncryptionBSafe1 (2 16 840 1 113719 1 2 8 30)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 1E',
- 'name': 'md5WithRSAEncryptionBSafe1',
- 'oid': (2,
- 16,
- 840,
- 1,
- 113719,
- 1,
- 2,
- 8,
- 30)},
- (2, 16, 840, 1, 113719, 1, 2, 8, 31): {'comment': 'Novell signature algorithm',
- 'description': 'sha1WithRSAEncryptionBSafe1 (2 16 840 1 113719 1 2 8 31)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 1F',
- 'name': 'sha1WithRSAEncryptionBSafe1',
- 'oid': (2,
- 16,
- 840,
- 1,
- 113719,
- 1,
- 2,
- 8,
- 31)},
- (2, 16, 840, 1, 113719, 1, 2, 8, 32): {'comment': 'Novell digest algorithm',
- 'description': 'LMDigest (2 16 840 1 113719 1 2 8 32)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 20',
- 'name': 'LMDigest',
- 'oid': (2,
- 16,
- 840,
- 1,
- 113719,
- 1,
- 2,
- 8,
- 32)},
- (2, 16, 840, 1, 113719, 1, 2, 8, 40): {'comment': 'Novell digest algorithm',
- 'description': 'MD2 (2 16 840 1 113719 1 2 8 40)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 28',
- 'name': 'MD2',
- 'oid': (2,
- 16,
- 840,
- 1,
- 113719,
- 1,
- 2,
- 8,
- 40)},
- (2, 16, 840, 1, 113719, 1, 2, 8, 50): {'comment': 'Novell digest algorithm',
- 'description': 'MD5 (2 16 840 1 113719 1 2 8 50)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 32',
- 'name': 'MD5',
- 'oid': (2,
- 16,
- 840,
- 1,
- 113719,
- 1,
- 2,
- 8,
- 50)},
- (2, 16, 840, 1, 113719, 1, 2, 8, 51): {'comment': 'Novell signature algorithm',
- 'description': 'IKEhmacWithSHA1-RSA (2 16 840 1 113719 1 2 8 51)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 33',
- 'name': 'IKEhmacWithSHA1-RSA',
- 'oid': (2,
- 16,
- 840,
- 1,
- 113719,
- 1,
- 2,
- 8,
- 51)},
- (2, 16, 840, 1, 113719, 1, 2, 8, 52): {'comment': 'Novell signature algorithm',
- 'description': 'IKEhmacWithMD5-RSA (2 16 840 1 113719 1 2 8 52)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 34',
- 'name': 'IKEhmacWithMD5-RSA',
- 'oid': (2,
- 16,
- 840,
- 1,
- 113719,
- 1,
- 2,
- 8,
- 52)},
- (2, 16, 840, 1, 113719, 1, 2, 8, 69): {'comment': 'Novell encryption algorithm',
- 'description': 'rc2CbcPad (2 16 840 1 113719 1 2 8 69)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 45',
- 'name': 'rc2CbcPad',
- 'oid': (2,
- 16,
- 840,
- 1,
- 113719,
- 1,
- 2,
- 8,
- 69)},
- (2, 16, 840, 1, 113719, 1, 2, 8, 82): {'comment': 'Novell digest algorithm',
- 'description': 'SHA-1 (2 16 840 1 113719 1 2 8 82)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 52',
- 'name': 'SHA-1',
- 'oid': (2,
- 16,
- 840,
- 1,
- 113719,
- 1,
- 2,
- 8,
- 82)},
- (2, 16, 840, 1, 113719, 1, 2, 8, 92): {'comment': 'Novell encryption algorithm',
- 'description': 'rc2BSafe1Cbc (2 16 840 1 113719 1 2 8 92)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 5C',
- 'name': 'rc2BSafe1Cbc',
- 'oid': (2,
- 16,
- 840,
- 1,
- 113719,
- 1,
- 2,
- 8,
- 92)},
- (2, 16, 840, 1, 113719, 1, 2, 8, 95): {'comment': 'Novell digest algorithm',
- 'description': 'MD4 (2 16 840 1 113719 1 2 8 95)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 5F',
- 'name': 'MD4',
- 'oid': (2,
- 16,
- 840,
- 1,
- 113719,
- 1,
- 2,
- 8,
- 95)},
- (2, 16, 840, 1, 113719, 1, 2, 8, 130): {'comment': 'Novell keyed hash',
- 'description': 'MD4Packet (2 16 840 1 113719 1 2 8 130)',
- 'hexoid': '06 0C 60 86 48 01 86 F8 37 01 02 08 81 02',
- 'name': 'MD4Packet',
- 'oid': (2,
- 16,
- 840,
- 1,
- 113719,
- 1,
- 2,
- 8,
- 130)},
- (2, 16, 840, 1, 113719, 1, 2, 8, 131): {'comment': 'Novell encryption algorithm',
- 'description': 'rsaEncryptionBsafe1 (2 16 840 1 113719 1 2 8 131)',
- 'hexoid': '06 0C 60 86 48 01 86 F8 37 01 02 08 81 03',
- 'name': 'rsaEncryptionBsafe1',
- 'oid': (2,
- 16,
- 840,
- 1,
- 113719,
- 1,
- 2,
- 8,
- 131)},
- (2, 16, 840, 1, 113719, 1, 2, 8, 132): {'comment': 'Novell encryption algorithm',
- 'description': 'NWPassword (2 16 840 1 113719 1 2 8 132)',
- 'hexoid': '06 0C 60 86 48 01 86 F8 37 01 02 08 81 04',
- 'name': 'NWPassword',
- 'oid': (2,
- 16,
- 840,
- 1,
- 113719,
- 1,
- 2,
- 8,
- 132)},
- (2, 16, 840, 1, 113719, 1, 2, 8, 133): {'comment': 'Novell encryption algorithm',
- 'description': 'novellObfuscate-1 (2 16 840 1 113719 1 2 8 133)',
- 'hexoid': '06 0C 60 86 48 01 86 F8 37 01 02 08 81 05',
- 'name': 'novellObfuscate-1',
- 'oid': (2,
- 16,
- 840,
- 1,
- 113719,
- 1,
- 2,
- 8,
- 133)},
- (2, 16, 840, 1, 113719, 1, 9): {'comment': 'Novell',
- 'description': 'pki (2 16 840 1 113719 1 9)',
- 'hexoid': '06 09 60 86 48 01 86 F8 37 01 09',
- 'name': 'pki',
- 'oid': (2, 16, 840, 1, 113719, 1, 9)},
- (2, 16, 840, 1, 113719, 1, 9, 4): {'comment': 'Novell PKI',
- 'description': 'pkiAttributeType (2 16 840 1 113719 1 9 4)',
- 'hexoid': '06 0A 60 86 48 01 86 F8 37 01 09 04',
- 'name': 'pkiAttributeType',
- 'oid': (2, 16, 840, 1, 113719, 1, 9, 4)},
- (2, 16, 840, 1, 113719, 1, 9, 4, 1): {'comment': 'Novell PKI attribute type',
- 'description': 'securityAttributes (2 16 840 1 113719 1 9 4 1)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 09 04 01',
- 'name': 'securityAttributes',
- 'oid': (2,
- 16,
- 840,
- 1,
- 113719,
- 1,
- 9,
- 4,
- 1)},
- (2, 16, 840, 1, 113719, 1, 9, 4, 2): {'comment': 'Novell PKI attribute type',
- 'description': 'relianceLimit (2 16 840 1 113719 1 9 4 2)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 09 04 02',
- 'name': 'relianceLimit',
- 'oid': (2,
- 16,
- 840,
- 1,
- 113719,
- 1,
- 9,
- 4,
- 2)},
- (2, 16, 840, 1, 113730, 1): {'comment': 'Netscape',
- 'description': 'cert-extension (2 16 840 1 113730 1)',
- 'hexoid': '06 08 60 86 48 01 86 F8 42 01',
- 'name': 'cert-extension',
- 'oid': (2, 16, 840, 1, 113730, 1)},
- (2, 16, 840, 1, 113730, 1, 1): {'comment': 'Netscape certificate extension',
- 'description': 'netscape-cert-type (2 16 840 1 113730 1 1)',
- 'hexoid': '06 09 60 86 48 01 86 F8 42 01 01',
- 'name': 'netscape-cert-type',
- 'oid': (2, 16, 840, 1, 113730, 1, 1)},
- (2, 16, 840, 1, 113730, 1, 2): {'comment': 'Netscape certificate extension',
- 'description': 'netscape-base-url (2 16 840 1 113730 1 2)',
- 'hexoid': '06 09 60 86 48 01 86 F8 42 01 02',
- 'name': 'netscape-base-url',
- 'oid': (2, 16, 840, 1, 113730, 1, 2)},
- (2, 16, 840, 1, 113730, 1, 3): {'comment': 'Netscape certificate extension',
- 'description': 'netscape-revocation-url (2 16 840 1 113730 1 3)',
- 'hexoid': '06 09 60 86 48 01 86 F8 42 01 03',
- 'name': 'netscape-revocation-url',
- 'oid': (2, 16, 840, 1, 113730, 1, 3)},
- (2, 16, 840, 1, 113730, 1, 4): {'comment': 'Netscape certificate extension',
- 'description': 'netscape-ca-revocation-url (2 16 840 1 113730 1 4)',
- 'hexoid': '06 09 60 86 48 01 86 F8 42 01 04',
- 'name': 'netscape-ca-revocation-url',
- 'oid': (2, 16, 840, 1, 113730, 1, 4)},
- (2, 16, 840, 1, 113730, 1, 7): {'comment': 'Netscape certificate extension',
- 'description': 'netscape-cert-renewal-url (2 16 840 1 113730 1 7)',
- 'hexoid': '06 09 60 86 48 01 86 F8 42 01 07',
- 'name': 'netscape-cert-renewal-url',
- 'oid': (2, 16, 840, 1, 113730, 1, 7)},
- (2, 16, 840, 1, 113730, 1, 8): {'comment': 'Netscape certificate extension',
- 'description': 'netscape-ca-policy-url (2 16 840 1 113730 1 8)',
- 'hexoid': '06 09 60 86 48 01 86 F8 42 01 08',
- 'name': 'netscape-ca-policy-url',
- 'oid': (2, 16, 840, 1, 113730, 1, 8)},
- (2, 16, 840, 1, 113730, 1, 9): {'comment': 'Netscape certificate extension',
- 'description': 'HomePage-url (2 16 840 1 113730 1 9)',
- 'hexoid': '06 09 60 86 48 01 86 F8 42 01 09',
- 'name': 'HomePage-url',
- 'oid': (2, 16, 840, 1, 113730, 1, 9)},
- (2, 16, 840, 1, 113730, 1, 10): {'comment': 'Netscape certificate extension',
- 'description': 'EntityLogo (2 16 840 1 113730 1 10)',
- 'hexoid': '06 09 60 86 48 01 86 F8 42 01 0A',
- 'name': 'EntityLogo',
- 'oid': (2, 16, 840, 1, 113730, 1, 10)},
- (2, 16, 840, 1, 113730, 1, 11): {'comment': 'Netscape certificate extension',
- 'description': 'UserPicture (2 16 840 1 113730 1 11)',
- 'hexoid': '06 09 60 86 48 01 86 F8 42 01 0B',
- 'name': 'UserPicture',
- 'oid': (2, 16, 840, 1, 113730, 1, 11)},
- (2, 16, 840, 1, 113730, 1, 12): {'comment': 'Netscape certificate extension',
- 'description': 'netscape-ssl-server-name (2 16 840 1 113730 1 12)',
- 'hexoid': '06 09 60 86 48 01 86 F8 42 01 0C',
- 'name': 'netscape-ssl-server-name',
- 'oid': (2, 16, 840, 1, 113730, 1, 12)},
- (2, 16, 840, 1, 113730, 1, 13): {'comment': 'Netscape certificate extension',
- 'description': 'netscape-comment (2 16 840 1 113730 1 13)',
- 'hexoid': '06 09 60 86 48 01 86 F8 42 01 0D',
- 'name': 'netscape-comment',
- 'oid': (2, 16, 840, 1, 113730, 1, 13)},
- (2, 16, 840, 1, 113730, 2): {'comment': 'Netscape',
- 'description': 'data-type (2 16 840 1 113730 2)',
- 'hexoid': '06 08 60 86 48 01 86 F8 42 02',
- 'name': 'data-type',
- 'oid': (2, 16, 840, 1, 113730, 2)},
- (2, 16, 840, 1, 113730, 2, 1): {'comment': 'Netscape data type',
- 'description': 'dataGIF (2 16 840 1 113730 2 1)',
- 'hexoid': '06 09 60 86 48 01 86 F8 42 02 01',
- 'name': 'dataGIF',
- 'oid': (2, 16, 840, 1, 113730, 2, 1)},
- (2, 16, 840, 1, 113730, 2, 2): {'comment': 'Netscape data type',
- 'description': 'dataJPEG (2 16 840 1 113730 2 2)',
- 'hexoid': '06 09 60 86 48 01 86 F8 42 02 02',
- 'name': 'dataJPEG',
- 'oid': (2, 16, 840, 1, 113730, 2, 2)},
- (2, 16, 840, 1, 113730, 2, 3): {'comment': 'Netscape data type',
- 'description': 'dataURL (2 16 840 1 113730 2 3)',
- 'hexoid': '06 09 60 86 48 01 86 F8 42 02 03',
- 'name': 'dataURL',
- 'oid': (2, 16, 840, 1, 113730, 2, 3)},
- (2, 16, 840, 1, 113730, 2, 4): {'comment': 'Netscape data type',
- 'description': 'dataHTML (2 16 840 1 113730 2 4)',
- 'hexoid': '06 09 60 86 48 01 86 F8 42 02 04',
- 'name': 'dataHTML',
- 'oid': (2, 16, 840, 1, 113730, 2, 4)},
- (2, 16, 840, 1, 113730, 2, 5): {'comment': 'Netscape data type',
- 'description': 'certSequence (2 16 840 1 113730 2 5)',
- 'hexoid': '06 09 60 86 48 01 86 F8 42 02 05',
- 'name': 'certSequence',
- 'oid': (2, 16, 840, 1, 113730, 2, 5)},
- (2, 16, 840, 1, 113730, 2, 6): {'comment': 'Netscape certificate extension',
- 'description': 'certURL (2 16 840 1 113730 2 6)',
- 'hexoid': '06 09 60 86 48 01 86 F8 42 02 06',
- 'name': 'certURL',
- 'oid': (2, 16, 840, 1, 113730, 2, 6)},
- (2, 16, 840, 1, 113730, 3): {'comment': 'Netscape',
- 'description': 'directory (2 16 840 1 113730 3)',
- 'hexoid': '06 08 60 86 48 01 86 F8 42 03',
- 'name': 'directory',
- 'oid': (2, 16, 840, 1, 113730, 3)},
- (2, 16, 840, 1, 113730, 3, 1): {'comment': 'Netscape directory',
- 'description': 'ldapDefinitions (2 16 840 1 113730 3 1)',
- 'hexoid': '06 09 60 86 48 01 86 F8 42 03 01',
- 'name': 'ldapDefinitions',
- 'oid': (2, 16, 840, 1, 113730, 3, 1)},
- (2, 16, 840, 1, 113730, 3, 1, 1): {'comment': 'Netscape LDAP definitions',
- 'description': 'carLicense (2 16 840 1 113730 3 1 1)',
- 'hexoid': '06 0A 60 86 48 01 86 F8 42 03 01 01',
- 'name': 'carLicense',
- 'oid': (2, 16, 840, 1, 113730, 3, 1, 1)},
- (2, 16, 840, 1, 113730, 3, 1, 2): {'comment': 'Netscape LDAP definitions',
- 'description': 'departmentNumber (2 16 840 1 113730 3 1 2)',
- 'hexoid': '06 0A 60 86 48 01 86 F8 42 03 01 02',
- 'name': 'departmentNumber',
- 'oid': (2, 16, 840, 1, 113730, 3, 1, 2)},
- (2, 16, 840, 1, 113730, 3, 1, 3): {'comment': 'Netscape LDAP definitions',
- 'description': 'employeeNumber (2 16 840 1 113730 3 1 3)',
- 'hexoid': '06 0A 60 86 48 01 86 F8 42 03 01 03',
- 'name': 'employeeNumber',
- 'oid': (2, 16, 840, 1, 113730, 3, 1, 3)},
- (2, 16, 840, 1, 113730, 3, 1, 4): {'comment': 'Netscape LDAP definitions',
- 'description': 'employeeType (2 16 840 1 113730 3 1 4)',
- 'hexoid': '06 0A 60 86 48 01 86 F8 42 03 01 04',
- 'name': 'employeeType',
- 'oid': (2, 16, 840, 1, 113730, 3, 1, 4)},
- (2, 16, 840, 1, 113730, 3, 2, 2): {'comment': 'Netscape LDAP definitions',
- 'description': 'inetOrgPerson (2 16 840 1 113730 3 2 2)',
- 'hexoid': '06 0A 60 86 48 01 86 F8 42 03 02 02',
- 'name': 'inetOrgPerson',
- 'oid': (2, 16, 840, 1, 113730, 3, 2, 2)},
- (2, 16, 840, 1, 113730, 4, 1): {'comment': 'Netscape',
- 'description': 'serverGatedCrypto (2 16 840 1 113730 4 1)',
- 'hexoid': '06 09 60 86 48 01 86 F8 42 04 01',
- 'name': 'serverGatedCrypto',
- 'oid': (2, 16, 840, 1, 113730, 4, 1)},
- (2, 16, 840, 1, 113733, 1): {'comment': 'Verisign extension',
- 'description': 'pki (2 16 840 1 113733 1)',
- 'hexoid': '06 08 60 86 48 01 86 F8 45 01',
- 'name': 'pki',
- 'oid': (2, 16, 840, 1, 113733, 1)},
- (2, 16, 840, 1, 113733, 1, 6, 3): {'comment': 'Verisign extension',
- 'description': 'verisignCZAG (2 16 840 1 113733 1 6 3)',
- 'hexoid': '06 0A 60 86 48 01 86 F8 45 01 06 03',
- 'name': 'verisignCZAG',
- 'oid': (2, 16, 840, 1, 113733, 1, 6, 3)},
- (2, 16, 840, 1, 113733, 1, 6, 6): {'comment': 'Verisign extension',
- 'description': 'verisignInBox (2 16 840 1 113733 1 6 6)',
- 'hexoid': '06 0A 60 86 48 01 86 F8 45 01 06 06',
- 'name': 'verisignInBox',
- 'oid': (2, 16, 840, 1, 113733, 1, 6, 6)},
- (2, 16, 840, 1, 113733, 1, 6, 11): {'comment': 'Verisign extension',
- 'description': 'Unknown Verisign VPN extension (2 16 840 1 113733 1 6 11)',
- 'hexoid': '06 0A 60 86 48 01 86 F8 45 01 06 0B',
- 'name': 'Unknown',
- 'oid': (2, 16, 840, 1, 113733, 1, 6, 11)},
- (2, 16, 840, 1, 113733, 1, 6, 13): {'comment': 'Verisign extension',
- 'description': 'Unknown Verisign VPN extension (2 16 840 1 113733 1 6 13)',
- 'hexoid': '06 0A 60 86 48 01 86 F8 45 01 06 0D',
- 'name': 'Unknown',
- 'oid': (2, 16, 840, 1, 113733, 1, 6, 13)},
- (2, 16, 840, 1, 113733, 1, 6, 15): {'comment': 'Verisign extension',
- 'description': 'Verisign serverID (2 16 840 1 113733 1 6 15)',
- 'hexoid': '06 0A 60 86 48 01 86 F8 45 01 06 0F',
- 'name': 'Verisign',
- 'oid': (2, 16, 840, 1, 113733, 1, 6, 15)},
- (2, 16, 840, 1, 113733, 1, 7, 1, 1): {'comment': 'Verisign policy',
- 'description': 'Verisign policyIdentifier (2 16 840 1 113733 1 7 1 1)',
- 'hexoid': '06 0B 60 86 48 01 86 F8 45 01 07 01 01',
- 'name': 'Verisign',
- 'oid': (2,
- 16,
- 840,
- 1,
- 113733,
- 1,
- 7,
- 1,
- 1)},
- (2, 16, 840, 1, 113733, 1, 7, 1, 1, 1): {'comment': 'Verisign policy (obsolete)',
- 'description': 'verisignCPSv1notice (2 16 840 1 113733 1 7 1 1 1)',
- 'hexoid': '06 0C 60 86 48 01 86 F8 45 01 07 01 01 01',
- 'name': 'verisignCPSv1notice',
- 'oid': (2,
- 16,
- 840,
- 1,
- 113733,
- 1,
- 7,
- 1,
- 1,
- 1)},
- (2, 16, 840, 1, 113733, 1, 7, 1, 1, 2): {'comment': 'Verisign policy (obsolete)',
- 'description': 'verisignCPSv1nsi (2 16 840 1 113733 1 7 1 1 2)',
- 'hexoid': '06 0C 60 86 48 01 86 F8 45 01 07 01 01 02',
- 'name': 'verisignCPSv1nsi',
- 'oid': (2,
- 16,
- 840,
- 1,
- 113733,
- 1,
- 7,
- 1,
- 1,
- 2)},
- (2, 16, 840, 1, 113733, 1, 8, 1): {'comment': 'Verisign',
- 'description': 'Verisign SGC CA? (2 16 840 1 113733 1 8 1)',
- 'hexoid': '06 0A 60 86 48 01 86 F8 45 01 08 01',
- 'name': 'Verisign',
- 'oid': (2, 16, 840, 1, 113733, 1, 8, 1)},
- (2, 16, 840, 1, 113733, 1, 9): {'comment': 'Verisign PKI extension',
- 'description': 'pkcs7Attribute (2 16 840 1 113733 1 9)',
- 'hexoid': '06 09 60 86 48 01 86 F8 45 01 09',
- 'name': 'pkcs7Attribute',
- 'oid': (2, 16, 840, 1, 113733, 1, 9)},
- (2, 16, 840, 1, 113733, 1, 9, 2): {'comment': 'Verisign PKCS #7 attribute',
- 'description': 'messageType (2 16 840 1 113733 1 9 2)',
- 'hexoid': '06 0A 60 86 48 01 86 F8 45 01 09 02',
- 'name': 'messageType',
- 'oid': (2, 16, 840, 1, 113733, 1, 9, 2)},
- (2, 16, 840, 1, 113733, 1, 9, 3): {'comment': 'Verisign PKCS #7 attribute',
- 'description': 'pkiStatus (2 16 840 1 113733 1 9 3)',
- 'hexoid': '06 0A 60 86 48 01 86 F8 45 01 09 03',
- 'name': 'pkiStatus',
- 'oid': (2, 16, 840, 1, 113733, 1, 9, 3)},
- (2, 16, 840, 1, 113733, 1, 9, 4): {'comment': 'Verisign PKCS #7 attribute',
- 'description': 'failInfo (2 16 840 1 113733 1 9 4)',
- 'hexoid': '06 0A 60 86 48 01 86 F8 45 01 09 04',
- 'name': 'failInfo',
- 'oid': (2, 16, 840, 1, 113733, 1, 9, 4)},
- (2, 16, 840, 1, 113733, 1, 9, 5): {'comment': 'Verisign PKCS #7 attribute',
- 'description': 'senderNonce (2 16 840 1 113733 1 9 5)',
- 'hexoid': '06 0A 60 86 48 01 86 F8 45 01 09 05',
- 'name': 'senderNonce',
- 'oid': (2, 16, 840, 1, 113733, 1, 9, 5)},
- (2, 16, 840, 1, 113733, 1, 9, 6): {'comment': 'Verisign PKCS #7 attribute',
- 'description': 'recipientNonce (2 16 840 1 113733 1 9 6)',
- 'hexoid': '06 0A 60 86 48 01 86 F8 45 01 09 06',
- 'name': 'recipientNonce',
- 'oid': (2, 16, 840, 1, 113733, 1, 9, 6)},
- (2, 16, 840, 1, 113733, 1, 9, 7): {'comment': 'Verisign PKCS #7 attribute',
- 'description': 'transID (2 16 840 1 113733 1 9 7)',
- 'hexoid': '06 0A 60 86 48 01 86 F8 45 01 09 07',
- 'name': 'transID',
- 'oid': (2, 16, 840, 1, 113733, 1, 9, 7)},
- (2, 23, 42, 0): {'comment': 'SET',
- 'description': 'contentType (2 23 42 0)',
- 'hexoid': '06 03 67 2A 00',
- 'name': 'contentType',
- 'oid': (2, 23, 42, 0)},
- (2, 23, 42, 0, 0): {'comment': 'SET contentType',
- 'description': 'PANData (2 23 42 0 0)',
- 'hexoid': '06 04 67 2A 00 00',
- 'name': 'PANData',
- 'oid': (2, 23, 42, 0, 0)},
- (2, 23, 42, 0, 1): {'comment': 'SET contentType',
- 'description': 'PANToken (2 23 42 0 1)',
- 'hexoid': '06 04 67 2A 00 01',
- 'name': 'PANToken',
- 'oid': (2, 23, 42, 0, 1)},
- (2, 23, 42, 0, 2): {'comment': 'SET contentType',
- 'description': 'PANOnly (2 23 42 0 2)',
- 'hexoid': '06 04 67 2A 00 02',
- 'name': 'PANOnly',
- 'oid': (2, 23, 42, 0, 2)},
- (2, 23, 42, 1): {'comment': 'SET',
- 'description': 'msgExt (2 23 42 1)',
- 'hexoid': '06 03 67 2A 01',
- 'name': 'msgExt',
- 'oid': (2, 23, 42, 1)},
- (2, 23, 42, 2): {'comment': 'SET',
- 'description': 'field (2 23 42 2)',
- 'hexoid': '06 03 67 2A 02',
- 'name': 'field',
- 'oid': (2, 23, 42, 2)},
- (2, 23, 42, 2, 0): {'comment': 'SET field',
- 'description': 'fullName (2 23 42 2 0)',
- 'hexoid': '06 04 67 2A 02 00',
- 'name': 'fullName',
- 'oid': (2, 23, 42, 2, 0)},
- (2, 23, 42, 2, 1): {'comment': 'SET field',
- 'description': 'givenName (2 23 42 2 1)',
- 'hexoid': '06 04 67 2A 02 01',
- 'name': 'givenName',
- 'oid': (2, 23, 42, 2, 1)},
- (2, 23, 42, 2, 2): {'comment': 'SET field',
- 'description': 'familyName (2 23 42 2 2)',
- 'hexoid': '06 04 67 2A 02 02',
- 'name': 'familyName',
- 'oid': (2, 23, 42, 2, 2)},
- (2, 23, 42, 2, 3): {'comment': 'SET field',
- 'description': 'birthFamilyName (2 23 42 2 3)',
- 'hexoid': '06 04 67 2A 02 03',
- 'name': 'birthFamilyName',
- 'oid': (2, 23, 42, 2, 3)},
- (2, 23, 42, 2, 4): {'comment': 'SET field',
- 'description': 'placeName (2 23 42 2 4)',
- 'hexoid': '06 04 67 2A 02 04',
- 'name': 'placeName',
- 'oid': (2, 23, 42, 2, 4)},
- (2, 23, 42, 2, 5): {'comment': 'SET field',
- 'description': 'identificationNumber (2 23 42 2 5)',
- 'hexoid': '06 04 67 2A 02 05',
- 'name': 'identificationNumber',
- 'oid': (2, 23, 42, 2, 5)},
- (2, 23, 42, 2, 6): {'comment': 'SET field',
- 'description': 'month (2 23 42 2 6)',
- 'hexoid': '06 04 67 2A 02 06',
- 'name': 'month',
- 'oid': (2, 23, 42, 2, 6)},
- (2, 23, 42, 2, 7): {'comment': 'SET field',
- 'description': 'date (2 23 42 2 7)',
- 'hexoid': '06 04 67 2A 02 07',
- 'name': 'date',
- 'oid': (2, 23, 42, 2, 7)},
- (2, 23, 42, 2, 8): {'comment': 'SET field',
- 'description': 'address (2 23 42 2 8)',
- 'hexoid': '06 04 67 2A 02 08',
- 'name': 'address',
- 'oid': (2, 23, 42, 2, 8)},
- (2, 23, 42, 2, 9): {'comment': 'SET field',
- 'description': 'telephone (2 23 42 2 9)',
- 'hexoid': '06 04 67 2A 02 09',
- 'name': 'telephone',
- 'oid': (2, 23, 42, 2, 9)},
- (2, 23, 42, 2, 10): {'comment': 'SET field',
- 'description': 'amount (2 23 42 2 10)',
- 'hexoid': '06 04 67 2A 02 0A',
- 'name': 'amount',
- 'oid': (2, 23, 42, 2, 10)},
- (2, 23, 42, 2, 11): {'comment': 'SET field',
- 'description': 'accountNumber (2 23 42 2 11)',
- 'hexoid': '06 04 67 2A 02 0B',
- 'name': 'accountNumber',
- 'oid': (2, 23, 42, 2, 11)},
- (2, 23, 42, 2, 12): {'comment': 'SET field',
- 'description': 'passPhrase (2 23 42 2 12)',
- 'hexoid': '06 04 67 2A 02 0C',
- 'name': 'passPhrase',
- 'oid': (2, 23, 42, 2, 12)},
- (2, 23, 42, 3): {'comment': 'SET',
- 'description': 'attribute (2 23 42 3)',
- 'hexoid': '06 03 67 2A 03',
- 'name': 'attribute',
- 'oid': (2, 23, 42, 3)},
- (2, 23, 42, 3, 0): {'comment': 'SET attribute',
- 'description': 'cert (2 23 42 3 0)',
- 'hexoid': '06 04 67 2A 03 00',
- 'name': 'cert',
- 'oid': (2, 23, 42, 3, 0)},
- (2, 23, 42, 3, 0, 0): {'comment': 'SET cert attribute',
- 'description': 'rootKeyThumb (2 23 42 3 0 0)',
- 'hexoid': '06 05 67 2A 03 00 00',
- 'name': 'rootKeyThumb',
- 'oid': (2, 23, 42, 3, 0, 0)},
- (2, 23, 42, 3, 0, 1): {'comment': 'SET cert attribute',
- 'description': 'additionalPolicy (2 23 42 3 0 1)',
- 'hexoid': '06 05 67 2A 03 00 01',
- 'name': 'additionalPolicy',
- 'oid': (2, 23, 42, 3, 0, 1)},
- (2, 23, 42, 4): {'comment': 'SET',
- 'description': 'algorithm (2 23 42 4)',
- 'hexoid': '06 03 67 2A 04',
- 'name': 'algorithm',
- 'oid': (2, 23, 42, 4)},
- (2, 23, 42, 5): {'comment': 'SET',
- 'description': 'policy (2 23 42 5)',
- 'hexoid': '06 03 67 2A 05',
- 'name': 'policy',
- 'oid': (2, 23, 42, 5)},
- (2, 23, 42, 5, 0): {'comment': 'SET policy',
- 'description': 'root (2 23 42 5 0)',
- 'hexoid': '06 04 67 2A 05 00',
- 'name': 'root',
- 'oid': (2, 23, 42, 5, 0)},
- (2, 23, 42, 6): {'comment': 'SET',
- 'description': 'module (2 23 42 6)',
- 'hexoid': '06 03 67 2A 06',
- 'name': 'module',
- 'oid': (2, 23, 42, 6)},
- (2, 23, 42, 7): {'comment': 'SET',
- 'description': 'certExt (2 23 42 7)',
- 'hexoid': '06 03 67 2A 07',
- 'name': 'certExt',
- 'oid': (2, 23, 42, 7)},
- (2, 23, 42, 7, 0): {'comment': 'SET cert extension',
- 'description': 'hashedRootKey (2 23 42 7 0)',
- 'hexoid': '06 04 67 2A 07 00',
- 'name': 'hashedRootKey',
- 'oid': (2, 23, 42, 7, 0)},
- (2, 23, 42, 7, 1): {'comment': 'SET cert extension',
- 'description': 'certificateType (2 23 42 7 1)',
- 'hexoid': '06 04 67 2A 07 01',
- 'name': 'certificateType',
- 'oid': (2, 23, 42, 7, 1)},
- (2, 23, 42, 7, 2): {'comment': 'SET cert extension',
- 'description': 'merchantData (2 23 42 7 2)',
- 'hexoid': '06 04 67 2A 07 02',
- 'name': 'merchantData',
- 'oid': (2, 23, 42, 7, 2)},
- (2, 23, 42, 7, 3): {'comment': 'SET cert extension',
- 'description': 'cardCertRequired (2 23 42 7 3)',
- 'hexoid': '06 04 67 2A 07 03',
- 'name': 'cardCertRequired',
- 'oid': (2, 23, 42, 7, 3)},
- (2, 23, 42, 7, 4): {'comment': 'SET cert extension',
- 'description': 'tunneling (2 23 42 7 4)',
- 'hexoid': '06 04 67 2A 07 04',
- 'name': 'tunneling',
- 'oid': (2, 23, 42, 7, 4)},
- (2, 23, 42, 7, 5): {'comment': 'SET cert extension',
- 'description': 'setExtensions (2 23 42 7 5)',
- 'hexoid': '06 04 67 2A 07 05',
- 'name': 'setExtensions',
- 'oid': (2, 23, 42, 7, 5)},
- (2, 23, 42, 7, 6): {'comment': 'SET cert extension',
- 'description': 'setQualifier (2 23 42 7 6)',
- 'hexoid': '06 04 67 2A 07 06',
- 'name': 'setQualifier',
- 'oid': (2, 23, 42, 7, 6)},
- (2, 23, 42, 8): {'comment': 'SET',
- 'description': 'brand (2 23 42 8)',
- 'hexoid': '06 03 67 2A 08',
- 'name': 'brand',
- 'oid': (2, 23, 42, 8)},
- (2, 23, 42, 8, 1): {'comment': 'SET brand',
- 'description': 'IATA-ATA (2 23 42 8 1)',
- 'hexoid': '06 04 67 2A 08 01',
- 'name': 'IATA-ATA',
- 'oid': (2, 23, 42, 8, 1)},
- (2, 23, 42, 8, 4): {'comment': 'SET brand',
- 'description': 'VISA (2 23 42 8 4)',
- 'hexoid': '06 04 67 2A 08 04',
- 'name': 'VISA',
- 'oid': (2, 23, 42, 8, 4)},
- (2, 23, 42, 8, 5): {'comment': 'SET brand',
- 'description': 'MasterCard (2 23 42 8 5)',
- 'hexoid': '06 04 67 2A 08 05',
- 'name': 'MasterCard',
- 'oid': (2, 23, 42, 8, 5)},
- (2, 23, 42, 8, 30): {'comment': 'SET brand',
- 'description': 'Diners (2 23 42 8 30)',
- 'hexoid': '06 04 67 2A 08 1E',
- 'name': 'Diners',
- 'oid': (2, 23, 42, 8, 30)},
- (2, 23, 42, 8, 34): {'comment': 'SET brand',
- 'description': 'AmericanExpress (2 23 42 8 34)',
- 'hexoid': '06 04 67 2A 08 22',
- 'name': 'AmericanExpress',
- 'oid': (2, 23, 42, 8, 34)},
- (2, 23, 42, 8, 6011): {'comment': 'SET brand',
- 'description': 'Novus (2 23 42 8 6011)',
- 'hexoid': '06 05 67 2A 08 AE 7B',
- 'name': 'Novus',
- 'oid': (2, 23, 42, 8, 6011)},
- (2, 23, 42, 9): {'comment': 'SET',
- 'description': 'vendor (2 23 42 9)',
- 'hexoid': '06 03 67 2A 09',
- 'name': 'vendor',
- 'oid': (2, 23, 42, 9)},
- (2, 23, 42, 9, 0): {'comment': 'SET vendor',
- 'description': 'GlobeSet (2 23 42 9 0)',
- 'hexoid': '06 04 67 2A 09 00',
- 'name': 'GlobeSet',
- 'oid': (2, 23, 42, 9, 0)},
- (2, 23, 42, 9, 1): {'comment': 'SET vendor',
- 'description': 'IBM (2 23 42 9 1)',
- 'hexoid': '06 04 67 2A 09 01',
- 'name': 'IBM',
- 'oid': (2, 23, 42, 9, 1)},
- (2, 23, 42, 9, 2): {'comment': 'SET vendor',
- 'description': 'CyberCash (2 23 42 9 2)',
- 'hexoid': '06 04 67 2A 09 02',
- 'name': 'CyberCash',
- 'oid': (2, 23, 42, 9, 2)},
- (2, 23, 42, 9, 3): {'comment': 'SET vendor',
- 'description': 'Terisa (2 23 42 9 3)',
- 'hexoid': '06 04 67 2A 09 03',
- 'name': 'Terisa',
- 'oid': (2, 23, 42, 9, 3)},
- (2, 23, 42, 9, 4): {'comment': 'SET vendor',
- 'description': 'RSADSI (2 23 42 9 4)',
- 'hexoid': '06 04 67 2A 09 04',
- 'name': 'RSADSI',
- 'oid': (2, 23, 42, 9, 4)},
- (2, 23, 42, 9, 5): {'comment': 'SET vendor',
- 'description': 'VeriFone (2 23 42 9 5)',
- 'hexoid': '06 04 67 2A 09 05',
- 'name': 'VeriFone',
- 'oid': (2, 23, 42, 9, 5)},
- (2, 23, 42, 9, 6): {'comment': 'SET vendor',
- 'description': 'TrinTech (2 23 42 9 6)',
- 'hexoid': '06 04 67 2A 09 06',
- 'name': 'TrinTech',
- 'oid': (2, 23, 42, 9, 6)},
- (2, 23, 42, 9, 7): {'comment': 'SET vendor',
- 'description': 'BankGate (2 23 42 9 7)',
- 'hexoid': '06 04 67 2A 09 07',
- 'name': 'BankGate',
- 'oid': (2, 23, 42, 9, 7)},
- (2, 23, 42, 9, 8): {'comment': 'SET vendor',
- 'description': 'GTE (2 23 42 9 8)',
- 'hexoid': '06 04 67 2A 09 08',
- 'name': 'GTE',
- 'oid': (2, 23, 42, 9, 8)},
- (2, 23, 42, 9, 9): {'comment': 'SET vendor',
- 'description': 'CompuSource (2 23 42 9 9)',
- 'hexoid': '06 04 67 2A 09 09',
- 'name': 'CompuSource',
- 'oid': (2, 23, 42, 9, 9)},
- (2, 23, 42, 9, 10): {'comment': 'SET vendor',
- 'description': 'Griffin (2 23 42 9 10)',
- 'hexoid': '06 04 67 2A 09 0A',
- 'name': 'Griffin',
- 'oid': (2, 23, 42, 9, 10)},
- (2, 23, 42, 9, 11): {'comment': 'SET vendor',
- 'description': 'Certicom (2 23 42 9 11)',
- 'hexoid': '06 04 67 2A 09 0B',
- 'name': 'Certicom',
- 'oid': (2, 23, 42, 9, 11)},
- (2, 23, 42, 9, 12): {'comment': 'SET vendor',
- 'description': 'OSS (2 23 42 9 12)',
- 'hexoid': '06 04 67 2A 09 0C',
- 'name': 'OSS',
- 'oid': (2, 23, 42, 9, 12)},
- (2, 23, 42, 9, 13): {'comment': 'SET vendor',
- 'description': 'TenthMountain (2 23 42 9 13)',
- 'hexoid': '06 04 67 2A 09 0D',
- 'name': 'TenthMountain',
- 'oid': (2, 23, 42, 9, 13)},
- (2, 23, 42, 9, 14): {'comment': 'SET vendor',
- 'description': 'Antares (2 23 42 9 14)',
- 'hexoid': '06 04 67 2A 09 0E',
- 'name': 'Antares',
- 'oid': (2, 23, 42, 9, 14)},
- (2, 23, 42, 9, 15): {'comment': 'SET vendor',
- 'description': 'ECC (2 23 42 9 15)',
- 'hexoid': '06 04 67 2A 09 0F',
- 'name': 'ECC',
- 'oid': (2, 23, 42, 9, 15)},
- (2, 23, 42, 9, 16): {'comment': 'SET vendor',
- 'description': 'Maithean (2 23 42 9 16)',
- 'hexoid': '06 04 67 2A 09 10',
- 'name': 'Maithean',
- 'oid': (2, 23, 42, 9, 16)},
- (2, 23, 42, 9, 17): {'comment': 'SET vendor',
- 'description': 'Netscape (2 23 42 9 17)',
- 'hexoid': '06 04 67 2A 09 11',
- 'name': 'Netscape',
- 'oid': (2, 23, 42, 9, 17)},
- (2, 23, 42, 9, 18): {'comment': 'SET vendor',
- 'description': 'Verisign (2 23 42 9 18)',
- 'hexoid': '06 04 67 2A 09 12',
- 'name': 'Verisign',
- 'oid': (2, 23, 42, 9, 18)},
- (2, 23, 42, 9, 19): {'comment': 'SET vendor',
- 'description': 'BlueMoney (2 23 42 9 19)',
- 'hexoid': '06 04 67 2A 09 13',
- 'name': 'BlueMoney',
- 'oid': (2, 23, 42, 9, 19)},
- (2, 23, 42, 9, 20): {'comment': 'SET vendor',
- 'description': 'Lacerte (2 23 42 9 20)',
- 'hexoid': '06 04 67 2A 09 14',
- 'name': 'Lacerte',
- 'oid': (2, 23, 42, 9, 20)},
- (2, 23, 42, 9, 21): {'comment': 'SET vendor',
- 'description': 'Fujitsu (2 23 42 9 21)',
- 'hexoid': '06 04 67 2A 09 15',
- 'name': 'Fujitsu',
- 'oid': (2, 23, 42, 9, 21)},
- (2, 23, 42, 9, 22): {'comment': 'SET vendor',
- 'description': 'eLab (2 23 42 9 22)',
- 'hexoid': '06 04 67 2A 09 16',
- 'name': 'eLab',
- 'oid': (2, 23, 42, 9, 22)},
- (2, 23, 42, 9, 23): {'comment': 'SET vendor',
- 'description': 'Entrust (2 23 42 9 23)',
- 'hexoid': '06 04 67 2A 09 17',
- 'name': 'Entrust',
- 'oid': (2, 23, 42, 9, 23)},
- (2, 23, 42, 9, 24): {'comment': 'SET vendor',
- 'description': 'VIAnet (2 23 42 9 24)',
- 'hexoid': '06 04 67 2A 09 18',
- 'name': 'VIAnet',
- 'oid': (2, 23, 42, 9, 24)},
- (2, 23, 42, 9, 25): {'comment': 'SET vendor',
- 'description': 'III (2 23 42 9 25)',
- 'hexoid': '06 04 67 2A 09 19',
- 'name': 'III',
- 'oid': (2, 23, 42, 9, 25)},
- (2, 23, 42, 9, 26): {'comment': 'SET vendor',
- 'description': 'OpenMarket (2 23 42 9 26)',
- 'hexoid': '06 04 67 2A 09 1A',
- 'name': 'OpenMarket',
- 'oid': (2, 23, 42, 9, 26)},
- (2, 23, 42, 9, 27): {'comment': 'SET vendor',
- 'description': 'Lexem (2 23 42 9 27)',
- 'hexoid': '06 04 67 2A 09 1B',
- 'name': 'Lexem',
- 'oid': (2, 23, 42, 9, 27)},
- (2, 23, 42, 9, 28): {'comment': 'SET vendor',
- 'description': 'Intertrader (2 23 42 9 28)',
- 'hexoid': '06 04 67 2A 09 1C',
- 'name': 'Intertrader',
- 'oid': (2, 23, 42, 9, 28)},
- (2, 23, 42, 9, 29): {'comment': 'SET vendor',
- 'description': 'Persimmon (2 23 42 9 29)',
- 'hexoid': '06 04 67 2A 09 1D',
- 'name': 'Persimmon',
- 'oid': (2, 23, 42, 9, 29)},
- (2, 23, 42, 9, 30): {'comment': 'SET vendor',
- 'description': 'NABLE (2 23 42 9 30)',
- 'hexoid': '06 04 67 2A 09 1E',
- 'name': 'NABLE',
- 'oid': (2, 23, 42, 9, 30)},
- (2, 23, 42, 9, 31): {'comment': 'SET vendor',
- 'description': 'espace-net (2 23 42 9 31)',
- 'hexoid': '06 04 67 2A 09 1F',
- 'name': 'espace-net',
- 'oid': (2, 23, 42, 9, 31)},
- (2, 23, 42, 9, 32): {'comment': 'SET vendor',
- 'description': 'Hitachi (2 23 42 9 32)',
- 'hexoid': '06 04 67 2A 09 20',
- 'name': 'Hitachi',
- 'oid': (2, 23, 42, 9, 32)},
- (2, 23, 42, 9, 33): {'comment': 'SET vendor',
- 'description': 'Microsoft (2 23 42 9 33)',
- 'hexoid': '06 04 67 2A 09 21',
- 'name': 'Microsoft',
- 'oid': (2, 23, 42, 9, 33)},
- (2, 23, 42, 9, 34): {'comment': 'SET vendor',
- 'description': 'NEC (2 23 42 9 34)',
- 'hexoid': '06 04 67 2A 09 22',
- 'name': 'NEC',
- 'oid': (2, 23, 42, 9, 34)},
- (2, 23, 42, 9, 35): {'comment': 'SET vendor',
- 'description': 'Mitsubishi (2 23 42 9 35)',
- 'hexoid': '06 04 67 2A 09 23',
- 'name': 'Mitsubishi',
- 'oid': (2, 23, 42, 9, 35)},
- (2, 23, 42, 9, 36): {'comment': 'SET vendor',
- 'description': 'NCR (2 23 42 9 36)',
- 'hexoid': '06 04 67 2A 09 24',
- 'name': 'NCR',
- 'oid': (2, 23, 42, 9, 36)},
- (2, 23, 42, 9, 37): {'comment': 'SET vendor',
- 'description': 'e-COMM (2 23 42 9 37)',
- 'hexoid': '06 04 67 2A 09 25',
- 'name': 'e-COMM',
- 'oid': (2, 23, 42, 9, 37)},
- (2, 23, 42, 9, 38): {'comment': 'SET vendor',
- 'description': 'Gemplus (2 23 42 9 38)',
- 'hexoid': '06 04 67 2A 09 26',
- 'name': 'Gemplus',
- 'oid': (2, 23, 42, 9, 38)},
- (2, 23, 42, 10): {'comment': 'SET',
- 'description': 'national (2 23 42 10)',
- 'hexoid': '06 03 67 2A 0A',
- 'name': 'national',
- 'oid': (2, 23, 42, 10)},
- (2, 23, 42, 10, 392): {'comment': 'SET national',
- 'description': 'Japan (2 23 42 10 392)',
- 'hexoid': '06 05 67 2A 0A 83 08',
- 'name': 'Japan',
- 'oid': (2, 23, 42, 10, 392)}}
diff --git a/rpkid/rpki/POW/_simpledb.py b/rpkid/rpki/POW/_simpledb.py
deleted file mode 100644
index 190e96be..00000000
--- a/rpkid/rpki/POW/_simpledb.py
+++ /dev/null
@@ -1,55 +0,0 @@
-#*****************************************************************************#
-#* *#
-#* Copyright (c) 2002, Peter Shannon *#
-#* All rights reserved. *#
-#* *#
-#* Redistribution and use in source and binary forms, with or without *#
-#* modification, are permitted provided that the following conditions *#
-#* are met: *#
-#* *#
-#* * Redistributions of source code must retain the above *#
-#* copyright notice, this list of conditions and the following *#
-#* disclaimer. *#
-#* *#
-#* * Redistributions in binary form must reproduce the above *#
-#* copyright notice, this list of conditions and the following *#
-#* disclaimer in the documentation and/or other materials *#
-#* provided with the distribution. *#
-#* *#
-#* * The name of the contributors may be used to endorse or promote *#
-#* products derived from this software without specific prior *#
-#* written permission. *#
-#* *#
-#* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS *#
-#* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT *#
-#* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS *#
-#* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS *#
-#* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, *#
-#* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT *#
-#* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, *#
-#* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY *#
-#* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT *#
-#* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE *#
-#* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *#
-#* *#
-#*****************************************************************************#
-
-import _oids, _objects, types
-
-class OidData(object):
- def __init__(self):
- self.oids = _oids.data
- self.objs = _objects.data
-
- def obj2oid(self, obj):
- if not self.objs.has_key(obj):
- raise Exception, 'unknown object: %s' % obj
- return tuple(self.objs[obj]['oid'])
-
- def oid2obj(self, oid):
- if isinstance( oid, types.ListType ):
- oid = tuple(oid)
- if not self.oids.has_key(oid):
- raise Exception, 'unknown oid %s' % `oid`
- return self.oids[oid]['name']
-
diff --git a/rpkid/rpki/POW/pkix.py b/rpkid/rpki/POW/pkix.py
deleted file mode 100644
index e7d9dde1..00000000
--- a/rpkid/rpki/POW/pkix.py
+++ /dev/null
@@ -1,2087 +0,0 @@
-#*****************************************************************************#
-#* *#
-#* Copyright (c) 2002, Peter Shannon *#
-#* All rights reserved. *#
-#* *#
-#* Redistribution and use in source and binary forms, with or without *#
-#* modification, are permitted provided that the following conditions *#
-#* are met: *#
-#* *#
-#* * Redistributions of source code must retain the above *#
-#* copyright notice, this list of conditions and the following *#
-#* disclaimer. *#
-#* *#
-#* * Redistributions in binary form must reproduce the above *#
-#* copyright notice, this list of conditions and the following *#
-#* disclaimer in the documentation and/or other materials *#
-#* provided with the distribution. *#
-#* *#
-#* * The name of the contributors may be used to endorse or promote *#
-#* products derived from this software without specific prior *#
-#* written permission. *#
-#* *#
-#* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS *#
-#* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT *#
-#* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS *#
-#* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS *#
-#* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, *#
-#* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT *#
-#* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, *#
-#* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY *#
-#* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT *#
-#* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE *#
-#* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *#
-#* *#
-#*****************************************************************************#
-
-import types, time, pprint, cStringIO, _der
-from _simpledb import OidData as _OidData
-from _der import *
-
-DEBUG = 0
-
-_oidData = _OidData()
-obj2oid = _oidData.obj2oid
-oid2obj = _oidData.oid2obj
-
-_fragments = []
-
-def _docset():
- return _der._docset() + _fragments
-
-#---------- crypto driver ----------#
-
-class CryptoDriver(object):
- """Dispatcher for crypto calls.
-
- This module has very minimal dependencies on crypto code, as it's
- almost entirely about ASN.1 encoding and decoding. Rather than
- wiring in the handful of crypto calls, we dispatch them through
- this driver. The default driver uses POW, but you can replace it
- with any crypto package you like.
-
- This is a virtual class. You will have to subtype it.
- """
-
- def getOID(self, digestType):
- """Convert a digest identifier into an OID.
-
- If the identifier we get is a tuple, we assume it's already an
- OID and just return it. If the identifier is in the driver
- identifier mapping table, we use that to return an OID.
- Otherwise, we try mapping it via the name-to-OID database.
- """
- if isinstance(digestType, tuple):
- return digestType
- if digestType in self.driver2OID:
- return self.driver2OID[digestType]
- return obj2oid(digestType)
-
- def sign(self, key, oid, plaintext):
- """Sign something with an RSA key and a given digest algorithm."""
- raise NotImplementedError
-
- def verify(self, key, oid, plaintext, signature):
- """Verify a signature."""
- raise NotImplementedError
-
- def toPublicDER(self, key):
- """Get the DER representation of an RSA key."""
- raise NotImplementedError
-
- def fromPublicDER(self, der):
- """Set the driver representation of an RSA key from DER."""
- raise NotImplementedError
-
-class POWCryptoDriver(CryptoDriver):
- """Dispatcher for crypto calls using POW package."""
-
- def __init__(self):
- global POW
- try:
- import rpki.POW
- POW = rpki.POW
- except ImportError:
- import POW
- self.driver2OID = {}
- for k, v in (("MD2_DIGEST", (1, 2, 840, 113549, 1, 1, 2)), # md2WithRSAEncryption
- ("MD5_DIGEST", (1, 2, 840, 113549, 1, 1, 4)), # md5WithRSAEncryption
- ("SHA_DIGEST", (1, 3, 14, 3, 2, 15)), # shaWithRSAEncryption
- ("SHA1_DIGEST", (1, 2, 840, 113549, 1, 1, 5)), # sha1withRSAEncryption
- ("RIPEMD160_DIGEST", (1, 2, 840, 113549, 1, 1, 6)), # ripemd160WithRSAEncryption
- ("SHA256_DIGEST", (1, 2, 840, 113549, 1, 1, 11)), # sha256WithRSAEncryption
- ("SHA384_DIGEST", (1, 2, 840, 113549, 1, 1, 12)), # sha384WithRSAEncryption
- ("SHA512_DIGEST", (1, 2, 840, 113549, 1, 1, 13)), # sha512WithRSAEncryption
- ):
- try:
- self.driver2OID[getattr(POW, k)] = v
- except AttributeError:
- pass
- self.OID2driver = dict((v,k) for k,v in self.driver2OID.items())
-
- def _digest(self, oid, plaintext):
- digest = POW.Digest(self.OID2driver[oid])
- digest.update(plaintext)
- return digest.digest()
-
- def sign(self, key, oid, plaintext):
- return key.sign(self._digest(oid, plaintext), self.OID2driver[oid])
-
- def verify(self, key, oid, plaintext, signature):
- return key.verify(signature, self._digest(oid, plaintext), self.OID2driver[oid])
-
- def toPublicDER(self, key):
- return key.derWrite(POW.RSA_PUBLIC_KEY)
-
- def fromPublicDER(self, der):
- return POW.derRead(POW.RSA_PUBLIC_KEY, der)
-
-_cryptoDriver = None # Don't touch this directly
-
-def setCryptoDriver(driver):
- """Set crypto driver.
-
- The driver should be an instance of CryptoDriver.
- """
- assert isinstance(driver, CryptoDriver)
- global _cryptoDriver
- _cryptoDriver = driver
-
-def getCryptoDriver():
- """Return the currently selected CryptoDriver instance.
-
- If no driver has been selected, instantiate the default POW driver.
- """
- global _cryptoDriver
- if _cryptoDriver is None:
- setCryptoDriver(POWCryptoDriver())
- return _cryptoDriver
-
-#---------- crypto driver ----------#
-
-def _addFragment(frag):
- global _fragments
- _fragments.append(frag)
-
-_addFragment('''
-<modulefunction>
- <header>
- <name>utc2time</name>
- <parameter>time</parameter>
- </header>
- <body>
- <para>
- This is a helper function for turning a UTCTime string into an
- integer. It isn't built into the encoder since the various
- functions which are used to manipulate the tm structure are
- notoriously unreliable.
- </para>
- </body>
-</modulefunction>
-''')
-def utc2time(val):
- 'der encoded value not including tag or length'
- if not isinstance(val, types.StringType):
- raise DerError, 'argument should be a string'
- t = time.strptime(val, '%y%m%d%H%M%SZ')
- return int(time.mktime(t))
-
-_addFragment('''
-<modulefunction>
- <header>
- <name>time2utc</name>
- <parameter>time</parameter>
- </header>
- <body>
- <para>
- This is a helper function for turning an integer into a
- UTCTime string. It isn't built into the encoder since the
- various functions which are used to manipulate the tm structure
- are notoriously unreliable.
- </para>
- </body>
-</modulefunction>
-''')
-def time2utc(val):
- 'numerical time value like time_t'
- val = int(val)
- t = time.gmtime(val)
- return time.strftime('%y%m%d%H%M%SZ', t)
-
-_addFragment('''
-<modulefunction>
- <header>
- <name>gen2time</name>
- <parameter>time</parameter>
- </header>
- <body>
- <para>
- This is a helper function for turning a GeneralizedTime string into an
- integer. It isn't built into the encoder since the various
- functions which are used to manipulate the tm structure are
- notoriously unreliable.
- </para>
- </body>
-</modulefunction>
-''')
-def gen2Time(val):
- 'der encoded value not including tag or length'
- if not isinstance(val, types.StringType):
- raise DerError, 'argument should be a string'
- t = time.strptime(val, '%Y%m%d%H%M%SZ')
- return int(time.mktime(t))
-
-_addFragment('''
-<modulefunction>
- <header>
- <name>time2gen</name>
- <parameter>time</parameter>
- </header>
- <body>
- <para>
- This is a helper function for turning an integer into a
- GeneralizedTime string. It isn't built into the encoder since the
- various functions which are used to manipulate the tm structure
- are notoriously unreliable.
- </para>
- </body>
-</modulefunction>
-''')
-def time2gen(val):
- 'numerical time value like time_t'
- val = int(val)
- t = time.gmtime(val)
- return time.strftime('%Y%m%d%H%M%SZ', t)
-
-_addFragment('''
-<method>
- <header>
- <name>ip42oct</name>
- <parameter>ip</parameter>
- </header>
- <body>
- <para>
- <parameter>ip</parameter> should be a list or tuple of integers,
- from 0 to 256.
- </para>
- <example>
- <title>Setting <classname>IpAddress</classname></title>
- <programlisting>
- ip = IpAddress()
- ip.set( ip42oct(192, 168, 0, 231) )
- </programlisting>
- </example>
- </body>
-</method>
-''')
-def ip42oct(val0, val1, val2, val3):
- return chr(val0) + chr(val1) + chr(val2) + chr(val3)
-
-_addFragment('''
-<method>
- <header>
- <name>oct2ip4</name>
- <parameter>val</parameter>
- </header>
- <body>
- <para>
- Returns a tuple of 4 integers, from 0 to 256.
- </para>
- </body>
-</method>
-''')
-def oct2ip4(val):
- if not isinstance(val, types.StringType) or len(val) != 4:
- raise DerError, 'parameter should be string of 4 characters'
- return ( ord(val[0]), ord(val[1]), ord(val[2]), ord(val[3]) )
-
-#---------- certificate support ----------#
-class TbsCertificate(Sequence):
- def __init__(self, optional=0, default=''):
-
- self.version = Integer()
- self.explicitVersion = Explicit( CLASS_CONTEXT, FORM_CONSTRUCTED, 0, self.version, 0, 'oAMCAQA=\n' )
-
- self.serial = Integer()
- self.signature = AlgorithmIdentifier()
- self.issuer = Name()
- self.subject = Name()
- self.subjectPublicKeyInfo = SubjectPublicKeyInfo()
-
- self.validity = Validity()
-
- self.issuerUniqueID = BitString(1)
- self.issuerUniqueID.implied( CLASS_CONTEXT, FORM_PRIMITIVE, 1 )
- self.subjectUniqueID = BitString(1)
- self.subjectUniqueID.implied( CLASS_CONTEXT, FORM_PRIMITIVE, 2 )
-
- self.extensions = Extensions()
- self.explicitExtensions = Explicit( CLASS_CONTEXT, FORM_CONSTRUCTED, 3, self.extensions, 1 )
-
- contents = [
- self.explicitVersion,
- self.serial,
- self.signature,
- self.issuer,
- self.validity,
- self.subject,
- self.subjectPublicKeyInfo,
- self.issuerUniqueID,
- self.subjectUniqueID,
- self.explicitExtensions
- ]
-
- Sequence.__init__(self, contents, optional, default)
-
-class Validity(Sequence):
- def __init__(self, optional=0, default=''):
- Time = lambda : Choice({ 'generalTime' : GeneralizedTime(), 'utcTime' : UtcTime() })
- self.notBefore = Time()
- self.notAfter = Time()
- contents = [self.notBefore, self.notAfter]
- Sequence.__init__(self, contents, optional, default)
-
-# IA5String should not be allowed in DirectoryString, but old
-# implementations (deprecated but not quite outlawed by RFC 3280)
-# sometimes use it for EmailAddress attributes in subject names, which
-# triggers decode failures here unless we violate RFC 3280 by allowing
-# IA5String. Do not use, do not use, do not use.
-
-class DirectoryString(Choice):
- def __init__(self, optional=0, default=''):
- choices = { 'teletexString' : T61String(),
- 'printableString' : PrintableString(),
- 'universalString' : UniversalString(),
- 'bmpString' : BmpString(),
- 'utf8String' : Utf8String(),
- 'ia5String' : IA5String() }
-
- Choice.__init__(self, choices, optional, default)
-
-class AttributeTypeAndValue(Sequence):
- def __init__(self, optional=0, default=''):
- self.type = Oid()
- self.dirstr = DirectoryString()
- contents = [ self.type, self.dirstr ]
- Sequence.__init__(self, contents, optional, default)
-
-class RelativeDistinguishedName(SetOf):
- def __init__(self, optional=0, default=''):
- SetOf.__init__(self, AttributeTypeAndValue, optional, default)
-
-class Name(SequenceOf):
- def __init__(self, optional=0, default=''):
- SequenceOf.__init__(self, RelativeDistinguishedName, optional, default)
-
-class AlgorithmIdentifier(Sequence):
- def __init__(self, optional=0, default=''):
- self.algorithm = Oid()
- self.parameters = Null()
- contents = [self.algorithm, self.parameters]
- Sequence.__init__(self, contents, optional, default)
-
-class SubjectPublicKeyInfo(Sequence):
- def __init__(self, optional=0, default=''):
- self.algorithmId = AlgorithmIdentifier()
- self.subjectPublicKey = AltBitString()
- contents = [ self.algorithmId, self.subjectPublicKey ]
- Sequence.__init__(self, contents, optional, default)
-
-class Extensions(SequenceOf):
- def __init__(self, optional=0, default=''):
- SequenceOf.__init__(self, Extension, optional, default)
-
-_addFragment('''
-<class>
- <header>
- <name>Certificate</name>
- <super>Sequence</super>
- </header>
- <body>
- <example>
- <title>Setting <classname>Certificate</classname></title>
- <programlisting>
- rsa = POW.Asymmetric()
- cert = POW.pkix.Certificate()
- cert.setVersion(1)
- cert.setSerial(5)
-
- name = ( (( o2i('countryName'), ('printableString', 'GB') ),),
- (( o2i('stateOrProvinceName'), ('printableString', 'Hertfordshire') ),),
- (( o2i('organizationName'), ('printableString', 'The House') ),),
- (( o2i('commonName'), ('printableString', 'Client') ),) )
-
- cert.setIssuer(name)
- cert.setSubject(name)
-
- now = POW.pkix.time2gen( time.time() )
- then = POW.pkix.time2gen(time.time() + 60*60*24*365*12)
- cert.setNotBefore( ('generalTime', now) )
- cert.setNotAfter( ( 'generalTime', then) )
- cert.setIssuerUniqueID((1,0,1,0))
- cert.setSubjectUniqueID((1,0,0,1))
- cert.sign(rsa, POW.MD5_DIGEST)
- </programlisting>
- </example>
- </body>
-</class>
-''')
-
-class Certificate(Sequence):
-
- _addFragment('''
- <constructor>
- <header>
- <memberof>Certificate</memberof>
- <parameter>optional=0</parameter>
- <parameter>default=''</parameter>
- </header>
- </constructor>
- ''')
- def __init__(self, optional=0, default=''):
- self.tbs = TbsCertificate()
- self.signatureAlgorithm = AlgorithmIdentifier()
- self.signatureValue = AltBitString()
- contents = [ self.tbs, self.signatureAlgorithm, self.signatureValue ]
- Sequence.__init__(self, contents, optional, default)
-
- _addFragment('''
- <method>
- <header>
- <memberof>Certificate</memberof>
- <name>setVersion</name>
- <parameter>version</parameter>
- </header>
- <body>
- <para>
- This function sets an <classname>Integer</classname> object. 0
- indicates a version 1 certificate, 1 a version 2 certificate and 2 a
- version 3 certificate.
- </para>
- </body>
- </method>
- ''')
- def setVersion(self, version):
- self.tbs.version.set(version)
-
- _addFragment('''
- <method>
- <header>
- <memberof>Certificate</memberof>
- <name>getVersion</name>
- </header>
- <body>
- <para>
- This function returns whatever the version object is set to,
- this should be 0, 1 or 2.
- </para>
- </body>
- </method>
- ''')
- def getVersion(self):
- return self.tbs.version.get()
-
- _addFragment('''
- <method>
- <header>
- <memberof>Certificate</memberof>
- <name>setSerial</name>
- <parameter>serial</parameter>
- </header>
- <body>
- <para>
- This function sets an <classname>Integer</classname> object.
- No two certificates issued should ever have the same serial
- number.
- </para>
- </body>
- </method>
- ''')
- def setSerial(self, serial):
- self.tbs.serial.set(serial)
-
- _addFragment('''
- <method>
- <header>
- <memberof>Certificate</memberof>
- <name>getVersion</name>
- </header>
- <body>
- <para>
- This function returns whatever the serial object is set to.
- </para>
- </body>
- </method>
- ''')
- def getSerial(self):
- return self.tbs.serial.get()
-
- _addFragment('''
- <method>
- <header>
- <memberof>Certificate</memberof>
- <name>setIssuer</name>
- <parameter>names</parameter>
- </header>
- <body>
- <para>
- This function sets an <classname>Name</classname> object.
- See <classname>Certificate</classname> class for an example.
- </para>
- </body>
- </method>
- ''')
- def setIssuer(self, issuer):
- self.tbs.issuer.set(issuer)
-
- _addFragment('''
- <method>
- <header>
- <memberof>Certificate</memberof>
- <name>getIssuer</name>
- </header>
- <body>
- <para>
- This function returns a complex tuple containing other tuples.
- </para>
- </body>
- </method>
- ''')
- def getIssuer(self):
- return self.tbs.issuer.get()
-
- _addFragment('''
- <method>
- <header>
- <memberof>Certificate</memberof>
- <name>setSubject</name>
- <parameter>names</parameter>
- </header>
- <body>
- <para>
- This function sets an <classname>Name</classname> object.
- See <classname>Certificate</classname> class for an example.
- </para>
- </body>
- </method>
- ''')
- def setSubject(self, subject):
- self.tbs.subject.set(subject)
-
- _addFragment('''
- <method>
- <header>
- <memberof>Certificate</memberof>
- <name>getSubject</name>
- </header>
- <body>
- <para>
- This function returns a complex tuple containing other tuples.
- </para>
- </body>
- </method>
- ''')
- def getSubject(self):
- return self.tbs.subject.get()
-
- _addFragment('''
- <method>
- <header>
- <memberof>Certificate</memberof>
- <name>setNotBefore</name>
- <parameter>time</parameter>
- </header>
- <body>
- <para>
- This function sets a <classname>Choice</classname> object.
- It can be either a <classname>GeneralTime</classname> or
- <classname>UTCTime</classname> object. The functions
- <function>gen2time</function>, <function>utc2time</function>,
- <function>time2gen</function> and <function>time2utc</function>
- can be used to convert to and from integer times and their
- string representation.
- </para>
- <example>
- <title><function>setNotBefore</function> method usage</title>
- <programlisting>
- cert = POW.pkix.Certificate()
- now = POW.pkix.time2gen( time.time() )
- cert.setNotBefore( ('generalTime', now) )
- </programlisting>
- </example>
- </body>
- </method>
- ''')
- def setNotBefore(self, nb):
- self.tbs.validity.notBefore.set(nb)
-
- _addFragment('''
- <method>
- <header>
- <memberof>Certificate</memberof>
- <name>getNotBefore</name>
- </header>
- <body>
- <para>
- This function returns a tuple indicating which type of time was
- stored and its value. See <function>setNotBefore</function> for details.
- </para>
- </body>
- </method>
- ''')
- def getNotBefore(self):
- return self.tbs.validity.notBefore.get()
-
- _addFragment('''
- <method>
- <header>
- <memberof>Certificate</memberof>
- <name>setNotAfter</name>
- <parameter>time</parameter>
- </header>
- <body>
- <para>
- This function sets a <classname>Choice</classname> object.
- See <function>setNotBefore</function> for details.
- </para>
- </body>
- </method>
- ''')
- def setNotAfter(self, na):
- self.tbs.validity.notAfter.set(na)
-
- _addFragment('''
- <method>
- <header>
- <memberof>Certificate</memberof>
- <name>getNotAfter</name>
- </header>
- <body>
- <para>
- This function returns a tuple indicating which type of time was
- stored and its value. See <function>setNotBefore</function> for details.
- </para>
- </body>
- </method>
- ''')
- def getNotAfter(self):
- return self.tbs.validity.notAfter.get()
-
- _addFragment('''
- <method>
- <header>
- <memberof>Certificate</memberof>
- <name>setIssuerUniqueID</name>
- <parameter>id</parameter>
- </header>
- <body>
- <para>
- This function sets a <classname>BitString</classname> object.
- This is part of the X509v2 standard and is quite poorly
- regarded in general, its use is not recommended. It is set
- using the normal <classname>BitString</classname> method, that
- is with a sequence of true/false objects.
- </para>
- </body>
- </method>
- ''')
- def setIssuerUniqueID(self, id):
- self.tbs.issuerUniqueID.set(id)
-
- _addFragment('''
- <method>
- <header>
- <memberof>Certificate</memberof>
- <name>getIssuerUniqueID</name>
- </header>
- <body>
- <para>
- This function returns a tuple of integers, 1 or 0.
- </para>
- </body>
- </method>
- ''')
- def getIssuerUniqueID(self):
- return self.tbs.issuerUniqueID.get()
-
- _addFragment('''
- <method>
- <header>
- <memberof>Certificate</memberof>
- <name>setSubjectUniqueID</name>
- <parameter>id</parameter>
- </header>
- <body>
- <para>
- This function sets a <classname>BitString</classname> object.
- This is part of the X509v2 standard and is quite poorly
- regarded in general, its use is not recommended. It is set
- using the normal <classname>BitString</classname> method, that
- is with a sequence of true/false objects.
- </para>
- </body>
- </method>
- ''')
- def setSubjectUniqueID(self, id):
- self.tbs.subjectUniqueID.set(id)
-
- _addFragment('''
- <method>
- <header>
- <memberof>Certificate</memberof>
- <name>getSubjectUniqueID</name>
- </header>
- <body>
- <para>
- This function returns a tuple of integers, 1 or 0.
- </para>
- </body>
- </method>
- ''')
- def getSubjectUniqueID(self):
- return self.tbs.subjectUniqueID.get()
-
- _addFragment('''
- <method>
- <header>
- <memberof>Certificate</memberof>
- <name>setExtensions</name>
- <parameter>extns</parameter>
- </header>
- <body>
- <para>
- This method sets an <classname>Extensions</classname> object,
- defined as SEQUENCE OF Extension. The parameter
- <parameter>extns</parameter> should consist of a list or tuple
- of values suitable to set an extension. See the extension
- class for details.
- </para>
- </body>
- </method>
- ''')
- def setExtensions(self, extns):
- self.tbs.extensions.set(extns)
-
- _addFragment('''
- <method>
- <header>
- <memberof>Certificate</memberof>
- <name>getExtensions</name>
- </header>
- <body>
- <para>
- This function returns a tuple of
- <classname>Extension</classname> values. See
- <classname>Extension</classname> for details.
- </para>
- </body>
- </method>
- ''')
- def getExtensions(self):
- return self.tbs.extensions.get()
-
- def getExtension(self, oid):
- for x in self.getExtensions():
- if x[0] == oid:
- return x
- return None
-
- _addFragment('''
- <method>
- <header>
- <memberof>Certificate</memberof>
- <name>sign</name>
- <parameter>rsa</parameter>
- <parameter>digestType</parameter>
- </header>
- <body>
- <para>
- This function updates structured of the
- <classname>Certificate</classname> and
- <constant>tbs</constant> as appropriate and performs the
- specified digest on the <constant>tbs</constant> and set
- <constant>signedText</constant> to signed the digest.
- </para>
- </body>
- </method>
- ''')
- def sign(self, rsa, digestType):
- driver = getCryptoDriver()
- oid = driver.getOID(digestType)
- self.tbs.signature.set([oid, None])
- signedText = driver.sign(rsa, oid, self.tbs.toString())
- self.signatureAlgorithm.set([oid, None])
- self.signatureValue.set(signedText)
-
- _addFragment('''
- <method>
- <header>
- <memberof>Certificate</memberof>
- <name>verify</name>
- <parameter>rsa</parameter>
- </header>
- <body>
- <para>
- This function works out what kind of digest was used to
- during signing, calculates the digest of
- <constant>tbs</constant> and verifies the envelope using the
- key.
- </para>
- </body>
- </method>
- ''')
- def verify(self, rsa):
- driver = getCryptoDriver()
- oid = self.signatureAlgorithm.get()[0]
- return driver.verify(rsa, oid, self.tbs.toString(), self.signatureValue.get())
-
-#---------- certificate support ----------#
-#---------- CRL ----------#
-
-class RevokedCertificate(Sequence):
- def __init__(self, optional=0, default=''):
- self.userCertificate = Integer()
- self.revocationDate = Choice( { 'generalTime' : GeneralizedTime(), 'utcTime' : UtcTime() } )
- self.crlEntryExtensions = Extensions(1)
- contents = [ self.userCertificate, self.revocationDate, self.crlEntryExtensions ]
- Sequence.__init__(self, contents, optional, default)
-
-class RevokedCertificates(SequenceOf):
- def __init__(self, optional=0, default=''):
- SequenceOf.__init__(self, RevokedCertificate, optional, default)
-
-class TbsCertList(Sequence):
- def __init__(self, optional=0, default=''):
- self.version = Integer(1)
- self.signature = AlgorithmIdentifier()
- self.issuer = Name()
- self.thisUpdate = Choice( { 'generalTime' : GeneralizedTime(), 'utcTime' : UtcTime() } )
- self.nextUpdate = Choice( { 'generalTime' : GeneralizedTime(), 'utcTime' : UtcTime() }, 1 )
- self.revokedCertificates = RevokedCertificates(1)
- self.crlExtensions = Extensions()
- self.explicitCrlExtensions = Explicit( CLASS_CONTEXT, FORM_CONSTRUCTED, 0, self.crlExtensions, 1 )
- contents = [ self.version,
- self.signature,
- self.issuer,
- self.thisUpdate,
- self.nextUpdate,
- self.revokedCertificates,
- self.explicitCrlExtensions ]
- Sequence.__init__(self, contents, optional, default)
-
-_addFragment('''
-<class>
- <header>
- <name>CertificateList</name>
- <super>Sequence</super>
- </header>
- <body>
- <example>
- <title>Setting <classname>CertificateList</classname></title>
- <programlisting>
- now = POW.pkix.time2gen( time.time() )
- then = POW.pkix.time2gen(time.time() + 60*60*24*365*12)
- rsa = POW.Asymmetric()
-
- crl = POW.pkix.CertificateList()
- crl.setThisUpdate( ('generalTime', now ) )
-
- name = ( (( o2i('countryName'), ('printableString', 'GB') ),),
- (( o2i('stateOrProvinceName'), ('printableString', 'Hertfordshire') ),),
- (( o2i('organizationName'), ('printableString', 'The House') ),),
- (( o2i('commonName'), ('printableString', 'Client') ),) )
-
- myRevocations = (
- (1, ('generalTime', now), ()),
- (2, ('generalTime', now), ()),
- (3, ('generalTime', now), (( o2i('cRLReason'), 0, 1),))
- )
-
- crl.setIssuer(name)
- crl.setRevokedCertificates( myRevocations )
-
- crl.sign(rsa, POW.MD5_DIGEST)
- </programlisting>
- </example>
- </body>
-</class>
-''')
-class CertificateList(Sequence):
- _addFragment('''
- <constructor>
- <header>
- <memberof>CertificateList</memberof>
- <parameter>optional=0</parameter>
- <parameter>default=''</parameter>
- </header>
- </constructor>
- ''')
- def __init__(self, optional=0, default=''):
- self.tbs = TbsCertList()
- self.signatureAlgorithm = AlgorithmIdentifier()
- self.signature = AltBitString()
- contents = [self.tbs, self.signatureAlgorithm, self.signature]
- Sequence.__init__(self, contents, optional, default)
-
- _addFragment('''
- <method>
- <header>
- <memberof>CertificateList</memberof>
- <name>setVersion</name>
- <parameter>version</parameter>
- </header>
- <body>
- <para>
- This function sets an <classname>Integer</classname> object. 0
- indicates a version 1 CRL, and 1 a version 2 CRL.
- </para>
- </body>
- </method>
- ''')
- def setVersion(self, version):
- self.tbs.version.set(version)
-
- _addFragment('''
- <method>
- <header>
- <memberof>CertificateList</memberof>
- <name>getVersion</name>
- </header>
- <body>
- <para>
- This function returns whatever the version object is set to,
- this should be 0, 1 or 2.
- </para>
- </body>
- </method>
- ''')
- def getVersion(self):
- return self.tbs.version.get()
-
- _addFragment('''
- <method>
- <header>
- <memberof>CertificateList</memberof>
- <name>setIssuer</name>
- <parameter>names</parameter>
- </header>
- <body>
- <para>
- This function sets an <classname>Name</classname> object.
- </para>
- </body>
- </method>
- ''')
- def setIssuer(self, issuer):
- self.tbs.issuer.set(issuer)
-
- _addFragment('''
- <method>
- <header>
- <memberof>CertificateList</memberof>
- <name>getIssuer</name>
- </header>
- <body>
- <para>
- This function returns a complex tuple containing other tuples.
- </para>
- </body>
- </method>
- ''')
- def getIssuer(self):
- return self.tbs.issuer.get()
-
- _addFragment('''
- <method>
- <header>
- <memberof>setThisUpdate</memberof>
- <name>setNotBefore</name>
- <parameter>time</parameter>
- </header>
- <body>
- <para>
- This function sets a <classname>Choice</classname> object.
- It can be either a <classname>GeneralTime</classname> or
- <classname>UTCTime</classname> object. The functions
- <function>gen2time</function>, <function>utc2time</function>,
- <function>time2gen</function> and <function>time2utc</function>
- can be used to convert to and from integer times and their
- string representation.
- </para>
- <example>
- <title><function>setNotBefore</function> method usage</title>
- <programlisting>
- crl = POW.pkix.CertificateList()
- now = POW.pkix.time2gen( time.time() )
- crl.setNotBefore( ('generalTime', now) )
- </programlisting>
- </example>
- </body>
- </method>
- ''')
- def setThisUpdate(self, nu):
- self.tbs.thisUpdate.set(nu)
-
- _addFragment('''
- <method>
- <header>
- <memberof>CertificateList</memberof>
- <name>getThisUpdate</name>
- </header>
- <body>
- <para>
- This function returns a tuple containing two strings. The first
- is either 'utcTime' or 'generalTime' and the second is the time
- value as a string.
- </para>
- </body>
- </method>
- ''')
- def getThisUpdate(self):
- return self.tbs.thisUpdate.get()
-
- _addFragment('''
- <method>
- <header>
- <memberof>CertificateList</memberof>
- <name>setNextUpdate</name>
- </header>
- <body>
- <para>
- See set <function>setThisUpdate</function>.
- </para>
- </body>
- </method>
- ''')
- def setNextUpdate(self, nu):
- self.tbs.nextUpdate.set(nu)
-
- _addFragment('''
- <method>
- <header>
- <memberof>CertificateList</memberof>
- <name>getNextUpdate</name>
- </header>
- <body>
- <para>
- See set <function>getThisUpdate</function>.
- </para>
- </body>
- </method>
- ''')
- def getNextUpdate(self):
- return self.tbs.nextUpdate.get()
-
- _addFragment('''
- <method>
- <header>
- <memberof>CertificateList</memberof>
- <name>setExtensions</name>
- <parameter>extns</parameter>
- </header>
- <body>
- <para>
- This method sets an <classname>Extensions</classname> object,
- defined as SEQUENCE OF Extension. The parameter
- <parameter>extns</parameter> should consist of a list or tuple
- of values suitable to set an extension. See the extension
- class for details.
- </para>
- </body>
- </method>
- ''')
- def setExtensions(self, extns):
- self.tbs.crlExtensions.set(extns)
-
- _addFragment('''
- <method>
- <header>
- <memberof>CertificateList</memberof>
- <name>getExtensions</name>
- </header>
- <body>
- <para>
- This function returns a tuple of
- <classname>Extension</classname> values. See
- <classname>Extension</classname> for details.
- </para>
- </body>
- </method>
- ''')
- def getExtensions(self):
- return self.tbs.crlExtensions.get()
-
- def getExtension(self, oid):
- for x in self.getExtensions():
- if x[0] == oid:
- return x
- return None
-
- _addFragment('''
- <method>
- <header>
- <memberof>CertificateList</memberof>
- <name>setRevokedCertificates</name>
- </header>
- <body>
- <para>
- This function sets a sequence of
- <classname>revokedCertificate</classname> objects.
- This object is optional. See
- <classname>CertificateList</classname> for an example of its
- use.
- </para>
- </body>
- </method>
- ''')
- def setRevokedCertificates(self, rc):
- self.tbs.revokedCertificates.set(rc)
-
- _addFragment('''
- <method>
- <header>
- <memberof>CertificateList</memberof>
- <name>getRevokedCertificates</name>
- </header>
- <body>
- <para>
- This function return a sequence of
- <classname>revokedCertificate</classname> objects or None.
- </para>
- </body>
- </method>
- ''')
- def getRevokedCertificates(self):
- return self.tbs.revokedCertificates.get()
-
- _addFragment('''
- <method>
- <header>
- <memberof>Certificate</memberof>
- <name>sign</name>
- </header>
- <body>
- <para>
- This function updates structured of the
- <classname>certificateList</classname> and
- <classname>tBSCertList</classname> as appropriate, performs the
- specified digest on the <classname>tBSCertList</classname> and sets
- <constant>signedValue</constant> to signed the digest.
- </para>
- </body>
- </method>
- ''')
- def sign(self, rsa, digestType):
- driver = getCryptoDriver()
- oid = driver.getOID(digestType)
- self.tbs.signature.set([oid, None])
- signedText = driver.sign(rsa, oid, self.tbs.toString())
- self.signatureAlgorithm.set([oid, None])
- self.signature.set(signedText)
-
- _addFragment('''
- <method>
- <header>
- <memberof>CertificateList</memberof>
- <name>verify</name>
- </header>
- <body>
- <para>
- This function works out what kind of digest was used to during
- signing, calculates the digest of
- <classname>tBSCertList</classname> and verifies the
- <constant>signedText</constant> using the key.
- </para>
- </body>
- </method>
- ''')
- def verify(self, rsa):
- driver = getCryptoDriver()
- oid = self.signatureAlgorithm.get()[0]
- return driver.verify(rsa, oid, self.tbs.toString(), self.signature.get())
-
-#---------- CRL ----------#
-#---------- PKCS10 ----------#
-
-# My ASN.1-foo (and perhaps this ASN.1 implementation) isn't quite up
-# to X.501 or PKCS #10, so this is partly based on a dump of what
-# OpenSSL generates, and doesn't handle attributes other than X.509v3
-# extensions.
-
-class PKCS10AttributeSet(SetOf):
- def __init__(self, optional=0, default=''):
- SetOf.__init__(self, Extensions, optional, default)
-
-class PKCS10AttributeChoice(Choice):
- def __init__(self, optional=0, default=''):
- choices = { 'single' : Extensions(),
- 'set' : PKCS10AttributeSet() }
- Choice.__init__(self, choices, optional, default)
-
-class PKCS10Attributes(Sequence):
- def __init__(self, optional=1, default=''):
- self.oid = Oid()
- self.val = PKCS10AttributeChoice()
- contents = [ self.oid, self.val ]
- Sequence.__init__(self, contents, optional, default)
-
-class CertificationRequestInfo(Sequence):
- def __init__(self, optional=0, default=''):
- self.version = Integer()
- self.subject = Name()
- self.subjectPublicKeyInfo = SubjectPublicKeyInfo()
- self.attributes = PKCS10Attributes()
- self.explicitAttributes = Explicit(CLASS_CONTEXT, FORM_CONSTRUCTED, 0, self.attributes)
- contents = [ self.version, self.subject, self.subjectPublicKeyInfo, self.explicitAttributes ]
- Sequence.__init__(self, contents, optional, default)
-
-class CertificationRequest(Sequence):
- def __init__(self, optional=0, default=''):
- self.certificationRequestInfo = CertificationRequestInfo()
- self.signatureAlgorithm = AlgorithmIdentifier()
- self.signatureValue = AltBitString()
- contents = [ self.certificationRequestInfo, self.signatureAlgorithm, self.signatureValue ]
- Sequence.__init__(self, contents, optional, default)
-
- def sign(self, rsa, digestType):
- driver = getCryptoDriver()
- oid = driver.getOID(digestType)
- self.certificationRequestInfo.subjectPublicKeyInfo.fromString(driver.toPublicDER(rsa))
- signedText = driver.sign(rsa, oid, self.certificationRequestInfo.toString())
- self.signatureAlgorithm.set([oid, None])
- self.signatureValue.set(signedText)
-
- def verify(self):
- driver = getCryptoDriver()
- oid = self.signatureAlgorithm.get()[0]
- rsa = driver.fromPublicDER(self.certificationRequestInfo.subjectPublicKeyInfo.toString())
- return driver.verify(rsa, oid, self.certificationRequestInfo.toString(), self.signatureValue.get())
-
- def getExtensions(self):
- oid = self.certificationRequestInfo.attributes.oid.get()
- if oid is None:
- return ()
- if oid != (1, 2, 840, 113549, 1, 9, 14) or \
- self.certificationRequestInfo.attributes.val.choice != "set" or \
- len(self.certificationRequestInfo.attributes.val.choices["set"]) > 1:
- raise DerError, "failed to understand X.501 Attribute encoding, sorry: %s" % self.get()
- return self.certificationRequestInfo.attributes.val.choices["set"][0].get()
-
- def getExtension(self, oid):
- for x in self.getExtensions():
- if x[0] == oid:
- return x
- return None
-
- def setExtensions(self, exts):
- self.certificationRequestInfo.attributes.oid.set((1, 2, 840, 113549, 1, 9, 14))
- self.certificationRequestInfo.attributes.val.set(("set", [exts]))
-
-#---------- PKCS10 ----------#
-#---------- GeneralNames object support ----------#
-class OtherName(Sequence):
- def __init__(self, optional=0, default=''):
- self.typeId = Oid()
- self.any = Any()
- contents = [self.typeId, self.any]
- Sequence.__init__(self, contents, optional, default)
-
-class EdiPartyName(Sequence):
- def __init__(self, optional=0, default=''):
- self.nameAssigner = DirectoryString()
- self.partyName = DirectoryString()
- self.explicitNameAssigner = Explicit( CLASS_CONTEXT, FORM_CONSTRUCTED, 0, self.nameAssigner, 1 )
- self.explicitPartyName = Explicit( CLASS_CONTEXT, FORM_CONSTRUCTED, 1, self.partyName )
- contents = [ self.explicitNameAssigner, self.explicitPartyName ]
- Sequence.__init__(self, contents, optional, default)
-
-class IpAddress(OctetString):
- pass
-
-class GeneralName(Choice):
- def __init__(self, optional=0, default=''):
-
- otherName = OtherName()
- otherName.implied( CLASS_CONTEXT, FORM_CONSTRUCTED, 0 )
- rfc822Name = IA5String()
- rfc822Name.implied( CLASS_CONTEXT, FORM_PRIMITIVE, 1 )
- dnsName = IA5String()
- dnsName.implied( CLASS_CONTEXT, FORM_PRIMITIVE, 2 )
- directoryName = Name()
- explicitDirectoryName = Explicit( CLASS_CONTEXT, FORM_CONSTRUCTED, 4, directoryName)
- ediPartyName = EdiPartyName()
- ediPartyName.implied( CLASS_CONTEXT, FORM_CONSTRUCTED, 5 )
- uri = IA5String()
- uri.implied( CLASS_CONTEXT, FORM_PRIMITIVE, 6 )
- ipAddress = IpAddress()
- ipAddress.implied( CLASS_CONTEXT, FORM_PRIMITIVE, 7 )
- registeredId = Oid()
- registeredId.implied( CLASS_CONTEXT, FORM_PRIMITIVE, 8 )
-
- choices = { 'otherName' : otherName ,
- 'rfc822Name' : rfc822Name ,
- 'dNSName' : dnsName ,
- 'directoryName' : explicitDirectoryName ,
- 'ediPartyName' : ediPartyName ,
- 'uri' : uri ,
- 'iPAddress' : ipAddress ,
- 'registeredId' : registeredId }
-
- Choice.__init__(self, choices, optional, default)
-
-class GeneralNames(SequenceOf):
- def __init__(self, optional=0, default=''):
- SequenceOf.__init__(self, GeneralName, optional, default)
-
-#---------- GeneralNames object support ----------#
-#---------- X509v3 extensions ----------#
-
-_addFragment('''
-<class>
- <header>
- <name>BasicConstraints</name>
- <super>Sequence</super>
- </header>
- <body>
- <para>
- This little extension has recently caused plenty of problems for
- several large organisations. It consist of a
- <classname>Boolean</classname> and an
- <classname>Integer</classname>. The first indicates if the owner
- is a CA, the second indicates how long a chain of CAs you should
- trust which the subject of this certificate trusts.
- </para>
- <example>
- <title>Setting <classname>BasicConstraints</classname></title>
- <programlisting>
- bc = BasicConstraints()
- bc.set( (1, 1) )
- </programlisting>
- </example>
- </body>
-</class>
-''')
-class BasicConstraints(Sequence):
- _addFragment('''
- <constructor>
- <header>
- <memberof>BasicConstraints</memberof>
- <parameter>optional=0</parameter>
- <parameter>default=''</parameter>
- </header>
- </constructor>
- ''')
- def __init__(self, optional=0, default=''):
- self.ca = Boolean(0, 'AQEA\n')
- self.pathLenConstraint = Integer(1)
- contents = [self.ca, self.pathLenConstraint]
- Sequence.__init__(self, contents, optional, default)
-
-_addFragment('''
-<class>
- <header>
- <name>KeyUsage</name>
- <super>BitString</super>
- </header>
-</class>
-''')
-class KeyUsage(BitString):
- pass
-
-_addFragment('''
-<class>
- <header>
- <name>SubjectAltName</name>
- <super>GeneralNames</super>
- </header>
-</class>
-''')
-class SubjectAltName(GeneralNames):
- pass
-
-_addFragment('''
-<class>
- <header>
- <name>IssuerAltName</name>
- <super>GeneralNames</super>
- </header>
-</class>
-''')
-class IssuerAltName(GeneralNames):
- pass
-
-_addFragment('''
-<class>
- <header>
- <name>SubjectKeyIdentifier</name>
- <super>OctetString</super>
- </header>
-</class>
-''')
-class SubjectKeyIdentifier(OctetString):
- pass
-
-_addFragment('''
-<class>
- <header>
- <name>AuthorityKeyIdentifier</name>
- <super>Sequence</super>
- </header>
- <body>
- <para>
- </para>
- <example>
- <title>Setting <classname>AuthorityKeyIdentifier</classname></title>
- <programlisting>
- id = AuthorityKeyIdentifier()
- authdigest = POW.Digest( POW.SHA1_DIGEST )
- authdigest.update(rsa.derWrite(POW.RSA_PUBLIC_KEY))
- keyHash = authdigest.digest()
- id.set( (keyHash, None, None) )
- </programlisting>
- </example>
- </body>
-
-</class>
-''')
-class AuthorityKeyIdentifier(Sequence):
- _addFragment('''
- <constructor>
- <header>
- <memberof>AuthorityKeyIdentifier</memberof>
- <parameter>optional=0</parameter>
- <parameter>default=''</parameter>
- </header>
- </constructor>
- ''')
- def __init__(self, optional=0, default=''):
- self.keyIdentifier = OctetString(1)
- self.keyIdentifier.implied( CLASS_CONTEXT, FORM_PRIMITIVE, 0 )
- self.authorityCertIssuer = GeneralNames(1)
- self.authorityCertIssuer.implied( CLASS_CONTEXT, FORM_CONSTRUCTED, 1 )
- self.authorityCertSerialNumber = Integer(1)
- self.authorityCertSerialNumber.implied( CLASS_CONTEXT, FORM_PRIMITIVE, 2 )
- contents = [self.keyIdentifier, self.authorityCertIssuer, self.authorityCertSerialNumber]
- Sequence.__init__(self, contents, optional, default)
-
-_addFragment('''
-<class>
- <header>
- <name>PrivateKeyUsagePeriod</name>
- <super>Sequence</super>
- </header>
- <body>
- <example>
- <title>Setting <classname>PrivateKeyUsagePeriod</classname></title>
- <programlisting>
- period = PrivateKeyUsagePeriod()
- period.set( ( time2gen( time.time() ), None) )
- </programlisting>
- </example>
- </body>
-</class>
-''')
-class PrivateKeyUsagePeriod(Sequence):
- _addFragment('''
- <constructor>
- <header>
- <memberof>PrivateKeyUsagePeriod</memberof>
- <parameter>optional=0</parameter>
- <parameter>default=''</parameter>
- </header>
- </constructor>
- ''')
- def __init__(self, optional=0, default=''):
- self.notBefore = GeneralizedTime()
- self.notBefore.implied( CLASS_CONTEXT, FORM_PRIMITIVE, 0 )
- self.notAfter = GeneralizedTime()
- self.notAfter.implied( CLASS_CONTEXT, FORM_PRIMITIVE, 1 )
- contents = [self.notBefore, self.notAfter]
- Sequence.__init__(self, contents, optional, default)
-
-class DisplayText(Choice):
- def __init__(self, optional=0, default=''):
- choices = { 'visibleString' : VisibleString(),
- 'bmpString' : BmpString(),
- 'utf8String' : Utf8String() }
-
- Choice.__init__(self, choices, optional, default)
-
-class NoticeNumbers(SequenceOf):
- def __init__(self, optional=0, default=''):
- SequenceOf.__init__(self, Integer, optional, default)
-
-class NoticeReference(Sequence):
- def __init__(self, optional=0, default=''):
- self.organization = DisplayText()
- self.noticeNumbers = NoticeNumbers()
- contents = [self.organization, self.noticeNumbers]
- Sequence.__init__(self, contents, optional, default)
-
-class UserNotice(Sequence):
- def __init__(self, optional=0, default=''):
- self.noticeRef = NoticeReference(1)
- self.explicitText = DisplayText(1)
- contents = [self.noticeRef, self.explicitText]
- Sequence.__init__(self, contents, optional, default)
-
-class Qualifier(Choice):
- def __init__(self, optional=0, default=''):
- choices = { 'cPSuri' : IA5String(),
- 'userNotice' : UserNotice() }
-
- Choice.__init__(self, choices, optional, default)
-
-class PolicyQualifierInfo(Sequence):
- def __init__(self, optional=0, default=''):
- self.policyQualifierId = Oid()
- self.qualifier = Qualifier()
- contents = [self.policyQualifierId, self.qualifier]
- Sequence.__init__(self, contents, optional, default)
-
-class PolicyQualifiers(SequenceOf):
- def __init__(self, optional=0, default=''):
- SequenceOf.__init__(self, PolicyQualifierInfo, optional, default)
-
-class PolicyInformation(Sequence):
- def __init__(self, optional=0, default=''):
- self.policyIdentifier = Oid()
- self.policyQualifiers = PolicyQualifiers(1)
- contents = [self.policyIdentifier, self.policyQualifiers]
- Sequence.__init__(self, contents, optional, default)
-
-_addFragment('''
-<class>
- <header>
- <name>CertificatePolicies</name>
- <super>SequenceOf</super>
- </header>
- <body>
- <example>
- <title>Setting <classname>CertificatePolicies</classname></title>
- <programlisting>
- data = (
- ( o2i('id-cti-ets-proofOfReceipt'), (
- (o2i('cps'), ('cPSuri', 'http://www.p-s.org.uk/policies/policy1')),
- (o2i('unotice'), ( 'userNotice',
- ((('visibleString', 'The House'),(1,2,3)),
- ('visibleString', 'We guarentee nothing')))),
- )),
- ( o2i('id-cti-ets-proofOfOrigin'), (
- (o2i('cps'), ('cPSuri', 'http://www.p-s.org.uk/policies/policy2')),
- ))
- )
- policies = CertificatePolicies()
- policies.set( data )
- </programlisting>
- </example>
- </body>
-</class>
-''')
-class CertificatePolicies(SequenceOf):
- _addFragment('''
- <constructor>
- <header>
- <memberof>CertificatePolicies</memberof>
- <parameter>optional=0</parameter>
- <parameter>default=''</parameter>
- </header>
- </constructor>
- ''')
- def __init__(self, optional=0, default=''):
- SequenceOf.__init__(self, PolicyInformation, optional, default)
-
-class DistributionPointName(Choice):
- def __init__(self, optional=0, default=''):
- fullName = GeneralNames()
- fullName.implied( CLASS_CONTEXT, FORM_CONSTRUCTED, 0 )
- nameRelativeToCRLIssuer = RelativeDistinguishedName()
- nameRelativeToCRLIssuer.implied( CLASS_CONTEXT, FORM_CONSTRUCTED, 1 )
-
- choices = { 'fullName' : fullName,
- 'nameRelativeToCRLIssuer ' : nameRelativeToCRLIssuer }
-
- Choice.__init__(self, choices, optional, default)
-
-class DistributionPoint(Sequence):
- def __init__(self, optional=0, default=''):
- self.distributionPoint = DistributionPointName(1)
- self.explicitDistributionPoint = Explicit(CLASS_CONTEXT, FORM_CONSTRUCTED, 0, self.distributionPoint)
- self.reasons = BitString(1)
- self.reasons.implied( CLASS_CONTEXT, FORM_PRIMITIVE, 1 )
- self.cRLIssuer = GeneralNames(1)
- self.cRLIssuer.implied( CLASS_CONTEXT, FORM_CONSTRUCTED, 2 )
- contents = [self.explicitDistributionPoint, self.reasons, self.cRLIssuer]
- Sequence.__init__(self, contents, optional, default)
-
-_addFragment('''
-<class>
- <header>
- <name>CRLDistrobutionPoints</name>
- <super>SequenceOf</super>
- </header>
- <body>
- <example>
- <title>Setting <classname>CRLDistrobutionPoints</classname></title>
- <programlisting>
- n1 = ('directoryName',
- ( (( o2i('countryName'), ('printableString', 'UK') ),),
- (( o2i('stateOrProvinceName'), ('printableString', 'Herts') ),),
- (( o2i('organizationName'), ('printableString', 'The House') ),),
- (( o2i('commonName'), ('printableString', 'Shannon Works') ),) ) )
-
- n2 = ('iPAddress', POW.pkix.ip42oct(192,168,100,51))
-
- data = ( ( ('fullName',(n1, n2)), (1,1,1,1,1), (n1,) ), )
- points = CRLDistrobutionPoints()
- points.set( data )
- </programlisting>
- </example>
- </body>
-</class>
-''')
-class CRLDistributionPoints(SequenceOf):
- _addFragment('''
- <constructor>
- <header>
- <memberof>CRLDistrobutionPoints</memberof>
- <parameter>optional=0</parameter>
- <parameter>default=''</parameter>
- </header>
- </constructor>
- ''')
- def __init__(self, optional=0, default=''):
- SequenceOf.__init__(self, DistributionPoint, optional, default)
-
-_addFragment('''
-<class>
- <header>
- <name>CrlNumber</name>
- <super>Integer</super>
- </header>
-</class>
-''')
-class CrlNumber(Integer):
- pass
-
-_addFragment('''
-<class>
- <header>
- <name>DeltaCrlIndicator</name>
- <super>Integer</super>
- </header>
-</class>
-''')
-class DeltaCrlIndicator(Integer):
- pass
-
-_addFragment('''
-<class>
- <header>
- <name>InvalidityDate</name>
- <super>GeneralizedTime</super>
- </header>
-</class>
-''')
-class InvalidityDate(GeneralizedTime):
- pass
-
-_addFragment('''
-<class>
- <header>
- <name>CrlReason</name>
- <super>Enum</super>
- </header>
-</class>
-''')
-class CrlReason(Enum):
- pass
-
-_addFragment('''
-<class>
- <header>
- <name>IPAddressRange</name>
- <super>Sequence</super>
- </header>
-</class>
-''')
-class IPAddressRange(Sequence):
- def __init__(self, optional=0, default=''):
- self.min = BitString()
- self.max = BitString()
- contents = [ self.min, self.max ]
- Sequence.__init__(self, contents, optional, default)
-
-_addFragment('''
-<class>
- <header>
- <name>IPAddressOrRange</name>
- <super>Choice</super>
- </header>
-</class>
-''')
-class IPAddressOrRange(Choice):
- def __init__(self, optional=0, default=''):
- choices = { 'addressPrefix' : BitString(),
- 'addressRange' : IPAddressRange() }
- Choice.__init__(self, choices, optional, default)
-
-_addFragment('''
-<class>
- <header>
- <name>IPAddressesOrRanges</name>
- <super>SequenceOf</super>
- </header>
-</class>
-''')
-class IPAddressesOrRanges(SequenceOf):
- def __init__(self, optional=0, default=''):
- SequenceOf.__init__(self, IPAddressOrRange, optional, default)
-
-_addFragment('''
-<class>
- <header>
- <name>IPAddressChoice</name>
- <super>Choice</super>
- </header>
-</class>
-''')
-class IPAddressChoice(Choice):
- def __init__(self, optional=0, default=''):
- choices = { 'inherit' : Null(),
- 'addressesOrRanges' : IPAddressesOrRanges() }
- Choice.__init__(self, choices, optional, default)
-
-_addFragment('''
-<class>
- <header>
- <name>IPAddressFamily</name>
- <super>Sequence</super>
- </header>
-</class>
-''')
-class IPAddressFamily(Sequence):
- def __init__(self, optional=0, default=''):
- self.addressFamily = OctetString()
- self.ipAddressChoice = IPAddressChoice()
- contents = [ self.addressFamily, self.ipAddressChoice ]
- Sequence.__init__(self, contents, optional, default)
-
-_addFragment('''
-<class>
- <header>
- <name>IPAddrBlocks</name>
- <super>SequenceOf</super>
- </header>
- <body>
- <para>
- Implementation of RFC 3779 section 2.2.3.
- </para>
- </body>
-</class>
-''')
-class IPAddrBlocks(SequenceOf):
- def __init__(self, optional=0, default=''):
- SequenceOf.__init__(self, IPAddressFamily, optional, default)
-
-_addFragment('''
-<class>
- <header>
- <name>ASRange</name>
- <super>Sequence</super>
- </header>
-</class>
-''')
-class ASRange(Sequence):
- def __init__(self, optional=0, default=''):
- self.min = Integer()
- self.max = Integer()
- contents = [ self.min, self.max ]
- Sequence.__init__(self, contents, optional, default)
-
-_addFragment('''
-<class>
- <header>
- <name>ASIdOrRange</name>
- <super>Choice</super>
- </header>
-</class>
-''')
-class ASIdOrRange(Choice):
- def __init__(self, optional=0, default=''):
- choices = { 'id' : Integer(),
- 'range' : ASRange() }
- Choice.__init__(self, choices, optional, default)
-
-_addFragment('''
-<class>
- <header>
- <name>ASIdsOrRanges</name>
- <super>SequenceOf</super>
- </header>
-</class>
-''')
-class ASIdsOrRanges(SequenceOf):
- def __init__(self, optional=0, default=''):
- SequenceOf.__init__(self, ASIdOrRange, optional, default)
-
-_addFragment('''
-<class>
- <header>
- <name>ASIdentifierChoice</name>
- <super>Choice</super>
- </header>
-</class>
-''')
-class ASIdentifierChoice(Choice):
- def __init__(self, optional=0, default=''):
- choices = { 'inherit' : Null(),
- 'asIdsOrRanges' : ASIdsOrRanges() }
- Choice.__init__(self, choices, optional, default)
-
-_addFragment('''
-<class>
- <header>
- <name>ASIdentifiers</name>
- <super>Sequence</super>
- </header>
- <body>
- <para>
- Implementation of RFC 3779 section 3.2.3.
- </para>
- </body>
-</class>
-''')
-class ASIdentifiers(Sequence):
- def __init__(self, optional=0, default=''):
- #
- # This is what we -should- be doing
- #self.asnum = ASIdentifierChoice()
- #self.rdi = ASIdentifierChoice()
- #self.explicitAsnum = Explicit(CLASS_CONTEXT, FORM_CONSTRUCTED, 0, self.asnum, 1)
- #self.explictRdi = Explicit(CLASS_CONTEXT, FORM_CONSTRUCTED, 1, self.rdi, 1)
- #contents = [ self.explicitAsnum, self.explictRdi ]
- #
- # ...but it generates a spurious empty RDI clause, so try this instead
- # since we know that we never use RDI anyway.
- self.asnum = ASIdentifierChoice()
- self.explicitAsnum = Explicit(CLASS_CONTEXT, FORM_CONSTRUCTED, 0, self.asnum, 1)
- contents = [ self.explicitAsnum ]
- #
- Sequence.__init__(self, contents, optional, default)
-
- def set(self, values):
- assert len(values) == 1 or (len(values) == 2 and values[1] is None)
- Sequence.set(self, (values[0],))
-
-_addFragment('''
-<class>
- <header>
- <name>AccessDescription</name>
- <super>Sequence</super>
- </header>
-</class>
-''')
-class AccessDescription(Sequence):
- def __init__(self, optional=0, default=''):
- self.accessMethod = Oid()
- self.accessLocation = GeneralName()
- contents = [ self.accessMethod, self.accessLocation ]
- Sequence.__init__(self, contents, optional, default)
-
-_addFragment('''
-<class>
- <header>
- <name>AuthorityInfoAccess</name>
- <super>SequenceOf</super>
- </header>
- <body>
- <para>
- Implementation of RFC 3280 section 4.2.2.1.
- </para>
- </body>
-</class>
-''')
-class AuthorityInfoAccess(SequenceOf):
- def __init__(self, optional=0, default=''):
- SequenceOf.__init__(self, AccessDescription, optional, default)
-
-_addFragment('''
-<class>
- <header>
- <name>SubjectInfoAccess</name>
- <super>SequenceOf</super>
- </header>
- <body>
- <para>
- Implementation of RFC 3280 section 4.2.2.2.
- </para>
- </body>
-</class>
-''')
-class SubjectInfoAccess(SequenceOf):
- def __init__(self, optional=0, default=''):
- SequenceOf.__init__(self, AccessDescription, optional, default)
-
-#---------- X509v3 extensions ----------#
-
-_addFragment('''
-<class>
- <header>
- <name>Extension</name>
- <super>Sequence</super>
- </header>
- <body>
- <para>
- This class is a useful little object. It is set by passing three
- values: an oid, an integer(a boolean really) and a value. The
- boolean indicates if this extension is critical. The value is
- used to set the extension once it has been created. The oid
- is used to create the correct object which, to be fully supported it must
- be one of these:
- <simplelist>
- <member><classname>basicConstraints</classname></member>
- <member><classname>subjectAltName</classname></member>
- <member><classname>issuerAltName</classname></member>
- <member><classname>authorityKeyIdentifier</classname></member>
- <member><classname>privateKeyUsagePeriod</classname></member>
- <member><classname>certificatePolicies</classname></member>
- <member><classname>cRLDistributionPoints</classname></member>
- <member><classname>subjectKeyIdentifier</classname></member>
- <member><classname>keyUsage</classname></member>
- <member><classname>crlNumber</classname></member>
- <member><classname>deltaCrlIndicator</classname></member>
- <member><classname>invalidityDate</classname></member>
- <member><classname>crlReason</classname></member>
- </simplelist>
- </para>
- <example>
- <title>Setting <classname>Extension</classname></title>
- <programlisting>
- extn = Extension()
- email = ('rfc822Name', 'peter_shannon@yahoo.com')
- extn.set( (obj2oid('subjectAltName'),1, (email,)) )
- </programlisting>
- </example>
- </body>
-</class>
-''')
-class Extension(Sequence):
-
- classMap = {
- (2, 5, 29, 19) : BasicConstraints,
- (2, 5, 29, 17) : SubjectAltName,
- (2, 5, 29, 18) : IssuerAltName,
- (2, 5, 29, 35) : AuthorityKeyIdentifier,
- (2, 5, 29, 16) : PrivateKeyUsagePeriod,
- (2, 5, 29, 32) : CertificatePolicies,
- (2, 5, 29, 31) : CRLDistributionPoints,
- (2, 5, 29, 14) : SubjectKeyIdentifier,
- (2, 5, 29, 15) : KeyUsage,
- (2, 5, 29, 20) : CrlNumber,
- (2, 5, 29, 27) : DeltaCrlIndicator,
- (2, 5, 29, 24) : InvalidityDate,
- (2, 5, 29, 21) : CrlReason,
- (1, 3, 6, 1, 5, 5, 7, 1, 1) : AuthorityInfoAccess,
- (1, 3, 6, 1, 5, 5, 7, 1, 7) : IPAddrBlocks,
- (1, 3, 6, 1, 5, 5, 7, 1, 8) : ASIdentifiers,
- (1, 3, 6, 1, 5, 5, 7, 1, 11) : SubjectInfoAccess,
- }
-# Missing -- fix later
-# extendedKeyUsage
-# privateKeyUsagePeriod
-# policyMappings
-# nameConstraints
-# policyConstraints
-# subjectDirectoryAttributes
-# instructionCode
-# issuingDistrobutionPoint
-
- def __init__(self, optional=0, default=''):
- self.extnID = Oid()
- self.critical = Boolean(0, 'AQEA')
- self.extnValue = OctetString()
- contents = [self.extnID, self.critical, self.extnValue]
- Sequence.__init__(self, contents, optional, default)
-
- _addFragment('''
- <method>
- <header>
- <memberof>Extension</memberof>
- <name>set</name>
- <parameter>values</parameter>
- </header>
- <body>
- <para>
- <parameter>values</parameter> should be a sequence of three
- values, the oid, critical marker and a value to set the
- extension. If an unknown oid is passed to this function it
- will raise an exception. <parameter>critical</parameter> is a
- boolean. <parameter>value</parameter> will be used to set the
- extension after it has been created.
- </para>
- </body>
- </method>
- ''')
- def set(self, (oid, critical, val) ):
- self.extnID.set( oid )
- self.critical.set( critical )
-
- extnObj = None
- if self.classMap.has_key(oid):
- extnObj = self.classMap[oid]()
- else:
- if not (isinstance(oid, types.TupleType) or isinstance(oid, types.ListType)):
- raise DerError, 'the oid should be specified as a sequence of integers'
- else:
- raise DerError, 'unknown object extension %s' % oid
-
- try:
- extnObj.set( val )
- self.extnValue.set( extnObj.toString() )
- except DerError, e:
- raise DerError, 'failed to set %s, with:\n\t%s\nresulting in:\n\t%s' % (oid, val, `e`)
-
- _addFragment('''
- <method>
- <header>
- <memberof>Extension</memberof>
- <name>get</name>
- </header>
- <body>
- <para>
- There are several ways this function might fail to decode an
- extension. Firstly if the extension was marked critical but if
- the oid cannot be mapped to a class or If a failure occurs decoding the
- <constant>extnValue</constant>, an exception will be raised.
- If a failure occurred and the extension was not marked critical it
- will return a tuple like this: <constant>(oid, critical,
- ())</constant>. If no failures occur a tuple will be returned,
- containg the oid, critical and extension values.
- </para>
- </body>
- </method>
- ''')
- def get(self):
- oid = self.extnID.get()
- critical = self.critical.get()
-
- if self.classMap.has_key(oid):
- extnObj = self.classMap[oid]()
- else:
- if critical:
- raise DerError, 'failed to read critical extension %s' % str(oid)
- else:
- return (oid, critical, ())
-
- try:
- extnObj = self.classMap[oid]()
- extnObj.fromString(self.extnValue.get())
- value = extnObj.get()
- except:
- if critical:
- raise DerError, 'failed to read critical extension %s' % str(oid)
- else:
- return (oid, critical, ())
-
- return (oid, critical, value)
diff --git a/rpkid/rpki/adns.py b/rpkid/rpki/adns.py
index a9d04c2a..736d793a 100644
--- a/rpkid/rpki/adns.py
+++ b/rpkid/rpki/adns.py
@@ -4,7 +4,7 @@ dnspython package.
$Id$
-Copyright (C) 2010--2011 Internet Systems Consortium ("ISC")
+Copyright (C) 2010--2012 Internet Systems Consortium ("ISC")
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
@@ -34,8 +34,13 @@ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
"""
-import asyncore, socket, time, sys
-import rpki.async, rpki.sundial, rpki.log
+import asyncore
+import socket
+import time
+import sys
+import rpki.async
+import rpki.sundial
+import rpki.log
try:
import dns.resolver, dns.rdatatype, dns.rdataclass, dns.name, dns.message
@@ -134,7 +139,7 @@ class query(object):
self.qtype = qtype
self.qclass = qclass
self.start = time.time()
- rpki.async.defer(self.go)
+ rpki.async.event_defer(self.go)
def go(self):
"""
@@ -364,12 +369,12 @@ if __name__ == "__main__":
e)
if True:
- for qtype in (dns.rdatatype.A, dns.rdatatype.AAAA, dns.rdatatype.HINFO):
- test_query("subvert-rpki.hactrn.net", qtype)
+ for t in (dns.rdatatype.A, dns.rdatatype.AAAA, dns.rdatatype.HINFO):
+ test_query("subvert-rpki.hactrn.net", t)
test_query("nonexistant.rpki.net")
test_query("subvert-rpki.hactrn.net", qclass = dns.rdataclass.CH)
- for host in ("subvert-rpki.hactrn.net", "nonexistant.rpki.net"):
- test_getaddrinfo(host)
+ for h in ("subvert-rpki.hactrn.net", "nonexistant.rpki.net"):
+ test_getaddrinfo(h)
rpki.async.event_loop()
diff --git a/rpkid/rpki/async.py b/rpkid/rpki/async.py
index 5eaa34f9..aee7770f 100644
--- a/rpkid/rpki/async.py
+++ b/rpkid/rpki/async.py
@@ -3,7 +3,7 @@ Utilities for event-driven programming.
$Id$
-Copyright (C) 2009--2011 Internet Systems Consortium ("ISC")
+Copyright (C) 2009--2012 Internet Systems Consortium ("ISC")
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
@@ -18,8 +18,13 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
"""
-import asyncore, signal, traceback, gc, sys
-import rpki.log, rpki.sundial
+import asyncore
+import signal
+import traceback
+import gc
+import sys
+import rpki.log
+import rpki.sundial
ExitNow = asyncore.ExitNow
@@ -40,15 +45,24 @@ class iterator(object):
to continue to the next item in the iteration.
The termination callback receives no arguments.
+
+ Special case for memory constrained cases: if keyword argument
+ pop_list is True, iterable must be a list, which is modified in
+ place, popping items off of it until it's empty.
"""
- def __init__(self, iterable, item_callback, done_callback, unwind_stack = True):
+ def __init__(self, iterable, item_callback, done_callback, unwind_stack = True, pop_list = False):
+ assert not pop_list or isinstance(iterable, list), "iterable must be a list when using pop_list"
self.item_callback = item_callback
- self.done_callback = done_callback
+ self.done_callback = done_callback if done_callback is not None else lambda: None
self.caller_file, self.caller_line, self.caller_function = traceback.extract_stack(limit = 2)[0][0:3]
self.unwind_stack = unwind_stack
+ self.pop_list = pop_list
try:
- self.iterator = iter(iterable)
+ if self.pop_list:
+ self.iterator = iterable
+ else:
+ self.iterator = iter(iterable)
except (ExitNow, SystemExit):
raise
except Exception:
@@ -57,13 +71,14 @@ class iterator(object):
self.doit()
def __repr__(self):
- return ("<%s created at %s:%s %s at 0x%x>" %
- (self.__class__.__name__,
- self.caller_file, self.caller_line, self.caller_function, id(self)))
+ return rpki.log.log_repr(self,
+ "created at %s:%s" % (self.caller_file,
+ self.caller_line),
+ self.caller_function)
def __call__(self):
if self.unwind_stack:
- defer(self.doit)
+ event_defer(self.doit)
else:
self.doit()
@@ -73,25 +88,25 @@ class iterator(object):
with the next iteration value, call the termination handler if the
iterator signaled StopIteration.
"""
- try:
- self.item_callback(self, self.iterator.next())
- except StopIteration:
- if self.done_callback is not None:
- self.done_callback()
-class timer(object):
- """
- Timer construct for event-driven code. It can be used in either of two ways:
+ try:
+ if self.pop_list:
+ val = self.iterator.pop(0)
+ else:
+ val = self.iterator.next()
+ except (IndexError, StopIteration):
+ self.done_callback()
+ else:
+ self.item_callback(self, val)
- - As a virtual class, in which case the subclass should provide a
- handler() method to receive the wakup event when the timer expires; or
+## @var timer_queue
+# Timer queue.
- - By setting an explicit handler callback, either via the
- constructor or the set_handler() method.
+timer_queue = []
- Subclassing is probably more Pythonic, but setting an explict
- handler turns out to be very convenient when combined with bound
- methods to other objects.
+class timer(object):
+ """
+ Timer construct for event-driven code.
"""
## @var gc_debug
@@ -102,15 +117,9 @@ class timer(object):
# Verbose chatter about timers being run.
run_debug = False
- ## @var queue
- # Timer queue, shared by all timer instances (there can be only one queue).
- queue = []
-
def __init__(self, handler = None, errback = None):
- if handler is not None:
- self.set_handler(handler)
- if errback is not None:
- self.set_errback(errback)
+ self.set_handler(handler)
+ self.set_errback(errback)
self.when = None
if self.gc_debug:
self.trace("Creating %r" % self)
@@ -135,9 +144,9 @@ class timer(object):
else:
self.when = when
assert isinstance(self.when, rpki.sundial.datetime), "%r: Expecting a datetime, got %r" % (self, self.when)
- if self not in self.queue:
- self.queue.append(self)
- self.queue.sort(key = lambda x: x.when)
+ if self not in timer_queue:
+ timer_queue.append(self)
+ timer_queue.sort(key = lambda x: x.when)
def __cmp__(self, other):
return cmp(id(self), id(other))
@@ -154,7 +163,7 @@ class timer(object):
self.trace("Canceling %r" % self)
try:
while True:
- self.queue.remove(self)
+ timer_queue.remove(self)
except ValueError:
pass
@@ -162,14 +171,7 @@ class timer(object):
"""
Test whether this timer is currently set.
"""
- return self in self.queue
-
- def handler(self):
- """
- Handle a timer that has expired. This must either be overriden by
- a subclass or set dynamically by set_handler().
- """
- raise NotImplementedError
+ return self in timer_queue
def set_handler(self, handler):
"""
@@ -181,13 +183,6 @@ class timer(object):
"""
self.handler = handler
- def errback(self, e):
- """
- Error callback. May be overridden, or set with set_errback().
- """
- rpki.log.error("Unhandled exception from timer: %s" % e)
- rpki.log.traceback()
-
def set_errback(self, errback):
"""
Set a timer's errback. Like set_handler(), for errbacks.
@@ -199,17 +194,29 @@ class timer(object):
"""
Run the timer queue: for each timer whose call time has passed,
pull the timer off the queue and call its handler() method.
+
+ Comparisions are made against time at which this function was
+ called, so that even if new events keep getting scheduled, we'll
+ return to the I/O loop reasonably quickly.
"""
- while cls.queue and rpki.sundial.now() >= cls.queue[0].when:
- t = cls.queue.pop(0)
+ now = rpki.sundial.now()
+ while timer_queue and now >= timer_queue[0].when:
+ t = timer_queue.pop(0)
if cls.run_debug:
rpki.log.debug("Running %r" % t)
try:
- t.handler()
+ if t.handler is not None:
+ t.handler()
+ else:
+ rpki.log.warn("Timer %r expired with no handler set" % t)
except (ExitNow, SystemExit):
raise
except Exception, e:
- t.errback(e)
+ if t.errback is not None:
+ t.errback(e)
+ else:
+ rpki.log.error("Unhandled exception from timer %r: %s" % (t, e))
+ rpki.log.traceback()
def __repr__(self):
return rpki.log.log_repr(self, self.when, repr(self.handler))
@@ -224,12 +231,12 @@ class timer(object):
the same units (argh!), and we're not doing anything that
hair-triggered, so rounding up is simplest.
"""
- if not cls.queue:
+ if not timer_queue:
return None
now = rpki.sundial.now()
- if now >= cls.queue[0].when:
+ if now >= timer_queue[0].when:
return 0
- delay = cls.queue[0].when - now
+ delay = timer_queue[0].when - now
seconds = delay.convert_to_seconds()
if delay.microseconds:
seconds += 1
@@ -242,40 +249,32 @@ class timer(object):
queue content, but this way we can notify subclasses that provide
their own cancel() method.
"""
- while cls.queue:
- cls.queue.pop(0).cancel()
-
-## @var deferred_queue
-# List to hold deferred actions. We used to do this with the timer
-# queue, but that appears to confuse the garbage collector, and is
-# overengineering for simple deferred actions in any case.
-
-deferred_queue = []
+ while timer_queue:
+ timer_queue.pop(0).cancel()
-def defer(thunk):
+def _raiseExitNow(signum, frame):
"""
- Defer an action until the next pass through the event loop.
+ Signal handler for event_loop().
"""
- deferred_queue.append(thunk)
+ raise ExitNow
-def run_deferred():
+def exit_event_loop():
"""
- Run deferred actions.
+ Force exit from event_loop().
"""
- while deferred_queue:
- try:
- deferred_queue.pop(0)()
- except (ExitNow, SystemExit):
- raise
- except Exception, e:
- rpki.log.error("Unhandled exception from deferred action %s: %s" % (e.__class__.__name__, e))
- rpki.log.traceback()
+ raise ExitNow
-def _raiseExitNow(signum, frame):
+def event_defer(handler, delay = rpki.sundial.timedelta(seconds = 0)):
"""
- Signal handler for event_loop().
+ Use a near-term (default: zero interval) timer to schedule an event
+ to run after letting the I/O system have a turn.
"""
- raise ExitNow
+ timer(handler).set(delay)
+
+## @var debug_event_timing
+# Enable insanely verbose logging of event timing
+
+debug_event_timing = False
def event_loop(catch_signals = (signal.SIGINT, signal.SIGTERM)):
"""
@@ -289,10 +288,11 @@ def event_loop(catch_signals = (signal.SIGINT, signal.SIGTERM)):
old = signal.signal(sig, _raiseExitNow)
if save_sigs:
old_signal_handlers[sig] = old
- while asyncore.socket_map or deferred_queue or timer.queue:
- run_deferred()
- asyncore.poll(timer.seconds_until_wakeup(), asyncore.socket_map)
- run_deferred()
+ while asyncore.socket_map or timer_queue:
+ t = timer.seconds_until_wakeup()
+ if debug_event_timing:
+ rpki.log.debug("Dismissing to asyncore.poll(), t = %s, q = %r" % (t, timer_queue))
+ asyncore.poll(t, asyncore.socket_map)
timer.runq()
if timer.gc_debug:
gc.collect()
@@ -359,10 +359,6 @@ class sync_wrapper(object):
def __call__(self, *args, **kwargs):
def thunk():
- """
- Deferred action to call the wrapped code once event system is
- running.
- """
try:
self.func(self.cb, self.eb, *args, **kwargs)
except ExitNow:
@@ -370,7 +366,7 @@ class sync_wrapper(object):
except Exception, e:
self.eb(e)
- defer(thunk)
+ event_defer(thunk)
event_loop()
if self.err is None:
return self.res
@@ -379,20 +375,6 @@ class sync_wrapper(object):
else:
raise self.err
-def exit_event_loop():
- """
- Force exit from event_loop().
- """
- raise ExitNow
-
-def event_yield(handler, delay = rpki.sundial.timedelta(seconds = 2)):
- """
- Use a near-term timer to schedule an event after letting the timer
- and I/O systems run.
- """
- t = timer(handler)
- t.set(delay)
-
class gc_summary(object):
"""
Periodic summary of GC state, for tracking down memory bloat.
diff --git a/rpkid/rpki/config.py b/rpkid/rpki/config.py
index c954ad5f..cc5b6580 100644
--- a/rpkid/rpki/config.py
+++ b/rpkid/rpki/config.py
@@ -4,7 +4,7 @@ ConfigParser module.
$Id$
-Copyright (C) 2009--2011 Internet Systems Consortium ("ISC")
+Copyright (C) 2009--2012 Internet Systems Consortium ("ISC")
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
@@ -33,7 +33,9 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
"""
-import ConfigParser, os, re
+import ConfigParser
+import os
+import re
## @var default_filename
# Default name of config file if caller doesn't specify one explictly.
@@ -85,6 +87,8 @@ class parser(object):
if default_dirname is not None:
filenames.append("%s/%s" % (default_dirname, default_filename))
+ f = fn = None
+
for fn in filenames:
try:
f = open(fn)
@@ -128,7 +132,7 @@ class parser(object):
section = self.default_section
if self.cfg.has_option(section, option):
matches.append((-1, self.get(option, section = section)))
- for key, value in self.cfg.items(section):
+ for key in self.cfg.options(section):
s = key.rsplit(".", 1)
if len(s) == 2 and s[0] == option and s[1].isdigit():
matches.append((int(s[1]), self.get(option, section = section)))
@@ -267,6 +271,16 @@ class parser(object):
pass
try:
+ rpki.x509.XML_CMS_object.check_inbound_schema = self.getboolean("check_inbound_schema")
+ except ConfigParser.NoOptionError:
+ pass
+
+ try:
+ rpki.x509.XML_CMS_object.check_outbound_schema = self.getboolean("check_outbound_schema")
+ except ConfigParser.NoOptionError:
+ pass
+
+ try:
rpki.async.gc_summary(self.getint("gc_summary"), self.getint("gc_summary_threshold", 0))
except ConfigParser.NoOptionError:
pass
@@ -285,3 +299,10 @@ class parser(object):
rpki.daemonize.pid_filename = self.get("pid_filename")
except ConfigParser.NoOptionError:
pass
+
+ try:
+ rpki.x509.generate_insecure_debug_only_rsa_key = rpki.x509.insecure_debug_only_rsa_key_generator(*self.get("insecure-debug-only-rsa-key-db").split())
+ except ConfigParser.NoOptionError:
+ pass
+ except:
+ rpki.log.warn("insecure-debug-only-rsa-key-db configured but initialization failed, check for corrupted database file")
diff --git a/rpkid/rpki/csv_utils.py b/rpkid/rpki/csv_utils.py
index f7eed414..30d07560 100644
--- a/rpkid/rpki/csv_utils.py
+++ b/rpkid/rpki/csv_utils.py
@@ -3,7 +3,7 @@ CSV utilities, moved here from myrpki.py.
$Id$
-Copyright (C) 2009--2011 Internet Systems Consortium ("ISC")
+Copyright (C) 2009--2012 Internet Systems Consortium ("ISC")
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
@@ -68,6 +68,12 @@ class csv_reader(object):
fields += tuple(None for i in xrange(self.columns - len(fields)))
yield fields
+ def __enter__(self):
+ return self
+
+ def __exit__(self, _type, value, traceback):
+ self.file.close()
+
class csv_writer(object):
"""
Writer object for tab delimited text. We just use the stock CSV
@@ -83,6 +89,12 @@ class csv_writer(object):
self.file = open(self.renmwo, "w")
self.writer = csv.writer(self.file, dialect = csv.get_dialect("excel-tab"))
+ def __enter__(self):
+ return self
+
+ def __exit__(self, _type, value, traceback):
+ self.close()
+
def close(self):
"""
Close this writer.
diff --git a/rpkid/rpki/exceptions.py b/rpkid/rpki/exceptions.py
index 68ea3bf6..0f5dbc49 100644
--- a/rpkid/rpki/exceptions.py
+++ b/rpkid/rpki/exceptions.py
@@ -3,7 +3,7 @@ Exception definitions for RPKI modules.
$Id$
-Copyright (C) 2009--2010 Internet Systems Consortium ("ISC")
+Copyright (C) 2009--2012 Internet Systems Consortium ("ISC")
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
diff --git a/rpkid/rpki/ghostbuster.py b/rpkid/rpki/ghostbuster.py
deleted file mode 100644
index 151a7cd0..00000000
--- a/rpkid/rpki/ghostbuster.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# $Id$
-"""
-Copyright (C) 2011 SPARTA, Inc. dba Cobham Analytic Solutions
-
-Permission to use, copy, modify, and distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND SPARTA DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS. IN NO EVENT SHALL SPARTA BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
-
-ASN.1 encoder/decoder for the Ghostbuster record, specified in
-draft-ietf-sidr-ghostbusters.
-"""
-
-from rpki.POW._der import *
-
-class Ghostbuster(OctetString):
- pass
diff --git a/rpkid/rpki/gui/app/forms.py b/rpkid/rpki/gui/app/forms.py
index 80439b00..2166343a 100644
--- a/rpkid/rpki/gui/app/forms.py
+++ b/rpkid/rpki/gui/app/forms.py
@@ -23,7 +23,7 @@ from rpki.resource_set import (resource_range_as, resource_range_ipv4,
from rpki.gui.app import models
from rpki.exceptions import BadIPResource
from rpki.gui.app.glue import str_to_resource_range
-import rpki.ipaddrs
+from rpki.POW import IPAddress
class AddConfForm(forms.Form):
@@ -190,11 +190,7 @@ class ROARequest(forms.Form):
"""
prefix = self.cleaned_data.get('prefix')
if '/' not in prefix:
- p = rpki.ipaddrs.parse(prefix)
-
- # rpki.ipaddrs.parse doesn't return a v?addr object, so can't
- # introspect p.bits
- bits = 32 if ':' not in prefix else 64
+ p = IPAddress(prefix)
# determine the first nonzero bit starting from the lsb and
# subtract from the address size to find the closest classful
@@ -203,7 +199,7 @@ class ROARequest(forms.Form):
while (p != 0) and (p & 1) == 0:
prefixlen = prefixlen + 1
p = p >> 1
- mask = bits - (8 * (prefixlen / 8))
+ mask = p.bits - (8 * (prefixlen / 8))
prefix = prefix + '/' + str(mask)
return str_to_resource_range(prefix)
diff --git a/rpkid/rpki/gui/app/range_list.py b/rpkid/rpki/gui/app/range_list.py
index fcfcfc24..21fd1f29 100755
--- a/rpkid/rpki/gui/app/range_list.py
+++ b/rpkid/rpki/gui/app/range_list.py
@@ -17,6 +17,7 @@ __version__ = '$Id$'
import bisect
import unittest
+
class RangeList(list):
"""A sorted list of ranges, which automatically merges adjacent ranges.
@@ -36,35 +37,39 @@ class RangeList(list):
# upper bound
j = bisect.bisect_right(keys, v.max, lo=i)
- # if the max value for the previous item is greater than v.min, include the previous item in the range to replace
- # and use its min value. also include the previous item if the max value is 1 less than the min value for the
- # inserted item
- if i > 0 and self[i-1].max >= v.min - 1:
+ # if the max value for the previous item is greater than v.min, include
+ # the previous item in the range to replace and use its min value.
+ # also include the previous item if the max value is 1 less than the
+ # min value for the inserted item
+ if i > 0 and self[i - 1].max >= v.min - 1:
i = i - 1
vmin = self[i].min
else:
vmin = v.min
- # if the max value for the previous item is greater than the max value for the new item, use the previous item's max
- if j > 0 and self[j-1].max > v.max:
- vmax = self[j-1].max
+ # if the max value for the previous item is greater than the max value
+ # for the new item, use the previous item's max
+ if j > 0 and self[j - 1].max > v.max:
+ vmax = self[j - 1].max
else:
vmax = v.max
- # if the max value for the new item is 1 less than the min value for the next item, combine into a single item
- if j < len(self) and vmax+1 == self[j].min:
+ # if the max value for the new item is 1 less than the min value for
+ # the next item, combine into a single item
+ if j < len(self) and vmax + 1 == self[j].min:
vmax = self[j].max
- j = j+1
+ j = j + 1
# replace the range with a new object covering the entire range
- self[i:j] = [v.__class__(min=vmin, max=vmax)]
+ self[i:j] = [v.__class__(vmin, vmax)]
def extend(self, args):
for x in args:
self.append(x)
def difference(self, other):
- """Return a RangeList object which contains ranges in this object which are not in "other"."""
+ """Return a RangeList object which contains ranges in this object which
+ are not in "other"."""
it = iter(other)
try:
@@ -85,27 +90,30 @@ class RangeList(list):
try:
while xmin <= x.max:
if xmin < cur.min:
- r.append(x.__class__(min=V(xmin),
- max=V(min(x.max,cur.min-1))))
- xmin = cur.max+1
+ r.append(x.__class__(V(xmin),
+ V(min(x.max, cur.min - 1))))
+ xmin = cur.max + 1
elif xmin == cur.min:
- xmin = cur.max+1
- else: # xmin > cur.min
+ xmin = cur.max + 1
+ else: # xmin > cur.min
if xmin <= cur.max:
- xmin = cur.max+1
- else: # xmin > cur.max
+ xmin = cur.max + 1
+ else: # xmin > cur.max
cur = it.next()
except StopIteration:
- r.append(x.__class__(min=V(xmin), max=x.max))
+ r.append(x.__class__(V(xmin), x.max))
return r
+
class TestRangeList(unittest.TestCase):
class MinMax(object):
- def __init__(self, min, max):
- self.min = min
- self.max = max
+ datum_type = int
+
+ def __init__(self, range_min, range_max):
+ self.min = range_min
+ self.max = range_max
def __str__(self):
return '(%d, %d)' % (self.min, self.max)
@@ -117,12 +125,12 @@ class TestRangeList(unittest.TestCase):
return self.min == other.min and self.max == other.max
def setUp(self):
- self.v1 = TestRangeList.MinMax(1,2)
- self.v2 = TestRangeList.MinMax(4,5)
- self.v3 = TestRangeList.MinMax(7,8)
- self.v4 = TestRangeList.MinMax(3,4)
- self.v5 = TestRangeList.MinMax(2,3)
- self.v6 = TestRangeList.MinMax(1,10)
+ self.v1 = TestRangeList.MinMax(1, 2)
+ self.v2 = TestRangeList.MinMax(4, 5)
+ self.v3 = TestRangeList.MinMax(7, 8)
+ self.v4 = TestRangeList.MinMax(3, 4)
+ self.v5 = TestRangeList.MinMax(2, 3)
+ self.v6 = TestRangeList.MinMax(1, 10)
def test_empty_append(self):
s = RangeList()
@@ -161,14 +169,14 @@ class TestRangeList(unittest.TestCase):
s.append(self.v1)
s.append(self.v5)
self.assertTrue(len(s) == 1)
- self.assertEqual(s[0], TestRangeList.MinMax(1,3))
+ self.assertEqual(s[0], TestRangeList.MinMax(1, 3))
def test_combine_range(self):
s = RangeList()
s.append(self.v1)
s.append(self.v4)
self.assertTrue(len(s) == 1)
- self.assertEqual(s[0], TestRangeList.MinMax(1,4))
+ self.assertEqual(s[0], TestRangeList.MinMax(1, 4))
def test_append_subset(self):
s = RangeList()
@@ -189,7 +197,7 @@ class TestRangeList(unittest.TestCase):
s.append(self.v4)
s.append(self.v1)
self.assertTrue(len(s) == 1)
- self.assertEqual(s[0], TestRangeList.MinMax(1,4))
+ self.assertEqual(s[0], TestRangeList.MinMax(1, 4))
def test_append_aggregate(self):
s = RangeList()
@@ -213,31 +221,31 @@ class TestRangeList(unittest.TestCase):
def test_diff_middle(self):
s1 = RangeList([self.v6])
s2 = RangeList([self.v3])
- self.assertEqual(s1.difference(s2), RangeList([TestRangeList.MinMax(1,6), TestRangeList.MinMax(9, 10)]))
+ self.assertEqual(s1.difference(s2), RangeList([TestRangeList.MinMax(1, 6), TestRangeList.MinMax(9, 10)]))
def test_diff_overlap(self):
s1 = RangeList([self.v2])
s2 = RangeList([self.v4])
- self.assertEqual(s1.difference(s2), RangeList([TestRangeList.MinMax(5,5)]))
+ self.assertEqual(s1.difference(s2), RangeList([TestRangeList.MinMax(5, 5)]))
def test_diff_overlap2(self):
s1 = RangeList([self.v2])
s2 = RangeList([self.v4])
- self.assertEqual(s2.difference(s1), RangeList([TestRangeList.MinMax(3,3)]))
+ self.assertEqual(s2.difference(s1), RangeList([TestRangeList.MinMax(3, 3)]))
def test_diff_multi(self):
- s1 = RangeList([TestRangeList.MinMax(1,2), TestRangeList.MinMax(4,5)])
- s2 = RangeList([TestRangeList.MinMax(4,4)])
- self.assertEqual(s1.difference(s2), RangeList([TestRangeList.MinMax(1,2), TestRangeList.MinMax(5,5)]))
+ s1 = RangeList([TestRangeList.MinMax(1, 2), TestRangeList.MinMax(4, 5)])
+ s2 = RangeList([TestRangeList.MinMax(4, 4)])
+ self.assertEqual(s1.difference(s2), RangeList([TestRangeList.MinMax(1, 2), TestRangeList.MinMax(5, 5)]))
def test_diff_multi_overlap(self):
- s1 = RangeList([TestRangeList.MinMax(1,2), TestRangeList.MinMax(3,4)])
- s2 = RangeList([TestRangeList.MinMax(2,3)])
+ s1 = RangeList([TestRangeList.MinMax(1, 2), TestRangeList.MinMax(3, 4)])
+ s2 = RangeList([TestRangeList.MinMax(2, 3)])
self.assertEqual(s1.difference(s2), RangeList([TestRangeList.MinMax(1,1), TestRangeList.MinMax(4,4)]))
def test_diff_multi_overlap2(self):
s1 = RangeList([TestRangeList.MinMax(1,2), TestRangeList.MinMax(3,4), TestRangeList.MinMax(6,7)])
- s2 = RangeList([TestRangeList.MinMax(2,3), TestRangeList.MinMax(6,6)])
+ s2 = RangeList([TestRangeList.MinMax(2, 3), TestRangeList.MinMax(6, 6)])
self.assertEqual(s1.difference(s2), RangeList([TestRangeList.MinMax(1,1), TestRangeList.MinMax(4,4), TestRangeList.MinMax(7,7)]))
if __name__ == '__main__':
diff --git a/rpkid/rpki/gui/app/views.py b/rpkid/rpki/gui/app/views.py
index 835bf4a5..6de313e3 100644
--- a/rpkid/rpki/gui/app/views.py
+++ b/rpkid/rpki/gui/app/views.py
@@ -414,7 +414,7 @@ def child_edit(request, pk):
if request.method == 'POST':
form = form_class(request.POST, request.FILES)
if form.is_valid():
- child.valid_until = sundial.datetime.fromdatetime(form.cleaned_data.get('valid_until'))
+ child.valid_until = sundial.datetime.from_datetime(form.cleaned_data.get('valid_until'))
child.save()
# remove AS & prefixes that are not selected in the form
models.ChildASN.objects.filter(child=child).exclude(pk__in=form.cleaned_data.get('as_ranges')).delete()
diff --git a/rpkid/rpki/gui/cacheview/models.py b/rpkid/rpki/gui/cacheview/models.py
index 4be45b5c..f58cca33 100644
--- a/rpkid/rpki/gui/cacheview/models.py
+++ b/rpkid/rpki/gui/cacheview/models.py
@@ -20,7 +20,6 @@ import time
from django.db import models
-import rpki.ipaddrs
import rpki.resource_set
import rpki.gui.models
diff --git a/rpkid/rpki/gui/cacheview/views.py b/rpkid/rpki/gui/cacheview/views.py
index b75763fa..ffb04136 100644
--- a/rpkid/rpki/gui/cacheview/views.py
+++ b/rpkid/rpki/gui/cacheview/views.py
@@ -20,7 +20,7 @@ from django.shortcuts import get_object_or_404, redirect
from rpki.gui.cacheview import models, forms, misc
from rpki.gui.app.views import render
from rpki.resource_set import resource_range_as
-from rpki.ipaddrs import v4addr, v6addr
+from rpki.POW import IPAddress
# Create your views here.
@@ -133,11 +133,7 @@ def query_view(request):
prefix_list = []
for roa in roas:
for pfx in roa.prefixes.all():
- if pfx.family == 4:
- addr = v4addr(pfx.prefix.encode())
- elif pfx.family == 6:
- addr = v6addr(pfx.prefix.encode())
-
+ addr = IPAddress(pfx.prefix.encode())
prefix_list.append((pfx, roa, addr))
prefix_list.sort(cmp=cmp_prefix)
diff --git a/rpkid/rpki/gui/models.py b/rpkid/rpki/gui/models.py
index 30879e44..0ea0924b 100644
--- a/rpkid/rpki/gui/models.py
+++ b/rpkid/rpki/gui/models.py
@@ -18,12 +18,10 @@ Common classes for reuse in apps.
__version__ = '$Id$'
-import struct
-
from django.db import models
import rpki.resource_set
-import rpki.ipaddrs
+import rpki.POW
from south.modelsinspector import add_introspection_rules
@@ -36,17 +34,16 @@ class IPv6AddressField(models.Field):
return 'binary(16)'
def to_python(self, value):
- if isinstance(value, rpki.ipaddrs.v6addr):
+ if isinstance(value, rpki.POW.IPAddress):
return value
- x = struct.unpack('!QQ', value)
- return rpki.ipaddrs.v6addr((x[0] << 64) | x[1])
+ return rpki.POW.IPAddress.fromBytes(value)
def get_db_prep_value(self, value, connection, prepared):
- return struct.pack('!QQ', (long(value) >> 64) & 0xFFFFFFFFFFFFFFFFL, long(value) & 0xFFFFFFFFFFFFFFFFL)
+ return value.toBytes()
class IPv4AddressField(models.Field):
- "Wrapper around rpki.ipaddrs.v4addr."
+ "Wrapper around rpki.POW.IPAddress."
__metaclass__ = models.SubfieldBase
@@ -54,9 +51,9 @@ class IPv4AddressField(models.Field):
return 'int UNSIGNED'
def to_python(self, value):
- if isinstance(value, rpki.ipaddrs.v4addr):
+ if isinstance(value, rpki.POW.IPAddress):
return value
- return rpki.ipaddrs.v4addr(value)
+ return rpki.POW.IPAddress(value, version=4)
def get_db_prep_value(self, value, connection, prepared):
return long(value)
@@ -97,10 +94,11 @@ class Prefix(models.Model):
class Meta:
abstract = True
-
+
# default sort order reflects what "sh ip bgp" outputs
ordering = ('prefix_min',)
+
class PrefixV4(Prefix):
"IPv4 Prefix."
@@ -112,6 +110,7 @@ class PrefixV4(Prefix):
class Meta(Prefix.Meta):
abstract = True
+
class PrefixV6(Prefix):
"IPv6 Prefix."
@@ -123,6 +122,7 @@ class PrefixV6(Prefix):
class Meta(Prefix.Meta):
abstract = True
+
class ASN(models.Model):
"""Represents a range of ASNs.
diff --git a/rpkid/rpki/http.py b/rpkid/rpki/http.py
index 244a9305..c3eae1fe 100644
--- a/rpkid/rpki/http.py
+++ b/rpkid/rpki/http.py
@@ -3,7 +3,7 @@ HTTP utilities, both client and server.
$Id$
-Copyright (C) 2009-2011 Internet Systems Consortium ("ISC")
+Copyright (C) 2009-2012 Internet Systems Consortium ("ISC")
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
@@ -82,11 +82,6 @@ enable_ipv6_servers = True
# far too much of the world.
enable_ipv6_clients = False
-## @var use_adns
-# Whether to use rpki.adns code. This is still experimental, so it's
-# not (yet) enabled by default.
-use_adns = False
-
## @var have_ipv6
# Whether the current machine claims to support IPv6. Note that just
# because the kernel supports it doesn't mean that the machine has
@@ -95,6 +90,7 @@ use_adns = False
# SRI-NIC.ARPA?" seems a bit dated...). Don't set this, it's set
# automatically by probing using the socket() system call at runtime.
try:
+ # pylint: disable=W0702,W0104
socket.socket(socket.AF_INET6).close()
socket.IPPROTO_IPV6
socket.IPV6_V6ONLY
@@ -103,6 +99,16 @@ except:
else:
have_ipv6 = True
+## @var use_adns
+
+# Whether to use rpki.adns code. This is still experimental, so it's
+# not (yet) enabled by default.
+use_adns = False
+try:
+ import rpki.adns
+except ImportError:
+ pass
+
def supported_address_families(enable_ipv6):
"""
IP address families on which servers should listen, and to consider
@@ -590,7 +596,7 @@ class http_listener(asyncore.dispatcher):
asyncore.dispatcher.__init__(self)
self.handlers = handlers
try:
- af, socktype, proto, canonname, sockaddr = addrinfo
+ af, socktype, proto, canonname, sockaddr = addrinfo # pylint: disable=W0612
self.create_socket(af, socktype)
self.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
try:
@@ -614,8 +620,8 @@ class http_listener(asyncore.dispatcher):
stream for it and pass along all of our handler data.
"""
try:
- s, client = self.accept()
- self.log("Accepting connection from %s" % addr_to_string(client))
+ s, c = self.accept()
+ self.log("Accepting connection from %s" % addr_to_string(c))
http_server(sock = s, handlers = self.handlers)
except (rpki.async.ExitNow, SystemExit):
raise
@@ -669,7 +675,6 @@ class http_client(http_stream):
self.log("Bypassing DNS for localhost")
self.gotaddrinfo(localhost_addrinfo())
else:
- import rpki.adns # This should move to start of file once we've decided to inflict it on all users
families = supported_address_families(enable_ipv6_clients)
self.log("Starting ADNS lookup for %s in families %r" % (self.host, families))
rpki.adns.getaddrinfo(self.gotaddrinfo, self.dns_error, self.host, families)
@@ -804,7 +809,7 @@ class http_client(http_stream):
if bad:
try:
raise rpki.exceptions.HTTPTimeout
- except:
+ except: # pylint: disable=W0702
self.handle_error()
else:
self.queue.detach(self)
@@ -829,7 +834,7 @@ class http_queue(object):
log = log_method
def __repr__(self):
- return rpki.log.log_repr(self, "%s" % addr_to_string(self.hostport))
+ return rpki.log.log_repr(self, addr_to_string(self.hostport))
def __init__(self, hostport):
self.hostport = hostport
@@ -886,7 +891,7 @@ class http_queue(object):
self.log("Detaching client %r" % client_)
self.client = None
- def return_result(self, client, result, detach = False):
+ def return_result(self, client, result, detach = False): # pylint: disable=W0621
"""
Client stream has returned a result, which we need to pass along
to the original caller. Result may be either an HTTP response
@@ -985,7 +990,7 @@ def client(msg, url, callback, errback):
if debug_http:
rpki.log.debug("Scheduling connection startup for %r" % request)
- rpki.async.defer(client_queues[hostport].restart)
+ rpki.async.event_defer(client_queues[hostport].restart)
def server(handlers, port, host = ""):
"""
diff --git a/rpkid/rpki/ipaddrs.py b/rpkid/rpki/ipaddrs.py
index a192f92b..d096e1d4 100644
--- a/rpkid/rpki/ipaddrs.py
+++ b/rpkid/rpki/ipaddrs.py
@@ -13,7 +13,7 @@ once, here, thus avoiding a lot of duplicate code elsewhere.
$Id$
-Copyright (C) 2009 Internet Systems Consortium ("ISC")
+Copyright (C) 2009-2012 Internet Systems Consortium ("ISC")
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
@@ -52,6 +52,7 @@ class v4addr(long):
"""
bits = 32
+ ipversion = 4
def __new__(cls, x):
"""
@@ -91,6 +92,7 @@ class v6addr(long):
"""
bits = 128
+ ipversion = 6
def __new__(cls, x):
"""
diff --git a/rpkid/rpki/irdb/__init__.py b/rpkid/rpki/irdb/__init__.py
index 3eb6fab7..64c9ee6c 100644
--- a/rpkid/rpki/irdb/__init__.py
+++ b/rpkid/rpki/irdb/__init__.py
@@ -4,7 +4,7 @@ Python package, so humor it.
$Id$
-Copyright (C) 2011 Internet Systems Consortium ("ISC")
+Copyright (C) 2011-2012 Internet Systems Consortium ("ISC")
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
@@ -19,5 +19,8 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
"""
+# pylint: disable=W0401
+
from rpki.irdb.models import *
from rpki.irdb.zookeeper import Zookeeper
+from rpki.irdb.router import DBContextRouter, database
diff --git a/rpkid/rpki/irdb/models.py b/rpkid/rpki/irdb/models.py
index 010ba635..1d3d70de 100644
--- a/rpkid/rpki/irdb/models.py
+++ b/rpkid/rpki/irdb/models.py
@@ -7,7 +7,7 @@ Django GUI code, so be careful.
$Id$
-Copyright (C) 2011 Internet Systems Consortium ("ISC")
+Copyright (C) 2011-2012 Internet Systems Consortium ("ISC")
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
@@ -22,12 +22,14 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
"""
+# pylint: disable=W0232
+
import django.db.models
import rpki.x509
import rpki.sundial
import rpki.resource_set
-import rpki.ipaddrs
import socket
+import rpki.POW
from south.modelsinspector import add_introspection_rules
## @var ip_version_choices
@@ -65,7 +67,6 @@ class HandleField(django.db.models.CharField):
kwargs["max_length"] = 120
django.db.models.CharField.__init__(self, *args, **kwargs)
-
class EnumField(django.db.models.PositiveSmallIntegerField):
"""
An enumeration type that uses strings in Python and small integers
@@ -99,14 +100,14 @@ class SundialField(django.db.models.DateTimeField):
def to_python(self, value):
if isinstance(value, rpki.sundial.pydatetime.datetime):
- return rpki.sundial.datetime.fromdatetime(
+ return rpki.sundial.datetime.from_datetime(
django.db.models.DateTimeField.to_python(self, value))
else:
return value
def get_prep_value(self, value):
if isinstance(value, rpki.sundial.datetime):
- return value.to_sql()
+ return value.to_datetime()
else:
return value
@@ -297,7 +298,7 @@ class CA(django.db.models.Model):
return result
def revoke(self, cert):
- Revocations.objects.create(
+ Revocation.objects.create(
issuer = self,
revoked = rpki.sundial.now(),
serial = cert.certificate.getSerial(),
@@ -308,8 +309,7 @@ class CA(django.db.models.Model):
def generate_crl(self):
now = rpki.sundial.now()
self.revocations.filter(expires__lt = now).delete()
- revoked = [(r.serial, rpki.sundial.datetime.fromdatetime(r.revoked).toASN1tuple(), ())
- for r in self.revocations.all()]
+ revoked = [(r.serial, r.revoked) for r in self.revocations.all()]
self.latest_crl = rpki.x509.CRL.generate(
keypair = self.private_key,
issuer = self.certificate,
@@ -332,7 +332,7 @@ class ServerCA(CA):
if self.certificate is not None:
return self.certificate.getSubject()
else:
- return rpki.x509.X501DN("%s BPKI server CA" % socket.gethostname())
+ return rpki.x509.X501DN.from_cn("%s BPKI server CA" % socket.gethostname())
class ResourceHolderCA(CA):
handle = HandleField(unique = True)
@@ -346,7 +346,7 @@ class ResourceHolderCA(CA):
if self.certificate is not None:
return self.certificate.getSubject()
else:
- return rpki.x509.X501DN("%s BPKI resource CA" % self.handle)
+ return rpki.x509.X501DN.from_cn("%s BPKI resource CA" % self.handle)
class Certificate(django.db.models.Model):
@@ -435,7 +435,8 @@ class ServerEE(EECertificate):
@property
def subject_name(self):
- return rpki.x509.X501DN("%s BPKI %s EE" % (socket.gethostname(), self.get_purpose_display()))
+ return rpki.x509.X501DN.from_cn("%s BPKI %s EE" % (socket.gethostname(),
+ self.get_purpose_display()))
class Referral(EECertificate):
issuer = django.db.models.OneToOneField(ResourceHolderCA, related_name = "referral_certificate")
@@ -443,7 +444,7 @@ class Referral(EECertificate):
@property
def subject_name(self):
- return rpki.x509.X501DN("%s BPKI Referral EE" % self.issuer.handle)
+ return rpki.x509.X501DN.from_cn("%s BPKI Referral EE" % self.issuer.handle)
class Turtle(django.db.models.Model):
service_uri = django.db.models.CharField(max_length = 255)
@@ -454,7 +455,7 @@ class Rootd(EECertificate, Turtle):
@property
def subject_name(self):
- return rpki.x509.X501DN("%s BPKI rootd EE" % self.issuer.handle)
+ return rpki.x509.X501DN.from_cn("%s BPKI rootd EE" % self.issuer.handle)
class BSC(Certificate):
issuer = django.db.models.ForeignKey(ResourceHolderCA, related_name = "bscs")
@@ -478,12 +479,22 @@ class Child(CrossCertification):
@property
def resource_bag(self):
+ child_asn = rpki.irdb.ChildASN.objects.raw("""
+ SELECT *
+ FROM irdb_childasn
+ WHERE child_id = %s
+ """, [self.id])
+ child_net = list(rpki.irdb.ChildNet.objects.raw("""
+ SELECT *
+ FROM irdb_childnet
+ WHERE child_id = %s
+ """, [self.id]))
asns = rpki.resource_set.resource_set_as.from_django(
- (a.start_as, a.end_as) for a in self.asns.all())
+ (a.start_as, a.end_as) for a in child_asn)
ipv4 = rpki.resource_set.resource_set_ipv4.from_django(
- (a.start_ip, a.end_ip) for a in self.address_ranges.filter(version = 'IPv4'))
+ (a.start_ip, a.end_ip) for a in child_net if a.version == "IPv4")
ipv6 = rpki.resource_set.resource_set_ipv6.from_django(
- (a.start_ip, a.end_ip) for a in self.address_ranges.filter(version = 'IPv6'))
+ (a.start_ip, a.end_ip) for a in child_net if a.version == "IPv6")
return rpki.resource_set.resource_bag(
valid_until = self.valid_until, asn = asns, v4 = ipv4, v6 = ipv6)
@@ -556,9 +567,9 @@ class ROARequestPrefix(django.db.models.Model):
def as_roa_prefix(self):
if self.version == 'IPv4':
- return rpki.resource_set.roa_prefix_ipv4(rpki.ipaddrs.v4addr(self.prefix), self.prefixlen, self.max_prefixlen)
+ return rpki.resource_set.roa_prefix_ipv4(rpki.POW.IPAddress(self.prefix), self.prefixlen, self.max_prefixlen)
else:
- return rpki.resource_set.roa_prefix_ipv6(rpki.ipaddrs.v6addr(self.prefix), self.prefixlen, self.max_prefixlen)
+ return rpki.resource_set.roa_prefix_ipv6(rpki.POW.IPAddress(self.prefix), self.prefixlen, self.max_prefixlen)
def as_resource_range(self):
return self.as_roa_prefix().to_resource_range()
@@ -591,7 +602,6 @@ class Client(CrossCertification):
class Meta:
unique_together = ("issuer", "handle")
-
# for Django South -- these are just simple subclasses
add_introspection_rules([],
('^rpki\.irdb\.models\.CertificateField',
diff --git a/rpkid/rpki/irdb/router.py b/rpkid/rpki/irdb/router.py
new file mode 100644
index 00000000..fad78b36
--- /dev/null
+++ b/rpkid/rpki/irdb/router.py
@@ -0,0 +1,95 @@
+"""
+Django-style "Database router".
+
+For most programs, you don't need this. Django's normal mode of
+behavior is to use a single SQL database for the IRDB, which is
+normally what we want. For certain test scenarios, however, it's
+useful to be able to use the same Django ORM models and managers with
+multiple databases without having to complicate the interface by
+passing database names everywhere. Using a database router
+accomplishes this.
+
+$Id$
+
+Copyright (C) 2012 Internet Systems Consortium ("ISC")
+
+Permission to use, copy, modify, and distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+"""
+
+class DBContextRouter(object):
+ """
+ A Django database router for use with multiple IRDBs.
+
+ This router is designed to work in conjunction with the
+ rpki.irdb.database context handler (q.v.).
+ """
+
+ _app = "irdb"
+
+ _database = None
+
+ def db_for_read(self, model, **hints):
+ if model._meta.app_label == self._app:
+ return self._database
+ else:
+ return None
+
+ def db_for_write(self, model, **hints):
+ if model._meta.app_label == self._app:
+ return self._database
+ else:
+ return None
+
+ def allow_relation(self, obj1, obj2, **hints):
+ if self._database is None:
+ return None
+ elif obj1._meta.app_label == self._app and obj2._meta.app_label == self._app:
+ return True
+ else:
+ return None
+
+ def allow_syncdb(self, db, model):
+ if db == self._database and model._meta.app_label == self._app:
+ return True
+ else:
+ return None
+
+class database(object):
+ """
+ Context manager for use with DBContextRouter. Use thusly:
+
+ with rpki.irdb.database("blarg"):
+ do_stuff()
+
+ This binds IRDB operations to database blarg for the duration of
+ the call to do_stuff(), then restores the prior state.
+ """
+
+ def __init__(self, name, on_entry = None, on_exit = None):
+ if not isinstance(name, str):
+ raise ValueError("database name must be a string, not %r" % name)
+ self.name = name
+ self.on_entry = on_entry
+ self.on_exit = on_exit
+
+ def __enter__(self):
+ if self.on_entry is not None:
+ self.on_entry()
+ self.former = DBContextRouter._database
+ DBContextRouter._database = self.name
+
+ def __exit__(self, _type, value, traceback):
+ assert DBContextRouter._database is self.name
+ DBContextRouter._database = self.former
+ if self.on_exit is not None:
+ self.on_exit()
diff --git a/rpkid/rpki/irdb/zookeeper.py b/rpkid/rpki/irdb/zookeeper.py
index 19bd55f7..9747bb30 100644
--- a/rpkid/rpki/irdb/zookeeper.py
+++ b/rpkid/rpki/irdb/zookeeper.py
@@ -18,17 +18,10 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
"""
-import subprocess
-import csv
-import re
+# pylint: disable=W0612
+
import os
-import getopt
-import sys
-import base64
-import time
-import glob
import copy
-import warnings
import rpki.config
import rpki.cli
import rpki.sundial
@@ -45,10 +38,9 @@ import rpki.irdb
import django.db.transaction
from lxml.etree import (Element, SubElement, ElementTree,
- fromstring as ElementFromString,
- tostring as ElementToString)
+ tostring as ElementToString)
-from rpki.csv_utils import (csv_reader, csv_writer, BadCSVSyntax)
+from rpki.csv_utils import csv_reader
@@ -96,24 +88,34 @@ class PEM_writer(object):
"""
Write PEM files to disk, keeping track of which ones we've already
written and setting the file mode appropriately.
+
+ Comparing the old file with what we're about to write serves no real
+ purpose except to calm users who find repeated messages about
+ writing the same file confusing.
"""
def __init__(self, logstream = None):
self.wrote = set()
self.logstream = logstream
- def __call__(self, filename, obj):
+ def __call__(self, filename, obj, compare = True):
filename = os.path.realpath(filename)
if filename in self.wrote:
return
tempname = filename
+ pem = obj.get_PEM()
if not filename.startswith("/dev/"):
+ try:
+ if compare and pem == open(filename, "r").read():
+ return
+ except: # pylint: disable=W0702
+ pass
tempname += ".%s.tmp" % os.getpid()
mode = 0400 if filename.endswith(".key") else 0444
if self.logstream is not None:
self.logstream.write("Writing %s\n" % filename)
f = os.fdopen(os.open(tempname, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, mode), "w")
- f.write(obj.get_PEM())
+ f.write(pem)
f.close()
if tempname != filename:
os.rename(tempname, filename)
@@ -174,6 +176,11 @@ class etree_wrapper(object):
if self.msg is not None:
logstream.write(self.msg + "\n")
+ @property
+ def file(self):
+ from cStringIO import StringIO
+ return StringIO(ElementToString(self.etree))
+
class Zookeeper(object):
@@ -218,7 +225,7 @@ class Zookeeper(object):
if handle is None:
raise MissingHandle
- self.handle= handle
+ self.handle = handle
def set_logstream(self, logstream):
@@ -514,7 +521,7 @@ class Zookeeper(object):
try:
self.resource_ca.children.get(handle = child_handle).delete()
except rpki.irdb.Child.DoesNotExist:
- self.log("No such child \"%s\"" % arg)
+ self.log("No such child \"%s\"" % child_handle)
@django.db.transaction.commit_on_success
@@ -590,7 +597,7 @@ class Zookeeper(object):
try:
self.resource_ca.parents.get(handle = parent_handle).delete()
except rpki.irdb.Parent.DoesNotExist:
- self.log("No such parent \"%s\"" % arg)
+ self.log("No such parent \"%s\"" % parent_handle)
@django.db.transaction.commit_on_success
@@ -709,7 +716,7 @@ class Zookeeper(object):
try:
self.server_ca.clients.get(handle = client_handle).delete()
except rpki.irdb.Client.DoesNotExist:
- self.log("No such client \"%s\"" % arg)
+ self.log("No such client \"%s\"" % client_handle)
@django.db.transaction.commit_on_success
@@ -758,9 +765,9 @@ class Zookeeper(object):
assert repository_handle is not None
try:
- self.resource_ca.repositories.get(handle = arg).delete()
+ self.resource_ca.repositories.get(handle = repository_handle).delete()
except rpki.irdb.Repository.DoesNotExist:
- self.log("No such repository \"%s\"" % arg)
+ self.log("No such repository \"%s\"" % repository_handle)
@django.db.transaction.commit_on_success
@@ -1062,11 +1069,63 @@ class Zookeeper(object):
def synchronize(self, *handles_to_poke):
"""
Configure RPKI daemons with the data built up by the other
- commands in this program. Most commands which modify the IRDB
- should call this when they're done.
+ commands in this program. Commands which modify the IRDB and want
+ to whack everything into sync should call this when they're done,
+ but be warned that this can be slow with a lot of CAs.
+
+ Any arguments given are handles of CAs which should be poked with a
+ <self run_now="yes"/> operation.
+ """
+
+ for ca in rpki.irdb.ResourceHolderCA.objects.all():
+ self.synchronize_rpkid_one_ca_core(ca, ca.handle in handles_to_poke)
+ self.synchronize_pubd_core()
+ self.synchronize_rpkid_deleted_core()
+
+
+ @django.db.transaction.commit_on_success
+ def synchronize_ca(self, ca = None, poke = False):
+ """
+ Synchronize one CA. Most commands which modify a CA should call
+ this. CA to synchronize defaults to the current resource CA.
+ """
+
+ if ca is None:
+ ca = self.resource_ca
+ self.synchronize_rpkid_one_ca_core(ca, poke)
+
+
+ @django.db.transaction.commit_on_success
+ def synchronize_deleted_ca(self):
+ """
+ Delete CAs which are present in rpkid's database but not in the
+ IRDB.
+ """
+
+ self.synchronize_rpkid_deleted_core()
+
+
+ @django.db.transaction.commit_on_success
+ def synchronize_pubd(self):
+ """
+ Synchronize pubd. Most commands which modify pubd should call this.
+ """
- Any arguments given are handles to be sent to rpkid at the end of
- the synchronization run with a <self run_now="yes"/> operation.
+ self.synchronize_pubd_core()
+
+
+ def synchronize_rpkid_one_ca_core(self, ca, poke = False):
+ """
+ Synchronize one CA. This is the core synchronization code. Don't
+ call this directly, instead call one of the methods that calls
+ this inside a Django commit wrapper.
+
+ This method configures rpkid with data built up by the other
+ commands in this program. Most commands which modify IRDB values
+ related to rpkid should call this when they're done.
+
+ If poke is True, we append a left-right run_now operation for this
+ CA to the end of whatever other commands this method generates.
"""
# We can use a single BSC for everything -- except BSC key
@@ -1082,258 +1141,285 @@ class Zookeeper(object):
self_regen_margin = self.cfg.getint("self_regen_margin", self_crl_interval / 4,
section = myrpki_section)
- # Make sure that pubd's BPKI CRL is up to date.
+ # See what rpkid already has on file for this entity.
- if self.run_pubd:
- self.call_pubd(rpki.publication.config_elt.make_pdu(
- action = "set",
- bpki_crl = self.server_ca.latest_crl))
+ rpkid_reply = self.call_rpkid(
+ rpki.left_right.self_elt.make_pdu( action = "get", tag = "self", self_handle = ca.handle),
+ rpki.left_right.bsc_elt.make_pdu( action = "list", tag = "bsc", self_handle = ca.handle),
+ rpki.left_right.repository_elt.make_pdu(action = "list", tag = "repository", self_handle = ca.handle),
+ rpki.left_right.parent_elt.make_pdu( action = "list", tag = "parent", self_handle = ca.handle),
+ rpki.left_right.child_elt.make_pdu( action = "list", tag = "child", self_handle = ca.handle))
- for ca in rpki.irdb.ResourceHolderCA.objects.all():
+ self_pdu = rpkid_reply[0]
+ bsc_pdus = dict((x.bsc_handle, x) for x in rpkid_reply if isinstance(x, rpki.left_right.bsc_elt))
+ repository_pdus = dict((x.repository_handle, x) for x in rpkid_reply if isinstance(x, rpki.left_right.repository_elt))
+ parent_pdus = dict((x.parent_handle, x) for x in rpkid_reply if isinstance(x, rpki.left_right.parent_elt))
+ child_pdus = dict((x.child_handle, x) for x in rpkid_reply if isinstance(x, rpki.left_right.child_elt))
- # See what rpkid and pubd already have on file for this entity.
-
- if self.run_pubd:
- pubd_reply = self.call_pubd(rpki.publication.client_elt.make_pdu(action = "list"))
- client_pdus = dict((x.client_handle, x) for x in pubd_reply if isinstance(x, rpki.publication.client_elt))
-
- rpkid_reply = self.call_rpkid(
- rpki.left_right.self_elt.make_pdu( action = "get", tag = "self", self_handle = ca.handle),
- rpki.left_right.bsc_elt.make_pdu( action = "list", tag = "bsc", self_handle = ca.handle),
- rpki.left_right.repository_elt.make_pdu(action = "list", tag = "repository", self_handle = ca.handle),
- rpki.left_right.parent_elt.make_pdu( action = "list", tag = "parent", self_handle = ca.handle),
- rpki.left_right.child_elt.make_pdu( action = "list", tag = "child", self_handle = ca.handle))
-
- self_pdu = rpkid_reply[0]
- bsc_pdus = dict((x.bsc_handle, x) for x in rpkid_reply if isinstance(x, rpki.left_right.bsc_elt))
- repository_pdus = dict((x.repository_handle, x) for x in rpkid_reply if isinstance(x, rpki.left_right.repository_elt))
- parent_pdus = dict((x.parent_handle, x) for x in rpkid_reply if isinstance(x, rpki.left_right.parent_elt))
- child_pdus = dict((x.child_handle, x) for x in rpkid_reply if isinstance(x, rpki.left_right.child_elt))
-
- pubd_query = []
- rpkid_query = []
-
- self_cert, created = rpki.irdb.HostedCA.objects.get_or_certify(
- issuer = self.server_ca,
- hosted = ca)
-
- # There should be exactly one <self/> object per hosted entity, by definition
-
- if (isinstance(self_pdu, rpki.left_right.report_error_elt) or
- self_pdu.crl_interval != self_crl_interval or
- self_pdu.regen_margin != self_regen_margin or
- self_pdu.bpki_cert != self_cert.certificate):
- rpkid_query.append(rpki.left_right.self_elt.make_pdu(
- action = "create" if isinstance(self_pdu, rpki.left_right.report_error_elt) else "set",
- tag = "self",
- self_handle = ca.handle,
- bpki_cert = ca.certificate,
- crl_interval = self_crl_interval,
- regen_margin = self_regen_margin))
+ rpkid_query = []
+
+ self_cert, created = rpki.irdb.HostedCA.objects.get_or_certify(
+ issuer = self.server_ca,
+ hosted = ca)
+
+ # There should be exactly one <self/> object per hosted entity, by definition
+
+ if (isinstance(self_pdu, rpki.left_right.report_error_elt) or
+ self_pdu.crl_interval != self_crl_interval or
+ self_pdu.regen_margin != self_regen_margin or
+ self_pdu.bpki_cert != self_cert.certificate):
+ rpkid_query.append(rpki.left_right.self_elt.make_pdu(
+ action = "create" if isinstance(self_pdu, rpki.left_right.report_error_elt) else "set",
+ tag = "self",
+ self_handle = ca.handle,
+ bpki_cert = ca.certificate,
+ crl_interval = self_crl_interval,
+ regen_margin = self_regen_margin))
+
+ # In general we only need one <bsc/> per <self/>. BSC objects
+ # are a little unusual in that the keypair and PKCS #10
+ # subelement is generated by rpkid, so complete setup requires
+ # two round trips.
+
+ bsc_pdu = bsc_pdus.pop(bsc_handle, None)
+
+ if bsc_pdu is None:
+ rpkid_query.append(rpki.left_right.bsc_elt.make_pdu(
+ action = "create",
+ tag = "bsc",
+ self_handle = ca.handle,
+ bsc_handle = bsc_handle,
+ generate_keypair = "yes"))
+
+ elif bsc_pdu.pkcs10_request is None:
+ rpkid_query.append(rpki.left_right.bsc_elt.make_pdu(
+ action = "set",
+ tag = "bsc",
+ self_handle = ca.handle,
+ bsc_handle = bsc_handle,
+ generate_keypair = "yes"))
+
+ rpkid_query.extend(rpki.left_right.bsc_elt.make_pdu(
+ action = "destroy", self_handle = ca.handle, bsc_handle = b) for b in bsc_pdus)
- # In general we only need one <bsc/> per <self/>. BSC objects
- # are a little unusual in that the keypair and PKCS #10
- # subelement is generated by rpkid, so complete setup requires
- # two round trips.
+ # If we've already got actions queued up, run them now, so we
+ # can finish setting up the BSC before anything tries to use it.
+ if rpkid_query:
+ rpkid_query.append(rpki.left_right.bsc_elt.make_pdu(action = "list", tag = "bsc", self_handle = ca.handle))
+ rpkid_reply = self.call_rpkid(*rpkid_query)
+ bsc_pdus = dict((x.bsc_handle, x)
+ for x in rpkid_reply
+ if isinstance(x, rpki.left_right.bsc_elt) and x.action == "list")
bsc_pdu = bsc_pdus.pop(bsc_handle, None)
+ self.check_error_report(rpkid_reply)
+
+ rpkid_query = []
- if bsc_pdu is None:
- rpkid_query.append(rpki.left_right.bsc_elt.make_pdu(
- action = "create",
- tag = "bsc",
+ assert bsc_pdu.pkcs10_request is not None
+
+ bsc, created = rpki.irdb.BSC.objects.get_or_certify(
+ issuer = ca,
+ handle = bsc_handle,
+ pkcs10 = bsc_pdu.pkcs10_request)
+
+ if bsc_pdu.signing_cert != bsc.certificate or bsc_pdu.signing_cert_crl != ca.latest_crl:
+ rpkid_query.append(rpki.left_right.bsc_elt.make_pdu(
+ action = "set",
+ tag = "bsc",
+ self_handle = ca.handle,
+ bsc_handle = bsc_handle,
+ signing_cert = bsc.certificate,
+ signing_cert_crl = ca.latest_crl))
+
+ # At present we need one <repository/> per <parent/>, not because
+ # rpkid requires that, but because pubd does. pubd probably should
+ # be fixed to support a single client allowed to update multiple
+ # trees, but for the moment the easiest way forward is just to
+ # enforce a 1:1 mapping between <parent/> and <repository/> objects
+
+ for repository in ca.repositories.all():
+
+ repository_pdu = repository_pdus.pop(repository.handle, None)
+
+ if (repository_pdu is None or
+ repository_pdu.bsc_handle != bsc_handle or
+ repository_pdu.peer_contact_uri != repository.service_uri or
+ repository_pdu.bpki_cert != repository.certificate):
+ rpkid_query.append(rpki.left_right.repository_elt.make_pdu(
+ action = "create" if repository_pdu is None else "set",
+ tag = repository.handle,
self_handle = ca.handle,
+ repository_handle = repository.handle,
bsc_handle = bsc_handle,
- generate_keypair = "yes"))
-
- elif bsc_pdu.pkcs10_request is None:
- rpkid_query.append(rpki.left_right.bsc_elt.make_pdu(
- action = "set",
- tag = "bsc",
+ peer_contact_uri = repository.service_uri,
+ bpki_cert = repository.certificate))
+
+ rpkid_query.extend(rpki.left_right.repository_elt.make_pdu(
+ action = "destroy", self_handle = ca.handle, repository_handle = r) for r in repository_pdus)
+
+ # <parent/> setup code currently assumes 1:1 mapping between
+ # <repository/> and <parent/>, and further assumes that the handles
+ # for an associated pair are the identical (that is:
+ # parent.repository_handle == parent.parent_handle).
+
+ for parent in ca.parents.all():
+
+ parent_pdu = parent_pdus.pop(parent.handle, None)
+
+ if (parent_pdu is None or
+ parent_pdu.bsc_handle != bsc_handle or
+ parent_pdu.repository_handle != parent.handle or
+ parent_pdu.peer_contact_uri != parent.service_uri or
+ parent_pdu.sia_base != parent.repository.sia_base or
+ parent_pdu.sender_name != parent.child_handle or
+ parent_pdu.recipient_name != parent.parent_handle or
+ parent_pdu.bpki_cms_cert != parent.certificate):
+ rpkid_query.append(rpki.left_right.parent_elt.make_pdu(
+ action = "create" if parent_pdu is None else "set",
+ tag = parent.handle,
self_handle = ca.handle,
+ parent_handle = parent.handle,
bsc_handle = bsc_handle,
- generate_keypair = "yes"))
+ repository_handle = parent.handle,
+ peer_contact_uri = parent.service_uri,
+ sia_base = parent.repository.sia_base,
+ sender_name = parent.child_handle,
+ recipient_name = parent.parent_handle,
+ bpki_cms_cert = parent.certificate))
- rpkid_query.extend(rpki.left_right.bsc_elt.make_pdu(
- action = "destroy", self_handle = ca.handle, bsc_handle = b) for b in bsc_pdus)
+ try:
- # If we've already got actions queued up, run them now, so we
- # can finish setting up the BSC before anything tries to use it.
+ parent_pdu = parent_pdus.pop(ca.handle, None)
+
+ if (parent_pdu is None or
+ parent_pdu.bsc_handle != bsc_handle or
+ parent_pdu.repository_handle != ca.handle or
+ parent_pdu.peer_contact_uri != ca.rootd.service_uri or
+ parent_pdu.sia_base != ca.rootd.repository.sia_base or
+ parent_pdu.sender_name != ca.handle or
+ parent_pdu.recipient_name != ca.handle or
+ parent_pdu.bpki_cms_cert != ca.rootd.certificate):
+ rpkid_query.append(rpki.left_right.parent_elt.make_pdu(
+ action = "create" if parent_pdu is None else "set",
+ tag = ca.handle,
+ self_handle = ca.handle,
+ parent_handle = ca.handle,
+ bsc_handle = bsc_handle,
+ repository_handle = ca.handle,
+ peer_contact_uri = ca.rootd.service_uri,
+ sia_base = ca.rootd.repository.sia_base,
+ sender_name = ca.handle,
+ recipient_name = ca.handle,
+ bpki_cms_cert = ca.rootd.certificate))
+
+ except rpki.irdb.Rootd.DoesNotExist:
+ pass
- if rpkid_query:
- rpkid_query.append(rpki.left_right.bsc_elt.make_pdu(action = "list", tag = "bsc", self_handle = ca.handle))
- rpkid_reply = self.call_rpkid(*rpkid_query)
- bsc_pdus = dict((x.bsc_handle, x)
- for x in rpkid_reply
- if isinstance(x, rpki.left_right.bsc_elt) and x.action == "list")
- bsc_pdu = bsc_pdus.pop(bsc_handle, None)
- self.check_error_report(rpkid_reply)
+ rpkid_query.extend(rpki.left_right.parent_elt.make_pdu(
+ action = "destroy", self_handle = ca.handle, parent_handle = p) for p in parent_pdus)
- rpkid_query = []
+ # Children are simpler than parents, because they call us, so no URL
+ # to construct and figuring out what certificate to use is their
+ # problem, not ours.
- assert bsc_pdu.pkcs10_request is not None
+ for child in ca.children.all():
- bsc, created = rpki.irdb.BSC.objects.get_or_certify(
- issuer = ca,
- handle = bsc_handle,
- pkcs10 = bsc_pdu.pkcs10_request)
+ child_pdu = child_pdus.pop(child.handle, None)
- if bsc_pdu.signing_cert != bsc.certificate or bsc_pdu.signing_cert_crl != ca.latest_crl:
- rpkid_query.append(rpki.left_right.bsc_elt.make_pdu(
- action = "set",
- tag = "bsc",
+ if (child_pdu is None or
+ child_pdu.bsc_handle != bsc_handle or
+ child_pdu.bpki_cert != child.certificate):
+ rpkid_query.append(rpki.left_right.child_elt.make_pdu(
+ action = "create" if child_pdu is None else "set",
+ tag = child.handle,
self_handle = ca.handle,
+ child_handle = child.handle,
bsc_handle = bsc_handle,
- signing_cert = bsc.certificate,
- signing_cert_crl = ca.latest_crl))
-
- # At present we need one <repository/> per <parent/>, not because
- # rpkid requires that, but because pubd does. pubd probably should
- # be fixed to support a single client allowed to update multiple
- # trees, but for the moment the easiest way forward is just to
- # enforce a 1:1 mapping between <parent/> and <repository/> objects
-
- for repository in ca.repositories.all():
-
- repository_pdu = repository_pdus.pop(repository.handle, None)
-
- if (repository_pdu is None or
- repository_pdu.bsc_handle != bsc_handle or
- repository_pdu.peer_contact_uri != repository.service_uri or
- repository_pdu.bpki_cert != repository.certificate):
- rpkid_query.append(rpki.left_right.repository_elt.make_pdu(
- action = "create" if repository_pdu is None else "set",
- tag = repository.handle,
- self_handle = ca.handle,
- repository_handle = repository.handle,
- bsc_handle = bsc_handle,
- peer_contact_uri = repository.service_uri,
- bpki_cert = repository.certificate))
-
- rpkid_query.extend(rpki.left_right.repository_elt.make_pdu(
- action = "destroy", self_handle = ca.handle, repository_handle = r) for r in repository_pdus)
-
- # <parent/> setup code currently assumes 1:1 mapping between
- # <repository/> and <parent/>, and further assumes that the handles
- # for an associated pair are the identical (that is:
- # parent.repository_handle == parent.parent_handle).
-
- for parent in ca.parents.all():
-
- parent_pdu = parent_pdus.pop(parent.handle, None)
-
- if (parent_pdu is None or
- parent_pdu.bsc_handle != bsc_handle or
- parent_pdu.repository_handle != parent.handle or
- parent_pdu.peer_contact_uri != parent.service_uri or
- parent_pdu.sia_base != parent.repository.sia_base or
- parent_pdu.sender_name != parent.child_handle or
- parent_pdu.recipient_name != parent.parent_handle or
- parent_pdu.bpki_cms_cert != parent.certificate):
- rpkid_query.append(rpki.left_right.parent_elt.make_pdu(
- action = "create" if parent_pdu is None else "set",
- tag = parent.handle,
- self_handle = ca.handle,
- parent_handle = parent.handle,
- bsc_handle = bsc_handle,
- repository_handle = parent.handle,
- peer_contact_uri = parent.service_uri,
- sia_base = parent.repository.sia_base,
- sender_name = parent.child_handle,
- recipient_name = parent.parent_handle,
- bpki_cms_cert = parent.certificate))
+ bpki_cert = child.certificate))
- try:
+ rpkid_query.extend(rpki.left_right.child_elt.make_pdu(
+ action = "destroy", self_handle = ca.handle, child_handle = c) for c in child_pdus)
+
+ # If caller wants us to poke rpkid, add that to the very end of the message
+
+ if poke:
+ rpkid_query.append(rpki.left_right.self_elt.make_pdu(
+ action = "set", self_handle = ca.handle, run_now = "yes"))
+
+ # If we changed anything, ship updates off to rpkid
+
+ if rpkid_query:
+ rpkid_reply = self.call_rpkid(*rpkid_query)
+ bsc_pdus = dict((x.bsc_handle, x) for x in rpkid_reply if isinstance(x, rpki.left_right.bsc_elt))
+ if bsc_handle in bsc_pdus and bsc_pdus[bsc_handle].pkcs10_request:
+ bsc_req = bsc_pdus[bsc_handle].pkcs10_request
+ self.check_error_report(rpkid_reply)
- parent_pdu = parent_pdus.pop(ca.handle, None)
-
- if (parent_pdu is None or
- parent_pdu.bsc_handle != bsc_handle or
- parent_pdu.repository_handle != ca.handle or
- parent_pdu.peer_contact_uri != ca.rootd.service_uri or
- parent_pdu.sia_base != ca.rootd.repository.sia_base or
- parent_pdu.sender_name != ca.handle or
- parent_pdu.recipient_name != ca.handle or
- parent_pdu.bpki_cms_cert != ca.rootd.certificate):
- rpkid_query.append(rpki.left_right.parent_elt.make_pdu(
- action = "create" if parent_pdu is None else "set",
- tag = ca.handle,
- self_handle = ca.handle,
- parent_handle = ca.handle,
- bsc_handle = bsc_handle,
- repository_handle = ca.handle,
- peer_contact_uri = ca.rootd.service_uri,
- sia_base = ca.rootd.repository.sia_base,
- sender_name = ca.handle,
- recipient_name = ca.handle,
- bpki_cms_cert = ca.rootd.certificate))
-
- except rpki.irdb.Rootd.DoesNotExist:
- pass
- rpkid_query.extend(rpki.left_right.parent_elt.make_pdu(
- action = "destroy", self_handle = ca.handle, parent_handle = p) for p in parent_pdus)
+ def synchronize_pubd_core(self):
+ """
+ Configure pubd with data built up by the other commands in this
+ program. This is the core synchronization code. Don't call this
+ directly, instead call a methods that calls this inside a Django
+ commit wrapper.
- # Children are simpler than parents, because they call us, so no URL
- # to construct and figuring out what certificate to use is their
- # problem, not ours.
+ This method configures pubd with data built up by the other
+ commands in this program. Commands which modify IRDB fields
+ related to pubd should call this when they're done.
+ """
- for child in ca.children.all():
+ # If we're not running pubd, the rest of this is a waste of time
- child_pdu = child_pdus.pop(child.handle, None)
+ if not self.run_pubd:
+ return
+
+ # Make sure that pubd's BPKI CRL is up to date.
- if (child_pdu is None or
- child_pdu.bsc_handle != bsc_handle or
- child_pdu.bpki_cert != child.certificate):
- rpkid_query.append(rpki.left_right.child_elt.make_pdu(
- action = "create" if child_pdu is None else "set",
- tag = child.handle,
- self_handle = ca.handle,
- child_handle = child.handle,
- bsc_handle = bsc_handle,
- bpki_cert = child.certificate))
+ self.call_pubd(rpki.publication.config_elt.make_pdu(
+ action = "set",
+ bpki_crl = self.server_ca.latest_crl))
- rpkid_query.extend(rpki.left_right.child_elt.make_pdu(
- action = "destroy", self_handle = ca.handle, child_handle = c) for c in child_pdus)
+ # See what pubd already has on file
- # Publication setup.
+ pubd_reply = self.call_pubd(rpki.publication.client_elt.make_pdu(action = "list"))
+ client_pdus = dict((x.client_handle, x) for x in pubd_reply if isinstance(x, rpki.publication.client_elt))
+ pubd_query = []
- # Um, why are we doing this per resource holder?
+ # Check all clients
- if self.run_pubd:
+ for client in self.server_ca.clients.all():
- for client in self.server_ca.clients.all():
+ client_pdu = client_pdus.pop(client.handle, None)
- client_pdu = client_pdus.pop(client.handle, None)
+ if (client_pdu is None or
+ client_pdu.base_uri != client.sia_base or
+ client_pdu.bpki_cert != client.certificate):
+ pubd_query.append(rpki.publication.client_elt.make_pdu(
+ action = "create" if client_pdu is None else "set",
+ client_handle = client.handle,
+ bpki_cert = client.certificate,
+ base_uri = client.sia_base))
- if (client_pdu is None or
- client_pdu.base_uri != client.sia_base or
- client_pdu.bpki_cert != client.certificate):
- pubd_query.append(rpki.publication.client_elt.make_pdu(
- action = "create" if client_pdu is None else "set",
- client_handle = client.handle,
- bpki_cert = client.certificate,
- base_uri = client.sia_base))
+ # Delete any unknown clients
- pubd_query.extend(rpki.publication.client_elt.make_pdu(
+ pubd_query.extend(rpki.publication.client_elt.make_pdu(
action = "destroy", client_handle = p) for p in client_pdus)
- # If we changed anything, ship updates off to daemons
+ # If we changed anything, ship updates off to pubd
- if rpkid_query:
- rpkid_reply = self.call_rpkid(*rpkid_query)
- bsc_pdus = dict((x.bsc_handle, x) for x in rpkid_reply if isinstance(x, rpki.left_right.bsc_elt))
- if bsc_handle in bsc_pdus and bsc_pdus[bsc_handle].pkcs10_request:
- bsc_req = bsc_pdus[bsc_handle].pkcs10_request
- self.check_error_report(rpkid_reply)
+ if pubd_query:
+ pubd_reply = self.call_pubd(*pubd_query)
+ self.check_error_report(pubd_reply)
- if pubd_query:
- assert self.run_pubd
- pubd_reply = self.call_pubd(*pubd_query)
- self.check_error_report(pubd_reply)
- # Clean up any <self/> objects rpkid might be holding that don't
- # match a ResourceCA object.
+ def synchronize_rpkid_deleted_core(self):
+ """
+ Remove any <self/> objects present in rpkid's database but not
+ present in the IRDB. This is the core synchronization code.
+ Don't call this directly, instead call a methods that calls this
+ inside a Django commit wrapper.
+ """
rpkid_reply = self.call_rpkid(rpki.left_right.self_elt.make_pdu(action = "list"))
self.check_error_report(rpkid_reply)
@@ -1345,11 +1431,6 @@ class Zookeeper(object):
rpkid_query = [rpki.left_right.self_elt.make_pdu(action = "destroy", self_handle = handle)
for handle in (self_handles - ca_handles)]
- # Poke rpkid to run immediately for any requested handles.
-
- rpkid_query.extend(rpki.left_right.self_elt.make_pdu(
- action = "set", self_handle = h, run_now = "yes") for h in handles_to_poke)
-
if rpkid_query:
rpkid_reply = self.call_rpkid(*rpkid_query)
self.check_error_report(rpkid_reply)
diff --git a/rpkid/rpki/irdbd.py b/rpkid/rpki/irdbd.py
index 592ad799..dafdaff9 100644
--- a/rpkid/rpki/irdbd.py
+++ b/rpkid/rpki/irdbd.py
@@ -42,7 +42,6 @@ import os
import time
import getopt
import urlparse
-import warnings
import rpki.http
import rpki.config
import rpki.resource_set
@@ -105,6 +104,8 @@ class main(object):
try:
q_pdu = None
r_msg = rpki.left_right.msg.reply()
+ from django.db import connection
+ connection.cursor() # Reconnect to mysqld if necessary
self.start_new_transaction()
serverCA = rpki.irdb.ServerCA.objects.get()
rpkid = serverCA.ee_certificates.get(purpose = "rpkid")
@@ -142,7 +143,7 @@ class main(object):
def __init__(self, **kwargs):
- global rpki
+ global rpki # pylint: disable=W0602
os.environ["TZ"] = "UTC"
time.tzset()
@@ -190,7 +191,7 @@ class main(object):
def main(self):
- global rpki
+ global rpki # pylint: disable=W0602
from django.conf import settings
startup_msg = self.cfg.get("startup-message", "")
@@ -218,8 +219,8 @@ class main(object):
"PORT" : "" }},
INSTALLED_APPS = ("rpki.irdb",),)
- import rpki.irdb
-
+ import rpki.irdb # pylint: disable=W0621
+
# Entirely too much fun with read-only access to transactional databases.
#
# http://stackoverflow.com/questions/3346124/how-do-i-force-django-to-ignore-any-caches-and-reload-data
diff --git a/rpkid/rpki/left_right.py b/rpkid/rpki/left_right.py
index b74b12b5..a7dca013 100644
--- a/rpkid/rpki/left_right.py
+++ b/rpkid/rpki/left_right.py
@@ -3,7 +3,7 @@ RPKI "left-right" protocol.
$Id$
-Copyright (C) 2009--2011 Internet Systems Consortium ("ISC")
+Copyright (C) 2009--2012 Internet Systems Consortium ("ISC")
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
@@ -32,24 +32,25 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
"""
-import rpki.resource_set, rpki.x509, rpki.sql, rpki.exceptions, rpki.xml_utils
-import rpki.http, rpki.up_down, rpki.relaxng, rpki.sundial, rpki.log, rpki.roa
-import rpki.publication, rpki.async
+import rpki.resource_set
+import rpki.x509
+import rpki.sql
+import rpki.exceptions
+import rpki.xml_utils
+import rpki.http
+import rpki.up_down
+import rpki.relaxng
+import rpki.sundial
+import rpki.log
+import rpki.publication
+import rpki.async
+import rpki.rpkid_tasks
## @var enforce_strict_up_down_xml_sender
# Enforce strict checking of XML "sender" field in up-down protocol
enforce_strict_up_down_xml_sender = False
-## @var max_new_roas_at_once
-# Upper limit on the number of ROAs we'll create in a single
-# self_elt.update_roas() call. This is a bit of a kludge, and may be
-# replaced with something more clever or general later; for the moment
-# the goal is to avoid going totally compute bound when somebody
-# throws 50,000 new ROA requests at us in a single batch.
-
-max_new_roas_at_once = 50
-
class left_right_namespace(object):
"""
XML namespace parameters for left-right protocol.
@@ -69,6 +70,7 @@ class data_elt(rpki.xml_utils.data_elt, rpki.sql.sql_persistent, left_right_name
self_handle = None
@property
+ @rpki.sql.cache_reference
def self(self):
"""
Fetch self object to which this object links.
@@ -76,6 +78,7 @@ class data_elt(rpki.xml_utils.data_elt, rpki.sql.sql_persistent, left_right_name
return self_elt.sql_fetch(self.gctx, self.self_id)
@property
+ @rpki.sql.cache_reference
def bsc(self):
"""
Return BSC object to which this object links.
@@ -149,9 +152,16 @@ class self_elt(data_elt):
booleans = ("rekey", "reissue", "revoke", "run_now", "publish_world_now", "revoke_forgotten",
"clear_replay_protection")
- sql_template = rpki.sql.template("self", "self_id", "self_handle",
- "use_hsm", "crl_interval", "regen_margin",
- ("bpki_cert", rpki.x509.X509), ("bpki_glue", rpki.x509.X509))
+ sql_template = rpki.sql.template(
+ "self",
+ "self_id",
+ "self_handle",
+ "use_hsm",
+ "crl_interval",
+ "regen_margin",
+ ("bpki_cert", rpki.x509.X509),
+ ("bpki_glue", rpki.x509.X509))
+
handles = ()
use_hsm = False
@@ -159,6 +169,10 @@ class self_elt(data_elt):
regen_margin = None
bpki_cert = None
bpki_glue = None
+ cron_tasks = None
+
+ def __repr__(self):
+ return rpki.log.log_repr(self)
@property
def bscs(self):
@@ -306,11 +320,16 @@ class self_elt(data_elt):
for ca in parent.cas:
ca_detail = ca.active_ca_detail
if ca_detail is not None:
- q_msg.append(rpki.publication.crl_elt.make_publish(ca_detail.crl_uri, ca_detail.latest_crl))
- q_msg.append(rpki.publication.manifest_elt.make_publish(ca_detail.manifest_uri, ca_detail.latest_manifest))
- q_msg.extend(rpki.publication.certificate_elt.make_publish(c.uri, c.cert) for c in ca_detail.child_certs)
- q_msg.extend(rpki.publication.roa_elt.make_publish(r.uri, r.roa) for r in ca_detail.roas if r.roa is not None)
- q_msg.extend(rpki.publication.ghostbuster_elt.make_publish(g.uri, g.ghostbuster) for g in ca_detail.ghostbusters)
+ q_msg.append(rpki.publication.crl_elt.make_publish(
+ ca_detail.crl_uri, ca_detail.latest_crl))
+ q_msg.append(rpki.publication.manifest_elt.make_publish(
+ ca_detail.manifest_uri, ca_detail.latest_manifest))
+ q_msg.extend(rpki.publication.certificate_elt.make_publish(
+ c.uri, c.cert) for c in ca_detail.child_certs)
+ q_msg.extend(rpki.publication.roa_elt.make_publish(
+ r.uri, r.roa) for r in ca_detail.roas if r.roa is not None)
+ q_msg.extend(rpki.publication.ghostbuster_elt.make_publish(
+ g.uri, g.ghostbuster) for g in ca_detail.ghostbusters)
parent.repository.call_pubd(iterator, eb, q_msg)
rpki.async.iterator(self.parents, loop, cb)
@@ -319,8 +338,12 @@ class self_elt(data_elt):
"""
Handle a left-right run_now action for this self.
"""
- rpki.log.debug("Forced immediate run of periodic actions for self %s[%d]" % (self.self_handle, self.self_id))
- self.cron(cb)
+ rpki.log.debug("Forced immediate run of periodic actions for self %s[%d]" % (
+ self.self_handle, self.self_id))
+ completion = rpki.rpkid_tasks.CompletionHandler(cb)
+ self.schedule_cron_tasks(completion)
+ assert completion.count > 0
+ self.gctx.task_run()
def serve_fetch_one_maybe(self):
"""
@@ -344,415 +367,22 @@ class self_elt(data_elt):
"""
return self.sql_fetch_all(self.gctx)
- def cron(self, cb):
- """
- Periodic tasks.
- """
-
- def one():
- self.gctx.checkpoint()
- rpki.log.debug("Self %s[%d] polling parents" % (self.self_handle, self.self_id))
- self.client_poll(two)
-
- def two():
- self.gctx.checkpoint()
- rpki.log.debug("Self %s[%d] updating children" % (self.self_handle, self.self_id))
- self.update_children(three)
-
- def three():
- self.gctx.checkpoint()
- rpki.log.debug("Self %s[%d] updating ROAs" % (self.self_handle, self.self_id))
- self.update_roas(four)
-
- def four():
- self.gctx.checkpoint()
- rpki.log.debug("Self %s[%d] updating Ghostbuster records" % (self.self_handle, self.self_id))
- self.update_ghostbusters(five)
-
- def five():
- self.gctx.checkpoint()
- rpki.log.debug("Self %s[%d] regenerating CRLs and manifests" % (self.self_handle, self.self_id))
- self.regenerate_crls_and_manifests(six)
-
- def six():
- self.gctx.checkpoint()
- self.gctx.sql.sweep()
- self.gctx.sql.cache_clear_maybe()
- cb()
-
- one()
-
-
- def client_poll(self, callback):
- """
- Run the regular client poll cycle with each of this self's parents
- in turn.
- """
-
- rpki.log.trace()
-
- def parent_loop(parent_iterator, parent):
-
- def got_list(r_msg):
- ca_map = dict((ca.parent_resource_class, ca) for ca in parent.cas)
- self.gctx.checkpoint()
-
- def class_loop(class_iterator, rc):
-
- def class_update_failed(e):
- rpki.log.traceback()
- rpki.log.warn("Couldn't update class, skipping: %s" % e)
- class_iterator()
-
- def class_create_failed(e):
- rpki.log.traceback()
- rpki.log.warn("Couldn't create class, skipping: %s" % e)
- class_iterator()
-
- self.gctx.checkpoint()
- if rc.class_name in ca_map:
- ca = ca_map[rc.class_name]
- del ca_map[rc.class_name]
- ca.check_for_updates(parent, rc, class_iterator, class_update_failed)
- else:
- rpki.rpkid.ca_obj.create(parent, rc, class_iterator, class_create_failed)
-
- def class_done():
-
- def ca_loop(iterator, ca):
- self.gctx.checkpoint()
- ca.delete(parent, iterator)
-
- def ca_done():
- self.gctx.checkpoint()
- self.gctx.sql.sweep()
- parent_iterator()
-
- rpki.async.iterator(ca_map.values(), ca_loop, ca_done)
-
- rpki.async.iterator(r_msg.payload.classes, class_loop, class_done)
-
- def list_failed(e):
- rpki.log.traceback()
- rpki.log.warn("Couldn't get resource class list from parent %r, skipping: %s (%r)" % (parent, e, e))
- parent_iterator()
-
- rpki.up_down.list_pdu.query(parent, got_list, list_failed)
-
- rpki.async.iterator(self.parents, parent_loop, callback)
-
-
- def update_children(self, cb):
- """
- Check for updated IRDB data for all of this self's children and
- issue new certs as necessary. Must handle changes both in
- resources and in expiration date.
- """
-
- rpki.log.trace()
- now = rpki.sundial.now()
- rsn = now + rpki.sundial.timedelta(seconds = self.regen_margin)
- publisher = rpki.rpkid.publication_queue()
-
- def loop(iterator, child):
-
- def lose(e):
- rpki.log.traceback()
- rpki.log.warn("Couldn't update child %r, skipping: %s" % (child, e))
- iterator()
-
- def got_resources(irdb_resources):
- try:
- for child_cert in child_certs:
- ca_detail = child_cert.ca_detail
- ca = ca_detail.ca
- if ca_detail.state == "active":
- old_resources = child_cert.cert.get_3779resources()
- new_resources = irdb_resources.intersection(old_resources).intersection(ca_detail.latest_ca_cert.get_3779resources())
-
- if new_resources.empty():
- rpki.log.debug("Resources shrank to the null set, revoking and withdrawing child %s certificate SKI %s" % (child.child_handle, child_cert.cert.gSKI()))
- child_cert.revoke(publisher = publisher)
- ca_detail.generate_crl(publisher = publisher)
- ca_detail.generate_manifest(publisher = publisher)
-
- elif old_resources != new_resources or (old_resources.valid_until < rsn and irdb_resources.valid_until > now):
- rpki.log.debug("Need to reissue child %s certificate SKI %s" % (child.child_handle, child_cert.cert.gSKI()))
- child_cert.reissue(
- ca_detail = ca_detail,
- resources = new_resources,
- publisher = publisher)
-
- elif old_resources.valid_until < now:
- rpki.log.debug("Child %s certificate SKI %s has expired: cert.valid_until %s, irdb.valid_until %s"
- % (child.child_handle, child_cert.cert.gSKI(), old_resources.valid_until, irdb_resources.valid_until))
- child_cert.sql_delete()
- publisher.withdraw(cls = rpki.publication.certificate_elt, uri = child_cert.uri, obj = child_cert.cert, repository = ca.parent.repository)
- ca_detail.generate_manifest(publisher = publisher)
-
- except (SystemExit, rpki.async.ExitNow):
- raise
- except Exception, e:
- self.gctx.checkpoint()
- lose(e)
- else:
- self.gctx.checkpoint()
- self.gctx.sql.sweep()
- iterator()
-
- self.gctx.checkpoint()
- self.gctx.sql.sweep()
- child_certs = child.child_certs
- if child_certs:
- self.gctx.irdb_query_child_resources(child.self.self_handle, child.child_handle, got_resources, lose)
- else:
- iterator()
-
- def done():
- def lose(e):
- rpki.log.traceback()
- rpki.log.warn("Couldn't publish for %s, skipping: %s" % (self.self_handle, e))
- self.gctx.checkpoint()
- cb()
- self.gctx.checkpoint()
- self.gctx.sql.sweep()
- publisher.call_pubd(cb, lose)
-
- rpki.async.iterator(self.children, loop, done)
-
-
- def regenerate_crls_and_manifests(self, cb):
- """
- Generate new CRLs and manifests as necessary for all of this
- self's CAs. Extracting nextUpdate from a manifest is hard at the
- moment due to implementation silliness, so for now we generate a
- new manifest whenever we generate a new CRL
-
- This method also cleans up tombstones left behind by revoked
- ca_detail objects, since we're walking through the relevant
- portions of the database anyway.
+ def schedule_cron_tasks(self, completion):
"""
-
- rpki.log.trace()
- now = rpki.sundial.now()
- regen_margin = rpki.sundial.timedelta(seconds = self.regen_margin)
- publisher = rpki.rpkid.publication_queue()
-
- for parent in self.parents:
- for ca in parent.cas:
- try:
- for ca_detail in ca.revoked_ca_details:
- if now > ca_detail.latest_crl.getNextUpdate():
- ca_detail.delete(ca = ca, publisher = publisher)
- ca_detail = ca.active_ca_detail
- if ca_detail is not None and now + regen_margin > ca_detail.latest_crl.getNextUpdate():
- ca_detail.generate_crl(publisher = publisher)
- ca_detail.generate_manifest(publisher = publisher)
- except (SystemExit, rpki.async.ExitNow):
- raise
- except Exception, e:
- rpki.log.traceback()
- rpki.log.warn("Couldn't regenerate CRLs and manifests for CA %r, skipping: %s" % (ca, e))
-
- def lose(e):
- rpki.log.traceback()
- rpki.log.warn("Couldn't publish updated CRLs and manifests for self %r, skipping: %s" % (self.self_handle, e))
- self.gctx.checkpoint()
- cb()
-
- self.gctx.checkpoint()
- self.gctx.sql.sweep()
- publisher.call_pubd(cb, lose)
-
-
- def update_ghostbusters(self, cb):
+ Schedule periodic tasks.
"""
- Generate or update Ghostbuster records for this self.
- This is heavily based on .update_roas(), and probably both of them
- need refactoring.
- """
-
- parents = dict((p.parent_handle, p) for p in self.parents)
-
- def got_ghostbuster_requests(ghostbuster_requests):
+ if self.cron_tasks is None:
+ self.cron_tasks = (
+ rpki.rpkid_tasks.PollParentTask(self),
+ rpki.rpkid_tasks.UpdateChildrenTask(self),
+ rpki.rpkid_tasks.UpdateROAsTask(self),
+ rpki.rpkid_tasks.UpdateGhostbustersTask(self),
+ rpki.rpkid_tasks.RegenerateCRLsAndManifestsTask(self))
- try:
- self.gctx.checkpoint()
- if self.gctx.sql.dirty:
- rpki.log.warn("Unexpected dirty SQL cache, flushing")
- self.gctx.sql.sweep()
-
- ghostbusters = {}
- orphans = []
- for ghostbuster in self.ghostbusters:
- k = (ghostbuster.ca_detail_id, ghostbuster.vcard)
- if ghostbuster.ca_detail.state != "active" or k in ghostbusters:
- orphans.append(ghostbuster)
- else:
- ghostbusters[k] = ghostbuster
-
- publisher = rpki.rpkid.publication_queue()
- ca_details = set()
-
- seen = set()
- for ghostbuster_request in ghostbuster_requests:
- if ghostbuster_request.parent_handle not in parents:
- rpki.log.warn("Unknown parent_handle %r in Ghostbuster request, skipping" % ghostbuster_request.parent_handle)
- continue
- k = (ghostbuster_request.parent_handle, ghostbuster_request.vcard)
- if k in seen:
- rpki.log.warn("Skipping duplicate Ghostbuster request %r" % ghostbuster_request)
- continue
- seen.add(k)
- for ca in parents[ghostbuster_request.parent_handle].cas:
- ca_detail = ca.active_ca_detail
- if ca_detail is not None:
- ghostbuster = ghostbusters.pop((ca_detail.ca_detail_id, ghostbuster_request.vcard), None)
- if ghostbuster is None:
- ghostbuster = rpki.rpkid.ghostbuster_obj(self.gctx, self.self_id, ca_detail.ca_detail_id, ghostbuster_request.vcard)
- rpki.log.debug("Created new Ghostbuster request for %r" % ghostbuster_request.parent_handle)
- else:
- rpki.log.debug("Found existing Ghostbuster request for %r" % ghostbuster_request.parent_handle)
- ghostbuster.update(publisher = publisher, fast = True)
- ca_details.add(ca_detail)
-
- orphans.extend(ghostbusters.itervalues())
- for ghostbuster in orphans:
- ca_details.add(ghostbuster.ca_detail)
- ghostbuster.revoke(publisher = publisher, fast = True)
-
- for ca_detail in ca_details:
- ca_detail.generate_crl(publisher = publisher)
- ca_detail.generate_manifest(publisher = publisher)
-
- self.gctx.sql.sweep()
-
- def publication_failed(e):
- rpki.log.traceback()
- rpki.log.warn("Couldn't publish Ghostbuster updates for %s, skipping: %s" % (self.self_handle, e))
- self.gctx.checkpoint()
- cb()
-
- self.gctx.checkpoint()
- publisher.call_pubd(cb, publication_failed)
-
- except (SystemExit, rpki.async.ExitNow):
- raise
- except Exception, e:
- rpki.log.traceback()
- rpki.log.warn("Could not update Ghostbuster records for %s, skipping: %s" % (self.self_handle, e))
- cb()
-
- def ghostbuster_requests_failed(e):
- rpki.log.traceback()
- rpki.log.warn("Could not fetch Ghostbuster record requests for %s, skipping: %s" % (self.self_handle, e))
- cb()
-
- self.gctx.checkpoint()
- self.gctx.sql.sweep()
- self.gctx.irdb_query_ghostbuster_requests(self.self_handle, parents.iterkeys(),
- got_ghostbuster_requests, ghostbuster_requests_failed)
-
-
- def update_roas(self, cb):
- """
- Generate or update ROAs for this self.
- """
-
- def got_roa_requests(roa_requests):
-
- self.gctx.checkpoint()
-
- if self.gctx.sql.dirty:
- rpki.log.warn("Unexpected dirty SQL cache, flushing")
- self.gctx.sql.sweep()
-
- roas = {}
- orphans = []
- for roa in self.roas:
- k = (roa.asn, str(roa.ipv4), str(roa.ipv6))
- if k not in roas:
- roas[k] = roa
- elif (roa.roa is not None and roa.cert is not None and roa.ca_detail is not None and roa.ca_detail.state == "active" and
- (roas[k].roa is None or roas[k].cert is None or roas[k].ca_detail is None or roas[k].ca_detail.state != "active")):
- orphans.append(roas[k])
- roas[k] = roa
- else:
- orphans.append(roa)
-
- publisher = rpki.rpkid.publication_queue()
- ca_details = set()
- seen = set()
-
- def loop(iterator, roa_request):
- self.gctx.checkpoint()
- try:
- k = (roa_request.asn, str(roa_request.ipv4), str(roa_request.ipv6))
- if k in seen:
- rpki.log.warn("Skipping duplicate ROA request %r" % roa_request)
- else:
- seen.add(k)
- roa = roas.pop(k, None)
- if roa is None:
- roa = rpki.rpkid.roa_obj(self.gctx, self.self_id, roa_request.asn, roa_request.ipv4, roa_request.ipv6)
- rpki.log.debug("Couldn't find existing ROA, created %r" % roa)
- else:
- rpki.log.debug("Found existing %r" % roa)
- roa.update(publisher = publisher, fast = True)
- ca_details.add(roa.ca_detail)
- except (SystemExit, rpki.async.ExitNow):
- raise
- except Exception, e:
- if not isinstance(e, rpki.exceptions.NoCoveringCertForROA):
- rpki.log.traceback()
- rpki.log.warn("Could not update %r, skipping: %s" % (roa, e))
- if max_new_roas_at_once is not None and publisher.size > max_new_roas_at_once:
- self.gctx.sql.sweep()
- self.gctx.checkpoint()
- publisher.call_pubd(iterator, publication_failed)
- else:
- iterator()
-
- def publication_failed(e):
- rpki.log.traceback()
- rpki.log.warn("Couldn't publish for %s, skipping: %s" % (self.self_handle, e))
- self.gctx.checkpoint()
- cb()
-
- def done():
-
- orphans.extend(roas.itervalues())
- for roa in orphans:
- try:
- ca_details.add(roa.ca_detail)
- roa.revoke(publisher = publisher, fast = True)
- except (SystemExit, rpki.async.ExitNow):
- raise
- except Exception, e:
- rpki.log.traceback()
- rpki.log.warn("Could not revoke %r: %s" % (roa, e))
-
- self.gctx.sql.sweep()
-
- for ca_detail in ca_details:
- ca_detail.generate_crl(publisher = publisher)
- ca_detail.generate_manifest(publisher = publisher)
-
- self.gctx.sql.sweep()
- self.gctx.checkpoint()
- publisher.call_pubd(cb, publication_failed)
-
- rpki.async.iterator(roa_requests, loop, done)
-
- def roa_requests_failed(e):
- rpki.log.traceback()
- rpki.log.warn("Could not fetch ROA requests for %s, skipping: %s" % (self.self_handle, e))
- cb()
-
- self.gctx.checkpoint()
- self.gctx.sql.sweep()
- self.gctx.irdb_query_roa_requests(self.self_handle, got_roa_requests, roa_requests_failed)
+ for task in self.cron_tasks:
+ self.gctx.task_add(task)
+ completion.register(task)
class bsc_elt(data_elt):
@@ -765,12 +395,17 @@ class bsc_elt(data_elt):
elements = ("signing_cert", "signing_cert_crl", "pkcs10_request")
booleans = ("generate_keypair",)
- sql_template = rpki.sql.template("bsc", "bsc_id", "bsc_handle",
- "self_id", "hash_alg",
- ("private_key_id", rpki.x509.RSA),
- ("pkcs10_request", rpki.x509.PKCS10),
- ("signing_cert", rpki.x509.X509),
- ("signing_cert_crl", rpki.x509.CRL))
+ sql_template = rpki.sql.template(
+ "bsc",
+ "bsc_id",
+ "bsc_handle",
+ "self_id",
+ "hash_alg",
+ ("private_key_id", rpki.x509.RSA),
+ ("pkcs10_request", rpki.x509.PKCS10),
+ ("signing_cert", rpki.x509.X509),
+ ("signing_cert_crl", rpki.x509.CRL))
+
handles = (("self", self_elt),)
private_key_id = None
@@ -778,6 +413,9 @@ class bsc_elt(data_elt):
signing_cert = None
signing_cert_crl = None
+ def __repr__(self):
+ return rpki.log.log_repr(self, self.bsc_handle)
+
@property
def repositories(self):
"""
@@ -807,7 +445,7 @@ class bsc_elt(data_elt):
if q_pdu.generate_keypair:
assert q_pdu.key_type in (None, "rsa") and q_pdu.hash_alg in (None, "sha256")
self.private_key_id = rpki.x509.RSA.generate(keylength = q_pdu.key_length or 2048)
- self.pkcs10_request = rpki.x509.PKCS10.create(self.private_key_id)
+ self.pkcs10_request = rpki.x509.PKCS10.create(keypair = self.private_key_id)
r_pdu.pkcs10_request = self.pkcs10_request
data_elt.serve_pre_save_hook(self, q_pdu, r_pdu, cb, eb)
@@ -821,18 +459,27 @@ class repository_elt(data_elt):
elements = ("bpki_cert", "bpki_glue")
booleans = ("clear_replay_protection",)
- sql_template = rpki.sql.template("repository", "repository_id", "repository_handle",
- "self_id", "bsc_id", "peer_contact_uri",
- ("bpki_cert", rpki.x509.X509),
- ("bpki_glue", rpki.x509.X509),
- ("last_cms_timestamp", rpki.sundial.datetime))
+ sql_template = rpki.sql.template(
+ "repository",
+ "repository_id",
+ "repository_handle",
+ "self_id",
+ "bsc_id",
+ "peer_contact_uri",
+ ("bpki_cert", rpki.x509.X509),
+ ("bpki_glue", rpki.x509.X509),
+ ("last_cms_timestamp", rpki.sundial.datetime))
- handles = (("self", self_elt), ("bsc", bsc_elt))
+ handles = (("self", self_elt),
+ ("bsc", bsc_elt))
bpki_cert = None
bpki_glue = None
last_cms_timestamp = None
+ def __repr__(self):
+ return rpki.log.log_repr(self, self.repository_handle)
+
@property
def parents(self):
"""
@@ -900,12 +547,14 @@ class repository_elt(data_elt):
def done(r_der):
try:
+ rpki.log.debug("Received response from pubd")
r_cms = rpki.publication.cms_msg(DER = r_der)
r_msg = r_cms.unwrap(bpki_ta_path)
r_cms.check_replay_sql(self)
for r_pdu in r_msg:
handler = handlers.get(r_pdu.tag, self.default_pubd_handler)
if handler:
+ rpki.log.debug("Calling pubd handler %r" % handler)
handler(r_pdu)
if len(q_msg) != len(r_msg):
raise rpki.exceptions.BadPublicationReply, "Wrong number of response PDUs from pubd: sent %r, got %r" % (q_msg, r_msg)
@@ -915,6 +564,7 @@ class repository_elt(data_elt):
except Exception, e:
errback(e)
+ rpki.log.debug("Sending request to pubd")
rpki.http.client(
url = self.peer_contact_uri,
msg = q_der,
@@ -937,21 +587,34 @@ class parent_elt(data_elt):
elements = ("bpki_cms_cert", "bpki_cms_glue")
booleans = ("rekey", "reissue", "revoke", "revoke_forgotten", "clear_replay_protection")
- sql_template = rpki.sql.template("parent", "parent_id", "parent_handle",
- "self_id", "bsc_id", "repository_id",
- "peer_contact_uri", "sia_base",
- "sender_name", "recipient_name",
- ("bpki_cms_cert", rpki.x509.X509),
- ("bpki_cms_glue", rpki.x509.X509),
- ("last_cms_timestamp", rpki.sundial.datetime))
-
- handles = (("self", self_elt), ("bsc", bsc_elt), ("repository", repository_elt))
+ sql_template = rpki.sql.template(
+ "parent",
+ "parent_id",
+ "parent_handle",
+ "self_id",
+ "bsc_id",
+ "repository_id",
+ "peer_contact_uri",
+ "sia_base",
+ "sender_name",
+ "recipient_name",
+ ("bpki_cms_cert", rpki.x509.X509),
+ ("bpki_cms_glue", rpki.x509.X509),
+ ("last_cms_timestamp", rpki.sundial.datetime))
+
+ handles = (("self", self_elt),
+ ("bsc", bsc_elt),
+ ("repository", repository_elt))
bpki_cms_cert = None
bpki_cms_glue = None
last_cms_timestamp = None
+ def __repr__(self):
+ return rpki.log.log_repr(self, self.parent_handle)
+
@property
+ @rpki.sql.cache_reference
def repository(self):
"""
Fetch repository object to which this parent object links.
@@ -1170,18 +833,26 @@ class child_elt(data_elt):
elements = ("bpki_cert", "bpki_glue")
booleans = ("reissue", "clear_replay_protection")
- sql_template = rpki.sql.template("child", "child_id", "child_handle",
- "self_id", "bsc_id",
- ("bpki_cert", rpki.x509.X509),
- ("bpki_glue", rpki.x509.X509),
- ("last_cms_timestamp", rpki.sundial.datetime))
+ sql_template = rpki.sql.template(
+ "child",
+ "child_id",
+ "child_handle",
+ "self_id",
+ "bsc_id",
+ ("bpki_cert", rpki.x509.X509),
+ ("bpki_glue", rpki.x509.X509),
+ ("last_cms_timestamp", rpki.sundial.datetime))
- handles = (("self", self_elt), ("bsc", bsc_elt))
+ handles = (("self", self_elt),
+ ("bsc", bsc_elt))
bpki_cert = None
bpki_glue = None
last_cms_timestamp = None
+ def __repr__(self):
+ return rpki.log.log_repr(self, self.child_handle)
+
def fetch_child_certs(self, ca_detail = None, ski = None, unique = False):
"""
Fetch all child_cert objects that link to this child object.
@@ -1243,7 +914,9 @@ class child_elt(data_elt):
raise rpki.exceptions.ClassNameUnknown, "Unknown class name %s" % class_name
parent = ca.parent
if self.self_id != parent.self_id:
- raise rpki.exceptions.ClassNameMismatch, "Class name mismatch: child.self_id = %d, parent.self_id = %d" % (self.self_id, parent.self_id)
+ raise rpki.exceptions.ClassNameMismatch(
+ "Class name mismatch: child.self_id = %d, parent.self_id = %d" % (
+ self.self_id, parent.self_id))
return ca
def serve_destroy_hook(self, cb, eb):
@@ -1276,6 +949,7 @@ class child_elt(data_elt):
q_msg.payload.gctx = self.gctx
if enforce_strict_up_down_xml_sender and q_msg.sender != str(self.child_id):
raise rpki.exceptions.BadSender, "Unexpected XML sender %s" % q_msg.sender
+ self.gctx.sql.sweep()
def done(r_msg):
#
@@ -1306,6 +980,9 @@ class list_resources_elt(rpki.xml_utils.base_elt, left_right_namespace):
attributes = ("self_handle", "tag", "child_handle", "valid_until", "asn", "ipv4", "ipv6")
valid_until = None
+ def __repr__(self):
+ return rpki.log.log_repr(self, self.self_handle, self.child_handle, self.asn, self.ipv4, self.ipv6)
+
def startElement(self, stack, name, attrs):
"""
Handle <list_resources/> element. This requires special handling
@@ -1353,7 +1030,7 @@ class list_roa_requests_elt(rpki.xml_utils.base_elt, left_right_namespace):
self.ipv6 = rpki.resource_set.roa_prefix_set_ipv6(self.ipv6)
def __repr__(self):
- return rpki.log.log_repr(self, self.asn, self.ipv4, self.ipv6)
+ return rpki.log.log_repr(self, self.self_handle, self.asn, self.ipv4, self.ipv6)
class list_ghostbuster_requests_elt(rpki.xml_utils.text_elt, left_right_namespace):
"""
@@ -1366,6 +1043,8 @@ class list_ghostbuster_requests_elt(rpki.xml_utils.text_elt, left_right_namespac
vcard = None
+ def __repr__(self):
+ return rpki.log.log_repr(self, self.self_handle, self.parent_handle)
class list_published_objects_elt(rpki.xml_utils.text_elt, left_right_namespace):
"""
@@ -1379,6 +1058,9 @@ class list_published_objects_elt(rpki.xml_utils.text_elt, left_right_namespace):
obj = None
child_handle = None
+ def __repr__(self):
+ return rpki.log.log_repr(self, self.self_handle, self.child_handle, self.uri)
+
def serve_dispatch(self, r_msg, cb, eb):
"""
Handle a <list_published_objects/> query. The method name is a
@@ -1417,6 +1099,9 @@ class list_received_resources_elt(rpki.xml_utils.base_elt, left_right_namespace)
attributes = ("self_handle", "tag", "parent_handle",
"notBefore", "notAfter", "uri", "sia_uri", "aia_uri", "asn", "ipv4", "ipv6")
+ def __repr__(self):
+ return rpki.log.log_repr(self, self.self_handle, self.parent_handle, self.uri, self.notAfter)
+
def serve_dispatch(self, r_msg, cb, eb):
"""
Handle a <list_received_resources/> query. The method name is a
@@ -1460,6 +1145,9 @@ class report_error_elt(rpki.xml_utils.text_elt, left_right_namespace):
error_text = None
+ def __repr__(self):
+ return rpki.log.log_repr(self, self.self_handle, self.error_code)
+
@classmethod
def from_exception(cls, e, self_handle = None, tag = None):
"""
@@ -1502,7 +1190,8 @@ class msg(rpki.xml_utils.msg, left_right_namespace):
def fail(e):
if not isinstance(e, rpki.exceptions.NotFound):
rpki.log.traceback()
- r_msg.append(report_error_elt.from_exception(e, self_handle = q_pdu.self_handle, tag = q_pdu.tag))
+ r_msg.append(report_error_elt.from_exception(
+ e, self_handle = q_pdu.self_handle, tag = q_pdu.tag))
cb(r_msg)
try:
diff --git a/rpkid/rpki/log.py b/rpkid/rpki/log.py
index bc20e395..2b48cb6d 100644
--- a/rpkid/rpki/log.py
+++ b/rpkid/rpki/log.py
@@ -3,7 +3,7 @@ Logging facilities for RPKI libraries.
$Id$
-Copyright (C) 2009--2011 Internet Systems Consortium ("ISC")
+Copyright (C) 2009--2012 Internet Systems Consortium ("ISC")
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
@@ -32,9 +32,18 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
"""
-import syslog, sys, os, time
+import syslog
+import sys
+import os
+import time
import traceback as tb
+try:
+ import setproctitle
+ have_setproctitle = True
+except ImportError:
+ have_setproctitle = False
+
## @var enable_trace
# Whether call tracing is enabled.
@@ -54,7 +63,22 @@ show_python_ids = False
# Whether tracebacks are enabled globally. Individual classes and
# modules may choose to override this.
-enable_tracebacks = False
+enable_tracebacks = True
+
+## @var use_setproctitle
+# Whether to use setproctitle (if available) to change name shown for
+# this process in ps listings (etc).
+
+use_setproctitle = True
+
+## @var proctitle_extra
+
+# Extra text to include in proctitle display. By default this is the
+# tail of the current directory name, as this is often useful, but you
+# can set it to something else if you like. If None or the empty
+# string, the extra information field will be omitted from the proctitle.
+
+proctitle_extra = os.path.basename(os.getcwd())
tag = ""
pid = 0
@@ -70,6 +94,11 @@ def init(ident = "rpki", flags = syslog.LOG_PID, facility = syslog.LOG_DAEMON):
global tag, pid
tag = ident
pid = os.getpid()
+ if ident and have_setproctitle and use_setproctitle:
+ if proctitle_extra:
+ setproctitle.setproctitle("%s (%s)" % (ident, proctitle_extra))
+ else:
+ setproctitle.setproctitle(ident)
def set_trace(enable):
"""
@@ -115,13 +144,20 @@ def traceback(do_it = None):
classes have their own controls for this, this lets us provide a
unified interface). If no argument is specified, we use the global
default value rpki.log.enable_tracebacks.
+
+ Assertion failures generate backtraces unconditionally, on the
+ theory that (a) assertion failures are programming errors by
+ definition, and (b) it's often hard to figure out what's triggering
+ a particular assertion failure without the backtrace.
"""
if do_it is None:
do_it = enable_tracebacks
- if do_it:
- assert sys.exc_info() != (None, None, None), "rpki.log.traceback() called without valid trace on stack, this is a programming error"
+ e = sys.exc_info()[1]
+ assert e is not None, "rpki.log.traceback() called without valid trace on stack! This should not happen."
+
+ if do_it or isinstance(e, AssertionError):
bt = tb.extract_stack(limit = 3)
error("Exception caught in %s() at %s:%d called from %s:%d" % (bt[1][2], bt[1][0], bt[1][1], bt[0][0], bt[0][1]))
bt = tb.format_exc()
@@ -135,12 +171,21 @@ def log_repr(obj, *tokens):
IDs as needed, includes self_handle when available.
"""
+ # pylint: disable=W0702
words = ["%s.%s" % (obj.__class__.__module__, obj.__class__.__name__)]
try:
words.append("{%s}" % obj.self.self_handle)
except:
pass
- words.extend(str(token) for token in tokens if token is not None and token != "")
+ for token in tokens:
+ if token is not None and token != "":
+ try:
+ assert token is not None
+ words.append(str(token))
+ except:
+ debug("Failed to generate repr() string for object of type %r" % type(token))
+ traceback()
+ words.append("???")
if show_python_ids:
words.append(" at %#x" % id(obj))
return "<" + " ".join(words) + ">"
diff --git a/rpkid/rpki/manifest.py b/rpkid/rpki/manifest.py
deleted file mode 100644
index f832ca20..00000000
--- a/rpkid/rpki/manifest.py
+++ /dev/null
@@ -1,54 +0,0 @@
-"""
-Signed manifests. This is just the ASN.1 encoder, the rest is in
-rpki.x509 with the rest of the DER_object code.
-
-Note that rpki.x509.SignedManifest implements the signed manifest;
-the structures here are just the payload of the CMS eContent field.
-
-$Id$
-
-Copyright (C) 2007--2008 American Registry for Internet Numbers ("ARIN")
-
-Permission to use, copy, modify, and distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND ARIN DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS. IN NO EVENT SHALL ARIN BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-"""
-
-from rpki.POW._der import *
-
-class FileAndHash(Sequence):
- def __init__(self, optional=0, default=''):
- self.file = IA5String()
- self.hash = AltBitString()
- contents = [ self.file, self.hash ]
- Sequence.__init__(self, contents, optional, default)
-
-class FilesAndHashes(SequenceOf):
- def __init__(self, optional=0, default=''):
- SequenceOf.__init__(self, FileAndHash, optional, default)
-
-class Manifest(Sequence):
- def __init__(self, optional=0, default=''):
- self.version = Integer()
- self.explicitVersion = Explicit(CLASS_CONTEXT, FORM_CONSTRUCTED, 0, self.version, 0, 'oAMCAQA=')
- self.manifestNumber = Integer()
- self.thisUpdate = GeneralizedTime()
- self.nextUpdate = GeneralizedTime()
- self.fileHashAlg = Oid()
- self.fileList = FilesAndHashes()
-
- contents = [ self.explicitVersion,
- self.manifestNumber,
- self.thisUpdate,
- self.nextUpdate,
- self.fileHashAlg,
- self.fileList ]
- Sequence.__init__(self, contents, optional, default)
diff --git a/rpkid/rpki/mysql_import.py b/rpkid/rpki/mysql_import.py
index ac2b580d..e7b54dde 100644
--- a/rpkid/rpki/mysql_import.py
+++ b/rpkid/rpki/mysql_import.py
@@ -16,7 +16,7 @@ object from this module. Looks kind of strange, but seems to work.
$Id$
-Copyright (C) 2011 Internet Systems Consortium ("ISC")
+Copyright (C) 2011-2012 Internet Systems Consortium ("ISC")
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
@@ -45,6 +45,8 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
"""
+# pylint: disable=W0611
+
from __future__ import with_statement
import warnings
@@ -59,3 +61,5 @@ else:
import _mysql_exceptions
warnings.simplefilter("error", _mysql_exceptions.Warning)
+
+import MySQLdb.converters
diff --git a/rpkid/rpki/oids.py b/rpkid/rpki/oids.py
index 2b8302aa..dc596f0b 100644
--- a/rpkid/rpki/oids.py
+++ b/rpkid/rpki/oids.py
@@ -3,7 +3,7 @@ OID database.
$Id$
-Copyright (C) 2009--2011 Internet Systems Consortium ("ISC")
+Copyright (C) 2009--2012 Internet Systems Consortium ("ISC")
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
@@ -92,8 +92,7 @@ def safe_name2oid(name):
fields = name.split(".")
if all(field.isdigit() for field in fields):
return tuple(int(field) for field in fields)
- else:
- raise
+ raise
def safe_oid2name(oid):
"""
@@ -104,4 +103,39 @@ def safe_oid2name(oid):
try:
return oid2name[oid]
except KeyError:
- return ".".join(str(field) for field in oid)
+ return oid2dotted(oid)
+
+def oid2dotted(oid):
+ """
+ Convert OID to numeric (dotted decimal) format.
+ """
+
+ return ".".join(str(field) for field in oid)
+
+def dotted2oid(dotted):
+ """
+ Convert dotted decimal format to OID tuple.
+ """
+
+ fields = dotted.split(".")
+ if all(field.isdigit() for field in fields):
+ return tuple(int(field) for field in fields)
+ raise ValueError("%r is not a dotted decimal OID" % dotted)
+
+def safe_name2dotted(name):
+ """
+ Convert name to dotted decimal format.
+ """
+
+ return oid2dotted(safe_name2oid(name))
+
+def safe_dotted2name(dotted):
+ """
+ Convert dotted decimal to name if we know one,
+ otherwise just return dotted.
+ """
+
+ try:
+ return oid2name[dotted2oid(dotted)]
+ except KeyError:
+ return dotted
diff --git a/rpkid/rpki/old_irdbd.py b/rpkid/rpki/old_irdbd.py
index c63ce9e2..6cc6cb14 100644
--- a/rpkid/rpki/old_irdbd.py
+++ b/rpkid/rpki/old_irdbd.py
@@ -37,9 +37,19 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
"""
-import sys, os, time, getopt, urlparse, warnings
-import rpki.http, rpki.config, rpki.resource_set, rpki.relaxng
-import rpki.exceptions, rpki.left_right, rpki.log, rpki.x509
+import sys
+import os
+import time
+import getopt
+import urlparse
+import rpki.http
+import rpki.config
+import rpki.resource_set
+import rpki.relaxng
+import rpki.exceptions
+import rpki.left_right
+import rpki.log
+import rpki.x509
from rpki.mysql_import import MySQLdb
diff --git a/rpkid/rpki/pubd.py b/rpkid/rpki/pubd.py
index 7a00c172..a6d8f83f 100644
--- a/rpkid/rpki/pubd.py
+++ b/rpkid/rpki/pubd.py
@@ -160,7 +160,6 @@ class main(object):
rpki.log.trace()
try:
- self.sql.ping()
self.handler_common(query, None, done, (self.bpki_ta, self.irbe_cert))
except (rpki.async.ExitNow, SystemExit):
raise
@@ -180,7 +179,6 @@ class main(object):
rpki.log.trace()
try:
- self.sql.ping()
match = self.client_url_regexp.search(path)
if match is None:
raise rpki.exceptions.BadContactURL, "Bad path: %s" % path
diff --git a/rpkid/rpki/publication.py b/rpkid/rpki/publication.py
index 07905601..975d5fc9 100644
--- a/rpkid/rpki/publication.py
+++ b/rpkid/rpki/publication.py
@@ -3,7 +3,7 @@ RPKI "publication" protocol.
$Id$
-Copyright (C) 2009--2011 Internet Systems Consortium ("ISC")
+Copyright (C) 2009--2012 Internet Systems Consortium ("ISC")
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
@@ -32,9 +32,18 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
"""
-import os, errno
-import rpki.resource_set, rpki.x509, rpki.sql, rpki.exceptions, rpki.xml_utils
-import rpki.http, rpki.up_down, rpki.relaxng, rpki.sundial, rpki.log, rpki.roa
+import os
+import errno
+import rpki.resource_set
+import rpki.x509
+import rpki.sql
+import rpki.exceptions
+import rpki.xml_utils
+import rpki.http
+import rpki.up_down
+import rpki.relaxng
+import rpki.sundial
+import rpki.log
class publication_namespace(object):
"""
@@ -73,7 +82,10 @@ class config_elt(control_elt):
element_name = "config"
elements = ("bpki_crl",)
- sql_template = rpki.sql.template("config", "config_id", ("bpki_crl", rpki.x509.CRL))
+ sql_template = rpki.sql.template(
+ "config",
+ "config_id",
+ ("bpki_crl", rpki.x509.CRL))
wired_in_config_id = 1
@@ -120,10 +132,14 @@ class client_elt(control_elt):
elements = ("bpki_cert", "bpki_glue")
booleans = ("clear_replay_protection",)
- sql_template = rpki.sql.template("client", "client_id", "client_handle", "base_uri",
- ("bpki_cert", rpki.x509.X509),
- ("bpki_glue", rpki.x509.X509),
- ("last_cms_timestamp", rpki.sundial.datetime))
+ sql_template = rpki.sql.template(
+ "client",
+ "client_id",
+ "client_handle",
+ "base_uri",
+ ("bpki_cert", rpki.x509.X509),
+ ("bpki_glue", rpki.x509.X509),
+ ("last_cms_timestamp", rpki.sundial.datetime))
base_uri = None
bpki_cert = None
@@ -189,7 +205,7 @@ class publication_object_elt(rpki.xml_utils.base_elt, publication_namespace):
"""
assert name == self.element_name, "Unexpected name %s, stack %s" % (name, stack)
if text:
- self.payload = self.payload_type(Base64 = text)
+ self.payload = self.payload_type(Base64 = text) # pylint: disable=E1102
stack.pop()
def toXML(self):
@@ -205,6 +221,7 @@ class publication_object_elt(rpki.xml_utils.base_elt, publication_namespace):
"""
Action dispatch handler.
"""
+ # pylint: disable=E0203
try:
if self.client is None:
raise rpki.exceptions.BadQuery, "Client query received on control channel"
diff --git a/rpkid/rpki/rcynic.py b/rpkid/rpki/rcynic.py
index b05586ff..d6c00710 100644
--- a/rpkid/rpki/rcynic.py
+++ b/rpkid/rpki/rcynic.py
@@ -1,9 +1,7 @@
"""
Prototype of an iterator class to parse the output of an rcynic run.
-This script will almost certainly move to the library package once
-it's stable.
-Copyright (C) 2010-2011 Internet Systems Consortium ("ISC")
+Copyright (C) 2010-2012 Internet Systems Consortium ("ISC")
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
@@ -18,9 +16,12 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
"""
-__revision__ = '$Id$'
+__version__ = '$Id$'
-import sys, os, rpki.x509, rpki.exceptions
+import os
+import rpki.x509
+import rpki.exceptions
+import rpki.resource_set
from xml.etree.ElementTree import ElementTree
class UnknownObject(rpki.exceptions.RPKI_Exception):
@@ -100,25 +101,18 @@ class rcynic_roa(rcynic_object):
obj_class = rpki.x509.ROA
- _afi_map = dict((cls.resource_set_type.afi, cls)
- for cls in (rpki.resource_set.roa_prefix_set_ipv4,
- rpki.resource_set.roa_prefix_set_ipv6))
-
def __init__(self, filename, **kwargs):
rcynic_object.__init__(self, filename, **kwargs)
self.obj.extract()
- self.asID = self.obj.get_content().asID.get()
+ self.asID = self.obj.get_POW().getASID()
self.prefix_sets = []
- for fam in self.obj.get_content().ipAddrBlocks:
- prefix_set = self._afi_map[fam.addressFamily.get()]()
- addr_type = prefix_set.resource_set_type.range_type.datum_type
- self.prefix_sets.append(prefix_set)
- for addr in fam.addresses:
- prefix = addr.address.get()
- prefixlen = len(prefix)
- prefix = addr_type(rpki.resource_set._bs2long(prefix, addr_type.bits, 0))
- maxprefixlen = addr.maxLength.get()
- prefix_set.append(prefix_set.prefix_type(prefix, prefixlen, maxprefixlen))
+ v4, v6 = self.obj.get_POW().getPrefixes()
+ if v4:
+ self.prefix_sets.append(rpki.resource_set.roa_prefix_set_ipv4([
+ rpki.resource_set.roa_prefix_ipv4(long(p[0]), p[1], p[2]) for p in v4]))
+ if v6:
+ self.prefix_sets.append(rpki.resource_set.roa_prefix_set_ipv6([
+ rpki.resource_set.roa_prefix_ipv6(long(p[0]), p[1], p[2]) for p in v6]))
self.ee = rpki.x509.X509(POW = self.obj.get_POW().certs()[0])
self.notBefore = self.ee.getNotBefore()
self.notAfter = self.ee.getNotAfter()
@@ -180,7 +174,7 @@ class rcynic_file_iterator(object):
self.rcynic_dir = os.path.join(rcynic_root, authenticated_subdir)
def __iter__(self):
- for root, dirs, files in os.walk(self.rcynic_dir):
+ for root, dirs, files in os.walk(self.rcynic_dir): # pylint: disable=W0612
for filename in files:
filename = os.path.join(root, filename)
ext = os.path.splitext(filename)[1]
@@ -188,26 +182,26 @@ class rcynic_file_iterator(object):
yield file_name_classes[ext](filename)
class validation_status_element(object):
- def __init__(self, *args, **kwargs):
- self.attrs = []
- for k,v in kwargs.iteritems():
- setattr(self, k, v)
- # attribute names are saved so that the __repr__ method can
- # display the subset of attributes the user specified
- self.attrs.append(k)
- self._obj = None
-
- def get_obj(self):
- if not self._obj:
- self._obj = self.file_class(filename=self.filename, uri=self.uri)
- return self._obj
-
- def __repr__(self):
- v = [self.__class__.__name__, 'id=%s' % str(id(self))]
- v.extend(['%s=%s' % (x, getattr(self, x)) for x in self.attrs])
- return '<%s>' % (' '.join(v),)
-
- obj = property(get_obj)
+ def __init__(self, *args, **kwargs):
+ self.attrs = []
+ for k, v in kwargs.iteritems():
+ setattr(self, k, v)
+ # attribute names are saved so that the __repr__ method can
+ # display the subset of attributes the user specified
+ self.attrs.append(k)
+ self._obj = None
+
+ def get_obj(self):
+ if not self._obj:
+ self._obj = self.file_class(filename=self.filename, uri=self.uri)
+ return self._obj
+
+ def __repr__(self):
+ v = [self.__class__.__name__, 'id=%s' % str(id(self))]
+ v.extend(['%s=%s' % (x, getattr(self, x)) for x in self.attrs])
+ return '<%s>' % (' '.join(v),)
+
+ obj = property(get_obj)
class rcynic_xml_iterator(object):
"""
@@ -256,25 +250,26 @@ class rcynic_xml_iterator(object):
# determine the path to this object
if status == 'object_accepted':
- d = self.authenticated_subdir
+ d = self.authenticated_subdir
elif generation == 'backup':
- d = self.authenticated_old_subdir
+ d = self.authenticated_old_subdir
else:
- d = self.unauthenticated_subdir
+ d = self.unauthenticated_subdir
filename = os.path.join(d, self.uri_to_filename(uri))
ext = os.path.splitext(filename)[1]
if ext in file_name_classes:
- yield validation_status_element(timestamp=timestamp, generation=generation, uri=uri,
- status=status, filename=filename, file_class=file_name_classes[ext])
+ yield validation_status_element(timestamp = timestamp, generation = generation,
+ uri=uri, status = status, filename = filename,
+ file_class = file_name_classes[ext])
def label_iterator(xml_file):
- """
- Returns an iterator which contains all defined labels from an rcynic XML
- output file. Each item is a tuple of the form
- (label, kind, description).
- """
+ """
+ Returns an iterator which contains all defined labels from an rcynic XML
+ output file. Each item is a tuple of the form
+ (label, kind, description).
+ """
- for label in ElementTree(file=xml_file).find("labels"):
- yield label.tag, label.get("kind"), label.text.strip()
+ for label in ElementTree(file=xml_file).find("labels"):
+ yield label.tag, label.get("kind"), label.text.strip()
diff --git a/rpkid/rpki/relaxng.py b/rpkid/rpki/relaxng.py
index c3f239d4..962858c7 100644
--- a/rpkid/rpki/relaxng.py
+++ b/rpkid/rpki/relaxng.py
@@ -4,7 +4,7 @@ import lxml.etree
## @var left_right
## Parsed RelaxNG left_right schema
-left_right = lxml.etree.RelaxNG(lxml.etree.fromstring('''<?xml version="1.0" encoding="UTF-8"?>
+left_right = lxml.etree.RelaxNG(lxml.etree.fromstring(r'''<?xml version="1.0" encoding="UTF-8"?>
<!--
$Id: left-right-schema.rnc 4588 2012-07-06 19:43:56Z sra $
@@ -1037,7 +1037,7 @@ left_right = lxml.etree.RelaxNG(lxml.etree.fromstring('''<?xml version="1.0" enc
## @var up_down
## Parsed RelaxNG up_down schema
-up_down = lxml.etree.RelaxNG(lxml.etree.fromstring('''<?xml version="1.0" encoding="UTF-8"?>
+up_down = lxml.etree.RelaxNG(lxml.etree.fromstring(r'''<?xml version="1.0" encoding="UTF-8"?>
<!--
$Id: up-down-schema.rnc 3913 2011-07-01 17:04:18Z sra $
@@ -1289,7 +1289,7 @@ up_down = lxml.etree.RelaxNG(lxml.etree.fromstring('''<?xml version="1.0" encodi
## @var publication
## Parsed RelaxNG publication schema
-publication = lxml.etree.RelaxNG(lxml.etree.fromstring('''<?xml version="1.0" encoding="UTF-8"?>
+publication = lxml.etree.RelaxNG(lxml.etree.fromstring(r'''<?xml version="1.0" encoding="UTF-8"?>
<!--
$Id: publication-schema.rnc 4588 2012-07-06 19:43:56Z sra $
@@ -1879,7 +1879,7 @@ publication = lxml.etree.RelaxNG(lxml.etree.fromstring('''<?xml version="1.0" en
## @var myrpki
## Parsed RelaxNG myrpki schema
-myrpki = lxml.etree.RelaxNG(lxml.etree.fromstring('''<?xml version="1.0" encoding="UTF-8"?>
+myrpki = lxml.etree.RelaxNG(lxml.etree.fromstring(r'''<?xml version="1.0" encoding="UTF-8"?>
<!--
$Id: myrpki.rnc 4430 2012-04-17 16:00:14Z sra $
diff --git a/rpkid/rpki/resource_set.py b/rpkid/rpki/resource_set.py
index 0bc31ef2..f0d096d5 100644
--- a/rpkid/rpki/resource_set.py
+++ b/rpkid/rpki/resource_set.py
@@ -10,7 +10,7 @@ We also provide some basic set operations (union, intersection, etc).
$Id$
-Copyright (C) 2009--2010 Internet Systems Consortium ("ISC")
+Copyright (C) 2009--2012 Internet Systems Consortium ("ISC")
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
@@ -39,8 +39,11 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
"""
-import re, math
-import rpki.ipaddrs, rpki.oids, rpki.exceptions
+import re
+import math
+import rpki.oids
+import rpki.exceptions
+import rpki.POW
## @var inherit_token
# Token used to indicate inheritance in read and print syntax.
@@ -61,20 +64,16 @@ class resource_range(object):
directly.
"""
- def __init__(self, min, max):
- """
- Initialize and sanity check a resource_range.
- """
- assert min.__class__ is max.__class__, "Type mismatch, %r doesn't match %r" % (min.__class__, max.__class__)
- assert min <= max, "Mis-ordered range: %s before %s" % (min, max)
- self.min = min
- self.max = max
+ def __init__(self, range_min, range_max):
+ assert range_min.__class__ is range_max.__class__, \
+ "Type mismatch, %r doesn't match %r" % (range_min.__class__, range_max.__class__)
+ assert range_min <= range_max, "Mis-ordered range: %s before %s" % (range_min, range_max)
+ self.min = range_min
+ self.max = range_max
def __cmp__(self, other):
- """
- Compare two resource_range objects.
- """
- assert self.__class__ is other.__class__, "Type mismatch, comparing %r with %r" % (self.__class__, other.__class__)
+ assert self.__class__ is other.__class__, \
+ "Type mismatch, comparing %r with %r" % (self.__class__, other.__class__)
return cmp(self.min, other.min) or cmp(self.max, other.max)
class resource_range_as(resource_range):
@@ -90,6 +89,11 @@ class resource_range_as(resource_range):
datum_type = long
+ def __init__(self, range_min, range_max):
+ resource_range.__init__(self,
+ long(range_min) if isinstance(range_min, int) else range_min,
+ long(range_max) if isinstance(range_max, int) else range_max)
+
def __str__(self):
"""
Convert a resource_range_as to string format.
@@ -99,15 +103,6 @@ class resource_range_as(resource_range):
else:
return str(self.min) + "-" + str(self.max)
- def to_rfc3779_tuple(self):
- """
- Convert a resource_range_as to tuple format for RFC 3779 ASN.1 encoding.
- """
- if self.min == self.max:
- return ("id", self.min)
- else:
- return ("range", (self.min, self.max))
-
@classmethod
def parse_str(cls, x):
"""
@@ -139,6 +134,11 @@ class resource_range_ip(resource_range):
directly.
"""
+ ## @var datum_type
+ # Type of underlying data (min and max).
+
+ datum_type = rpki.POW.IPAddress
+
def prefixlen(self):
"""
Determine whether a resource_range_ip can be expressed as a
@@ -148,7 +148,7 @@ class resource_range_ip(resource_range):
mask = self.min ^ self.max
if self.min & mask != 0:
raise rpki.exceptions.MustBePrefix
- prefixlen = self.datum_type.bits
+ prefixlen = self.min.bits
while mask & 1:
prefixlen -= 1
mask >>= 1
@@ -156,9 +156,6 @@ class resource_range_ip(resource_range):
raise rpki.exceptions.MustBePrefix
return prefixlen
- # Backwards compatability, will go away at some point
- _prefixlen = prefixlen
-
def __str__(self):
"""
Convert a resource_range_ip to string format.
@@ -168,18 +165,6 @@ class resource_range_ip(resource_range):
except rpki.exceptions.MustBePrefix:
return str(self.min) + "-" + str(self.max)
- def to_rfc3779_tuple(self):
- """
- Convert a resource_range_ip to tuple format for RFC 3779 ASN.1
- encoding.
- """
- try:
- return ("addressPrefix", _long2bs(self.min, self.datum_type.bits,
- prefixlen = self.prefixlen()))
- except rpki.exceptions.MustBePrefix:
- return ("addressRange", (_long2bs(self.min, self.datum_type.bits, strip = 0),
- _long2bs(self.max, self.datum_type.bits, strip = 1)))
-
@classmethod
def parse_str(cls, x):
"""
@@ -187,10 +172,10 @@ class resource_range_ip(resource_range):
"""
r = re_address_range.match(x)
if r:
- return cls(cls.datum_type(r.group(1)), cls.datum_type(r.group(2)))
+ return cls(rpki.POW.IPAddress(r.group(1)), rpki.POW.IPAddress(r.group(2)))
r = re_prefix.match(x)
if r:
- return cls.make_prefix(cls.datum_type(r.group(1)), int(r.group(2)))
+ return cls.make_prefix(rpki.POW.IPAddress(r.group(1)), int(r.group(2)))
raise rpki.exceptions.BadIPResource, 'Bad IP resource "%s"' % (x)
@classmethod
@@ -198,11 +183,11 @@ class resource_range_ip(resource_range):
"""
Construct a resource range corresponding to a prefix.
"""
- assert isinstance(prefix, cls.datum_type) and isinstance(prefixlen, (int, long))
- assert prefixlen >= 0 and prefixlen <= cls.datum_type.bits, "Nonsensical prefix length: %s" % prefixlen
- mask = (1 << (cls.datum_type.bits - prefixlen)) - 1
+ assert isinstance(prefix, rpki.POW.IPAddress) and isinstance(prefixlen, (int, long))
+ assert prefixlen >= 0 and prefixlen <= prefix.bits, "Nonsensical prefix length: %s" % prefixlen
+ mask = (1 << (prefix.bits - prefixlen)) - 1
assert (prefix & mask) == 0, "Resource not in canonical form: %s/%s" % (prefix, prefixlen)
- return cls(cls.datum_type(prefix), cls.datum_type(prefix | mask))
+ return cls(prefix, rpki.POW.IPAddress(prefix | mask))
def chop_into_prefixes(self, result):
"""
@@ -213,19 +198,19 @@ class resource_range_ip(resource_range):
self.prefixlen()
result.append(self)
except rpki.exceptions.MustBePrefix:
- min = self.min
- max = self.max
- while max >= min:
- bits = int(math.log(max - min + 1, 2))
+ range_min = self.min
+ range_max = self.max
+ while range_max >= range_min:
+ bits = int(math.log(long(range_max - range_min + 1), 2))
while True:
mask = ~(~0 << bits)
- assert min + mask <= max
- if min & mask == 0:
+ assert range_min + mask <= range_max
+ if range_min & mask == 0:
break
assert bits > 0
bits -= 1
- result.append(self.make_prefix(min, self.datum_type.bits - bits))
- min = self.datum_type(min + mask + 1)
+ result.append(self.make_prefix(range_min, range_min.bits - bits))
+ range_min = range_min + mask + 1
@classmethod
def from_strings(cls, a, b = None):
@@ -234,54 +219,55 @@ class resource_range_ip(resource_range):
"""
if b is None:
b = a
- a = rpki.ipaddrs.parse(a)
- b = rpki.ipaddrs.parse(b)
- if a.__class__ is not b.__class__:
+ a = rpki.POW.IPAddress(a)
+ b = rpki.POW.IPAddress(b)
+ if a.version != b.version:
raise TypeError
if cls is resource_range_ip:
- if isinstance(a, rpki.ipaddrs.v4addr):
+ if a.version == 4:
return resource_range_ipv4(a, b)
- if isinstance(a, rpki.ipaddrs.v6addr):
+ if a.version == 6:
return resource_range_ipv6(a, b)
- elif isinstance(a, cls.datum_type):
+ elif a.version == cls.version:
return cls(a, b)
- raise TypeError
+ else:
+ raise TypeError
class resource_range_ipv4(resource_range_ip):
"""
Range of IPv4 addresses.
"""
- ## @var datum_type
- # Type of underlying data (min and max).
-
- datum_type = rpki.ipaddrs.v4addr
+ version = 4
class resource_range_ipv6(resource_range_ip):
"""
Range of IPv6 addresses.
"""
- ## @var datum_type
- # Type of underlying data (min and max).
-
- datum_type = rpki.ipaddrs.v6addr
+ version = 6
def _rsplit(rset, that):
"""
Utility function to split a resource range into two resource ranges.
"""
+
this = rset.pop(0)
- cell_type = type(this.min)
- assert type(this) is type(that) and type(this.max) is cell_type and \
- type(that.min) is cell_type and type(that.max) is cell_type
+
+ assert type(this) is type(that), "type(this) [%r] is not type(that) [%r]" % (type(this), type(that))
+
+ assert type(this.min) is type(that.min), "type(this.min) [%r] is not type(that.min) [%r]" % (type(this.min), type(that.min))
+ assert type(this.min) is type(this.max), "type(this.min) [%r] is not type(this.max) [%r]" % (type(this.min), type(this.max))
+ assert type(that.min) is type(that.max), "type(that.min) [%r] is not type(that.max) [%r]" % (type(that.min), type(that.max))
+
if this.min < that.min:
- rset.insert(0, type(this)(this.min, cell_type(that.min - 1)))
+ rset.insert(0, type(this)(this.min, type(that.min)(that.min - 1)))
rset.insert(1, type(this)(that.min, this.max))
+
else:
assert this.max > that.max
rset.insert(0, type(this)(this.min, that.max))
- rset.insert(1, type(this)(cell_type(that.max + 1), this.max))
+ rset.insert(1, type(this)(type(that.max)(that.max + 1), this.max))
class resource_set(list):
"""
@@ -312,8 +298,6 @@ class resource_set(list):
self.inherit = True
elif isinstance(ini, str) and len(ini):
self.extend(self.parse_str(s) for s in ini.split(","))
- elif isinstance(ini, tuple):
- self.parse_rfc3779_tuple(ini)
elif isinstance(ini, list):
self.extend(ini)
elif ini is not None and ini != "":
@@ -418,16 +402,14 @@ class resource_set(list):
this = set1.pop(0)
that = set2.pop(0)
assert type(this) is type(that)
- if this.min < that.min: min = this.min
- else: min = that.min
- if this.max > that.max: max = this.max
- else: max = that.max
- result.append(type(this)(min, max))
- while set1 and set1[0].max <= max:
- assert set1[0].min >= min
+ range_min = min(this.min, that.min)
+ range_max = max(this.max, that.max)
+ result.append(type(this)(range_min, range_max))
+ while set1 and set1[0].max <= range_max:
+ assert set1[0].min >= range_min
del set1[0]
- while set2 and set2[0].max <= max:
- assert set2[0].min >= min
+ while set2 and set2[0].max <= range_max:
+ assert set2[0].min >= range_min
del set2[0]
return type(self)(result)
@@ -454,7 +436,7 @@ class resource_set(list):
Set symmetric difference (XOR) for resource sets.
"""
com = self._comm(other)
- return com[0].union(com[1])
+ return com[0] | com[1]
__xor__ = symmetric_difference
@@ -467,20 +449,20 @@ class resource_set(list):
if not self:
return False
if type(item) is type(self[0]):
- min = item.min
- max = item.max
+ range_min = item.min
+ range_max = item.max
else:
- min = item
- max = item
+ range_min = item
+ range_max = item
lo = 0
hi = len(self)
while lo < hi:
mid = (lo + hi) / 2
- if self[mid].max < max:
+ if self[mid].max < range_max:
lo = mid + 1
else:
hi = mid
- return lo < len(self) and self[lo].min <= min and self[lo].max >= max
+ return lo < len(self) and self[lo].min <= range_min and self[lo].max >= range_max
__contains__ = contains
@@ -560,37 +542,6 @@ class resource_set_as(resource_set):
range_type = resource_range_as
- def parse_rfc3779_tuple(self, x):
- """
- Parse ASN resource from tuple format generated by RFC 3779 ASN.1
- decoder.
- """
- if x[0] == "asIdsOrRanges":
- for aor in x[1]:
- if aor[0] == "range":
- min = aor[1][0]
- max = aor[1][1]
- else:
- min = aor[1]
- max = min
- self.append(resource_range_as(min, max))
- else:
- assert x[0] == "inherit"
- self.inherit = True
-
- def to_rfc3779_tuple(self):
- """
- Convert ASN resource set into tuple format used for RFC 3779 ASN.1
- encoding.
- """
- self.canonize()
- if self:
- return ("asIdsOrRanges", tuple(a.to_rfc3779_tuple() for a in self))
- elif self.inherit:
- return ("inherit", "")
- else:
- return None
-
class resource_set_ip(resource_set):
"""
(Generic) IP address resource set.
@@ -599,24 +550,6 @@ class resource_set_ip(resource_set):
directly.
"""
- def parse_rfc3779_tuple(self, x):
- """
- Parse IP address resource sets from tuple format generated by RFC
- 3779 ASN.1 decoder.
- """
- if x[0] == "addressesOrRanges":
- for aor in x[1]:
- if aor[0] == "addressRange":
- min = _bs2long(aor[1][0], self.range_type.datum_type.bits, 0)
- max = _bs2long(aor[1][1], self.range_type.datum_type.bits, 1)
- else:
- min = _bs2long(aor[1], self.range_type.datum_type.bits, 0)
- max = _bs2long(aor[1], self.range_type.datum_type.bits, 1)
- self.append(self.range_type(self.range_type.datum_type(min), self.range_type.datum_type(max)))
- else:
- assert x[0] == "inherit"
- self.inherit = True
-
def to_roa_prefix_set(self):
"""
Convert from a resource set to a ROA prefix set.
@@ -628,19 +561,6 @@ class resource_set_ip(resource_set):
self.roa_prefix_set_type.prefix_type(r.min, r.prefixlen())
for r in prefix_ranges])
- def to_rfc3779_tuple(self):
- """
- Convert IP resource set into tuple format used by RFC 3779 ASN.1
- encoder.
- """
- self.canonize()
- if self:
- return (self.afi, ("addressesOrRanges", tuple(a.to_rfc3779_tuple() for a in self)))
- elif self.inherit:
- return (self.afi, ("inherit", ""))
- else:
- return None
-
class resource_set_ipv4(resource_set_ip):
"""
IPv4 address resource set.
@@ -651,11 +571,6 @@ class resource_set_ipv4(resource_set_ip):
range_type = resource_range_ipv4
- ## @var afi
- # Address Family Identifier value for IPv4.
-
- afi = "\x00\x01"
-
class resource_set_ipv6(resource_set_ip):
"""
IPv6 address resource set.
@@ -666,44 +581,6 @@ class resource_set_ipv6(resource_set_ip):
range_type = resource_range_ipv6
- ## @var afi
- # Address Family Identifier value for IPv6.
-
- afi = "\x00\x02"
-
-def _bs2long(bs, addrlen, fill):
- """
- Utility function to convert a bitstring (rpki.POW.pkix tuple
- representation) into a Python long.
- """
- x = 0L
- for y in bs:
- x = (x << 1) | y
- for y in xrange(addrlen - len(bs)):
- x = (x << 1) | fill
- return x
-
-def _long2bs(number, addrlen, prefixlen = None, strip = None):
- """
- Utility function to convert a Python long into a rpki.POW.pkix tuple
- bitstring. This is a bit complicated because it supports the
- fiendishly compact encoding used in RFC 3779.
- """
- assert prefixlen is None or strip is None
- bs = []
- while number:
- bs.append(int(number & 1))
- number >>= 1
- if addrlen > len(bs):
- bs.extend((0 for i in xrange(addrlen - len(bs))))
- bs.reverse()
- if prefixlen is not None:
- return tuple(bs[0:prefixlen])
- if strip is not None:
- while bs and bs[-1] == strip:
- bs.pop()
- return tuple(bs)
-
class resource_bag(object):
"""
Container to simplify passing around the usual triple of ASN, IPv4,
@@ -780,28 +657,21 @@ class resource_bag(object):
v6 = resource_set_ipv6(",".join(v6s), allow_overlap) if v6s else None)
@classmethod
- def from_rfc3779_tuples(cls, exts):
- """
- Build a resource_bag from intermediate form generated by RFC 3779
- ASN.1 decoder.
- """
- asn = None
- v4 = None
- v6 = None
- for x in exts:
- if x[0] == rpki.oids.name2oid["sbgp-autonomousSysNum"]:
- assert len(x[2]) == 1 or x[2][1] is None, "RDI not implemented: %s" % (str(x))
- assert asn is None
- asn = resource_set_as(x[2][0])
- if x[0] == rpki.oids.name2oid["sbgp-ipAddrBlock"]:
- for fam in x[2]:
- if fam[0] == resource_set_ipv4.afi:
- assert v4 is None
- v4 = resource_set_ipv4(fam[1])
- if fam[0] == resource_set_ipv6.afi:
- assert v6 is None
- v6 = resource_set_ipv6(fam[1])
- return cls(asn, v4, v6)
+ def from_POW_rfc3779(cls, resources):
+ """
+ Build a resource_bag from data returned by
+ rpki.POW.X509.getRFC3779().
+
+ The conversion to long for v4 and v6 is (intended to be)
+ temporary: in the long run, we should be using rpki.POW.IPAddress
+ rather than long here.
+ """
+ asn = [resource_range_as(r[0], r[1]) for r in resources[0] or ()]
+ v4 = [resource_range_ipv4(r[0], r[1]) for r in resources[1] or ()]
+ v6 = [resource_range_ipv6(r[0], r[1]) for r in resources[2] or ()]
+ return cls(resource_set_as(asn) if asn else None,
+ resource_set_ipv4(v4) if v4 else None,
+ resource_set_ipv6(v6) if v6 else None)
def empty(self):
"""
@@ -956,16 +826,13 @@ class roa_prefix(object):
"""
Return highest address covered by prefix.
"""
- t = self.range_type.datum_type
- return t(self.prefix | ((1 << (t.bits - self.prefixlen)) - 1))
-
- def to_roa_tuple(self):
+ return self.prefix | ((1 << (self.prefix.bits - self.prefixlen)) - 1)
+
+ def to_POW_roa_tuple(self):
"""
- Convert a resource_range_ip to tuple format for ROA ASN.1
- encoding.
+ Convert a resource_range_ip to rpki.POW.ROA.setPrefixes() format.
"""
- return (_long2bs(self.prefix, self.range_type.datum_type.bits, prefixlen = self.prefixlen),
- None if self.prefixlen == self.max_prefixlen else self.max_prefixlen)
+ return self.prefix, self.prefixlen, self.max_prefixlen
@classmethod
def parse_str(cls, x):
@@ -974,20 +841,12 @@ class roa_prefix(object):
"""
r = re_prefix_with_maxlen.match(x)
if r:
- return cls(cls.range_type.datum_type(r.group(1)), int(r.group(2)), int(r.group(3)))
+ return cls(rpki.POW.IPAddress(r.group(1)), int(r.group(2)), int(r.group(3)))
r = re_prefix.match(x)
if r:
- return cls(cls.range_type.datum_type(r.group(1)), int(r.group(2)))
+ return cls(rpki.POW.IPAddress(r.group(1)), int(r.group(2)))
raise rpki.exceptions.BadROAPrefix, 'Bad ROA prefix "%s"' % (x)
- @classmethod
- def from_roa_tuple(cls, o):
- """
- Convert from ROA ASN.1 tuple format.
- """
- assert isinstance(o, (list, tuple)), 'argument must be either list or tuple'
- return cls(cls.range_type.datum_type(_bs2long(o[0], cls.range_type.datum_type.bits, 0)), len(o[0]), o[1])
-
class roa_prefix_ipv4(roa_prefix):
"""
IPv4 ROA prefix.
@@ -1054,7 +913,7 @@ class roa_prefix_set(list):
s.append(None)
for p in self:
s[0] = p.to_resource_range()
- r = r.union(s)
+ r |= s
return r
@classmethod
@@ -1070,7 +929,7 @@ class roa_prefix_set(list):
"""
sql.execute(query, args)
- return cls([cls.prefix_type(cls.prefix_type.range_type.datum_type(x), int(y), int(z))
+ return cls([cls.prefix_type(rpki.POW.IPAddress(x), int(y), int(z))
for (x, y, z) in sql.fetchall()])
@classmethod
@@ -1082,20 +941,19 @@ class roa_prefix_set(list):
max_prefixlen) triples.
"""
- return cls([cls.prefix_type(cls.prefix_type.range_type.datum_type(x), int(y), int(z))
+ return cls([cls.prefix_type(rpki.POW.IPAddress(x), int(y), int(z))
for (x, y, z) in iterable])
-
- def to_roa_tuple(self):
+ def to_POW_roa_tuple(self):
"""
- Convert ROA prefix set into tuple format used by ROA ASN.1
- encoder. This is a variation on the format used in RFC 3779.
+ Convert ROA prefix set to form used by rpki.POW.ROA.setPrefixes().
"""
if self:
- return (self.resource_set_type.afi, tuple(a.to_roa_tuple() for a in self))
+ return tuple(a.to_POW_roa_tuple() for a in self)
else:
return None
+
class roa_prefix_set_ipv4(roa_prefix_set):
"""
Set of IPv4 ROA prefixes.
diff --git a/rpkid/rpki/roa.py b/rpkid/rpki/roa.py
deleted file mode 100644
index 51b141e1..00000000
--- a/rpkid/rpki/roa.py
+++ /dev/null
@@ -1,76 +0,0 @@
-"""
-ROA (Route Origin Authorization).
-
-At the moment this is just the ASN.1 encoder.
-
-This corresponds to draft-ietf-sidr-roa-format, which is a work in
-progress, so this may need updating later.
-
-$Id$
-
-Copyright (C) 2007--2008 American Registry for Internet Numbers ("ARIN")
-
-Permission to use, copy, modify, and distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND ARIN DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS. IN NO EVENT SHALL ARIN BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-draft-ietf-sidr-roa-format-03 2.1.3.2 specifies:
-
- RouteOriginAttestation ::= SEQUENCE {
- version [0] INTEGER DEFAULT 0,
- asID ASID,
- ipAddrBlocks SEQUENCE OF ROAIPAddressFamily }
-
- ASID ::= INTEGER
-
- ROAIPAddressFamily ::= SEQUENCE {
- addressFamily OCTET STRING (SIZE (2..3)),
- addresses SEQUENCE OF ROAIPAddress }
-
- ROAIPAddress ::= SEQUENCE {
- address IPAddress,
- maxLength INTEGER OPTIONAL }
-
- IPAddress ::= BIT STRING
-"""
-
-from rpki.POW._der import *
-
-class ROAIPAddress(Sequence):
- def __init__(self, optional=0, default=''):
- self.address = BitString()
- self.maxLength = Integer(1)
- contents = [ self.address, self.maxLength ]
- Sequence.__init__(self, contents, optional, default)
-
-class ROAIPAddresses(SequenceOf):
- def __init__(self, optional=0, default=''):
- SequenceOf.__init__(self, ROAIPAddress, optional, default)
-
-class ROAIPAddressFamily(Sequence):
- def __init__(self, optional=0, default=''):
- self.addressFamily = OctetString()
- self.addresses = ROAIPAddresses()
- contents = [ self.addressFamily, self.addresses ]
- Sequence.__init__(self, contents, optional, default)
-
-class ROAIPAddressFamilies(SequenceOf):
- def __init__(self, optional=0, default=''):
- SequenceOf.__init__(self, ROAIPAddressFamily, optional, default)
-
-class RouteOriginAttestation(Sequence):
- def __init__(self, optional=0, default=''):
- self.version = Integer()
- self.explicitVersion = Explicit(CLASS_CONTEXT, FORM_CONSTRUCTED, 0, self.version, 0, 'oAMCAQA=')
- self.asID = Integer()
- self.ipAddrBlocks = ROAIPAddressFamilies()
- contents = [ self.explicitVersion, self.asID, self.ipAddrBlocks ]
- Sequence.__init__(self, contents, optional, default)
diff --git a/rpkid/rpki/rootd.py b/rpkid/rpki/rootd.py
index 75257a80..6da7081b 100644
--- a/rpkid/rpki/rootd.py
+++ b/rpkid/rpki/rootd.py
@@ -10,7 +10,7 @@ Usage: python rootd.py [ { -c | --config } configfile ]
$Id$
-Copyright (C) 2009--2011 Internet Systems Consortium ("ISC")
+Copyright (C) 2009--2012 Internet Systems Consortium ("ISC")
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
@@ -186,7 +186,9 @@ class main(object):
rpki.log.debug("No PKCS #10 request, can't generate subject certificate yet")
return None
resources = self.rpki_root_cert.get_3779resources()
- rpki.log.info("Generating subject cert with resources " + str(resources))
+ notAfter = now + self.rpki_subject_lifetime
+ rpki.log.info("Generating subject cert %s with resources %s, expires %s" % (
+ self.rpki_base_uri + self.rpki_subject_cert, resources, notAfter))
req_key = pkcs10.getPublicKey()
req_sia = pkcs10.get_SIA()
self.next_serial_number()
@@ -198,7 +200,7 @@ class main(object):
aia = self.rpki_root_cert_uri,
crldp = self.rpki_base_uri + self.rpki_root_crl,
resources = resources,
- notAfter = now + self.rpki_subject_lifetime)
+ notAfter = notAfter)
self.set_subject_cert(subject_cert)
self.generate_crl_and_manifest(now)
return subject_cert
@@ -227,8 +229,7 @@ class main(object):
keypair = self.rpki_root_key,
subject_key = manifest_keypair.get_RSApublic(),
serial = self.serial_number,
- sia = ((rpki.oids.name2oid["id-ad-signedObject"],
- ("uri", self.rpki_base_uri + self.rpki_root_manifest)),),
+ sia = (None, None, self.rpki_base_uri + self.rpki_root_manifest),
aia = self.rpki_root_cert_uri,
crldp = self.rpki_base_uri + self.rpki_root_crl,
resources = manifest_resources,
@@ -247,7 +248,7 @@ class main(object):
f.close()
def revoke_subject_cert(self, now):
- self.revoked.append((self.get_subject_cert().getSerial(), now.toASN1tuple(), ()))
+ self.revoked.append((self.get_subject_cert().getSerial(), now))
def compose_response(self, r_msg, pkcs10 = None):
subject_cert = self.issue_subject_cert_maybe(pkcs10)
@@ -297,8 +298,8 @@ class main(object):
if self.crl_number is None:
try:
crl = rpki.x509.CRL(DER_file = os.path.join(self.rpki_root_dir, self.rpki_root_crl))
- self.crl_number = crl.get_POWpkix().getExtension(rpki.oids.name2oid["cRLNumber"])[2]
- except:
+ self.crl_number = crl.getCRLNumber()
+ except: # pylint: disable=W0702
self.crl_number = 0
self.crl_number += 1
return self.crl_number
@@ -372,12 +373,12 @@ class main(object):
self.rpki_root_key = rpki.x509.RSA(Auto_update = self.cfg.get("rpki-root-key"))
self.rpki_root_cert_file = self.cfg.get("rpki-root-cert")
- self.rpki_root_cert_uri = self.cfg.get("rpki-root-cert-uri", self.rpki_base_uri + "Root.cer")
+ self.rpki_root_cert_uri = self.cfg.get("rpki-root-cert-uri", self.rpki_base_uri + "root.cer")
- self.rpki_root_manifest = self.cfg.get("rpki-root-manifest", "Root.mft")
- self.rpki_root_crl = self.cfg.get("rpki-root-crl", "Root.crl")
- self.rpki_subject_cert = self.cfg.get("rpki-subject-cert", "Child.cer")
- self.rpki_subject_pkcs10 = self.cfg.get("rpki-subject-pkcs10", "Child.pkcs10")
+ self.rpki_root_manifest = self.cfg.get("rpki-root-manifest", "root.mft")
+ self.rpki_root_crl = self.cfg.get("rpki-root-crl", "root.crl")
+ self.rpki_subject_cert = self.cfg.get("rpki-subject-cert", "child.cer")
+ self.rpki_subject_pkcs10 = self.cfg.get("rpki-subject-pkcs10", "child.pkcs10")
self.rpki_subject_lifetime = rpki.sundial.timedelta.parse(self.cfg.get("rpki-subject-lifetime", "30d"))
self.rpki_subject_regen = rpki.sundial.timedelta.parse(self.cfg.get("rpki-subject-regen", self.rpki_subject_lifetime.convert_to_seconds() / 2))
diff --git a/rpkid/rpki/rpkic.py b/rpkid/rpki/rpkic.py
index 2849aa12..f00e15b5 100644
--- a/rpkid/rpki/rpkic.py
+++ b/rpkid/rpki/rpkic.py
@@ -39,16 +39,10 @@ PERFORMANCE OF THIS SOFTWARE.
# modules, or anything that imports Django modules. Bottom line is
# that we don't import such modules until we need them.
-import csv
-import re
import os
import getopt
import sys
-import base64
import time
-import glob
-import copy
-import warnings
import rpki.config
import rpki.cli
import rpki.sundial
@@ -116,7 +110,7 @@ class main(rpki.cli.Cmd):
rpki.cli.Cmd.__init__(self, self.argv)
def read_config(self):
- global rpki
+ global rpki # pylint: disable=W0602
cfg = rpki.config.parser(self.cfg_file, "myrpki")
cfg.set_global_flags()
@@ -137,7 +131,7 @@ class main(rpki.cli.Cmd):
INSTALLED_APPS = ("rpki.irdb",),
)
- import rpki.irdb
+ import rpki.irdb # pylint: disable=W0621
try:
rpki.irdb.models.ca_certificate_lifetime = rpki.sundial.timedelta.parse(
@@ -228,6 +222,7 @@ class main(rpki.cli.Cmd):
self.zoo.update_bpki()
self.zoo.write_bpki_files()
+ self.zoo.synchronize()
def do_configure_child(self, arg):
@@ -252,7 +247,7 @@ class main(rpki.cli.Cmd):
r, child_handle = self.zoo.configure_child(argv[0], child_handle)
r.save("%s.%s.parent-response.xml" % (self.zoo.handle, child_handle), sys.stdout)
- self.zoo.synchronize()
+ self.zoo.synchronize_ca()
def do_delete_child(self, arg):
@@ -262,7 +257,7 @@ class main(rpki.cli.Cmd):
try:
self.zoo.delete_child(arg)
- self.zoo.synchronize()
+ self.zoo.synchronize_ca()
except rpki.irdb.Child.DoesNotExist:
print "No such child \"%s\"" % arg
@@ -309,7 +304,7 @@ class main(rpki.cli.Cmd):
try:
self.zoo.delete_parent(arg)
- self.zoo.synchronize()
+ self.zoo.synchronize_ca()
except rpki.irdb.Parent.DoesNotExist:
print "No such parent \"%s\"" % arg
@@ -324,7 +319,7 @@ class main(rpki.cli.Cmd):
try:
self.zoo.delete_rootd()
- self.zoo.synchronize()
+ self.zoo.synchronize_ca()
except rpki.irdb.Rootd.DoesNotExist:
print "No associated rootd"
@@ -355,7 +350,7 @@ class main(rpki.cli.Cmd):
r.save("%s.repository-response.xml" % client_handle.replace("/", "."), sys.stdout)
try:
- self.zoo.synchronize()
+ self.zoo.synchronize_pubd()
except rpki.irdb.Repository.DoesNotExist:
pass
@@ -367,7 +362,7 @@ class main(rpki.cli.Cmd):
try:
self.zoo.delete_publication_client(arg).delete()
- self.zoo.synchronize()
+ self.zoo.synchronize_pubd()
except rpki.irdb.Client.DoesNotExist:
print "No such client \"%s\"" % arg
@@ -396,7 +391,7 @@ class main(rpki.cli.Cmd):
raise BadCommandSyntax, "Need to specify filename for repository.xml on command line"
self.zoo.configure_repository(argv[0], parent_handle)
- self.zoo.synchronize()
+ self.zoo.synchronize_ca()
def do_delete_repository(self, arg):
"""
@@ -408,7 +403,7 @@ class main(rpki.cli.Cmd):
try:
self.zoo.delete_repository(arg)
- self.zoo.synchronize()
+ self.zoo.synchronize_ca()
except rpki.irdb.Repository.DoesNotExist:
print "No such repository \"%s\"" % arg
@@ -422,7 +417,7 @@ class main(rpki.cli.Cmd):
"""
self.zoo.delete_self()
- self.zoo.synchronize()
+ self.zoo.synchronize_deleted_ca()
def do_renew_child(self, arg):
@@ -441,7 +436,9 @@ class main(rpki.cli.Cmd):
raise BadCommandSyntax, "Need to specify child handle"
self.zoo.renew_children(argv[0], valid_until)
- self.zoo.synchronize(self.zoo.handle)
+ self.zoo.synchronize_ca()
+ if self.autosync:
+ self.zoo.run_rpkid_now()
def complete_renew_child(self, *args):
return self.irdb_handle_complete(self.zoo.resource_ca.children, *args)
@@ -463,7 +460,9 @@ class main(rpki.cli.Cmd):
raise BadCommandSyntax, "Unexpected arguments"
self.zoo.renew_children(None, valid_until)
- self.zoo.synchronize(self.zoo.handle)
+ self.zoo.synchronize_ca()
+ if self.autosync:
+ self.zoo.run_rpkid_now()
def do_load_prefixes(self, arg):
@@ -478,7 +477,7 @@ class main(rpki.cli.Cmd):
self.zoo.load_prefixes(argv[0], True)
if self.autosync:
- self.zoo.synchronize(self.zoo.handle)
+ self.zoo.run_rpkid_now()
def do_show_child_resources(self, arg):
@@ -513,7 +512,7 @@ class main(rpki.cli.Cmd):
self.zoo.load_asns(argv[0], True)
if self.autosync:
- self.zoo.synchronize(self.zoo.handle)
+ self.zoo.run_rpkid_now()
def do_load_roa_requests(self, arg):
@@ -528,7 +527,7 @@ class main(rpki.cli.Cmd):
self.zoo.load_roa_requests(argv[0])
if self.autosync:
- self.zoo.synchronize(self.zoo.handle)
+ self.zoo.run_rpkid_now()
def do_synchronize(self, arg):
@@ -542,7 +541,7 @@ class main(rpki.cli.Cmd):
if arg:
raise BadCommandSyntax("Unexpected argument(s): %r" % arg)
- self.zoo.synchronize(self.zoo.handle)
+ self.zoo.synchronize()
def do_force_publication(self, arg):
diff --git a/rpkid/rpki/rpkid.py b/rpkid/rpki/rpkid.py
index f3fc38fa..42671f7f 100644
--- a/rpkid/rpki/rpkid.py
+++ b/rpkid/rpki/rpkid.py
@@ -42,7 +42,6 @@ import os
import time
import getopt
import sys
-import lxml.etree
import re
import random
import rpki.resource_set
@@ -57,6 +56,7 @@ import rpki.relaxng
import rpki.log
import rpki.async
import rpki.daemonize
+import rpki.rpkid_tasks
class main(object):
"""
@@ -73,6 +73,8 @@ class main(object):
self.foreground = False
self.irdbd_cms_timestamp = None
self.irbe_cms_timestamp = None
+ self.task_current = None
+ self.task_queue = []
opts, argv = getopt.getopt(sys.argv[1:], "c:dfhp:?",
["config=", "debug", "foreground", "help", "profile="])
@@ -135,11 +137,17 @@ class main(object):
self.publication_kludge_base = self.cfg.get("publication-kludge-base", "publication/")
+ # Icky hack to let Iain do some testing quickly, should go away
+ # once we sort out whether we can make this change permanent.
+
+ self.merge_publication_directories = self.cfg.getboolean("merge_publication_directories",
+ False)
+
self.use_internal_cron = self.cfg.getboolean("use-internal-cron", True)
self.initial_delay = random.randint(self.cfg.getint("initial-delay-min", 10),
self.cfg.getint("initial-delay-max", 120))
-
+
# Should be much longer in production
self.cron_period = rpki.sundial.timedelta(seconds = self.cfg.getint("cron-period", 120))
self.cron_keepalive = rpki.sundial.timedelta(seconds = self.cfg.getint("cron-keepalive", 0))
@@ -269,7 +277,6 @@ class main(object):
cb(200, body = reply)
try:
- self.sql.ping()
q_cms = rpki.left_right.cms_msg(DER = query)
q_msg = q_cms.unwrap((self.bpki_ta, self.irbe_cert))
self.irbe_cms_timestamp = q_cms.check_replay(self.irbe_cms_timestamp)
@@ -296,7 +303,6 @@ class main(object):
cb(200, body = reply)
try:
- self.sql.ping()
match = self.up_down_url_regexp.search(path)
if match is None:
raise rpki.exceptions.BadContactURL, "Bad URL path received in up_down_handler(): %s" % path
@@ -323,6 +329,38 @@ class main(object):
if force or self.cron_timeout is not None:
self.cron_timeout = rpki.sundial.now() + self.cron_keepalive
+ def task_add(self, task):
+ """
+ Add a task to the scheduler task queue, unless it's already queued.
+ """
+ if task not in self.task_queue:
+ rpki.log.debug("Adding %r to task queue" % task)
+ self.task_queue.append(task)
+ return True
+ else:
+ rpki.log.debug("Task %r was already in the task queue" % task)
+ return False
+
+ def task_next(self):
+ """
+ Pull next task from the task queue and put it the deferred event
+ queue (we don't want to run it directly, as that could eventually
+ blow out our call stack).
+ """
+ try:
+ self.task_current = self.task_queue.pop(0)
+ except IndexError:
+ self.task_current = None
+ else:
+ rpki.async.event_defer(self.task_current)
+
+ def task_run(self):
+ """
+ Run first task on the task queue, unless one is running already.
+ """
+ if self.task_current is None:
+ self.task_next()
+
def cron(self, cb = None):
"""
Periodic tasks.
@@ -330,53 +368,42 @@ class main(object):
rpki.log.trace()
- def loop(iterator, s):
- self.checkpoint()
- s.cron(iterator)
+ now = rpki.sundial.now()
+
+ rpki.log.debug("Starting cron run")
def done():
self.sql.sweep()
self.cron_timeout = None
rpki.log.info("Finished cron run started at %s" % now)
- if not self.use_internal_cron:
+ if cb is not None:
cb()
- def lose(e):
- self.cron_timeout = None
- if self.use_internal_cron:
- rpki.log.traceback()
- else:
- raise
-
- try:
- now = rpki.sundial.now()
-
- assert self.use_internal_cron or self.cron_timeout is None
-
- if self.use_internal_cron:
+ completion = rpki.rpkid_tasks.CompletionHandler(done)
+ for s in rpki.left_right.self_elt.sql_fetch_all(self):
+ s.schedule_cron_tasks(completion)
+ nothing_queued = completion.count == 0
- if self.cron_timeout is not None and self.cron_timeout < now:
- rpki.log.warn("cron keepalive threshold %s has expired, breaking lock" % self.cron_timeout)
- self.cron_timeout = None
+ assert self.use_internal_cron or self.cron_timeout is None
- when = now + self.cron_period
- rpki.log.debug("Scheduling next cron run at %s" % when)
- self.cron_timer.set(when)
+ if self.cron_timeout is not None and self.cron_timeout < now:
+ rpki.log.warn("cron keepalive threshold %s has expired, breaking lock" % self.cron_timeout)
+ self.cron_timeout = None
- if self.cron_timeout is not None:
- rpki.log.warn("cron already running, keepalive will expire at %s" % self.cron_timeout)
- return
+ if self.use_internal_cron:
+ when = now + self.cron_period
+ rpki.log.debug("Scheduling next cron run at %s" % when)
+ self.cron_timer.set(when)
- self.sql.ping()
+ if self.cron_timeout is None:
self.checkpoint(self.use_internal_cron)
- rpki.async.iterator(rpki.left_right.self_elt.sql_fetch_all(self), loop, done)
+ self.task_run()
- except (rpki.async.ExitNow, SystemExit):
- self.cron_timeout = None
- raise
+ elif self.use_internal_cron:
+ rpki.log.warn("cron already running, keepalive will expire at %s" % self.cron_timeout)
- except Exception, e:
- lose(e)
+ if nothing_queued:
+ done()
def cronjob_handler(self, query, path, cb):
"""
@@ -391,6 +418,7 @@ class main(object):
if self.use_internal_cron:
cb(500, reason = "Running cron internally")
else:
+ rpki.log.debug("Starting externally triggered cron")
self.cron(done)
class ca_obj(rpki.sql.sql_persistent):
@@ -403,15 +431,22 @@ class ca_obj(rpki.sql.sql_persistent):
"ca_id",
"last_crl_sn",
("next_crl_update", rpki.sundial.datetime),
- "last_issued_sn", "last_manifest_sn",
+ "last_issued_sn",
+ "last_manifest_sn",
("next_manifest_update", rpki.sundial.datetime),
- "sia_uri", "parent_id", "parent_resource_class")
+ "sia_uri",
+ "parent_id",
+ "parent_resource_class")
last_crl_sn = 0
last_issued_sn = 0
last_manifest_sn = 0
+ def __repr__(self):
+ return rpki.log.log_repr(self, repr(self.parent), self.parent_resource_class)
+
@property
+ @rpki.sql.cache_reference
def parent(self):
"""
Fetch parent object to which this CA object links.
@@ -447,6 +482,13 @@ class ca_obj(rpki.sql.sql_persistent):
return ca_detail_obj.sql_fetch_where(self.gctx, "ca_id = %s AND state = 'deprecated'", (self.ca_id,))
@property
+ def active_or_deprecated_ca_details(self):
+ """
+ Fetch active and deprecated ca_details for this CA, if any.
+ """
+ return ca_detail_obj.sql_fetch_where(self.gctx, "ca_id = %s AND (state = 'active' OR state = 'deprecated')", (self.ca_id,))
+
+ @property
def revoked_ca_details(self):
"""
Fetch revoked ca_details for this CA, if any.
@@ -473,7 +515,11 @@ class ca_obj(rpki.sql.sql_persistent):
sia_uri = parent.sia_base
if not sia_uri.endswith("/"):
raise rpki.exceptions.BadURISyntax, "SIA URI must end with a slash: %s" % sia_uri
- return sia_uri + str(self.ca_id) + "/"
+ # With luck this can go away sometime soon.
+ if self.gctx.merge_publication_directories:
+ return sia_uri
+ else:
+ return sia_uri + str(self.ca_id) + "/"
def check_for_updates(self, parent, rc, cb, eb):
"""
@@ -588,6 +634,7 @@ class ca_obj(rpki.sql.sql_persistent):
callback = cb,
errback = eb)
+ rpki.log.debug("Sending issue request to %r from %r" % (parent, self.create))
rpki.up_down.issue_pdu.query(parent, self, ca_detail, done, eb)
def delete(self, parent, callback):
@@ -663,6 +710,7 @@ class ca_obj(rpki.sql.sql_persistent):
callback = cb,
errback = eb)
+ rpki.log.debug("Sending issue request to %r from %r" % (parent, self.rekey))
rpki.up_down.issue_pdu.query(parent, self, new_detail, done, eb)
def revoke(self, cb, eb, revoke_all = False):
@@ -716,6 +764,11 @@ class ca_detail_obj(rpki.sql.sql_persistent):
crl_published = None
manifest_published = None
latest_ca_cert = None
+ latest_crl = None
+ latest_manifest = None
+
+ def __repr__(self):
+ return rpki.log.log_repr(self, repr(self.ca), self.state, self.ca_cert_uri)
def sql_decode(self, vals):
"""
@@ -726,6 +779,7 @@ class ca_detail_obj(rpki.sql.sql_persistent):
assert self.manifest_public_key is None or self.manifest_private_key_id is None or self.manifest_public_key.get_DER() == self.manifest_private_key_id.get_public_DER()
@property
+ @rpki.sql.cache_reference
def ca(self):
"""
Fetch CA object to which this ca_detail links.
@@ -815,14 +869,10 @@ class ca_detail_obj(rpki.sql.sql_persistent):
child_cert.reissue(ca_detail = self, publisher = publisher)
for roa in predecessor.roas:
roa.regenerate(publisher = publisher)
-
- # Need to do something to regenerate ghostbusters here?
- # Yes, I suspect so, since presumably we want the ghostbuster to
- # be issued by the new ca_detail at this point. But check code.
-
- if predecessor.ghostbusters:
- rpki.log.warn("Probably should be regenerating Ghostbusters %r here" % ghostbuster)
-
+ for ghostbuster in predecessor.ghostbusters:
+ ghostbuster.regenerate(publisher = publisher)
+ predecessor.generate_crl(publisher = publisher)
+ predecessor.generate_manifest(publisher = publisher)
publisher.call_pubd(callback, errback)
@@ -898,10 +948,7 @@ class ca_detail_obj(rpki.sql.sql_persistent):
nextUpdate = rpki.sundial.now()
if self.latest_manifest is not None:
- try:
- self.latest_manifest.get_content()
- except rpki.exceptions.CMSContentNotSet:
- self.latest_manifest.extract()
+ self.latest_manifest.extract_if_needed()
nextUpdate = nextUpdate.later(self.latest_manifest.getNextUpdate())
if self.latest_crl is not None:
@@ -942,7 +989,10 @@ class ca_detail_obj(rpki.sql.sql_persistent):
"""
def issued(issue_response):
- self.latest_ca_cert = issue_response.payload.classes[0].certs[0].cert
+ new_ca_cert = issue_response.payload.classes[0].certs[0].cert
+ if self.latest_ca_cert != new_ca_cert:
+ self.latest_ca_cert = new_ca_cert
+ self.sql_mark_dirty()
new_resources = self.latest_ca_cert.get_3779resources()
publisher = publication_queue()
@@ -952,11 +1002,12 @@ class ca_detail_obj(rpki.sql.sql_persistent):
if sia_uri_changed or child_resources.oversized(new_resources):
child_cert.reissue(
ca_detail = self,
- resources = child_resources.intersection(new_resources),
+ resources = child_resources & new_resources,
publisher = publisher)
publisher.call_pubd(callback, errback)
+ rpki.log.debug("Sending issue request to %r from %r" % (parent, self.update))
rpki.up_down.issue_pdu.query(parent, ca, self, issued, errback)
@classmethod
@@ -994,7 +1045,6 @@ class ca_detail_obj(rpki.sql.sql_persistent):
notAfter = self.latest_ca_cert.getNotAfter(),
is_ca = False)
-
def generate_manifest_cert(self):
"""
Generate a new manifest certificate for this ca_detail.
@@ -1005,7 +1055,7 @@ class ca_detail_obj(rpki.sql.sql_persistent):
ca = self.ca,
resources = resources,
subject_key = self.manifest_public_key,
- sia = ((rpki.oids.name2oid["id-ad-signedObject"], ("uri", self.manifest_uri)),))
+ sia = (None, None, self.manifest_uri))
def issue(self, ca, child, subject_key, sia, resources, publisher, child_cert = None):
"""
@@ -1015,6 +1065,8 @@ class ca_detail_obj(rpki.sql.sql_persistent):
containing the newly issued cert.
"""
+ self.check_failed_publication(publisher)
+
assert child_cert is None or child_cert.child_id == child.child_id
cert = self.latest_ca_cert.issue(
@@ -1036,6 +1088,7 @@ class ca_detail_obj(rpki.sql.sql_persistent):
rpki.log.debug("Created new child_cert %r" % child_cert)
else:
child_cert.cert = cert
+ del child_cert.ca_detail
child_cert.ca_detail_id = self.ca_detail_id
rpki.log.debug("Reusing existing child_cert %r" % child_cert)
@@ -1058,6 +1111,8 @@ class ca_detail_obj(rpki.sql.sql_persistent):
new CRL is needed.
"""
+ self.check_failed_publication(publisher)
+
ca = self.ca
parent = ca.parent
crl_interval = rpki.sundial.timedelta(seconds = parent.self.crl_interval)
@@ -1071,7 +1126,7 @@ class ca_detail_obj(rpki.sql.sql_persistent):
if now > revoked_cert.expires + crl_interval:
revoked_cert.sql_delete()
else:
- certlist.append((revoked_cert.serial, revoked_cert.revoked.toASN1tuple(), ()))
+ certlist.append((revoked_cert.serial, revoked_cert.revoked))
certlist.sort()
self.latest_crl = rpki.x509.CRL.generate(
@@ -1100,22 +1155,30 @@ class ca_detail_obj(rpki.sql.sql_persistent):
Generate a new manifest for this ca_detail.
"""
+ self.check_failed_publication(publisher)
+
ca = self.ca
parent = ca.parent
crl_interval = rpki.sundial.timedelta(seconds = parent.self.crl_interval)
now = rpki.sundial.now()
+ uri = self.manifest_uri
if nextUpdate is None:
nextUpdate = now + crl_interval
if self.latest_manifest_cert is None or self.latest_manifest_cert.getNotAfter() < nextUpdate:
+ rpki.log.debug("Generating EE certificate for %s" % uri)
self.generate_manifest_cert()
+ rpki.log.debug("Latest CA cert notAfter %s, new %s EE notAfter %s" % (
+ self.latest_ca_cert.getNotAfter(), uri, self.latest_manifest_cert.getNotAfter()))
+ rpki.log.debug("Constructing manifest object list for %s" % uri)
objs = [(self.crl_uri_tail, self.latest_crl)]
objs.extend((c.uri_tail, c.cert) for c in self.child_certs)
objs.extend((r.uri_tail, r.roa) for r in self.roas if r.roa is not None)
objs.extend((g.uri_tail, g.ghostbuster) for g in self.ghostbusters)
+ rpki.log.debug("Building manifest object %s" % uri)
self.latest_manifest = rpki.x509.SignedManifest.build(
serial = ca.next_manifest_number(),
thisUpdate = now,
@@ -1124,10 +1187,11 @@ class ca_detail_obj(rpki.sql.sql_persistent):
keypair = self.manifest_private_key_id,
certs = self.latest_manifest_cert)
+ rpki.log.debug("Manifest generation took %s" % (rpki.sundial.now() - now))
self.manifest_published = rpki.sundial.now()
self.sql_mark_dirty()
- publisher.publish(cls = rpki.publication.manifest_elt, uri = self.manifest_uri, obj = self.latest_manifest, repository = parent.repository,
+ publisher.publish(cls = rpki.publication.manifest_elt, uri = uri, obj = self.latest_manifest, repository = parent.repository,
handler = self.manifest_published_callback)
def manifest_published_callback(self, pdu):
@@ -1144,6 +1208,7 @@ class ca_detail_obj(rpki.sql.sql_persistent):
"""
publisher = publication_queue()
+ self.check_failed_publication(publisher)
for roa in self.roas:
roa.regenerate(publisher, fast = True)
for ghostbuster in self.ghostbusters:
@@ -1152,6 +1217,48 @@ class ca_detail_obj(rpki.sql.sql_persistent):
child_cert.reissue(self, publisher, force = True)
publisher.call_pubd(cb, eb)
+ def check_failed_publication(self, publisher):
+ """
+ Check for failed publication of objects issued by this ca_detail.
+
+ All publishable objects have timestamp fields recording time of
+ last attempted publication, and callback methods which clear these
+ timestamps once publication has succeeded. Our task here is to
+ look for objects issued by this ca_detail which have timestamps
+ set (indicating that they have not been published) and for which
+ the timestamps are not very recent (for some definition of very
+ recent -- intent is to allow a bit of slack in case pubd is just
+ being slow). In such cases, we want to retry publication.
+
+ As an optimization, we can probably just check the manifest and
+ CRL; if these are up to date we probably don't need to check other
+ objects (which would involve several more SQL queries). Not sure
+ yet whether this optimization is worthwhile.
+
+ At the moment, we only check CRL and manifest, full stop. This
+ should be expanded to check other objects, but that would take
+ longer and I have a user who needs this fix today.
+ """
+
+ stale = rpki.sundial.now() - rpki.sundial.timedelta(seconds = 60)
+ repository = self.ca.parent.repository
+
+ if self.latest_crl is not None and self.crl_published is not None and self.crl_published < stale:
+ rpki.log.debug("Retrying publication for %s" % self.crl_uri)
+ publisher.publish(cls = rpki.publication.crl_elt,
+ uri = self.crl_uri,
+ obj = self.latest_crl,
+ repository = repository,
+ handler = self.crl_published_callback)
+
+ if self.latest_manifest is not None and self.manifest_published is not None and self.manifest_published < stale:
+ rpki.log.debug("Retrying publication for %s" % self.manifest_uri)
+ publisher.publish(cls = rpki.publication.manifest_elt,
+ uri = self.manifest_uri,
+ obj = self.latest_manifest,
+ repository = repository,
+ handler = self.manifest_published_callback)
+
class child_cert_obj(rpki.sql.sql_persistent):
"""
Certificate that has been issued to a child.
@@ -1166,6 +1273,9 @@ class child_cert_obj(rpki.sql.sql_persistent):
"ski",
("published", rpki.sundial.datetime))
+ def __repr__(self):
+ return rpki.log.log_repr(self, self.uri)
+
def __init__(self, gctx = None, child_id = None, ca_detail_id = None, cert = None):
"""
Initialize a child_cert_obj.
@@ -1180,19 +1290,28 @@ class child_cert_obj(rpki.sql.sql_persistent):
self.sql_mark_dirty()
@property
+ @rpki.sql.cache_reference
def child(self):
"""
Fetch child object to which this child_cert object links.
"""
return rpki.left_right.child_elt.sql_fetch(self.gctx, self.child_id)
-
+
@property
+ @rpki.sql.cache_reference
def ca_detail(self):
"""
Fetch ca_detail object to which this child_cert object links.
"""
return ca_detail_obj.sql_fetch(self.gctx, self.ca_detail_id)
+ @ca_detail.deleter
+ def ca_detail(self):
+ try:
+ del self._ca_detail
+ except AttributeError:
+ pass
+
@property
def uri_tail(self):
"""
@@ -1353,6 +1472,9 @@ class revoked_cert_obj(rpki.sql.sql_persistent):
("revoked", rpki.sundial.datetime),
("expires", rpki.sundial.datetime))
+ def __repr__(self):
+ return rpki.log.log_repr(self, repr(self.ca_detail), self.serial, self.revoked)
+
def __init__(self, gctx = None, serial = None, revoked = None, expires = None, ca_detail_id = None):
"""
Initialize a revoked_cert_obj.
@@ -1367,6 +1489,7 @@ class revoked_cert_obj(rpki.sql.sql_persistent):
self.sql_mark_dirty()
@property
+ @rpki.sql.cache_reference
def ca_detail(self):
"""
Fetch ca_detail object to which this revoked_cert_obj links.
@@ -1406,6 +1529,7 @@ class roa_obj(rpki.sql.sql_persistent):
published = None
@property
+ @rpki.sql.cache_reference
def self(self):
"""
Fetch self object to which this roa_obj links.
@@ -1413,12 +1537,20 @@ class roa_obj(rpki.sql.sql_persistent):
return rpki.left_right.self_elt.sql_fetch(self.gctx, self.self_id)
@property
+ @rpki.sql.cache_reference
def ca_detail(self):
"""
Fetch ca_detail object to which this roa_obj links.
"""
return rpki.rpkid.ca_detail_obj.sql_fetch(self.gctx, self.ca_detail_id)
+ @ca_detail.deleter
+ def ca_detail(self):
+ try:
+ del self._ca_detail
+ except AttributeError:
+ pass
+
def sql_fetch_hook(self):
"""
Extra SQL fetch actions for roa_obj -- handle prefix lists.
@@ -1569,12 +1701,13 @@ class roa_obj(rpki.sql.sql_persistent):
resources = rpki.resource_set.resource_bag(v4 = v4, v6 = v6)
keypair = rpki.x509.RSA.generate()
+ del self.ca_detail
self.ca_detail_id = ca_detail.ca_detail_id
self.cert = ca_detail.issue_ee(
ca = ca,
resources = resources,
subject_key = keypair.get_RSApublic(),
- sia = ((rpki.oids.name2oid["id-ad-signedObject"], ("uri", self.uri_from_key(keypair))),))
+ sia = (None, None, self.uri_from_key(keypair)))
self.roa = rpki.x509.ROA.build(self.asn, self.ipv4, self.ipv6, keypair, (self.cert,))
self.published = rpki.sundial.now()
self.sql_store()
@@ -1685,7 +1818,11 @@ class ghostbuster_obj(rpki.sql.sql_persistent):
published = None
vcard = None
+ def __repr__(self):
+ return rpki.log.log_repr(self, self.uri)
+
@property
+ @rpki.sql.cache_reference
def self(self):
"""
Fetch self object to which this ghostbuster_obj links.
@@ -1693,6 +1830,7 @@ class ghostbuster_obj(rpki.sql.sql_persistent):
return rpki.left_right.self_elt.sql_fetch(self.gctx, self.self_id)
@property
+ @rpki.sql.cache_reference
def ca_detail(self):
"""
Fetch ca_detail object to which this ghostbuster_obj links.
@@ -1748,7 +1886,7 @@ class ghostbuster_obj(rpki.sql.sql_persistent):
ca = ca,
resources = resources,
subject_key = keypair.get_RSApublic(),
- sia = ((rpki.oids.name2oid["id-ad-signedObject"], ("uri", self.uri_from_key(keypair))),))
+ sia = (None, None, self.uri_from_key(keypair)))
self.ghostbuster = rpki.x509.Ghostbuster.build(self.vcard, keypair, (self.cert,))
self.published = rpki.sundial.now()
self.sql_store()
@@ -1879,6 +2017,7 @@ class publication_queue(object):
def call_pubd(self, cb, eb):
def loop(iterator, rid):
+ rpki.log.debug("Calling pubd[%r]" % self.repositories[rid])
self.repositories[rid].call_pubd(iterator, eb, self.msgs[rid], self.handlers)
def done():
self.clear()
@@ -1888,3 +2027,7 @@ class publication_queue(object):
@property
def size(self):
return sum(len(self.msgs[rid]) for rid in self.repositories)
+
+ def empty(self):
+ assert (not self.msgs) == (self.size == 0)
+ return not self.msgs
diff --git a/rpkid/rpki/rpkid_tasks.py b/rpkid/rpki/rpkid_tasks.py
new file mode 100644
index 00000000..79eb3c2b
--- /dev/null
+++ b/rpkid/rpki/rpkid_tasks.py
@@ -0,0 +1,574 @@
+"""
+rpkid task objects. Split out from rpki.left_right and rpki.rpkid
+because interactions with rpkid scheduler were getting too complicated.
+
+$Id$
+
+Copyright (C) 2012 Internet Systems Consortium ("ISC")
+
+Permission to use, copy, modify, and distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+"""
+
+import rpki.log
+import rpki.rpkid
+import rpki.async
+import rpki.up_down
+import rpki.sundial
+import rpki.publication
+import rpki.exceptions
+
+class CompletionHandler(object):
+ """
+ Track one or more scheduled rpkid tasks and execute a callback when
+ the last of them terminates.
+ """
+
+ ## @var debug
+ # Debug logging.
+
+ debug = False
+
+ def __init__(self, cb):
+ self.cb = cb
+ self.tasks = set()
+
+ def register(self, task):
+ if self.debug:
+ rpki.log.debug("Completion handler %r registering task %r" % (self, task))
+ self.tasks.add(task)
+ task.register_completion(self.done)
+
+ def done(self, task):
+ try:
+ self.tasks.remove(task)
+ except KeyError:
+ rpki.log.warn("Completion handler %r called with unregistered task %r, blundering onwards" % (self, task))
+ else:
+ if self.debug:
+ rpki.log.debug("Completion handler %r called with registered task %r" % (self, task))
+ if not self.tasks:
+ if self.debug:
+ rpki.log.debug("Completion handler %r finished, calling %r" % (self, self.cb))
+ self.cb()
+
+ @property
+ def count(self):
+ return len(self.tasks)
+
+
+class AbstractTask(object):
+ """
+ Abstract base class for rpkid scheduler task objects. This just
+ handles the scheduler hooks, real work starts in self.start.
+
+ NB: This assumes that the rpki.rpkid.rpkid.task_* methods have been
+ rewritten to expect instances of subclasses of this class, rather
+ than expecting thunks to be wrapped up in the older version of this
+ class. Rewrite, rewrite, remove this comment when done, OK!
+ """
+
+ ## @var timeslice
+ # How long before a task really should consider yielding the CPU to
+ # let something else run.
+
+ timeslice = rpki.sundial.timedelta(seconds = 15)
+
+ def __init__(self, s, description = None):
+ self.self = s
+ self.description = description
+ self.completions = []
+ self.continuation = None
+ self.due_date = None
+ self.clear()
+
+ def __repr__(self):
+ return rpki.log.log_repr(self, self.description)
+
+ def register_completion(self, completion):
+ self.completions.append(completion)
+
+ def exit(self):
+ while self.completions:
+ self.completions.pop(0)(self)
+ self.clear()
+ self.due_date = None
+ self.self.gctx.task_next()
+
+ def postpone(self, continuation):
+ self.continuation = continuation
+ self.due_date = None
+ self.self.gctx.task_add(self)
+ self.self.gctx.task_next()
+
+ def __call__(self):
+ self.due_date = rpki.sundial.now() + self.timeslice
+ if self.continuation is None:
+ rpki.log.debug("Running task %r" % self)
+ self.clear()
+ self.start()
+ else:
+ rpki.log.debug("Restarting task %r at %r" % (self, self.continuation))
+ continuation = self.continuation
+ self.continuation = None
+ continuation()
+
+ @property
+ def overdue(self):
+ return rpki.sundial.now() > self.due_date
+
+ def __getattr__(self, name):
+ return getattr(self.self, name)
+
+ def start(self):
+ raise NotImplementedError
+
+ def clear(self):
+ pass
+
+
+class PollParentTask(AbstractTask):
+ """
+ Run the regular client poll cycle with each of this self's
+ parents, in turn.
+ """
+
+ def clear(self):
+ self.parent_iterator = None
+ self.parent = None
+ self.ca_map = None
+ self.class_iterator = None
+
+ def start(self):
+ rpki.log.trace()
+ self.gctx.checkpoint()
+ rpki.log.debug("Self %s[%d] polling parents" % (self.self_handle, self.self_id))
+ rpki.async.iterator(self.parents, self.parent_loop, self.exit)
+
+ def parent_loop(self, parent_iterator, parent):
+ self.parent_iterator = parent_iterator
+ self.parent = parent
+ rpki.up_down.list_pdu.query(parent, self.got_list, self.list_failed)
+
+ def got_list(self, r_msg):
+ self.ca_map = dict((ca.parent_resource_class, ca) for ca in self.parent.cas)
+ self.gctx.checkpoint()
+ rpki.async.iterator(r_msg.payload.classes, self.class_loop, self.class_done)
+
+ def list_failed(self, e):
+ rpki.log.traceback()
+ rpki.log.warn("Couldn't get resource class list from parent %r, skipping: %s (%r)" % (
+ self.parent, e, e))
+ self.parent_iterator()
+
+ def class_loop(self, class_iterator, rc):
+ self.gctx.checkpoint()
+ self.class_iterator = class_iterator
+ try:
+ ca = self.ca_map.pop(rc.class_name)
+ except KeyError:
+ rpki.rpkid.ca_obj.create(self.parent, rc, class_iterator, self.class_create_failed)
+ else:
+ ca.check_for_updates(self.parent, rc, class_iterator, self.class_update_failed)
+
+ def class_update_failed(self, e):
+ rpki.log.traceback()
+ rpki.log.warn("Couldn't update class, skipping: %s" % e)
+ self.class_iterator()
+
+ def class_create_failed(self, e):
+ rpki.log.traceback()
+ rpki.log.warn("Couldn't create class, skipping: %s" % e)
+ self.class_iterator()
+
+ def class_done(self):
+ rpki.async.iterator(self.ca_map.values(), self.ca_loop, self.ca_done)
+
+ def ca_loop(self, iterator, ca):
+ self.gctx.checkpoint()
+ ca.delete(self.parent, iterator)
+
+ def ca_done(self):
+ self.gctx.checkpoint()
+ self.gctx.sql.sweep()
+ self.parent_iterator()
+
+
+class UpdateChildrenTask(AbstractTask):
+ """
+ Check for updated IRDB data for all of this self's children and
+ issue new certs as necessary. Must handle changes both in
+ resources and in expiration date.
+ """
+
+ def clear(self):
+ self.now = None
+ self.rsn = None
+ self.publisher = None
+ self.iterator = None
+ self.child = None
+ self.child_certs = None
+
+ def start(self):
+ rpki.log.trace()
+ self.gctx.checkpoint()
+ rpki.log.debug("Self %s[%d] updating children" % (self.self_handle, self.self_id))
+ self.now = rpki.sundial.now()
+ self.rsn = self.now + rpki.sundial.timedelta(seconds = self.regen_margin)
+ self.publisher = rpki.rpkid.publication_queue()
+ rpki.async.iterator(self.children, self.loop, self.done)
+
+ def loop(self, iterator, child):
+ self.gctx.checkpoint()
+ self.gctx.sql.sweep()
+ self.iterator = iterator
+ self.child = child
+ self.child_certs = child.child_certs
+ if self.overdue:
+ self.publisher.call_pubd(lambda: self.postpone(self.do_child), self.publication_failed)
+ else:
+ self.do_child()
+
+ def do_child(self):
+ if self.child_certs:
+ self.gctx.irdb_query_child_resources(self.child.self.self_handle, self.child.child_handle, self.got_resources, self.lose)
+ else:
+ self.iterator()
+
+ def lose(self, e):
+ rpki.log.traceback()
+ rpki.log.warn("Couldn't update child %r, skipping: %s" % (self.child, e))
+ self.iterator()
+
+ def got_resources(self, irdb_resources):
+ try:
+ for child_cert in self.child_certs:
+ ca_detail = child_cert.ca_detail
+ ca = ca_detail.ca
+ if ca_detail.state == "active":
+ old_resources = child_cert.cert.get_3779resources()
+ new_resources = old_resources & irdb_resources & ca_detail.latest_ca_cert.get_3779resources()
+
+ if new_resources.empty():
+ rpki.log.debug("Resources shrank to the null set, revoking and withdrawing child %s certificate SKI %s" % (self.child.child_handle, child_cert.cert.gSKI()))
+ child_cert.revoke(publisher = self.publisher)
+ ca_detail.generate_crl(publisher = self.publisher)
+ ca_detail.generate_manifest(publisher = self.publisher)
+
+ elif old_resources != new_resources or (old_resources.valid_until < self.rsn and irdb_resources.valid_until > self.now):
+ rpki.log.debug("Need to reissue child %s certificate SKI %s" % (self.child.child_handle, child_cert.cert.gSKI()))
+ child_cert.reissue(
+ ca_detail = ca_detail,
+ resources = new_resources,
+ publisher = self.publisher)
+
+ elif old_resources.valid_until < self.now:
+ rpki.log.debug("Child %s certificate SKI %s has expired: cert.valid_until %s, irdb.valid_until %s"
+ % (self.child.child_handle, child_cert.cert.gSKI(), old_resources.valid_until, irdb_resources.valid_until))
+ child_cert.sql_delete()
+ self.publisher.withdraw(cls = rpki.publication.certificate_elt, uri = child_cert.uri, obj = child_cert.cert, repository = ca.parent.repository)
+ ca_detail.generate_manifest(publisher = self.publisher)
+
+ except (SystemExit, rpki.async.ExitNow):
+ raise
+ except Exception, e:
+ self.gctx.checkpoint()
+ self.lose(e)
+ else:
+ self.gctx.checkpoint()
+ self.gctx.sql.sweep()
+ self.iterator()
+
+ def done(self):
+ self.gctx.checkpoint()
+ self.gctx.sql.sweep()
+ self.publisher.call_pubd(self.exit, self.publication_failed)
+
+ def publication_failed(self, e):
+ rpki.log.traceback()
+ rpki.log.warn("Couldn't publish for %s, skipping: %s" % (self.self_handle, e))
+ self.gctx.checkpoint()
+ self.exit()
+
+
+class UpdateROAsTask(AbstractTask):
+ """
+ Generate or update ROAs for this self.
+ """
+
+ def clear(self):
+ self.orphans = None
+ self.updates = None
+ self.publisher = None
+ self.ca_details = None
+ self.count = None
+
+ def start(self):
+ rpki.log.trace()
+ self.gctx.checkpoint()
+ self.gctx.sql.sweep()
+ rpki.log.debug("Self %s[%d] updating ROAs" % (self.self_handle, self.self_id))
+
+ rpki.log.debug("Issuing query for ROA requests")
+ self.gctx.irdb_query_roa_requests(self.self_handle, self.got_roa_requests, self.roa_requests_failed)
+
+ def got_roa_requests(self, roa_requests):
+ self.gctx.checkpoint()
+ rpki.log.debug("Received response to query for ROA requests")
+
+ if self.gctx.sql.dirty:
+ rpki.log.warn("Unexpected dirty SQL cache, flushing")
+ self.gctx.sql.sweep()
+
+ roas = {}
+ seen = set()
+ self.orphans = []
+ self.updates = []
+ self.publisher = rpki.rpkid.publication_queue()
+ self.ca_details = set()
+
+ for roa in self.roas:
+ k = (roa.asn, str(roa.ipv4), str(roa.ipv6))
+ if k not in roas:
+ roas[k] = roa
+ elif (roa.roa is not None and roa.cert is not None and roa.ca_detail is not None and roa.ca_detail.state == "active" and
+ (roas[k].roa is None or roas[k].cert is None or roas[k].ca_detail is None or roas[k].ca_detail.state != "active")):
+ self.orphans.append(roas[k])
+ roas[k] = roa
+ else:
+ self.orphans.append(roa)
+
+ for roa_request in roa_requests:
+ k = (roa_request.asn, str(roa_request.ipv4), str(roa_request.ipv6))
+ if k in seen:
+ rpki.log.warn("Skipping duplicate ROA request %r" % roa_request)
+ else:
+ seen.add(k)
+ roa = roas.pop(k, None)
+ if roa is None:
+ roa = rpki.rpkid.roa_obj(self.gctx, self.self_id, roa_request.asn, roa_request.ipv4, roa_request.ipv6)
+ rpki.log.debug("Couldn't find existing ROA, created %r" % roa)
+ else:
+ rpki.log.debug("Found existing %r" % roa)
+ self.updates.append(roa)
+
+ self.orphans.extend(roas.itervalues())
+
+ if self.overdue:
+ self.postpone(self.begin_loop)
+ else:
+ self.begin_loop()
+
+ def begin_loop(self):
+ self.count = 0
+ rpki.async.iterator(self.updates, self.loop, self.done, pop_list = True)
+
+ def loop(self, iterator, roa):
+ self.gctx.checkpoint()
+ try:
+ roa.update(publisher = self.publisher, fast = True)
+ self.ca_details.add(roa.ca_detail)
+ self.gctx.sql.sweep()
+ except (SystemExit, rpki.async.ExitNow):
+ raise
+ except rpki.exceptions.NoCoveringCertForROA:
+ rpki.log.warn("No covering certificate for %r, skipping" % roa)
+ except Exception, e:
+ rpki.log.traceback()
+ rpki.log.warn("Could not update %r, skipping: %s" % (roa, e))
+ self.count += 1
+ if self.overdue:
+ self.publish(lambda: self.postpone(iterator))
+ else:
+ iterator()
+
+ def publish(self, done):
+ if not self.publisher.empty():
+ for ca_detail in self.ca_details:
+ rpki.log.debug("Generating new CRL for %r" % ca_detail)
+ ca_detail.generate_crl(publisher = self.publisher)
+ rpki.log.debug("Generating new manifest for %r" % ca_detail)
+ ca_detail.generate_manifest(publisher = self.publisher)
+ self.ca_details.clear()
+ self.gctx.sql.sweep()
+ self.gctx.checkpoint()
+ self.publisher.call_pubd(done, self.publication_failed)
+
+ def publication_failed(self, e):
+ rpki.log.traceback()
+ rpki.log.warn("Couldn't publish for %s, skipping: %s" % (self.self_handle, e))
+ self.gctx.checkpoint()
+ self.exit()
+
+ def done(self):
+ for roa in self.orphans:
+ try:
+ self.ca_details.add(roa.ca_detail)
+ roa.revoke(publisher = self.publisher, fast = True)
+ except (SystemExit, rpki.async.ExitNow):
+ raise
+ except Exception, e:
+ rpki.log.traceback()
+ rpki.log.warn("Could not revoke %r: %s" % (roa, e))
+ self.gctx.sql.sweep()
+ self.gctx.checkpoint()
+ self.publish(self.exit)
+
+ def roa_requests_failed(self, e):
+ rpki.log.traceback()
+ rpki.log.warn("Could not fetch ROA requests for %s, skipping: %s" % (self.self_handle, e))
+ self.exit()
+
+
+class UpdateGhostbustersTask(AbstractTask):
+ """
+ Generate or update Ghostbuster records for this self.
+
+ This was originally based on the ROA update code. It's possible
+ that both could benefit from refactoring, but at this point the
+ potential scaling issues for ROAs completely dominate structure of
+ the ROA code, and aren't relevant here unless someone is being
+ exceptionally silly.
+ """
+
+ def start(self):
+ rpki.log.trace()
+ self.gctx.checkpoint()
+ rpki.log.debug("Self %s[%d] updating Ghostbuster records" % (self.self_handle, self.self_id))
+
+ self.gctx.irdb_query_ghostbuster_requests(self.self_handle,
+ (p.parent_handle for p in self.parents),
+ self.got_ghostbuster_requests,
+ self.ghostbuster_requests_failed)
+
+ def got_ghostbuster_requests(self, ghostbuster_requests):
+
+ try:
+ self.gctx.checkpoint()
+ if self.gctx.sql.dirty:
+ rpki.log.warn("Unexpected dirty SQL cache, flushing")
+ self.gctx.sql.sweep()
+
+ ghostbusters = {}
+ orphans = []
+ publisher = rpki.rpkid.publication_queue()
+ ca_details = set()
+ seen = set()
+
+ parents = dict((p.parent_handle, p) for p in self.parents)
+
+ for ghostbuster in self.ghostbusters:
+ k = (ghostbuster.ca_detail_id, ghostbuster.vcard)
+ if ghostbuster.ca_detail.state != "active" or k in ghostbusters:
+ orphans.append(ghostbuster)
+ else:
+ ghostbusters[k] = ghostbuster
+
+ for ghostbuster_request in ghostbuster_requests:
+ if ghostbuster_request.parent_handle not in parents:
+ rpki.log.warn("Unknown parent_handle %r in Ghostbuster request, skipping" % ghostbuster_request.parent_handle)
+ continue
+ k = (ghostbuster_request.parent_handle, ghostbuster_request.vcard)
+ if k in seen:
+ rpki.log.warn("Skipping duplicate Ghostbuster request %r" % ghostbuster_request)
+ continue
+ seen.add(k)
+ for ca in parents[ghostbuster_request.parent_handle].cas:
+ ca_detail = ca.active_ca_detail
+ if ca_detail is not None:
+ ghostbuster = ghostbusters.pop((ca_detail.ca_detail_id, ghostbuster_request.vcard), None)
+ if ghostbuster is None:
+ ghostbuster = rpki.rpkid.ghostbuster_obj(self.gctx, self.self_id, ca_detail.ca_detail_id, ghostbuster_request.vcard)
+ rpki.log.debug("Created new Ghostbuster request for %r" % ghostbuster_request.parent_handle)
+ else:
+ rpki.log.debug("Found existing Ghostbuster request for %r" % ghostbuster_request.parent_handle)
+ ghostbuster.update(publisher = publisher, fast = True)
+ ca_details.add(ca_detail)
+
+ orphans.extend(ghostbusters.itervalues())
+ for ghostbuster in orphans:
+ ca_details.add(ghostbuster.ca_detail)
+ ghostbuster.revoke(publisher = publisher, fast = True)
+
+ for ca_detail in ca_details:
+ ca_detail.generate_crl(publisher = publisher)
+ ca_detail.generate_manifest(publisher = publisher)
+
+ self.gctx.sql.sweep()
+
+ self.gctx.checkpoint()
+ publisher.call_pubd(self.exit, self.publication_failed)
+
+ except (SystemExit, rpki.async.ExitNow):
+ raise
+ except Exception, e:
+ rpki.log.traceback()
+ rpki.log.warn("Could not update Ghostbuster records for %s, skipping: %s" % (self.self_handle, e))
+ self.exit()
+
+ def publication_failed(self, e):
+ rpki.log.traceback()
+ rpki.log.warn("Couldn't publish Ghostbuster updates for %s, skipping: %s" % (self.self_handle, e))
+ self.gctx.checkpoint()
+ self.exit()
+
+ def ghostbuster_requests_failed(self, e):
+ rpki.log.traceback()
+ rpki.log.warn("Could not fetch Ghostbuster record requests for %s, skipping: %s" % (self.self_handle, e))
+ self.exit()
+
+class RegenerateCRLsAndManifestsTask(AbstractTask):
+ """
+ Generate new CRLs and manifests as necessary for all of this self's
+ CAs. Extracting nextUpdate from a manifest is hard at the moment
+ due to implementation silliness, so for now we generate a new
+ manifest whenever we generate a new CRL
+
+ This code also cleans up tombstones left behind by revoked ca_detail
+ objects, since we're walking through the relevant portions of the
+ database anyway.
+ """
+
+ def start(self):
+ rpki.log.trace()
+ self.gctx.checkpoint()
+ rpki.log.debug("Self %s[%d] regenerating CRLs and manifests" % (self.self_handle, self.self_id))
+
+ now = rpki.sundial.now()
+ regen_margin = rpki.sundial.timedelta(seconds = self.regen_margin)
+ publisher = rpki.rpkid.publication_queue()
+
+ for parent in self.parents:
+ for ca in parent.cas:
+ try:
+ for ca_detail in ca.revoked_ca_details:
+ if now > ca_detail.latest_crl.getNextUpdate():
+ ca_detail.delete(ca = ca, publisher = publisher)
+ for ca_detail in ca.active_or_deprecated_ca_details:
+ if now + regen_margin > ca_detail.latest_crl.getNextUpdate():
+ ca_detail.generate_crl(publisher = publisher)
+ ca_detail.generate_manifest(publisher = publisher)
+ except (SystemExit, rpki.async.ExitNow):
+ raise
+ except Exception, e:
+ rpki.log.traceback()
+ rpki.log.warn("Couldn't regenerate CRLs and manifests for CA %r, skipping: %s" % (ca, e))
+
+ self.gctx.checkpoint()
+ self.gctx.sql.sweep()
+ publisher.call_pubd(self.exit, self.lose)
+
+ def lose(self, e):
+ rpki.log.traceback()
+ rpki.log.warn("Couldn't publish updated CRLs and manifests for self %r, skipping: %s" % (self.self_handle, e))
+ self.gctx.checkpoint()
+ self.exit()
diff --git a/rpkid/rpki/sql.py b/rpkid/rpki/sql.py
index 14d1e1fb..d4426680 100644
--- a/rpkid/rpki/sql.py
+++ b/rpkid/rpki/sql.py
@@ -3,7 +3,7 @@ SQL interface code.
$Id$
-Copyright (C) 2009 Internet Systems Consortium ("ISC")
+Copyright (C) 2009-2012 Internet Systems Consortium ("ISC")
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
@@ -32,19 +32,26 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
"""
+import weakref
+
from rpki.mysql_import import (MySQLdb, _mysql_exceptions)
-import rpki.x509, rpki.resource_set, rpki.sundial, rpki.log
+import rpki.x509
+import rpki.resource_set
+import rpki.sundial
+import rpki.log
class session(object):
"""
SQL session layer.
"""
- ## @var clear_threshold
- # Size above which .cache_clear_maybe() should clear the cache.
+ ## @var ping_threshold
+ # Timeout after which we should issue a ping command before the real
+ # one. Intent is to keep the MySQL connection alive without pinging
+ # before every single command.
- clear_threshold = 5000
+ ping_threshold = rpki.sundial.timedelta(seconds = 60)
def __init__(self, cfg):
@@ -52,15 +59,24 @@ class session(object):
self.database = cfg.get("sql-database")
self.password = cfg.get("sql-password")
- self.cache = {}
+ self.conv = MySQLdb.converters.conversions.copy()
+ self.conv.update({
+ rpki.sundial.datetime : MySQLdb.converters.DateTime2literal,
+ MySQLdb.converters.FIELD_TYPE.DATETIME : rpki.sundial.datetime.DateTime_or_None })
+
+ self.cache = weakref.WeakValueDictionary()
self.dirty = set()
self.connect()
def connect(self):
- self.db = MySQLdb.connect(user = self.username, db = self.database, passwd = self.password)
+ self.db = MySQLdb.connect(user = self.username,
+ db = self.database,
+ passwd = self.password,
+ conv = self.conv)
self.cur = self.db.cursor()
self.db.autocommit(True)
+ self.timestamp = rpki.sundial.now()
def close(self):
if self.cur:
@@ -70,11 +86,12 @@ class session(object):
self.db.close()
self.db = None
- def ping(self):
- return self.db.ping(True)
-
def _wrap_execute(self, func, query, args):
try:
+ now = rpki.sundial.now()
+ if now > self.timestamp + self.ping_threshold:
+ self.db.ping(True)
+ self.timestamp = now
return func(query, args)
except _mysql_exceptions.MySQLError:
if self.dirty:
@@ -95,19 +112,13 @@ class session(object):
def cache_clear(self):
"""
- Clear the object cache.
+ Clear the SQL object cache. Shouldn't be necessary now that the
+ cache uses weak references, but should be harmless.
"""
rpki.log.debug("Clearing SQL cache")
self.assert_pristine()
self.cache.clear()
- def cache_clear_maybe(self):
- """
- Clear the object cache if its size is above clear_threshold.
- """
- if len(self.cache) >= self.clear_threshold:
- self.cache_clear()
-
def assert_pristine(self):
"""
Assert that there are no dirty objects in the cache.
@@ -173,7 +184,7 @@ class sql_persistent(object):
sql_debug = False
@classmethod
- def sql_fetch(cls, gctx, id):
+ def sql_fetch(cls, gctx, id): # pylint: disable=W0622
"""
Fetch one object from SQL, based on its primary key.
@@ -309,7 +320,7 @@ class sql_persistent(object):
Delete this object from SQL.
"""
if self.sql_in_db:
- id = getattr(self, self.sql_template.index)
+ id = getattr(self, self.sql_template.index) # pylint: disable=W0622
if self.sql_debug:
rpki.log.debug("sql_fetch_delete(%r, %r)" % (self.sql_template.delete, id))
self.sql_delete_hook()
@@ -371,3 +382,32 @@ class sql_persistent(object):
"""
pass
+
+def cache_reference(func):
+ """
+ Decorator for use with property methods which just do an SQL lookup based on an ID.
+ Check for an existing reference to the object, just return that if we find it,
+ otherwise perform the SQL lookup.
+
+ Not 100% certain this is a good idea, but I //think// it should work well with the
+ current weak reference SQL cache, so long as we create no circular references.
+ So don't do that.
+ """
+
+ attr_name = "_" + func.__name__
+
+ def wrapped(self):
+ try:
+ value = getattr(self, attr_name)
+ assert value is not None
+ except AttributeError:
+ value = func(self)
+ if value is not None:
+ setattr(self, attr_name, value)
+ return value
+
+ wrapped.__name__ = func.__name__
+ wrapped.__doc__ = func.__doc__
+ wrapped.__dict__.update(func.__dict__)
+
+ return wrapped
diff --git a/rpkid/rpki/sundial.py b/rpkid/rpki/sundial.py
index dc322b96..95a44142 100644
--- a/rpkid/rpki/sundial.py
+++ b/rpkid/rpki/sundial.py
@@ -15,7 +15,7 @@ inspection of the datetime module, to wit:
$Id$
-Copyright (C) 2009--2011 Internet Systems Consortium ("ISC")
+Copyright (C) 2009--2012 Internet Systems Consortium ("ISC")
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
@@ -72,58 +72,6 @@ class datetime(pydatetime.datetime):
return int(self.strftime("%s"))
@classmethod
- def fromUTCTime(cls, x):
- """
- Convert from ASN.1 UTCTime.
- """
- x = str(x)
- return cls.fromGeneralizedTime(("19" if x[0] >= "5" else "20") + x)
-
- def toUTCTime(self):
- """
- Convert to ASN.1 UTCTime.
- """
- return self.strftime("%y%m%d%H%M%SZ")
-
- @classmethod
- def fromGeneralizedTime(cls, x):
- """
- Convert from ASN.1 GeneralizedTime.
- """
- return cls.strptime(x, "%Y%m%d%H%M%SZ")
-
- def toGeneralizedTime(self):
- """
- Convert to ASN.1 GeneralizedTime.
- """
- return self.strftime("%Y%m%d%H%M%SZ")
-
- @classmethod
- def fromASN1tuple(cls, x):
- """
- Convert from ASN.1 tuple representation.
- """
- assert isinstance(x, tuple) and len(x) == 2 and x[0] in ("utcTime", "generalTime")
- if x[0] == "utcTime":
- return cls.fromUTCTime(x[1])
- else:
- return cls.fromGeneralizedTime(x[1])
-
- ## @var PKIX_threshhold
- # Threshold specified in RFC 3280 for switchover from UTCTime to GeneralizedTime.
-
- PKIX_threshhold = pydatetime.datetime(2050, 1, 1)
-
- def toASN1tuple(self):
- """
- Convert to ASN.1 tuple representation.
- """
- if self < self.PKIX_threshhold:
- return "utcTime", self.toUTCTime()
- else:
- return "generalTime", self.toGeneralizedTime()
-
- @classmethod
def fromXMLtime(cls, x):
"""
Convert from XML time representation.
@@ -143,13 +91,24 @@ class datetime(pydatetime.datetime):
return self.toXMLtime()
@classmethod
- def fromdatetime(cls, x):
+ def from_datetime(cls, x):
"""
Convert a datetime.datetime object into this subclass. This is
whacky due to the weird constructors for datetime.
"""
return cls.combine(x.date(), x.time())
+ def to_datetime(self):
+ """
+ Convert to a datetime.datetime object. In most cases this
+ shouldn't be necessary, but convincing SQL interfaces to use
+ subclasses of datetime can be hard.
+ """
+ return pydatetime.datetime(year = self.year, month = self.month, day = self.day,
+ hour = self.hour, minute = self.minute, second = self.second,
+ microsecond = 0, tzinfo = None)
+
+
@classmethod
def fromOpenSSL(cls, x):
"""
@@ -165,22 +124,13 @@ class datetime(pydatetime.datetime):
"""
Convert from SQL storage format.
"""
- return cls.fromdatetime(x)
+ return cls.from_datetime(x)
def to_sql(self):
"""
Convert to SQL storage format.
-
- There's something whacky going on in the MySQLdb module, it throws
- range errors when storing a derived type into a DATETIME column.
- Investigate some day, but for now brute force this by copying the
- relevant fields into a datetime.datetime for MySQLdb's
- consumption.
-
"""
- return pydatetime.datetime(year = self.year, month = self.month, day = self.day,
- hour = self.hour, minute = self.minute, second = self.second,
- microsecond = 0, tzinfo = None)
+ return self.to_datetime()
def later(self, other):
"""
@@ -199,6 +149,24 @@ class datetime(pydatetime.datetime):
def __rsub__(self, y): return _cast(pydatetime.datetime.__rsub__(self, y))
def __sub__(self, y): return _cast(pydatetime.datetime.__sub__(self, y))
+ @classmethod
+ def DateTime_or_None(cls, s):
+ """
+ MySQLdb converter. Parse as this class if we can, let the default
+ MySQLdb DateTime_or_None() converter deal with failure cases.
+ """
+
+ for sep in " T":
+ d, _, t = s.partition(sep)
+ if t:
+ try:
+ return cls(*[int(x) for x in d.split("-") + t.split(":")])
+ except:
+ break
+
+ from rpki.mysql_import import MySQLdb
+ return MySQLdb.times.DateTime_or_None(s)
+
class timedelta(pydatetime.timedelta):
"""
Timedelta with text parsing. This accepts two input formats:
@@ -297,7 +265,7 @@ def _cast(x):
Cast result of arithmetic operations back into correct subtype.
"""
if isinstance(x, pydatetime.datetime):
- return datetime.fromdatetime(x)
+ return datetime.from_datetime(x)
if isinstance(x, pydatetime.timedelta):
return timedelta.fromtimedelta(x)
return x
@@ -309,9 +277,6 @@ if __name__ == "__main__":
print "str: ", t
print "repr: ", repr(t)
print "seconds since epoch:", t.strftime("%s")
- print "UTCTime: ", t.toUTCTime()
- print "GeneralizedTime: ", t.toGeneralizedTime()
- print "ASN1tuple: ", t.toASN1tuple()
print "XMLtime: ", t.toXMLtime()
print
diff --git a/rpkid/rpki/up_down.py b/rpkid/rpki/up_down.py
index 1562e8e8..cea4e27f 100644
--- a/rpkid/rpki/up_down.py
+++ b/rpkid/rpki/up_down.py
@@ -3,7 +3,7 @@ RPKI "up-down" protocol.
$Id$
-Copyright (C) 2009--2011 Internet Systems Consortium ("ISC")
+Copyright (C) 2009--2012 Internet Systems Consortium ("ISC")
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
@@ -260,7 +260,7 @@ class list_pdu(base_elt):
if not ca_detail:
rpki.log.debug("No active ca_detail, can't issue to %s" % child.child_handle)
continue
- resources = ca_detail.latest_ca_cert.get_3779resources().intersection(irdb_resources)
+ resources = ca_detail.latest_ca_cert.get_3779resources() & irdb_resources
if resources.empty():
rpki.log.debug("No overlap between received resources and what child %s should get ([%s], [%s])" % (child.child_handle, ca_detail.latest_ca_cert.get_3779resources(), irdb_resources))
continue
@@ -384,7 +384,7 @@ class issue_pdu(base_elt):
if irdb_resources.valid_until < rpki.sundial.now():
raise rpki.exceptions.IRDBExpired, "IRDB entry for child %s expired %s" % (child.child_handle, irdb_resources.valid_until)
- resources = irdb_resources.intersection(ca_detail.latest_ca_cert.get_3779resources())
+ resources = irdb_resources & ca_detail.latest_ca_cert.get_3779resources()
req_key = self.pkcs10.getPublicKey()
req_sia = self.pkcs10.get_SIA()
child_cert = child.fetch_child_certs(ca_detail = ca_detail, ski = req_key.get_SKI(), unique = True)
@@ -434,11 +434,13 @@ class issue_pdu(base_elt):
Send an "issue" request to parent associated with ca.
"""
assert ca_detail is not None and ca_detail.state in ("pending", "active")
- sia = ((rpki.oids.name2oid["id-ad-caRepository"], ("uri", ca.sia_uri)),
- (rpki.oids.name2oid["id-ad-rpkiManifest"], ("uri", ca_detail.manifest_uri)))
self = cls()
self.class_name = ca.parent_resource_class
- self.pkcs10 = rpki.x509.PKCS10.create_ca(ca_detail.private_key_id, sia)
+ self.pkcs10 = rpki.x509.PKCS10.create(
+ keypair = ca_detail.private_key_id,
+ is_ca = True,
+ caRepository = ca.sia_uri,
+ rpkiManifest = ca_detail.manifest_uri)
rpki.log.info('Sending "issue" request to parent %s' % parent.parent_handle)
parent.query_up_down(self, callback, errback)
@@ -630,7 +632,7 @@ class message_pdu(base_elt):
"""
Convert a message PDU to a string.
"""
- lxml.etree.tostring(self.toXML(), pretty_print = True, encoding = "UTF-8")
+ return lxml.etree.tostring(self.toXML(), pretty_print = True, encoding = "UTF-8")
def serve_top_level(self, child, callback):
"""
diff --git a/rpkid/rpki/x509.py b/rpkid/rpki/x509.py
index 92194a96..6f28e6f7 100644
--- a/rpkid/rpki/x509.py
+++ b/rpkid/rpki/x509.py
@@ -13,7 +13,7 @@ some of the nasty details. This involves a lot of format conversion.
$Id$
-Copyright (C) 2009--2011 Internet Systems Consortium ("ISC")
+Copyright (C) 2009--2012 Internet Systems Consortium ("ISC")
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
@@ -43,10 +43,21 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
"""
-import rpki.POW, rpki.POW.pkix, base64, lxml.etree, os, subprocess, sys
-import email.mime.application, email.utils, mailbox, time
-import rpki.exceptions, rpki.resource_set, rpki.oids, rpki.sundial
-import rpki.manifest, rpki.roa, rpki.log, rpki.async, rpki.ghostbuster
+import rpki.POW
+import base64
+import lxml.etree
+import os
+import subprocess
+import email.mime.application
+import email.utils
+import mailbox
+import time
+import rpki.exceptions
+import rpki.resource_set
+import rpki.oids
+import rpki.sundial
+import rpki.log
+import rpki.async
import rpki.relaxng
def base64_with_linebreaks(der):
@@ -58,17 +69,6 @@ def base64_with_linebreaks(der):
n = len(b)
return "\n" + "\n".join(b[i : min(i + 64, n)] for i in xrange(0, n, 64)) + "\n"
-def calculate_SKI(public_key_der):
- """
- Calculate the SKI value given the DER representation of a public
- key, which requires first peeling the ASN.1 wrapper off the key.
- """
- k = rpki.POW.pkix.SubjectPublicKeyInfo()
- k.fromString(public_key_der)
- d = rpki.POW.Digest(rpki.POW.SHA1_DIGEST)
- d.update(k.subjectPublicKey.get())
- return d.digest()
-
class PEM_converter(object):
"""
Convert between DER and PEM encodings for various kinds of ASN.1 data.
@@ -107,6 +107,18 @@ class PEM_converter(object):
"""
return self.b + base64_with_linebreaks(der) + self.e + "\n"
+def first_rsync_uri(xia):
+ """
+ Find first rsync URI in a sequence of AIA or SIA URIs.
+ Returns the URI if found, otherwise None.
+ """
+
+ if xia is not None:
+ for uri in xia:
+ if uri.startswith("rsync://"):
+ return uri
+ return None
+
def _find_xia_uri(extension, name):
"""
Find a rsync URI in an SIA or AIA extension.
@@ -126,22 +138,17 @@ class X501DN(object):
Class to hold an X.501 Distinguished Name.
This is nothing like a complete implementation, just enough for our
- purposes. POW has one interface to this, POW.pkix has another. In
- terms of completeness in the Python representation, the POW.pkix
- representation is much closer to right, but the whole thing is a
- horrible mess.
-
- See RFC 5280 4.1.2.4 for the ASN.1 details. In brief:
+ purposes. See RFC 5280 4.1.2.4 for the ASN.1 details. In brief:
- - A DN is a SEQUENCE of RDNs.
+ - A DN is a SEQUENCE OF RDNs.
- - A RDN is a set of AttributeAndValues; in practice, multi-value
+ - A RDN is a SET OF AttributeAndValues; in practice, multi-value
RDNs are rare, so an RDN is almost always a set with a single
element.
- - An AttributeAndValue is an OID and a value, where a whole bunch
- of things including both syntax and semantics of the value are
- determined by the OID.
+ - An AttributeAndValue is a SEQUENCE consisting of a OID and a
+ value, where a whole bunch of things including both syntax and
+ semantics of the value are determined by the OID.
- The value is some kind of ASN.1 string; there are far too many
encoding options options, most of which are either strongly
@@ -157,37 +164,43 @@ class X501DN(object):
BPKI certificates should (we hope) follow the general PKIX guideline
but the ones we construct ourselves are likely to be relatively
simple.
-
- The main purpose of this class is to hide as much as possible of
- this mess from code that has to work with these wretched things.
"""
- def __init__(self, ini = None, **kwargs):
- assert ini is None or not kwargs
- if len(kwargs) == 1 and "CN" in kwargs:
- ini = kwargs.pop("CN")
- if isinstance(ini, (str, unicode)):
- self.dn = (((rpki.oids.name2oid["commonName"], ("printableString", ini)),),)
- elif isinstance(ini, tuple):
- self.dn = ini
- elif kwargs:
- raise NotImplementedError("Sorry, I haven't implemented keyword arguments yet")
- elif ini is not None:
- raise TypeError("Don't know how to interpret %r as an X.501 DN" % (ini,), ini)
-
def __str__(self):
- return "".join("/" + "+".join("%s=%s" % (rpki.oids.safe_oid2name(a[0]), a[1][1])
+ return "".join("/" + "+".join("%s=%s" % (rpki.oids.safe_dotted2name(a[0]), a[1])
for a in rdn)
for rdn in self.dn)
def __cmp__(self, other):
return cmp(self.dn, other.dn)
- def get_POWpkix(self):
- return self.dn
+ def __repr__(self):
+ return rpki.log.log_repr(self, str(self))
+
+ def _debug(self):
+ if False:
+ import traceback
+ for chunk in traceback.format_stack(limit = 5):
+ for line in chunk.splitlines():
+ rpki.log.debug("== %s" % line)
+ rpki.log.debug("++ %r %r" % (self, self.dn))
+
+ @classmethod
+ def from_cn(cls, s):
+ assert isinstance(s, (str, unicode))
+ self = cls()
+ self.dn = (((rpki.oids.safe_name2dotted("commonName"), s),),)
+ return self
+
+ @classmethod
+ def from_POW(cls, t):
+ assert isinstance(t, tuple)
+ self = cls()
+ self.dn = t
+ return self
def get_POW(self):
- raise NotImplementedError("Sorry, I haven't written the conversion to POW format yet")
+ return self.dn
class DER_object(object):
"""
@@ -368,57 +381,66 @@ class DER_object(object):
Get the AKI extension from this object. Only works for subclasses
that support getExtension().
"""
- aki = (self.get_POWpkix().getExtension(rpki.oids.name2oid["authorityKeyIdentifier"]) or ((), 0, None))[2]
- return aki[0] if isinstance(aki, tuple) else aki
+ return self.get_POW().getAKI()
def get_SKI(self):
"""
Get the SKI extension from this object. Only works for subclasses
that support getExtension().
"""
- return (self.get_POWpkix().getExtension(rpki.oids.name2oid["subjectKeyIdentifier"]) or ((), 0, None))[2]
+ return self.get_POW().getSKI()
def get_SIA(self):
"""
Get the SIA extension from this object. Only works for subclasses
- that support getExtension().
+ that support getSIA().
"""
- return (self.get_POWpkix().getExtension(rpki.oids.name2oid["subjectInfoAccess"]) or ((), 0, None))[2]
+ return self.get_POW().getSIA()
def get_sia_directory_uri(self):
"""
Get SIA directory (id-ad-caRepository) URI from this object.
- Only works for subclasses that support getExtension().
+ Only works for subclasses that support getSIA().
"""
- return _find_xia_uri(self.get_SIA(), "id-ad-caRepository")
+ sia = self.get_POW().getSIA()
+ return None if sia is None else first_rsync_uri(sia[0])
def get_sia_manifest_uri(self):
"""
Get SIA manifest (id-ad-rpkiManifest) URI from this object.
- Only works for subclasses that support getExtension().
+ Only works for subclasses that support getSIA().
+ """
+ sia = self.get_POW().getSIA()
+ return None if sia is None else first_rsync_uri(sia[1])
+
+ def get_sia_object_uri(self):
+ """
+ Get SIA object (id-ad-signedObject) URI from this object.
+ Only works for subclasses that support getSIA().
"""
- return _find_xia_uri(self.get_SIA(), "id-ad-rpkiManifest")
+ sia = self.get_POW().getSIA()
+ return None if sia is None else first_rsync_uri(sia[2])
def get_AIA(self):
"""
Get the SIA extension from this object. Only works for subclasses
- that support getExtension().
+ that support getAIA().
"""
- return (self.get_POWpkix().getExtension(rpki.oids.name2oid["authorityInfoAccess"]) or ((), 0, None))[2]
+ return self.get_POW().getAIA()
def get_aia_uri(self):
"""
Get AIA (id-ad-caIssuers) URI from this object.
- Only works for subclasses that support getExtension().
+ Only works for subclasses that support getAIA().
"""
- return _find_xia_uri(self.get_AIA(), "id-ad-caIssuers")
+ return first_rsync_uri(self.get_POW().getAIA())
def get_basicConstraints(self):
"""
Get the basicConstraints extension from this object. Only works
for subclasses that support getExtension().
"""
- return (self.get_POWpkix().getExtension(rpki.oids.name2oid["basicConstraints"]) or ((), 0, None))[2]
+ return self.get_POW().getBasicConstraints()
def is_CA(self):
"""
@@ -426,14 +448,13 @@ class DER_object(object):
extension and its cA value is true.
"""
basicConstraints = self.get_basicConstraints()
- return basicConstraints and basicConstraints[0] != 0
+ return basicConstraints is not None and basicConstraints[0]
def get_3779resources(self):
"""
- Get RFC 3779 resources as rpki.resource_set objects. Only works
- for subclasses that support getExtensions().
+ Get RFC 3779 resources as rpki.resource_set objects.
"""
- resources = rpki.resource_set.resource_bag.from_rfc3779_tuples(self.get_POWpkix().getExtensions())
+ resources = rpki.resource_set.resource_bag.from_POW_rfc3779(self.get_POW().getRFC3779())
try:
resources.valid_until = self.getNotAfter()
except AttributeError:
@@ -486,7 +507,7 @@ class DER_object(object):
d.update(self.get_DER())
return "%s %s %s" % (uri, self.creation_timestamp,
"".join(("%02X" % ord(b) for b in d.digest())))
- except:
+ except: # pylint: disable=W0702
return uri
class X509(DER_object):
@@ -500,7 +521,7 @@ class X509(DER_object):
have to care about this implementation nightmare.
"""
- formats = ("DER", "POW", "POWpkix")
+ formats = ("DER", "POW")
pem_converter = PEM_converter("CERTIFICATE")
def get_DER(self):
@@ -513,9 +534,6 @@ class X509(DER_object):
if self.POW:
self.DER = self.POW.derWrite()
return self.get_DER()
- if self.POWpkix:
- self.DER = self.POWpkix.toString()
- return self.get_DER()
raise rpki.exceptions.DERObjectConversionError, "No conversion path to DER available"
def get_POW(self):
@@ -523,44 +541,33 @@ class X509(DER_object):
Get the rpki.POW value of this certificate.
"""
self.check()
- if not self.POW:
- self.POW = rpki.POW.derRead(rpki.POW.X509_CERTIFICATE, self.get_DER())
+ if not self.POW: # pylint: disable=E0203
+ self.POW = rpki.POW.X509.derRead(self.get_DER())
return self.POW
- def get_POWpkix(self):
- """
- Get the rpki.POW.pkix value of this certificate.
- """
- self.check()
- if not self.POWpkix:
- cert = rpki.POW.pkix.Certificate()
- cert.fromString(self.get_DER())
- self.POWpkix = cert
- return self.POWpkix
-
def getIssuer(self):
"""
Get the issuer of this certificate.
"""
- return X501DN(self.get_POWpkix().getIssuer())
+ return X501DN.from_POW(self.get_POW().getIssuer())
def getSubject(self):
"""
Get the subject of this certificate.
"""
- return X501DN(self.get_POWpkix().getSubject())
+ return X501DN.from_POW(self.get_POW().getSubject())
def getNotBefore(self):
"""
Get the inception time of this certificate.
"""
- return rpki.sundial.datetime.fromASN1tuple(self.get_POWpkix().tbs.validity.notBefore.get())
+ return self.get_POW().getNotBefore()
def getNotAfter(self):
"""
Get the expiration time of this certificate.
"""
- return rpki.sundial.datetime.fromASN1tuple(self.get_POWpkix().tbs.validity.notAfter.get())
+ return self.get_POW().getNotAfter()
def getSerial(self):
"""
@@ -572,7 +579,13 @@ class X509(DER_object):
"""
Extract the public key from this certificate.
"""
- return RSApublic(DER = self.get_POWpkix().tbs.subjectPublicKeyInfo.toString())
+ return RSApublic(POW = self.get_POW().getPublicKey())
+
+ def get_SKI(self):
+ """
+ Get the SKI extension from this object.
+ """
+ return self.get_POW().getSKI()
def expired(self):
"""
@@ -600,7 +613,7 @@ class X509(DER_object):
resources = resources,
is_ca = is_ca,
aki = self.get_SKI(),
- issuer_name = self.get_POWpkix().getSubject())
+ issuer_name = self.getSubject())
@classmethod
@@ -611,6 +624,7 @@ class X509(DER_object):
"""
ski = subject_key.get_SKI()
+
if cn is None:
cn = "".join(("%02X" % ord(i) for i in ski))
@@ -626,11 +640,11 @@ class X509(DER_object):
resources = resources,
is_ca = True,
aki = ski,
- issuer_name = (((rpki.oids.name2oid["commonName"], ("printableString", cn)),),))
+ issuer_name = X501DN.from_cn(cn))
- @staticmethod
- def _issue(keypair, subject_key, serial, sia, aia, crldp, notAfter,
+ @classmethod
+ def _issue(cls, keypair, subject_key, serial, sia, aia, crldp, notAfter,
cn, resources, is_ca, aki, issuer_name):
"""
Common code to issue an RPKI certificate.
@@ -642,58 +656,50 @@ class X509(DER_object):
if cn is None:
cn = "".join(("%02X" % ord(i) for i in ski))
- # if notAfter is None: notAfter = now + rpki.sundial.timedelta(days = 30)
+ cert = rpki.POW.X509()
- cert = rpki.POW.pkix.Certificate()
cert.setVersion(2)
cert.setSerial(serial)
- cert.setIssuer(issuer_name)
- cert.setSubject((((rpki.oids.name2oid["commonName"], ("printableString", cn)),),))
- cert.setNotBefore(now.toASN1tuple())
- cert.setNotAfter(notAfter.toASN1tuple())
- cert.tbs.subjectPublicKeyInfo.fromString(subject_key.get_DER())
-
- exts = [ ["subjectKeyIdentifier", False, ski],
- ["authorityKeyIdentifier", False, (aki, (), None)],
- ["certificatePolicies", True, ((rpki.oids.name2oid["id-cp-ipAddr-asNumber"], ()),)] ]
-
+ cert.setIssuer(issuer_name.get_POW())
+ cert.setSubject(X501DN.from_cn(cn).get_POW())
+ cert.setNotBefore(now)
+ cert.setNotAfter(notAfter)
+ cert.setPublicKey(subject_key.get_POW())
+ cert.setSKI(ski)
+ cert.setAKI(aki)
+ cert.setCertificatePolicies((POWify_OID("id-cp-ipAddr-asNumber"),))
if crldp is not None:
- exts.append(["cRLDistributionPoints", False, ((("fullName", (("uri", crldp),)), None, ()),)])
+ cert.setCRLDP((crldp,))
if aia is not None:
- exts.append(["authorityInfoAccess", False, ((rpki.oids.name2oid["id-ad-caIssuers"], ("uri", aia)),)])
+ cert.setAIA((aia,))
if is_ca:
- exts.append(["basicConstraints", True, (1, None)])
- exts.append(["keyUsage", True, (0, 0, 0, 0, 0, 1, 1)])
- else:
- exts.append(["keyUsage", True, (1,)])
+ cert.setBasicConstraints(True, None)
+ cert.setKeyUsage(frozenset(("keyCertSign", "cRLSign")))
- if sia is not None:
- exts.append(["subjectInfoAccess", False, sia])
else:
- assert not is_ca
+ cert.setKeyUsage(frozenset(("digitalSignature",)))
- # This next bit suggests that perhaps .to_rfc3779_tuple() should
- # be raising an exception when there are no resources rather than
- # returning None. Maybe refactor later.
+ assert sia is not None or not is_ca
- if resources is not None:
- r = resources.asn.to_rfc3779_tuple()
- if r is not None:
- exts.append(["sbgp-autonomousSysNum", True, (r, None)])
- r = [x for x in (resources.v4.to_rfc3779_tuple(), resources.v6.to_rfc3779_tuple()) if x is not None]
- if r:
- exts.append(["sbgp-ipAddrBlock", True, r])
+ if sia is not None:
+ caRepository, rpkiManifest, signedObject = sia
+ cert.setSIA(
+ (caRepository,) if isinstance(caRepository, str) else caRepository,
+ (rpkiManifest,) if isinstance(rpkiManifest, str) else rpkiManifest,
+ (signedObject,) if isinstance(signedObject, str) else signedObject)
- for x in exts:
- x[0] = rpki.oids.name2oid[x[0]]
- cert.setExtensions(exts)
+ if resources is not None:
+ cert.setRFC3779(
+ asn = ((r.min, r.max) for r in resources.asn),
+ ipv4 = ((rpki.POW.IPAddress(r.min, 4), rpki.POW.IPAddress(r.max, 4)) for r in resources.v4),
+ ipv6 = ((rpki.POW.IPAddress(r.min, 6), rpki.POW.IPAddress(r.max, 6)) for r in resources.v6))
cert.sign(keypair.get_POW(), rpki.POW.SHA256_DIGEST)
- return X509(POWpkix = cert)
+ return cls(POW = cert)
def bpki_cross_certify(self, keypair, source_cert, serial, notAfter,
now = None, pathLenConstraint = 0):
@@ -764,27 +770,21 @@ class X509(DER_object):
assert pathLenConstraint is None or (isinstance(pathLenConstraint, (int, long)) and
pathLenConstraint >= 0)
- extensions = [
- (rpki.oids.name2oid["subjectKeyIdentifier" ], False, subject_key.get_SKI())]
- if issuer_key != subject_key:
- extensions.append(
- (rpki.oids.name2oid["authorityKeyIdentifier"], False, (issuer_key.get_SKI(), (), None)))
- if is_ca:
- extensions.append(
- (rpki.oids.name2oid["basicConstraints" ], True, (1, pathLenConstraint)))
-
- cert = rpki.POW.pkix.Certificate()
+ cert = rpki.POW.X509()
cert.setVersion(2)
cert.setSerial(serial)
- cert.setIssuer(issuer_name.get_POWpkix())
- cert.setSubject(subject_name.get_POWpkix())
- cert.setNotBefore(now.toASN1tuple())
- cert.setNotAfter(notAfter.toASN1tuple())
- cert.tbs.subjectPublicKeyInfo.fromString(subject_key.get_DER())
- cert.setExtensions(extensions)
+ cert.setIssuer(issuer_name.get_POW())
+ cert.setSubject(subject_name.get_POW())
+ cert.setNotBefore(now)
+ cert.setNotAfter(notAfter)
+ cert.setPublicKey(subject_key.get_POW())
+ cert.setSKI(subject_key.get_POW().calculateSKI())
+ if issuer_key != subject_key:
+ cert.setAKI(issuer_key.get_POW().calculateSKI())
+ if is_ca:
+ cert.setBasicConstraints(True, pathLenConstraint)
cert.sign(keypair.get_POW(), rpki.POW.SHA256_DIGEST)
-
- return cls(POWpkix = cert)
+ return cls(POW = cert)
@classmethod
def normalize_chain(cls, chain):
@@ -807,15 +807,27 @@ class X509(DER_object):
"""
return self.getNotBefore()
-
class PKCS10(DER_object):
"""
Class to hold a PKCS #10 request.
"""
- formats = ("DER", "POWpkix")
+ formats = ("DER", "POW")
pem_converter = PEM_converter("CERTIFICATE REQUEST")
-
+
+ ## @var expected_ca_keyUsage
+ # KeyUsage extension flags expected for CA requests.
+
+ expected_ca_keyUsage = frozenset(("keyCertSign", "cRLSign"))
+
+ ## @var allowed_extensions
+ # Extensions allowed by RPKI profile.
+
+ allowed_extensions = frozenset(rpki.oids.safe_name2dotted(name)
+ for name in ("basicConstraints",
+ "keyUsage",
+ "subjectInfoAccess"))
+
def get_DER(self):
"""
Get the DER value of this certification request.
@@ -823,33 +835,31 @@ class PKCS10(DER_object):
self.check()
if self.DER:
return self.DER
- if self.POWpkix:
- self.DER = self.POWpkix.toString()
+ if self.POW:
+ self.DER = self.POW.derWrite()
return self.get_DER()
raise rpki.exceptions.DERObjectConversionError, "No conversion path to DER available"
- def get_POWpkix(self):
+ def get_POW(self):
"""
- Get the rpki.POW.pkix value of this certification request.
+ Get the rpki.POW value of this certification request.
"""
self.check()
- if not self.POWpkix:
- req = rpki.POW.pkix.CertificationRequest()
- req.fromString(self.get_DER())
- self.POWpkix = req
- return self.POWpkix
+ if not self.POW: # pylint: disable=E0203
+ self.POW = rpki.POW.PKCS10.derRead(self.get_DER())
+ return self.POW
def getSubject(self):
"""
Extract the subject name from this certification request.
"""
- return X501DN(self.get_POWpkix().certificationRequestInfo.subject.get())
+ return X501DN.from_POW(self.get_POW().getSubject())
def getPublicKey(self):
"""
Extract the public key from this certification request.
"""
- return RSApublic(DER = self.get_POWpkix().certificationRequestInfo.subjectPublicKeyInfo.toString())
+ return RSApublic(POW = self.get_POW().getPublicKey())
def check_valid_rpki(self):
"""
@@ -866,72 +876,129 @@ class PKCS10(DER_object):
RPKI profile only allows EKU for EE certificates.
"""
- if not self.get_POWpkix().verify():
+ if not self.get_POW().verify():
raise rpki.exceptions.BadPKCS10, "Signature check failed"
- if self.get_POWpkix().certificationRequestInfo.version.get() != 0:
- raise rpki.exceptions.BadPKCS10, \
- "Bad version number %s" % self.get_POWpkix().certificationRequestInfo.version
+ ver = self.get_POW().getVersion()
- if rpki.oids.oid2name.get(self.get_POWpkix().signatureAlgorithm.algorithm.get()) != "sha256WithRSAEncryption":
- raise rpki.exceptions.BadPKCS10, "Bad signature algorithm %s" % self.get_POWpkix().signatureAlgorithm
+ if ver != 0:
+ raise rpki.exceptions.BadPKCS10, "Bad version number %s" % ver
- exts = dict((rpki.oids.oid2name.get(oid, oid), value)
- for (oid, critical, value) in self.get_POWpkix().getExtensions())
+ alg = rpki.oids.safe_dotted2name(self.get_POW().getSignatureAlgorithm())
- if any(oid not in ("basicConstraints", "keyUsage", "subjectInfoAccess") for oid in exts):
- raise rpki.exceptions.BadExtension, "Forbidden extension(s) in certificate request"
+ if alg != "sha256WithRSAEncryption":
+ raise rpki.exceptions.BadPKCS10, "Bad signature algorithm %s" % alg
- if "basicConstraints" not in exts or not exts["basicConstraints"][0]:
+ bc = self.get_POW().getBasicConstraints()
+
+ if bc is None or not bc[0]:
raise rpki.exceptions.BadPKCS10, "Request for EE certificate not allowed here"
- if exts["basicConstraints"][1] is not None:
+ if bc[1] is not None:
raise rpki.exceptions.BadPKCS10, "basicConstraints must not specify Path Length"
- if "keyUsage" in exts and (not exts["keyUsage"][5] or not exts["keyUsage"][6]):
- raise rpki.exceptions.BadPKCS10, "keyUsage doesn't match basicConstraints"
+ ku = self.get_POW().getKeyUsage()
- sias = dict((rpki.oids.oid2name.get(oid, oid), value[1])
- for oid, value in exts.get("subjectInfoAccess", ())
- if value[0] == "uri" and value[1].startswith("rsync://"))
+ if ku is not None and self.expected_ca_keyUsage != ku:
+ raise rpki.exceptions.BadPKCS10, "keyUsage doesn't match basicConstraints: %r" % ku
- for oid in ("id-ad-caRepository", "id-ad-rpkiManifest"):
- if oid not in sias:
- raise rpki.exceptions.BadPKCS10, "Certificate request is missing SIA %s" % oid
+ if any(oid not in self.allowed_extensions
+ for oid in self.get_POW().getExtensionOIDs()):
+ raise rpki.exceptions.BadExtension, "Forbidden extension(s) in certificate request"
- if not sias["id-ad-caRepository"].endswith("/"):
- raise rpki.exceptions.BadPKCS10, "Certificate request id-ad-caRepository does not end with slash: %r" % sias["id-ad-caRepository"]
+ sias = self.get_POW().getSIA()
- if sias["id-ad-rpkiManifest"].endswith("/"):
- raise rpki.exceptions.BadPKCS10, "Certificate request id-ad-rpkiManifest ends with slash: %r" % sias["id-ad-rpkiManifest"]
+ if sias is None:
+ raise rpki.exceptions.BadPKCS10, "Certificate request is missing SIA extension"
- @classmethod
- def create_ca(cls, keypair, sia = None):
- """
- Create a new request for a given keypair, including given SIA value.
- """
- exts = [["basicConstraints", True, (1, None)],
- ["keyUsage", True, (0, 0, 0, 0, 0, 1, 1)]]
- if sia is not None:
- exts.append(["subjectInfoAccess", False, sia])
- for x in exts:
- x[0] = rpki.oids.name2oid[x[0]]
- return cls.create(keypair, exts)
+ caRepository, rpkiManifest, signedObject = sias
+
+ if signedObject:
+ raise rpki.exceptions.BadPKCS10, "CA certificate request has SIA id-ad-signedObject"
+
+ if not caRepository:
+ raise rpki.exceptions.BadPKCS10, "Certificate request is missing SIA id-ad-caRepository"
+
+ if not any(uri.startswith("rsync://") for uri in caRepository):
+ raise rpki.exceptions.BadPKCS10, "Certificate request SIA id-ad-caRepository contains no rsync URIs"
+
+ if not rpkiManifest:
+ raise rpki.exceptions.BadPKCS10, "Certificate request is missing SIA id-ad-rpkiManifest"
+
+ if not any(uri.startswith("rsync://") for uri in rpkiManifest):
+ raise rpki.exceptions.BadPKCS10, "Certificate request SIA id-ad-rpkiManifest contains no rsync URIs"
+
+ if any(uri.startswith("rsync://") and not uri.endswith("/") for uri in caRepository):
+ raise rpki.exceptions.BadPKCS10, "Certificate request SIA id-ad-caRepository does not end with slash"
+
+ if any(uri.startswith("rsync://") and uri.endswith("/") for uri in rpkiManifest):
+ raise rpki.exceptions.BadPKCS10, "Certificate request SIA id-ad-rpkiManifest ends with slash"
@classmethod
- def create(cls, keypair, exts = None):
+ def create(cls, keypair, exts = None, is_ca = False,
+ caRepository = None, rpkiManifest = None, signedObject = None):
"""
- Create a new request for a given keypair, including given extensions.
+ Create a new request for a given keypair.
"""
+
+ assert exts is None, "Old calling sequence to rpki.x509.PKCS10.create()"
+
cn = "".join(("%02X" % ord(i) for i in keypair.get_SKI()))
- req = rpki.POW.pkix.CertificationRequest()
- req.certificationRequestInfo.version.set(0)
- req.certificationRequestInfo.subject.set((((rpki.oids.name2oid["commonName"],
- ("printableString", cn)),),))
- if exts is not None:
- req.setExtensions(exts)
+
+ if isinstance(caRepository, str):
+ caRepository = (caRepository,)
+
+ if isinstance(rpkiManifest, str):
+ rpkiManifest = (rpkiManifest,)
+
+ if isinstance(signedObject, str):
+ signedObject = (signedObject,)
+
+ req = rpki.POW.PKCS10()
+ req.setVersion(0)
+ req.setSubject(X501DN.from_cn(cn).get_POW())
+ req.setPublicKey(keypair.get_POW())
+
+ if is_ca:
+ req.setBasicConstraints(True, None)
+ req.setKeyUsage(cls.expected_ca_keyUsage)
+
+ if caRepository or rpkiManifest or signedObject:
+ req.setSIA(caRepository, rpkiManifest, signedObject)
+
req.sign(keypair.get_POW(), rpki.POW.SHA256_DIGEST)
- return cls(POWpkix = req)
+ return cls(POW = req)
+
+## @var generate_insecure_debug_only_rsa_key
+# Debugging hack to let us save throwaway RSA keys from one debug
+# session to the next. DO NOT USE THIS IN PRODUCTION.
+
+generate_insecure_debug_only_rsa_key = None
+
+class insecure_debug_only_rsa_key_generator(object):
+
+ def __init__(self, filename, keyno = 0):
+ try:
+ try:
+ import gdbm as dbm_du_jour
+ except ImportError:
+ import dbm as dbm_du_jour
+ self.keyno = long(keyno)
+ self.filename = filename
+ self.db = dbm_du_jour.open(filename, "c")
+ except:
+ rpki.log.warn("insecure_debug_only_rsa_key_generator initialization FAILED, hack inoperative")
+ raise
+
+ def __call__(self):
+ k = str(self.keyno)
+ try:
+ v = rpki.POW.Asymmetric.derReadPrivate(self.db[k])
+ except KeyError:
+ v = rpki.POW.Asymmetric(rpki.POW.RSA_CIPHER, 2048)
+ self.db[k] = v.derWritePrivate()
+ self.keyno += 1
+ return v
class RSA(DER_object):
"""
@@ -949,7 +1016,7 @@ class RSA(DER_object):
if self.DER:
return self.DER
if self.POW:
- self.DER = self.POW.derWrite(rpki.POW.RSA_PRIVATE_KEY)
+ self.DER = self.POW.derWritePrivate()
return self.get_DER()
raise rpki.exceptions.DERObjectConversionError, "No conversion path to DER available"
@@ -958,8 +1025,8 @@ class RSA(DER_object):
Get the rpki.POW value of this keypair.
"""
self.check()
- if not self.POW:
- self.POW = rpki.POW.derRead(rpki.POW.RSA_PRIVATE_KEY, self.get_DER())
+ if not self.POW: # pylint: disable=E0203
+ self.POW = rpki.POW.Asymmetric.derReadPrivate(self.get_DER())
return self.POW
@classmethod
@@ -969,19 +1036,22 @@ class RSA(DER_object):
"""
if not quiet:
rpki.log.debug("Generating new %d-bit RSA key" % keylength)
- return cls(POW = rpki.POW.Asymmetric(rpki.POW.RSA_CIPHER, keylength))
+ if generate_insecure_debug_only_rsa_key is not None:
+ return cls(POW = generate_insecure_debug_only_rsa_key())
+ else:
+ return cls(POW = rpki.POW.Asymmetric(rpki.POW.RSA_CIPHER, keylength))
def get_public_DER(self):
"""
Get the DER encoding of the public key from this keypair.
"""
- return self.get_POW().derWrite(rpki.POW.RSA_PUBLIC_KEY)
+ return self.get_POW().derWritePublic()
def get_SKI(self):
"""
Calculate the SKI of this keypair.
"""
- return calculate_SKI(self.get_public_DER())
+ return self.get_POW().calculateSKI()
def get_RSApublic(self):
"""
@@ -1005,7 +1075,7 @@ class RSApublic(DER_object):
if self.DER:
return self.DER
if self.POW:
- self.DER = self.POW.derWrite(rpki.POW.RSA_PUBLIC_KEY)
+ self.DER = self.POW.derWritePublic()
return self.get_DER()
raise rpki.exceptions.DERObjectConversionError, "No conversion path to DER available"
@@ -1014,15 +1084,15 @@ class RSApublic(DER_object):
Get the rpki.POW value of this public key.
"""
self.check()
- if not self.POW:
- self.POW = rpki.POW.derRead(rpki.POW.RSA_PUBLIC_KEY, self.get_DER())
+ if not self.POW: # pylint: disable=E0203
+ self.POW = rpki.POW.Asymmetric.derReadPublic(self.get_DER())
return self.POW
def get_SKI(self):
"""
Calculate the SKI of this public key.
"""
- return calculate_SKI(self.get_DER())
+ return self.get_POW().calculateSKI()
def POWify_OID(oid):
"""
@@ -1036,21 +1106,13 @@ def POWify_OID(oid):
class CMS_object(DER_object):
"""
- Class to hold a CMS-wrapped object.
-
- CMS-wrapped objects are a little different from the other DER_object
- types because the signed object is CMS wrapping inner content that's
- also ASN.1, and due to our current minimal support for CMS we can't
- just handle this as a pretty composite object. So, for now anyway,
- a CMS_object is the outer CMS wrapped object so that the usual DER
- and PEM operations do the obvious things, and the inner content is
- handle via separate methods.
+ Abstract class to hold a CMS object.
"""
formats = ("DER", "POW")
- other_clear = ("content",)
econtent_oid = POWify_OID("id-data")
pem_converter = PEM_converter("CMS")
+ POW_class = rpki.POW.CMS
## @var dump_on_verify_failure
# Set this to True to get dumpasn1 dumps of ASN.1 on CMS verify failures.
@@ -1109,30 +1171,15 @@ class CMS_object(DER_object):
Get the rpki.POW value of this CMS_object.
"""
self.check()
- if not self.POW:
- self.POW = rpki.POW.derRead(rpki.POW.CMS_MESSAGE, self.get_DER())
+ if not self.POW: # pylint: disable=E0203
+ self.POW = self.POW_class.derRead(self.get_DER())
return self.POW
- def get_content(self):
- """
- Get the inner content of this CMS_object.
- """
- if self.content is None:
- raise rpki.exceptions.CMSContentNotSet, "Inner content of CMS object %r is not set" % self
- return self.content
-
- def set_content(self, content):
- """
- Set the (inner) content of this CMS_object, clearing the wrapper.
- """
- self.clear()
- self.content = content
-
def get_signingTime(self):
"""
Extract signingTime from CMS signed attributes.
"""
- return rpki.sundial.datetime.fromGeneralizedTime(self.get_POW().signingTime())
+ return self.get_POW().signingTime()
def verify(self, ta):
"""
@@ -1145,18 +1192,21 @@ class CMS_object(DER_object):
raise
except Exception:
if self.print_on_der_error:
- rpki.log.debug("Problem parsing DER CMS message, might not really be DER: %r" % self.get_DER())
+ rpki.log.debug("Problem parsing DER CMS message, might not really be DER: %r" %
+ self.get_DER())
raise rpki.exceptions.UnparsableCMSDER
if cms.eContentType() != self.econtent_oid:
- raise rpki.exceptions.WrongEContentType, "Got CMS eContentType %s, expected %s" % (cms.eContentType(), self.econtent_oid)
+ raise rpki.exceptions.WrongEContentType, "Got CMS eContentType %s, expected %s" % (
+ cms.eContentType(), self.econtent_oid)
certs = [X509(POW = x) for x in cms.certs()]
crls = [CRL(POW = c) for c in cms.crls()]
if self.debug_cms_certs:
for x in certs:
- rpki.log.debug("Received CMS cert issuer %s subject %s SKI %s" % (x.getIssuer(), x.getSubject(), x.hSKI()))
+ rpki.log.debug("Received CMS cert issuer %s subject %s SKI %s" % (
+ x.getIssuer(), x.getSubject(), x.hSKI()))
for c in crls:
rpki.log.debug("Received CMS CRL issuer %r" % (c.getIssuer(),))
@@ -1168,43 +1218,52 @@ class CMS_object(DER_object):
for x in X509.normalize_chain(ta):
if self.debug_cms_certs:
- rpki.log.debug("CMS trusted cert issuer %s subject %s SKI %s" % (x.getIssuer(), x.getSubject(), x.hSKI()))
+ rpki.log.debug("CMS trusted cert issuer %s subject %s SKI %s" % (
+ x.getIssuer(), x.getSubject(), x.hSKI()))
if x.getNotAfter() < now:
- raise rpki.exceptions.TrustedCMSCertHasExpired("Trusted CMS certificate has expired", "%s (%s)" % (x.getSubject(), x.hSKI()))
+ raise rpki.exceptions.TrustedCMSCertHasExpired("Trusted CMS certificate has expired",
+ "%s (%s)" % (x.getSubject(), x.hSKI()))
if not x.is_CA():
if trusted_ee is None:
trusted_ee = x
else:
- raise rpki.exceptions.MultipleCMSEECert("Multiple CMS EE certificates", *("%s (%s)" % (x.getSubject(), x.hSKI()) for x in ta if not x.is_CA()))
+ raise rpki.exceptions.MultipleCMSEECert("Multiple CMS EE certificates", *("%s (%s)" % (
+ x.getSubject(), x.hSKI()) for x in ta if not x.is_CA()))
store.addTrust(x.get_POW())
if trusted_ee:
if self.debug_cms_certs:
- rpki.log.debug("Trusted CMS EE cert issuer %s subject %s SKI %s" % (trusted_ee.getIssuer(), trusted_ee.getSubject(), trusted_ee.hSKI()))
+ rpki.log.debug("Trusted CMS EE cert issuer %s subject %s SKI %s" % (
+ trusted_ee.getIssuer(), trusted_ee.getSubject(), trusted_ee.hSKI()))
if len(certs) > 1 or (len(certs) == 1 and
(certs[0].getSubject() != trusted_ee.getSubject() or
certs[0].getPublicKey() != trusted_ee.getPublicKey())):
- raise rpki.exceptions.UnexpectedCMSCerts("Unexpected CMS certificates", *("%s (%s)" % (x.getSubject(), x.hSKI()) for x in certs))
+ raise rpki.exceptions.UnexpectedCMSCerts("Unexpected CMS certificates", *("%s (%s)" % (
+ x.getSubject(), x.hSKI()) for x in certs))
if crls:
- raise rpki.exceptions.UnexpectedCMSCRLs("Unexpected CRLs", *("%s (%s)" % (c.getIssuer(), c.hAKI()) for c in crls))
+ raise rpki.exceptions.UnexpectedCMSCRLs("Unexpected CRLs", *("%s (%s)" % (
+ c.getIssuer(), c.hAKI()) for c in crls))
else:
untrusted_ee = [x for x in certs if not x.is_CA()]
if len(untrusted_ee) < 1:
raise rpki.exceptions.MissingCMSEEcert
if len(untrusted_ee) > 1 or (not self.allow_extra_certs and len(certs) > len(untrusted_ee)):
- raise rpki.exceptions.UnexpectedCMSCerts("Unexpected CMS certificates", *("%s (%s)" % (x.getSubject(), x.hSKI()) for x in certs))
+ raise rpki.exceptions.UnexpectedCMSCerts("Unexpected CMS certificates", *("%s (%s)" % (
+ x.getSubject(), x.hSKI()) for x in certs))
if len(crls) < 1:
if self.require_crls:
raise rpki.exceptions.MissingCMSCRL
else:
rpki.log.warn("MISSING CMS CRL! Ignoring per self.require_crls setting")
if len(crls) > 1 and not self.allow_extra_crls:
- raise rpki.exceptions.UnexpectedCMSCRLs("Unexpected CRLs", *("%s (%s)" % (c.getIssuer(), c.hAKI()) for c in crls))
+ raise rpki.exceptions.UnexpectedCMSCRLs("Unexpected CRLs", *("%s (%s)" % (
+ c.getIssuer(), c.hAKI()) for c in crls))
for x in certs:
if x.getNotAfter() < now:
- raise rpki.exceptions.CMSCertHasExpired("CMS certificate has expired", "%s (%s)" % (x.getSubject(), x.hSKI()))
+ raise rpki.exceptions.CMSCertHasExpired("CMS certificate has expired", "%s (%s)" % (
+ x.getSubject(), x.hSKI()))
try:
content = cms.verify(store)
@@ -1221,8 +1280,7 @@ class CMS_object(DER_object):
rpki.log.warn(line)
raise rpki.exceptions.CMSVerificationFailed, "CMS verification failed"
- self.decode(content)
- return self.get_content()
+ return content
def extract(self):
"""
@@ -1245,12 +1303,13 @@ class CMS_object(DER_object):
raise rpki.exceptions.UnparsableCMSDER
if cms.eContentType() != self.econtent_oid:
- raise rpki.exceptions.WrongEContentType, "Got CMS eContentType %s, expected %s" % (cms.eContentType(), self.econtent_oid)
+ raise rpki.exceptions.WrongEContentType, "Got CMS eContentType %s, expected %s" % (
+ cms.eContentType(), self.econtent_oid)
- content = cms.verify(rpki.POW.X509Store(), None, rpki.POW.CMS_NOCRL | rpki.POW.CMS_NO_SIGNER_CERT_VERIFY | rpki.POW.CMS_NO_ATTR_VERIFY | rpki.POW.CMS_NO_CONTENT_VERIFY)
+ return cms.verify(rpki.POW.X509Store(), None,
+ (rpki.POW.CMS_NOCRL | rpki.POW.CMS_NO_SIGNER_CERT_VERIFY |
+ rpki.POW.CMS_NO_ATTR_VERIFY | rpki.POW.CMS_NO_CONTENT_VERIFY))
- self.decode(content)
- return self.get_content()
def sign(self, keypair, certs, crls = None, no_certs = False):
"""
@@ -1272,21 +1331,17 @@ class CMS_object(DER_object):
crls = (crls,)
if self.debug_cms_certs:
- rpki.log.debug("Signing with cert issuer %s subject %s SKI %s" % (cert.getIssuer(), cert.getSubject(), cert.hSKI()))
+ rpki.log.debug("Signing with cert issuer %s subject %s SKI %s" % (
+ cert.getIssuer(), cert.getSubject(), cert.hSKI()))
for i, c in enumerate(certs):
- rpki.log.debug("Additional cert %d issuer %s subject %s SKI %s" % (i, c.getIssuer(), c.getSubject(), c.hSKI()))
-
- cms = rpki.POW.CMS()
+ rpki.log.debug("Additional cert %d issuer %s subject %s SKI %s" % (
+ i, c.getIssuer(), c.getSubject(), c.hSKI()))
- cms.sign(cert.get_POW(),
- keypair.get_POW(),
- self.encode(),
- [x.get_POW() for x in certs],
- [c.get_POW() for c in crls],
- self.econtent_oid,
- rpki.POW.CMS_NOCERTS if no_certs else 0)
-
- self.POW = cms
+ self._sign(cert.get_POW(),
+ keypair.get_POW(),
+ [x.get_POW() for x in certs],
+ [c.get_POW() for c in crls],
+ rpki.POW.CMS_NOCERTS if no_certs else 0)
@property
def creation_timestamp(self):
@@ -1296,24 +1351,92 @@ class CMS_object(DER_object):
return self.get_signingTime()
-class DER_CMS_object(CMS_object):
+class Wrapped_CMS_object(CMS_object):
"""
- Class to hold CMS objects with DER-based content.
+ Abstract class to hold CMS objects wrapping non-DER content (eg, XML
+ or VCard).
+
+ CMS-wrapped objects are a little different from the other DER_object
+ types because the signed object is CMS wrapping some other kind of
+ inner content. A Wrapped_CMS_object is the outer CMS wrapped object
+ so that the usual DER and PEM operations do the obvious things, and
+ the inner content is handle via separate methods.
"""
- def encode(self):
+ other_clear = ("content",)
+
+ def get_content(self):
"""
- Encode inner content for signing.
+ Get the inner content of this Wrapped_CMS_object.
"""
- return self.get_content().toString()
+ if self.content is None:
+ raise rpki.exceptions.CMSContentNotSet, "Inner content of CMS object %r is not set" % self
+ return self.content
- def decode(self, der):
+ def set_content(self, content):
+ """
+ Set the (inner) content of this Wrapped_CMS_object, clearing the wrapper.
"""
- Decode DER and set inner content.
+ self.clear()
+ self.content = content
+
+ def verify(self, ta):
+ """
+ Verify CMS wrapper and store inner content.
+ """
+
+ self.decode(CMS_object.verify(self, ta))
+ return self.get_content()
+
+ def extract(self):
+ """
+ Extract and store inner content from CMS wrapper without verifying
+ the CMS.
+
+ DANGER WILL ROBINSON!!!
+
+ Do not use this method on unvalidated data. Use the verify()
+ method instead.
+
+ If you don't understand this warning, don't use this method.
"""
- obj = self.content_class()
- obj.fromString(der)
- self.content = obj
+
+ self.decode(CMS_object.extract(self))
+ return self.get_content()
+
+ def _sign(self, cert, keypair, certs, crls, flags):
+ """
+ Internal method to call POW to do CMS signature. This is split
+ out from the .sign() API method to handle differences in how
+ different CMS-based POW classes handle the inner content.
+ """
+
+ cms = self.POW_class()
+ cms.sign(cert, keypair, self.encode(), certs, crls, self.econtent_oid, flags)
+ self.POW = cms
+
+
+class DER_CMS_object(CMS_object):
+ """
+ Abstract class for CMS-based objects with DER-encoded content
+ handled by C-level subclasses of rpki.POW.CMS.
+ """
+
+ def _sign(self, cert, keypair, certs, crls, flags):
+ self.get_POW().sign(cert, keypair, certs, crls, self.econtent_oid, flags)
+
+
+ def extract_if_needed(self):
+ """
+ Extract inner content if needed. See caveats for .extract(), do
+ not use unless you really know what you are doing.
+ """
+
+ try:
+ self.get_POW().getVersion()
+ except rpki.POW.NotVerifiedError:
+ self.extract()
+
class SignedManifest(DER_CMS_object):
"""
@@ -1321,41 +1444,43 @@ class SignedManifest(DER_CMS_object):
"""
pem_converter = PEM_converter("RPKI MANIFEST")
- content_class = rpki.manifest.Manifest
econtent_oid = POWify_OID("id-ct-rpkiManifest")
+ POW_class = rpki.POW.Manifest
def getThisUpdate(self):
"""
Get thisUpdate value from this manifest.
"""
- return rpki.sundial.datetime.fromGeneralizedTime(self.get_content().thisUpdate.get())
+ return self.get_POW().getThisUpdate()
def getNextUpdate(self):
"""
Get nextUpdate value from this manifest.
"""
- return rpki.sundial.datetime.fromGeneralizedTime(self.get_content().nextUpdate.get())
+ return self.get_POW().getNextUpdate()
@classmethod
def build(cls, serial, thisUpdate, nextUpdate, names_and_objs, keypair, certs, version = 0):
"""
Build a signed manifest.
"""
- self = cls()
+
filelist = []
for name, obj in names_and_objs:
d = rpki.POW.Digest(rpki.POW.SHA256_DIGEST)
d.update(obj.get_DER())
filelist.append((name.rpartition("/")[2], d.digest()))
filelist.sort(key = lambda x: x[0])
- m = rpki.manifest.Manifest()
- m.version.set(version)
- m.manifestNumber.set(serial)
- m.thisUpdate.set(thisUpdate.toGeneralizedTime())
- m.nextUpdate.set(nextUpdate.toGeneralizedTime())
- m.fileHashAlg.set(rpki.oids.name2oid["id-sha256"])
- m.fileList.set(filelist)
- self.set_content(m)
+
+ obj = cls.POW_class()
+ obj.setVersion(version)
+ obj.setManifestNumber(serial)
+ obj.setThisUpdate(thisUpdate)
+ obj.setNextUpdate(nextUpdate)
+ obj.setAlgorithm(POWify_OID(rpki.oids.name2oid["id-sha256"]))
+ obj.addFiles(filelist)
+
+ self = cls(POW = obj)
self.sign(keypair, certs)
return self
@@ -1365,31 +1490,23 @@ class ROA(DER_CMS_object):
"""
pem_converter = PEM_converter("ROUTE ORIGIN ATTESTATION")
- content_class = rpki.roa.RouteOriginAttestation
econtent_oid = POWify_OID("id-ct-routeOriginAttestation")
+ POW_class = rpki.POW.ROA
@classmethod
def build(cls, asn, ipv4, ipv6, keypair, certs, version = 0):
"""
Build a ROA.
"""
- try:
- self = cls()
- r = rpki.roa.RouteOriginAttestation()
- r.version.set(version)
- r.asID.set(asn)
- r.ipAddrBlocks.set((a.to_roa_tuple() for a in (ipv4, ipv6) if a))
- self.set_content(r)
- self.sign(keypair, certs)
- return self
- except rpki.POW.pkix.DerError, e:
- rpki.log.debug("Encoding error while generating ROA %r: %s" % (self, e))
- rpki.log.debug("ROA inner content: %r" % (r.get(),))
- raise
-
- _afi_map = dict((cls.resource_set_type.afi, cls)
- for cls in (rpki.resource_set.roa_prefix_set_ipv4,
- rpki.resource_set.roa_prefix_set_ipv6))
+ ipv4 = ipv4.to_POW_roa_tuple() if ipv4 else None
+ ipv6 = ipv6.to_POW_roa_tuple() if ipv6 else None
+ obj = cls.POW_class()
+ obj.setVersion(version)
+ obj.setASID(asn)
+ obj.setPrefixes(ipv4 = ipv4, ipv6 = ipv6)
+ self = cls(POW = obj)
+ self.sign(keypair, certs)
+ return self
def tracking_data(self, uri):
"""
@@ -1398,42 +1515,25 @@ class ROA(DER_CMS_object):
"""
msg = DER_CMS_object.tracking_data(self, uri)
try:
- if self.content is None:
+ try:
+ self.get_POW().getVersion()
+ except rpki.POW.NotVerifiedError:
self.extract()
- roa = self.get_content()
- asn = roa.asID.get()
- prefix_sets = {}
- for fam in roa.ipAddrBlocks:
- afi = fam.addressFamily.get()
- prefix_sets[afi] = prefix_set = self._afi_map[afi]()
- addr_type = prefix_set.resource_set_type.range_type.datum_type
- for addr in fam.addresses:
- prefix = addr.address.get()
- prefixlen = len(prefix)
- prefix = addr_type(rpki.resource_set._bs2long(prefix, addr_type.bits, 0))
- maxprefixlen = addr.maxLength.get()
- prefix_set.append(prefix_set.prefix_type(prefix, prefixlen, maxprefixlen))
- msg = "%s %s %s" % (msg, asn,
- ",".join(str(prefix_sets[i]) for i in sorted(prefix_sets)))
- except:
+ asn = self.get_POW().getASID()
+ text = []
+ for prefixes in self.get_POW().getPrefixes():
+ if prefixes is not None:
+ for prefix, prefixlen, maxprefixlen in prefixes:
+ if maxprefixlen is None or prefixlen == maxprefixlen:
+ text.append("%s/%s" % (prefix, prefixlen))
+ else:
+ text.append("%s/%s-%s" % (prefix, prefixlen, maxprefixlen))
+ text.sort()
+ msg = "%s %s %s" % (msg, asn, ",".join(text))
+ except: # pylint: disable=W0702
pass
return msg
-class Ghostbuster(DER_CMS_object):
- """
- Class to hold a signed Ghostbuster record.
- """
-
- content_class = rpki.ghostbuster.Ghostbuster
-
- @classmethod
- def build(cls, vcard, keypair, certs):
- self = cls()
- gbr = content_class(vcard)
- self.set_content(gbr)
- self.sign(keypair, certs)
- return self
-
class DeadDrop(object):
"""
Dead-drop utility for storing copies of CMS messages for debugging or
@@ -1465,7 +1565,7 @@ class DeadDrop(object):
rpki.log.warn("Could not write to mailbox %s: %e" % (self.name, e))
self.warned = True
-class XML_CMS_object(CMS_object):
+class XML_CMS_object(Wrapped_CMS_object):
"""
Class to hold CMS-wrapped XML protocol data.
"""
@@ -1484,11 +1584,24 @@ class XML_CMS_object(CMS_object):
dump_inbound_cms = None
+ ## @var check_inbound_schema
+ # If set, perform RelaxNG schema check on inbound messages.
+
+ check_inbound_schema = True
+
+ ## @var check_outbound_schema
+ # If set, perform RelaxNG schema check on outbound messages.
+
+ check_outbound_schema = False
+
def encode(self):
"""
Encode inner content for signing.
"""
- return lxml.etree.tostring(self.get_content(), pretty_print = True, encoding = self.encoding, xml_declaration = True)
+ return lxml.etree.tostring(self.get_content(),
+ pretty_print = True,
+ encoding = self.encoding,
+ xml_declaration = True)
def decode(self, xml):
"""
@@ -1500,7 +1613,10 @@ class XML_CMS_object(CMS_object):
"""
Pretty print XML content of this message.
"""
- return lxml.etree.tostring(self.get_content(), pretty_print = True, encoding = self.encoding, xml_declaration = True)
+ return lxml.etree.tostring(self.get_content(),
+ pretty_print = True,
+ encoding = self.encoding,
+ xml_declaration = True)
def schema_check(self):
"""
@@ -1531,7 +1647,8 @@ class XML_CMS_object(CMS_object):
self.set_content(msg)
else:
self.set_content(msg.toXML())
- self.schema_check()
+ if self.check_outbound_schema:
+ self.schema_check()
self.sign(keypair, certs, crls)
if self.dump_outbound_cms:
self.dump_outbound_cms.dump(self)
@@ -1544,11 +1661,12 @@ class XML_CMS_object(CMS_object):
if self.dump_inbound_cms:
self.dump_inbound_cms.dump(self)
self.verify(ta)
- self.schema_check()
+ if self.check_inbound_schema:
+ self.schema_check()
if self.saxify is None:
return self.get_content()
else:
- return self.saxify(self.get_content())
+ return self.saxify(self.get_content()) # pylint: disable=E1102
def check_replay(self, timestamp):
"""
@@ -1583,7 +1701,7 @@ class SignedReferral(XML_CMS_object):
schema = rpki.relaxng.myrpki
saxify = None
-class Ghostbuster(CMS_object):
+class Ghostbuster(Wrapped_CMS_object):
"""
Class to hold Ghostbusters record (CMS-wrapped VCard). This is
quite minimal because we treat the VCard as an opaque byte string
@@ -1623,7 +1741,7 @@ class CRL(DER_object):
Class to hold a Certificate Revocation List.
"""
- formats = ("DER", "POW", "POWpkix")
+ formats = ("DER", "POW")
pem_converter = PEM_converter("X509 CRL")
def get_DER(self):
@@ -1636,9 +1754,6 @@ class CRL(DER_object):
if self.POW:
self.DER = self.POW.derWrite()
return self.get_DER()
- if self.POWpkix:
- self.DER = self.POWpkix.toString()
- return self.get_DER()
raise rpki.exceptions.DERObjectConversionError, "No conversion path to DER available"
def get_POW(self):
@@ -1646,56 +1761,49 @@ class CRL(DER_object):
Get the rpki.POW value of this CRL.
"""
self.check()
- if not self.POW:
- self.POW = rpki.POW.derRead(rpki.POW.X509_CRL, self.get_DER())
+ if not self.POW: # pylint: disable=E0203
+ self.POW = rpki.POW.CRL.derRead(self.get_DER())
return self.POW
- def get_POWpkix(self):
- """
- Get the rpki.POW.pkix value of this CRL.
- """
- self.check()
- if not self.POWpkix:
- crl = rpki.POW.pkix.CertificateList()
- crl.fromString(self.get_DER())
- self.POWpkix = crl
- return self.POWpkix
-
def getThisUpdate(self):
"""
Get thisUpdate value from this CRL.
"""
- return rpki.sundial.datetime.fromASN1tuple(self.get_POWpkix().getThisUpdate())
+ return self.get_POW().getThisUpdate()
def getNextUpdate(self):
"""
Get nextUpdate value from this CRL.
"""
- return rpki.sundial.datetime.fromASN1tuple(self.get_POWpkix().getNextUpdate())
+ return self.get_POW().getNextUpdate()
def getIssuer(self):
"""
Get issuer value of this CRL.
"""
- return X501DN(self.get_POWpkix().getIssuer())
+ return X501DN.from_POW(self.get_POW().getIssuer())
+
+ def getCRLNumber(self):
+ """
+ Get CRL Number value for this CRL.
+ """
+ return self.get_POW().getCRLNumber()
@classmethod
- def generate(cls, keypair, issuer, serial, thisUpdate, nextUpdate, revokedCertificates, version = 1, digestType = "sha256WithRSAEncryption"):
+ def generate(cls, keypair, issuer, serial, thisUpdate, nextUpdate, revokedCertificates, version = 1):
"""
Generate a new CRL.
"""
- crl = rpki.POW.pkix.CertificateList()
+ crl = rpki.POW.CRL()
crl.setVersion(version)
- crl.setIssuer(issuer.get_POWpkix().getSubject())
- crl.setThisUpdate(thisUpdate.toASN1tuple())
- crl.setNextUpdate(nextUpdate.toASN1tuple())
- if revokedCertificates:
- crl.setRevokedCertificates(revokedCertificates)
- crl.setExtensions(
- ((rpki.oids.name2oid["authorityKeyIdentifier"], False, (issuer.get_SKI(), (), None)),
- (rpki.oids.name2oid["cRLNumber"], False, serial)))
- crl.sign(keypair.get_POW(), digestType)
- return cls(POWpkix = crl)
+ crl.setIssuer(issuer.getSubject().get_POW())
+ crl.setThisUpdate(thisUpdate)
+ crl.setNextUpdate(nextUpdate)
+ crl.setAKI(issuer.get_SKI())
+ crl.setCRLNumber(serial)
+ crl.addRevocations(revokedCertificates)
+ crl.sign(keypair.get_POW())
+ return cls(POW = crl)
@property
def creation_timestamp(self):
diff --git a/rpkid/rpki/xml_utils.py b/rpkid/rpki/xml_utils.py
index 27c1f1e6..156d0e48 100644
--- a/rpkid/rpki/xml_utils.py
+++ b/rpkid/rpki/xml_utils.py
@@ -3,7 +3,7 @@ XML utilities.
$Id$
-Copyright (C) 2009-2011 Internet Systems Consortium ("ISC")
+Copyright (C) 2009-2012 Internet Systems Consortium ("ISC")
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
@@ -206,7 +206,7 @@ class base_elt(object):
"""
Convert a base_elt object to string format.
"""
- lxml.etree.tostring(self.toXML(), pretty_print = True, encoding = "us-ascii")
+ return lxml.etree.tostring(self.toXML(), pretty_print = True, encoding = "us-ascii")
@classmethod
def make_pdu(cls, **kargs):
@@ -451,7 +451,7 @@ class msg(list):
"""
Convert msg object to string.
"""
- lxml.etree.tostring(self.toXML(), pretty_print = True, encoding = "us-ascii")
+ return lxml.etree.tostring(self.toXML(), pretty_print = True, encoding = "us-ascii")
def toXML(self):
"""