pyasn1-alt-modules 0.4.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of pyasn1-alt-modules might be problematic. Click here for more details.

Files changed (195) hide show
  1. pyasn1_alt_modules/__init__.py +2 -0
  2. pyasn1_alt_modules/opentypemap.py +19 -0
  3. pyasn1_alt_modules/pem.py +66 -0
  4. pyasn1_alt_modules/rfc1155.py +97 -0
  5. pyasn1_alt_modules/rfc1157.py +127 -0
  6. pyasn1_alt_modules/rfc1901.py +23 -0
  7. pyasn1_alt_modules/rfc1902.py +130 -0
  8. pyasn1_alt_modules/rfc1905.py +136 -0
  9. pyasn1_alt_modules/rfc2040.py +50 -0
  10. pyasn1_alt_modules/rfc2251.py +564 -0
  11. pyasn1_alt_modules/rfc2314.py +68 -0
  12. pyasn1_alt_modules/rfc2315.py +325 -0
  13. pyasn1_alt_modules/rfc2437.py +70 -0
  14. pyasn1_alt_modules/rfc2459.py +1340 -0
  15. pyasn1_alt_modules/rfc2511.py +303 -0
  16. pyasn1_alt_modules/rfc2528.py +34 -0
  17. pyasn1_alt_modules/rfc2560.py +226 -0
  18. pyasn1_alt_modules/rfc2631.py +37 -0
  19. pyasn1_alt_modules/rfc2634.py +342 -0
  20. pyasn1_alt_modules/rfc2743.py +60 -0
  21. pyasn1_alt_modules/rfc2876.py +61 -0
  22. pyasn1_alt_modules/rfc2898.py +72 -0
  23. pyasn1_alt_modules/rfc2985.py +593 -0
  24. pyasn1_alt_modules/rfc2986.py +76 -0
  25. pyasn1_alt_modules/rfc3058.py +48 -0
  26. pyasn1_alt_modules/rfc3114.py +80 -0
  27. pyasn1_alt_modules/rfc3125.py +469 -0
  28. pyasn1_alt_modules/rfc3161.py +142 -0
  29. pyasn1_alt_modules/rfc3217.py +42 -0
  30. pyasn1_alt_modules/rfc3274.py +62 -0
  31. pyasn1_alt_modules/rfc3279.py +264 -0
  32. pyasn1_alt_modules/rfc3280.py +1544 -0
  33. pyasn1_alt_modules/rfc3281.py +332 -0
  34. pyasn1_alt_modules/rfc3370.py +142 -0
  35. pyasn1_alt_modules/rfc3412.py +54 -0
  36. pyasn1_alt_modules/rfc3414.py +29 -0
  37. pyasn1_alt_modules/rfc3447.py +46 -0
  38. pyasn1_alt_modules/rfc3537.py +44 -0
  39. pyasn1_alt_modules/rfc3546.py +23 -0
  40. pyasn1_alt_modules/rfc3560.py +74 -0
  41. pyasn1_alt_modules/rfc3565.py +59 -0
  42. pyasn1_alt_modules/rfc3657.py +69 -0
  43. pyasn1_alt_modules/rfc3709.py +230 -0
  44. pyasn1_alt_modules/rfc3739.py +207 -0
  45. pyasn1_alt_modules/rfc3770.py +77 -0
  46. pyasn1_alt_modules/rfc3779.py +139 -0
  47. pyasn1_alt_modules/rfc3820.py +66 -0
  48. pyasn1_alt_modules/rfc3852.py +707 -0
  49. pyasn1_alt_modules/rfc3874.py +29 -0
  50. pyasn1_alt_modules/rfc4010.py +58 -0
  51. pyasn1_alt_modules/rfc4043.py +45 -0
  52. pyasn1_alt_modules/rfc4055.py +285 -0
  53. pyasn1_alt_modules/rfc4056.py +56 -0
  54. pyasn1_alt_modules/rfc4059.py +101 -0
  55. pyasn1_alt_modules/rfc4073.py +62 -0
  56. pyasn1_alt_modules/rfc4108.py +355 -0
  57. pyasn1_alt_modules/rfc4210.py +807 -0
  58. pyasn1_alt_modules/rfc4211.py +420 -0
  59. pyasn1_alt_modules/rfc4231.py +38 -0
  60. pyasn1_alt_modules/rfc4262.py +37 -0
  61. pyasn1_alt_modules/rfc4334.py +78 -0
  62. pyasn1_alt_modules/rfc4357.py +485 -0
  63. pyasn1_alt_modules/rfc4366.py +23 -0
  64. pyasn1_alt_modules/rfc4387.py +23 -0
  65. pyasn1_alt_modules/rfc4476.py +99 -0
  66. pyasn1_alt_modules/rfc4490.py +119 -0
  67. pyasn1_alt_modules/rfc4491.py +44 -0
  68. pyasn1_alt_modules/rfc4683.py +76 -0
  69. pyasn1_alt_modules/rfc4985.py +52 -0
  70. pyasn1_alt_modules/rfc4998.py +125 -0
  71. pyasn1_alt_modules/rfc5035.py +206 -0
  72. pyasn1_alt_modules/rfc5055.py +763 -0
  73. pyasn1_alt_modules/rfc5083.py +55 -0
  74. pyasn1_alt_modules/rfc5084.py +94 -0
  75. pyasn1_alt_modules/rfc5126.py +578 -0
  76. pyasn1_alt_modules/rfc5208.py +73 -0
  77. pyasn1_alt_modules/rfc5275.py +404 -0
  78. pyasn1_alt_modules/rfc5276.py +82 -0
  79. pyasn1_alt_modules/rfc5280.py +1666 -0
  80. pyasn1_alt_modules/rfc5480.py +190 -0
  81. pyasn1_alt_modules/rfc5544.py +127 -0
  82. pyasn1_alt_modules/rfc5636.py +117 -0
  83. pyasn1_alt_modules/rfc5639.py +49 -0
  84. pyasn1_alt_modules/rfc5649.py +33 -0
  85. pyasn1_alt_modules/rfc5652.py +763 -0
  86. pyasn1_alt_modules/rfc5697.py +64 -0
  87. pyasn1_alt_modules/rfc5698.py +159 -0
  88. pyasn1_alt_modules/rfc5751.py +127 -0
  89. pyasn1_alt_modules/rfc5752.py +52 -0
  90. pyasn1_alt_modules/rfc5753.py +163 -0
  91. pyasn1_alt_modules/rfc5755.py +400 -0
  92. pyasn1_alt_modules/rfc5913.py +46 -0
  93. pyasn1_alt_modules/rfc5914.py +119 -0
  94. pyasn1_alt_modules/rfc5915.py +32 -0
  95. pyasn1_alt_modules/rfc5916.py +39 -0
  96. pyasn1_alt_modules/rfc5917.py +59 -0
  97. pyasn1_alt_modules/rfc5924.py +19 -0
  98. pyasn1_alt_modules/rfc5934.py +786 -0
  99. pyasn1_alt_modules/rfc5940.py +62 -0
  100. pyasn1_alt_modules/rfc5958.py +100 -0
  101. pyasn1_alt_modules/rfc5990.py +238 -0
  102. pyasn1_alt_modules/rfc6010.py +92 -0
  103. pyasn1_alt_modules/rfc6019.py +46 -0
  104. pyasn1_alt_modules/rfc6031.py +469 -0
  105. pyasn1_alt_modules/rfc6032.py +71 -0
  106. pyasn1_alt_modules/rfc6066.py +25 -0
  107. pyasn1_alt_modules/rfc6120.py +46 -0
  108. pyasn1_alt_modules/rfc6170.py +17 -0
  109. pyasn1_alt_modules/rfc6187.py +22 -0
  110. pyasn1_alt_modules/rfc6210.py +45 -0
  111. pyasn1_alt_modules/rfc6211.py +75 -0
  112. pyasn1_alt_modules/rfc6402.py +643 -0
  113. pyasn1_alt_modules/rfc6482.py +77 -0
  114. pyasn1_alt_modules/rfc6484.py +17 -0
  115. pyasn1_alt_modules/rfc6486.py +70 -0
  116. pyasn1_alt_modules/rfc6487.py +22 -0
  117. pyasn1_alt_modules/rfc6492.py +41 -0
  118. pyasn1_alt_modules/rfc6493.py +24 -0
  119. pyasn1_alt_modules/rfc6494.py +23 -0
  120. pyasn1_alt_modules/rfc6664.py +151 -0
  121. pyasn1_alt_modules/rfc6955.py +112 -0
  122. pyasn1_alt_modules/rfc6960.py +234 -0
  123. pyasn1_alt_modules/rfc6962.py +52 -0
  124. pyasn1_alt_modules/rfc7030.py +70 -0
  125. pyasn1_alt_modules/rfc7191.py +267 -0
  126. pyasn1_alt_modules/rfc7229.py +29 -0
  127. pyasn1_alt_modules/rfc7292.py +359 -0
  128. pyasn1_alt_modules/rfc7296.py +32 -0
  129. pyasn1_alt_modules/rfc7508.py +92 -0
  130. pyasn1_alt_modules/rfc7585.py +53 -0
  131. pyasn1_alt_modules/rfc7633.py +40 -0
  132. pyasn1_alt_modules/rfc7693.py +66 -0
  133. pyasn1_alt_modules/rfc7773.py +54 -0
  134. pyasn1_alt_modules/rfc7836.py +65 -0
  135. pyasn1_alt_modules/rfc7894.py +100 -0
  136. pyasn1_alt_modules/rfc7906.py +739 -0
  137. pyasn1_alt_modules/rfc7914.py +55 -0
  138. pyasn1_alt_modules/rfc8017.py +159 -0
  139. pyasn1_alt_modules/rfc8018.py +269 -0
  140. pyasn1_alt_modules/rfc8103.py +36 -0
  141. pyasn1_alt_modules/rfc8209.py +20 -0
  142. pyasn1_alt_modules/rfc8226.py +151 -0
  143. pyasn1_alt_modules/rfc8358.py +54 -0
  144. pyasn1_alt_modules/rfc8360.py +46 -0
  145. pyasn1_alt_modules/rfc8398.py +55 -0
  146. pyasn1_alt_modules/rfc8410.py +43 -0
  147. pyasn1_alt_modules/rfc8418.py +36 -0
  148. pyasn1_alt_modules/rfc8419.py +70 -0
  149. pyasn1_alt_modules/rfc8479.py +48 -0
  150. pyasn1_alt_modules/rfc8494.py +80 -0
  151. pyasn1_alt_modules/rfc8520.py +66 -0
  152. pyasn1_alt_modules/rfc8619.py +45 -0
  153. pyasn1_alt_modules/rfc8649.py +42 -0
  154. pyasn1_alt_modules/rfc8692.py +79 -0
  155. pyasn1_alt_modules/rfc8696.py +108 -0
  156. pyasn1_alt_modules/rfc8702.py +109 -0
  157. pyasn1_alt_modules/rfc8708.py +43 -0
  158. pyasn1_alt_modules/rfc8737.py +36 -0
  159. pyasn1_alt_modules/rfc8769.py +21 -0
  160. pyasn1_alt_modules/rfc8894.py +52 -0
  161. pyasn1_alt_modules/rfc8951.py +42 -0
  162. pyasn1_alt_modules/rfc8954.py +238 -0
  163. pyasn1_alt_modules/rfc8994.py +52 -0
  164. pyasn1_alt_modules/rfc8995.py +39 -0
  165. pyasn1_alt_modules/rfc9044.py +80 -0
  166. pyasn1_alt_modules/rfc9092.py +35 -0
  167. pyasn1_alt_modules/rfc9118.py +82 -0
  168. pyasn1_alt_modules/rfc9174.py +55 -0
  169. pyasn1_alt_modules/rfc9189.py +74 -0
  170. pyasn1_alt_modules/rfc9215.py +228 -0
  171. pyasn1_alt_modules/rfc9286.py +78 -0
  172. pyasn1_alt_modules/rfc9289.py +22 -0
  173. pyasn1_alt_modules/rfc9310.py +46 -0
  174. pyasn1_alt_modules/rfc9323.py +129 -0
  175. pyasn1_alt_modules/rfc9336.py +20 -0
  176. pyasn1_alt_modules/rfc9337.py +74 -0
  177. pyasn1_alt_modules/rfc9345.py +36 -0
  178. pyasn1_alt_modules/rfc9385.py +22 -0
  179. pyasn1_alt_modules/rfc9399.py +59 -0
  180. pyasn1_alt_modules/rfc9480.py +731 -0
  181. pyasn1_alt_modules/rfc9481.py +224 -0
  182. pyasn1_alt_modules/rfc9509.py +24 -0
  183. pyasn1_alt_modules/rfc9548.py +23 -0
  184. pyasn1_alt_modules/rfc9579.py +89 -0
  185. pyasn1_alt_modules/rfc9582.py +107 -0
  186. pyasn1_alt_modules/rfc9598.py +52 -0
  187. pyasn1_alt_modules/rfc9608.py +35 -0
  188. pyasn1_alt_modules/rfc9629.py +100 -0
  189. pyasn1_alt_modules/rfc9654.py +241 -0
  190. pyasn1_alt_modules-0.4.5.dist-info/LICENSE.txt +25 -0
  191. pyasn1_alt_modules-0.4.5.dist-info/METADATA +34 -0
  192. pyasn1_alt_modules-0.4.5.dist-info/RECORD +195 -0
  193. pyasn1_alt_modules-0.4.5.dist-info/WHEEL +5 -0
  194. pyasn1_alt_modules-0.4.5.dist-info/top_level.txt +1 -0
  195. pyasn1_alt_modules-0.4.5.dist-info/zip-safe +1 -0
@@ -0,0 +1,42 @@
1
+ #
2
+ # This file is part of pyasn1-alt-modules software.
3
+ #
4
+ # Created by Russ Housley.
5
+ #
6
+ # Copyright (c) 2021-2024, Vigil Security, LLC
7
+ # License: http://vigilsec.com/pyasn1-alt-modules-license.txt
8
+ #
9
+ # Triple-DES and RC2 Key Wrapping
10
+ #
11
+ # ASN.1 source from:
12
+ # https://www.rfc-editor.org/rfc/rfc3217.txt
13
+ # https://www.rfc-editor.org/rfc/rfc3370.txt
14
+ # https://www.rfc-editor.org/rfc/rfc5990.txt
15
+ #
16
+
17
+ from pyasn1_alt_modules import rfc3370
18
+ from pyasn1_alt_modules import rfc5990
19
+
20
+
21
+ # Imports from RFC 3370
22
+
23
+ id_alg_CMSRC2wrap = rfc3370.id_alg_CMSRC2wrap
24
+
25
+ RC2ParameterVersion = rfc3370.RC2ParameterVersion
26
+
27
+ RC2wrapParameter = rfc3370.RC2wrapParameter
28
+
29
+
30
+ # Imports from RFC 5990
31
+
32
+ id_alg_CMS3DESwrap = rfc5990.id_alg_CMS3DESwrap
33
+
34
+
35
+ # The update to the Algorithm Identifier map is already handled
36
+ # by importing rfc3370 and rfc5990. To save looking it up, the
37
+ # map is updated with these entries:
38
+ #
39
+ # _algorithmIdentifierMapUpdate = {
40
+ # id_alg_CMS3DESwrap: univ.Null(),
41
+ # id_alg_CMSRC2wrap: RC2wrapParameter(),
42
+ # }
@@ -0,0 +1,62 @@
1
+ #
2
+ # This file is part of pyasn1-alt-modules software.
3
+ #
4
+ # Created by Russ Housley with assistance from asn1ate v.0.6.0.
5
+ # Modified by Russ Housley to add a map for use with opentypes.
6
+ # Updated by Russ Housley to include the opentypemap manager.
7
+ #
8
+ # Copyright (c) 2019-2024, Vigil Security, LLC
9
+ # License: http://vigilsec.com/pyasn1-alt-modules-license.txt
10
+ #
11
+ # CMS Compressed Data Content Type
12
+ #
13
+ # ASN.1 source from:
14
+ # https://www.rfc-editor.org/rfc/rfc3274.txt
15
+ #
16
+
17
+ from pyasn1.type import namedtype
18
+ from pyasn1.type import univ
19
+
20
+ from pyasn1_alt_modules import rfc5280
21
+ from pyasn1_alt_modules import rfc5652
22
+ from pyasn1_alt_modules import opentypemap
23
+
24
+ cmsContentTypesMap = opentypemap.get('cmsContentTypesMap')
25
+
26
+
27
+ class CompressionAlgorithmIdentifier(rfc5280.AlgorithmIdentifier):
28
+ pass
29
+
30
+
31
+ # The CMS Compressed Data Content Type
32
+
33
+ id_ct_compressedData = univ.ObjectIdentifier('1.2.840.113549.1.9.16.1.9')
34
+
35
+ class CompressedData(univ.Sequence):
36
+ pass
37
+
38
+ CompressedData.componentType = namedtype.NamedTypes(
39
+ namedtype.NamedType('version', rfc5652.CMSVersion()), # Always set to 0
40
+ namedtype.NamedType('compressionAlgorithm', CompressionAlgorithmIdentifier()),
41
+ namedtype.NamedType('encapContentInfo', rfc5652.EncapsulatedContentInfo())
42
+ )
43
+
44
+
45
+ # Algorithm identifier for the zLib Compression Algorithm
46
+ # This includes cpa_zlibCompress as defined in RFC 6268,
47
+ # from https://www.rfc-editor.org/rfc/rfc6268.txt
48
+
49
+ id_alg_zlibCompress = univ.ObjectIdentifier('1.2.840.113549.1.9.16.3.8')
50
+
51
+ cpa_zlibCompress = rfc5280.AlgorithmIdentifier()
52
+ cpa_zlibCompress['algorithm'] = id_alg_zlibCompress
53
+ # cpa_zlibCompress['parameters'] are absent
54
+
55
+
56
+ # Update the CMS Content Types Map
57
+
58
+ _cmsContentTypesMapUpdate = {
59
+ id_ct_compressedData: CompressedData(),
60
+ }
61
+
62
+ cmsContentTypesMap.update(_cmsContentTypesMapUpdate)
@@ -0,0 +1,264 @@
1
+ #
2
+ # This file is part of pyasn1-modules.
3
+ #
4
+ # Copyright (c) 2017, Danielle Madeley <danielle@madeley.id.au>
5
+ # Copyright (c) 2019-2024, Vigil Security, LLC
6
+ # License: http://vigilsec.com/pyasn1-alt-modules-license.txt
7
+ #
8
+ # Modified by Russ Housley to add maps for use with opentypes.
9
+ # Modified by Russ Housley to include the opentypemap manager.
10
+ #
11
+ # Algorithms and Identifiers for Internet X.509 Certificates and CRLs
12
+ #
13
+ # Derived from RFC 3279:
14
+ # https://www.rfc-editor.org/rfc/rfc3279.txt
15
+ #
16
+ from pyasn1.type import namedtype
17
+ from pyasn1.type import namedval
18
+ from pyasn1.type import univ
19
+
20
+ from pyasn1_alt_modules import rfc5280
21
+ from pyasn1_alt_modules import opentypemap
22
+
23
+ algorithmIdentifierMap = opentypemap.get('algorithmIdentifierMap')
24
+
25
+
26
+ def _OID(*components):
27
+ output = []
28
+ for x in tuple(components):
29
+ if isinstance(x, univ.ObjectIdentifier):
30
+ output.extend(list(x))
31
+ else:
32
+ output.append(int(x))
33
+
34
+ return univ.ObjectIdentifier(output)
35
+
36
+
37
+ md2 = _OID(1, 2, 840, 113549, 2, 2)
38
+ md5 = _OID(1, 2, 840, 113549, 2, 5)
39
+ id_sha1 = _OID(1, 3, 14, 3, 2, 26)
40
+ id_dsa = _OID(1, 2, 840, 10040, 4, 1)
41
+
42
+
43
+ class DSAPublicKey(univ.Integer):
44
+ pass
45
+
46
+
47
+ class Dss_Parms(univ.Sequence):
48
+ componentType = namedtype.NamedTypes(
49
+ namedtype.NamedType('p', univ.Integer()),
50
+ namedtype.NamedType('q', univ.Integer()),
51
+ namedtype.NamedType('g', univ.Integer())
52
+ )
53
+
54
+
55
+ id_dsa_with_sha1 = _OID(1, 2, 840, 10040, 4, 3)
56
+
57
+
58
+ class Dss_Sig_Value(univ.Sequence):
59
+ componentType = namedtype.NamedTypes(
60
+ namedtype.NamedType('r', univ.Integer()),
61
+ namedtype.NamedType('s', univ.Integer())
62
+ )
63
+
64
+
65
+ pkcs_1 = _OID(1, 2, 840, 113549, 1, 1)
66
+ rsaEncryption = _OID(pkcs_1, 1)
67
+ md2WithRSAEncryption = _OID(pkcs_1, 2)
68
+ md5WithRSAEncryption = _OID(pkcs_1, 4)
69
+ sha1WithRSAEncryption = _OID(pkcs_1, 5)
70
+
71
+
72
+ class RSAPublicKey(univ.Sequence):
73
+ componentType = namedtype.NamedTypes(
74
+ namedtype.NamedType('modulus', univ.Integer()),
75
+ namedtype.NamedType('publicExponent', univ.Integer())
76
+ )
77
+
78
+
79
+ dhpublicnumber = _OID(1, 2, 840, 10046, 2, 1)
80
+
81
+
82
+ class DHPublicKey(univ.Integer):
83
+ pass
84
+
85
+
86
+ class ValidationParms(univ.Sequence):
87
+ componentType = namedtype.NamedTypes(
88
+ namedtype.NamedType('seed', univ.BitString()),
89
+ namedtype.NamedType('pgenCounter', univ.Integer())
90
+ )
91
+
92
+
93
+ class DomainParameters(univ.Sequence):
94
+ componentType = namedtype.NamedTypes(
95
+ namedtype.NamedType('p', univ.Integer()),
96
+ namedtype.NamedType('g', univ.Integer()),
97
+ namedtype.NamedType('q', univ.Integer()),
98
+ namedtype.OptionalNamedType('j', univ.Integer()),
99
+ namedtype.OptionalNamedType('validationParms', ValidationParms())
100
+ )
101
+
102
+
103
+ id_keyExchangeAlgorithm = _OID(2, 16, 840, 1, 101, 2, 1, 1, 22)
104
+
105
+
106
+ class KEA_Parms_Id(univ.OctetString):
107
+ pass
108
+
109
+
110
+ ansi_X9_62 = _OID(1, 2, 840, 10045)
111
+
112
+
113
+ class FieldID(univ.Sequence):
114
+ componentType = namedtype.NamedTypes(
115
+ namedtype.NamedType('fieldType', univ.ObjectIdentifier()),
116
+ namedtype.NamedType('parameters', univ.Any())
117
+ )
118
+
119
+
120
+ id_ecSigType = _OID(ansi_X9_62, 4)
121
+ ecdsa_with_SHA1 = _OID(id_ecSigType, 1)
122
+
123
+
124
+ class ECDSA_Sig_Value(univ.Sequence):
125
+ componentType = namedtype.NamedTypes(
126
+ namedtype.NamedType('r', univ.Integer()),
127
+ namedtype.NamedType('s', univ.Integer())
128
+ )
129
+
130
+
131
+ id_fieldType = _OID(ansi_X9_62, 1)
132
+ prime_field = _OID(id_fieldType, 1)
133
+
134
+
135
+ class Prime_p(univ.Integer):
136
+ pass
137
+
138
+
139
+ characteristic_two_field = _OID(id_fieldType, 2)
140
+
141
+
142
+ class Characteristic_two(univ.Sequence):
143
+ componentType = namedtype.NamedTypes(
144
+ namedtype.NamedType('m', univ.Integer()),
145
+ namedtype.NamedType('basis', univ.ObjectIdentifier()),
146
+ namedtype.NamedType('parameters', univ.Any())
147
+ )
148
+
149
+
150
+ id_characteristic_two_basis = _OID(characteristic_two_field, 3)
151
+ gnBasis = _OID(id_characteristic_two_basis, 1)
152
+ tpBasis = _OID(id_characteristic_two_basis, 2)
153
+
154
+
155
+ class Trinomial(univ.Integer):
156
+ pass
157
+
158
+
159
+ ppBasis = _OID(id_characteristic_two_basis, 3)
160
+
161
+
162
+ class Pentanomial(univ.Sequence):
163
+ componentType = namedtype.NamedTypes(
164
+ namedtype.NamedType('k1', univ.Integer()),
165
+ namedtype.NamedType('k2', univ.Integer()),
166
+ namedtype.NamedType('k3', univ.Integer())
167
+ )
168
+
169
+
170
+ class FieldElement(univ.OctetString):
171
+ pass
172
+
173
+
174
+ class ECPoint(univ.OctetString):
175
+ pass
176
+
177
+
178
+ class Curve(univ.Sequence):
179
+ componentType = namedtype.NamedTypes(
180
+ namedtype.NamedType('a', FieldElement()),
181
+ namedtype.NamedType('b', FieldElement()),
182
+ namedtype.OptionalNamedType('seed', univ.BitString())
183
+ )
184
+
185
+
186
+ class ECPVer(univ.Integer):
187
+ namedValues = namedval.NamedValues(
188
+ ('ecpVer1', 1)
189
+ )
190
+
191
+
192
+ class ECParameters(univ.Sequence):
193
+ componentType = namedtype.NamedTypes(
194
+ namedtype.NamedType('version', ECPVer()),
195
+ namedtype.NamedType('fieldID', FieldID()),
196
+ namedtype.NamedType('curve', Curve()),
197
+ namedtype.NamedType('base', ECPoint()),
198
+ namedtype.NamedType('order', univ.Integer()),
199
+ namedtype.OptionalNamedType('cofactor', univ.Integer())
200
+ )
201
+
202
+
203
+ class EcpkParameters(univ.Choice):
204
+ componentType = namedtype.NamedTypes(
205
+ namedtype.NamedType('ecParameters', ECParameters()),
206
+ namedtype.NamedType('namedCurve', univ.ObjectIdentifier()),
207
+ namedtype.NamedType('implicitlyCA', univ.Null())
208
+ )
209
+
210
+
211
+ id_publicKeyType = _OID(ansi_X9_62, 2)
212
+ id_ecPublicKey = _OID(id_publicKeyType, 1)
213
+
214
+ ellipticCurve = _OID(ansi_X9_62, 3)
215
+
216
+ c_TwoCurve = _OID(ellipticCurve, 0)
217
+ c2pnb163v1 = _OID(c_TwoCurve, 1)
218
+ c2pnb163v2 = _OID(c_TwoCurve, 2)
219
+ c2pnb163v3 = _OID(c_TwoCurve, 3)
220
+ c2pnb176w1 = _OID(c_TwoCurve, 4)
221
+ c2tnb191v1 = _OID(c_TwoCurve, 5)
222
+ c2tnb191v2 = _OID(c_TwoCurve, 6)
223
+ c2tnb191v3 = _OID(c_TwoCurve, 7)
224
+ c2onb191v4 = _OID(c_TwoCurve, 8)
225
+ c2onb191v5 = _OID(c_TwoCurve, 9)
226
+ c2pnb208w1 = _OID(c_TwoCurve, 10)
227
+ c2tnb239v1 = _OID(c_TwoCurve, 11)
228
+ c2tnb239v2 = _OID(c_TwoCurve, 12)
229
+ c2tnb239v3 = _OID(c_TwoCurve, 13)
230
+ c2onb239v4 = _OID(c_TwoCurve, 14)
231
+ c2onb239v5 = _OID(c_TwoCurve, 15)
232
+ c2pnb272w1 = _OID(c_TwoCurve, 16)
233
+ c2pnb304w1 = _OID(c_TwoCurve, 17)
234
+ c2tnb359v1 = _OID(c_TwoCurve, 18)
235
+ c2pnb368w1 = _OID(c_TwoCurve, 19)
236
+ c2tnb431r1 = _OID(c_TwoCurve, 20)
237
+
238
+ primeCurve = _OID(ellipticCurve, 1)
239
+ prime192v1 = _OID(primeCurve, 1)
240
+ prime192v2 = _OID(primeCurve, 2)
241
+ prime192v3 = _OID(primeCurve, 3)
242
+ prime239v1 = _OID(primeCurve, 4)
243
+ prime239v2 = _OID(primeCurve, 5)
244
+ prime239v3 = _OID(primeCurve, 6)
245
+ prime256v1 = _OID(primeCurve, 7)
246
+
247
+
248
+ # Update the Algorithm Identifiers Map
249
+
250
+ _algorithmIdentifierMapUpdate = {
251
+ md2: univ.Null(""),
252
+ md5: univ.Null(""),
253
+ id_sha1: univ.Null(""),
254
+ id_dsa: Dss_Parms(),
255
+ rsaEncryption: univ.Null(""),
256
+ md2WithRSAEncryption: univ.Null(""),
257
+ md5WithRSAEncryption: univ.Null(""),
258
+ sha1WithRSAEncryption: univ.Null(""),
259
+ dhpublicnumber: DomainParameters(),
260
+ id_keyExchangeAlgorithm: KEA_Parms_Id(),
261
+ id_ecPublicKey: EcpkParameters(),
262
+ }
263
+
264
+ algorithmIdentifierMap.update(_algorithmIdentifierMapUpdate)