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,80 @@
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 include the opentypemap manager.
6
+ #
7
+ # Copyright (c) 2019-2024, Vigil Security, LLC
8
+ # License: http://vigilsec.com/pyasn1-alt-modules-license.txt
9
+ #
10
+ # TEST Company Classification Policies
11
+ #
12
+ # ASN.1 source from:
13
+ # https://www.rfc-editor.org/rfc/rfc3114.txt
14
+ #
15
+
16
+ from pyasn1.type import char
17
+ from pyasn1.type import namedval
18
+ from pyasn1.type import univ
19
+
20
+ from pyasn1_alt_modules import rfc5755
21
+ from pyasn1_alt_modules import opentypemap
22
+
23
+ securityCategoryMap = opentypemap.get('securityCategoryMap')
24
+
25
+
26
+ id_smime = univ.ObjectIdentifier((1, 2, 840, 113549, 1, 9, 16, ))
27
+
28
+ id_tsp = id_smime + (7, )
29
+
30
+ id_tsp_TEST_Amoco = id_tsp + (1, )
31
+
32
+ class Amoco_SecurityClassification(univ.Integer):
33
+ namedValues = namedval.NamedValues(
34
+ ('amoco-general', 6),
35
+ ('amoco-confidential', 7),
36
+ ('amoco-highly-confidential', 8)
37
+ )
38
+
39
+
40
+ id_tsp_TEST_Caterpillar = id_tsp + (2, )
41
+
42
+ class Caterpillar_SecurityClassification(univ.Integer):
43
+ namedValues = namedval.NamedValues(
44
+ ('caterpillar-public', 6),
45
+ ('caterpillar-green', 7),
46
+ ('caterpillar-yellow', 8),
47
+ ('caterpillar-red', 9)
48
+ )
49
+
50
+
51
+ id_tsp_TEST_Whirlpool = id_tsp + (3, )
52
+
53
+ class Whirlpool_SecurityClassification(univ.Integer):
54
+ namedValues = namedval.NamedValues(
55
+ ('whirlpool-public', 6),
56
+ ('whirlpool-internal', 7),
57
+ ('whirlpool-confidential', 8)
58
+ )
59
+
60
+
61
+ id_tsp_TEST_Whirlpool_Categories = id_tsp + (4, )
62
+
63
+ class SecurityCategoryValues(univ.SequenceOf):
64
+ componentType = char.UTF8String()
65
+
66
+ # Example SecurityCategoryValues: "LAW DEPARTMENT USE ONLY"
67
+ # Example SecurityCategoryValues: "HUMAN RESOURCES USE ONLY"
68
+
69
+
70
+ # Also, the privacy mark in the security label can contain a string,
71
+ # such as: "ATTORNEY-CLIENT PRIVILEGED INFORMATION"
72
+
73
+
74
+ # Update the Security Category Map
75
+
76
+ _securityCategoryMapUpdate = {
77
+ id_tsp_TEST_Whirlpool_Categories: SecurityCategoryValues(),
78
+ }
79
+
80
+ securityCategoryMap.update(_securityCategoryMapUpdate)
@@ -0,0 +1,469 @@
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
+ #
6
+ # Copyright (c) 2019-2024, Vigil Security, LLC
7
+ # License: http://vigilsec.com/pyasn1-alt-modules-license.txt
8
+ #
9
+ # Electronic Signature Policies
10
+ #
11
+ # ASN.1 source from:
12
+ # https://www.rfc-editor.org/rfc/rfc3125.txt
13
+ # https://www.rfc-editor.org/errata/eid5901
14
+ # https://www.rfc-editor.org/errata/eid5902
15
+ #
16
+
17
+ from pyasn1.type import constraint
18
+ from pyasn1.type import namedtype
19
+ from pyasn1.type import namedval
20
+ from pyasn1.type import tag
21
+ from pyasn1.type import useful
22
+ from pyasn1.type import univ
23
+
24
+ from pyasn1_alt_modules import rfc5280
25
+
26
+ MAX = float('inf')
27
+
28
+
29
+ # Imports from RFC 5280
30
+
31
+ AlgorithmIdentifier = rfc5280.AlgorithmIdentifier
32
+
33
+ Attribute = rfc5280.Attribute
34
+
35
+ AttributeType = rfc5280.AttributeType
36
+
37
+ AttributeTypeAndValue = rfc5280.AttributeTypeAndValue
38
+
39
+ AttributeValue = rfc5280.AttributeValue
40
+
41
+ Certificate = rfc5280.Certificate
42
+
43
+ CertificateList = rfc5280.CertificateList
44
+
45
+ DirectoryString = rfc5280.DirectoryString
46
+
47
+ GeneralName = rfc5280.GeneralName
48
+
49
+ GeneralNames = rfc5280.GeneralNames
50
+
51
+ Name = rfc5280.Name
52
+
53
+ PolicyInformation = rfc5280.PolicyInformation
54
+
55
+
56
+ # Electronic Signature Policies
57
+
58
+ class CertPolicyId(univ.ObjectIdentifier):
59
+ pass
60
+
61
+
62
+ class AcceptablePolicySet(univ.SequenceOf):
63
+ componentType = CertPolicyId()
64
+
65
+
66
+ class SignPolExtn(univ.Sequence):
67
+ componentType = namedtype.NamedTypes(
68
+ namedtype.NamedType('extnID', univ.ObjectIdentifier()),
69
+ namedtype.NamedType('extnValue', univ.OctetString())
70
+ )
71
+
72
+
73
+ class SignPolExtensions(univ.SequenceOf):
74
+ componentType = SignPolExtn()
75
+
76
+
77
+ class AlgAndLength(univ.Sequence):
78
+ componentType = namedtype.NamedTypes(
79
+ namedtype.NamedType('algID', univ.ObjectIdentifier()),
80
+ namedtype.OptionalNamedType('minKeyLength', univ.Integer()),
81
+ namedtype.OptionalNamedType('other', SignPolExtensions())
82
+ )
83
+
84
+
85
+ class AlgorithmConstraints(univ.SequenceOf):
86
+ componentType = AlgAndLength()
87
+
88
+
89
+ class AlgorithmConstraintSet(univ.Sequence):
90
+ componentType = namedtype.NamedTypes(
91
+ namedtype.OptionalNamedType('signerAlgorithmConstraints',
92
+ AlgorithmConstraints().subtype(explicitTag=tag.Tag(
93
+ tag.tagClassContext, tag.tagFormatSimple, 0))),
94
+ namedtype.OptionalNamedType('eeCertAlgorithmConstraints',
95
+ AlgorithmConstraints().subtype(explicitTag=tag.Tag(
96
+ tag.tagClassContext, tag.tagFormatSimple, 1))),
97
+ namedtype.OptionalNamedType('caCertAlgorithmConstraints',
98
+ AlgorithmConstraints().subtype(explicitTag=tag.Tag(
99
+ tag.tagClassContext, tag.tagFormatSimple, 2))),
100
+ namedtype.OptionalNamedType('aaCertAlgorithmConstraints',
101
+ AlgorithmConstraints().subtype(explicitTag=tag.Tag(
102
+ tag.tagClassContext, tag.tagFormatSimple, 3))),
103
+ namedtype.OptionalNamedType('tsaCertAlgorithmConstraints',
104
+ AlgorithmConstraints().subtype(explicitTag=tag.Tag(
105
+ tag.tagClassContext, tag.tagFormatSimple, 4)))
106
+ )
107
+
108
+
109
+ class AttributeValueConstraints(univ.SequenceOf):
110
+ componentType = AttributeTypeAndValue()
111
+
112
+
113
+ class AttributeTypeConstraints(univ.SequenceOf):
114
+ componentType = AttributeType()
115
+
116
+
117
+ class AttributeConstraints(univ.Sequence):
118
+ componentType = namedtype.NamedTypes(
119
+ namedtype.OptionalNamedType('attributeTypeConstarints',
120
+ AttributeTypeConstraints().subtype(explicitTag=tag.Tag(
121
+ tag.tagClassContext, tag.tagFormatSimple, 0))),
122
+ namedtype.OptionalNamedType('attributeValueConstarints',
123
+ AttributeValueConstraints().subtype(explicitTag=tag.Tag(
124
+ tag.tagClassContext, tag.tagFormatSimple, 1)))
125
+ )
126
+
127
+
128
+ class HowCertAttribute(univ.Enumerated):
129
+ namedValues = namedval.NamedValues(
130
+ ('claimedAttribute', 0),
131
+ ('certifiedAttribtes', 1),
132
+ ('either', 2)
133
+ )
134
+
135
+
136
+ class SkipCerts(univ.Integer):
137
+ subtypeSpec = constraint.ValueRangeConstraint(0, MAX)
138
+
139
+
140
+ class PolicyConstraints(univ.Sequence):
141
+ componentType = namedtype.NamedTypes(
142
+ namedtype.OptionalNamedType('requireExplicitPolicy',
143
+ SkipCerts().subtype(explicitTag=tag.Tag(
144
+ tag.tagClassContext, tag.tagFormatSimple, 0))),
145
+ namedtype.OptionalNamedType('inhibitPolicyMapping',
146
+ SkipCerts().subtype(explicitTag=tag.Tag(
147
+ tag.tagClassContext, tag.tagFormatSimple, 1)))
148
+ )
149
+
150
+
151
+ class BaseDistance(univ.Integer):
152
+ subtypeSpec = constraint.ValueRangeConstraint(0, MAX)
153
+
154
+
155
+ class GeneralSubtree(univ.Sequence):
156
+ componentType = namedtype.NamedTypes(
157
+ namedtype.NamedType('base', GeneralName()),
158
+ namedtype.DefaultedNamedType('minimum',
159
+ BaseDistance().subtype(explicitTag=tag.Tag(
160
+ tag.tagClassContext, tag.tagFormatSimple, 0)).subtype(
161
+ value=0)),
162
+ namedtype.OptionalNamedType('maximum',
163
+ BaseDistance().subtype(explicitTag=tag.Tag(
164
+ tag.tagClassContext, tag.tagFormatSimple, 1)))
165
+ )
166
+
167
+
168
+ class GeneralSubtrees(univ.SequenceOf):
169
+ componentType = GeneralSubtree()
170
+ subtypeSpec = constraint.ValueSizeConstraint(1, MAX)
171
+
172
+
173
+ class NameConstraints(univ.Sequence):
174
+ componentType = namedtype.NamedTypes(
175
+ namedtype.OptionalNamedType('permittedSubtrees',
176
+ GeneralSubtrees().subtype(explicitTag=tag.Tag(
177
+ tag.tagClassContext, tag.tagFormatSimple, 0))),
178
+ namedtype.OptionalNamedType('excludedSubtrees',
179
+ GeneralSubtrees().subtype(explicitTag=tag.Tag(
180
+ tag.tagClassContext, tag.tagFormatSimple, 1)))
181
+ )
182
+
183
+
184
+ class PathLenConstraint(univ.Integer):
185
+ subtypeSpec = constraint.ValueRangeConstraint(0, MAX)
186
+
187
+
188
+ class CertificateTrustPoint(univ.Sequence):
189
+ componentType = namedtype.NamedTypes(
190
+ namedtype.NamedType('trustpoint', Certificate()),
191
+ namedtype.OptionalNamedType('pathLenConstraint',
192
+ PathLenConstraint().subtype(explicitTag=tag.Tag(
193
+ tag.tagClassContext, tag.tagFormatSimple, 0))),
194
+ namedtype.OptionalNamedType('acceptablePolicySet',
195
+ AcceptablePolicySet().subtype(explicitTag=tag.Tag(
196
+ tag.tagClassContext, tag.tagFormatSimple, 1))),
197
+ namedtype.OptionalNamedType('nameConstraints',
198
+ NameConstraints().subtype(explicitTag=tag.Tag(
199
+ tag.tagClassContext, tag.tagFormatConstructed, 2))),
200
+ namedtype.OptionalNamedType('policyConstraints',
201
+ PolicyConstraints().subtype(explicitTag=tag.Tag(
202
+ tag.tagClassContext, tag.tagFormatConstructed, 3)))
203
+ )
204
+
205
+
206
+ class CertificateTrustTrees(univ.SequenceOf):
207
+ componentType = CertificateTrustPoint()
208
+
209
+
210
+ class EnuRevReq(univ.Enumerated):
211
+ namedValues = namedval.NamedValues(
212
+ ('clrCheck', 0),
213
+ ('ocspCheck', 1),
214
+ ('bothCheck', 2),
215
+ ('eitherCheck', 3),
216
+ ('noCheck', 4),
217
+ ('other', 5)
218
+ )
219
+
220
+
221
+ class RevReq(univ.Sequence):
222
+ componentType = namedtype.NamedTypes(
223
+ namedtype.NamedType('enuRevReq', EnuRevReq()),
224
+ namedtype.OptionalNamedType('exRevReq', SignPolExtensions())
225
+ )
226
+
227
+
228
+ class CertRevReq(univ.Sequence):
229
+ componentType = namedtype.NamedTypes(
230
+ namedtype.NamedType('endCertRevReq', RevReq()),
231
+ namedtype.NamedType('caCerts',
232
+ RevReq().subtype(explicitTag=tag.Tag(
233
+ tag.tagClassContext, tag.tagFormatConstructed, 0)))
234
+ )
235
+
236
+
237
+ class AttributeTrustCondition(univ.Sequence):
238
+ componentType = namedtype.NamedTypes(
239
+ namedtype.NamedType('attributeMandated', univ.Boolean()),
240
+ namedtype.NamedType('howCertAttribute', HowCertAttribute()),
241
+ namedtype.OptionalNamedType('attrCertificateTrustTrees',
242
+ CertificateTrustTrees().subtype(explicitTag=tag.Tag(
243
+ tag.tagClassContext, tag.tagFormatSimple, 0))),
244
+ namedtype.OptionalNamedType('attrRevReq',
245
+ CertRevReq().subtype(explicitTag=tag.Tag(
246
+ tag.tagClassContext, tag.tagFormatConstructed, 1))),
247
+ namedtype.OptionalNamedType('attributeConstraints',
248
+ AttributeConstraints().subtype(explicitTag=tag.Tag(
249
+ tag.tagClassContext, tag.tagFormatConstructed, 2)))
250
+ )
251
+
252
+
253
+ class CMSAttrs(univ.SequenceOf):
254
+ componentType = univ.ObjectIdentifier()
255
+
256
+
257
+ class CertInfoReq(univ.Enumerated):
258
+ namedValues = namedval.NamedValues(
259
+ ('none', 0),
260
+ ('signerOnly', 1),
261
+ ('fullPath', 2)
262
+ )
263
+
264
+
265
+ class CertRefReq(univ.Enumerated):
266
+ namedValues = namedval.NamedValues(
267
+ ('signerOnly', 1),
268
+ ('fullPath', 2)
269
+ )
270
+
271
+
272
+ class DeltaTime(univ.Sequence):
273
+ componentType = namedtype.NamedTypes(
274
+ namedtype.NamedType('deltaSeconds', univ.Integer()),
275
+ namedtype.NamedType('deltaMinutes', univ.Integer()),
276
+ namedtype.NamedType('deltaHours', univ.Integer()),
277
+ namedtype.NamedType('deltaDays', univ.Integer())
278
+ )
279
+
280
+
281
+ class TimestampTrustCondition(univ.Sequence):
282
+ componentType = namedtype.NamedTypes(
283
+ namedtype.OptionalNamedType('ttsCertificateTrustTrees',
284
+ CertificateTrustTrees().subtype(explicitTag=tag.Tag(
285
+ tag.tagClassContext, tag.tagFormatSimple, 0))),
286
+ namedtype.OptionalNamedType('ttsRevReq',
287
+ CertRevReq().subtype(explicitTag=tag.Tag(
288
+ tag.tagClassContext, tag.tagFormatConstructed, 1))),
289
+ namedtype.OptionalNamedType('ttsNameConstraints',
290
+ NameConstraints().subtype(explicitTag=tag.Tag(
291
+ tag.tagClassContext, tag.tagFormatConstructed, 2))),
292
+ namedtype.OptionalNamedType('cautionPeriod',
293
+ DeltaTime().subtype(explicitTag=tag.Tag(
294
+ tag.tagClassContext, tag.tagFormatConstructed, 3))),
295
+ namedtype.OptionalNamedType('signatureTimestampDelay',
296
+ DeltaTime().subtype(explicitTag=tag.Tag(
297
+ tag.tagClassContext, tag.tagFormatConstructed, 4)))
298
+ )
299
+
300
+
301
+ class SignerRules(univ.Sequence):
302
+ componentType = namedtype.NamedTypes(
303
+ namedtype.OptionalNamedType('externalSignedData', univ.Boolean()),
304
+ namedtype.NamedType('mandatedSignedAttr', CMSAttrs()),
305
+ namedtype.NamedType('mandatedUnsignedAttr', CMSAttrs()),
306
+ namedtype.DefaultedNamedType('mandatedCertificateRef',
307
+ CertRefReq().subtype(explicitTag=tag.Tag(
308
+ tag.tagClassContext, tag.tagFormatSimple, 0)).subtype(
309
+ value='signerOnly')),
310
+ namedtype.DefaultedNamedType('mandatedCertificateInfo',
311
+ CertInfoReq().subtype(explicitTag=tag.Tag(
312
+ tag.tagClassContext, tag.tagFormatSimple, 1)).subtype(
313
+ value='none')),
314
+ namedtype.OptionalNamedType('signPolExtensions',
315
+ SignPolExtensions().subtype(explicitTag=tag.Tag(
316
+ tag.tagClassContext, tag.tagFormatSimple, 2)))
317
+ )
318
+
319
+
320
+ class MandatedUnsignedAttr(CMSAttrs):
321
+ pass
322
+
323
+
324
+ class VerifierRules(univ.Sequence):
325
+ componentType = namedtype.NamedTypes(
326
+ namedtype.NamedType('mandatedUnsignedAttr', MandatedUnsignedAttr()),
327
+ namedtype.OptionalNamedType('signPolExtensions', SignPolExtensions())
328
+ )
329
+
330
+
331
+ class SignerAndVerifierRules(univ.Sequence):
332
+ componentType = namedtype.NamedTypes(
333
+ namedtype.NamedType('signerRules', SignerRules()),
334
+ namedtype.NamedType('verifierRules', VerifierRules())
335
+ )
336
+
337
+
338
+ class SigningCertTrustCondition(univ.Sequence):
339
+ componentType = namedtype.NamedTypes(
340
+ namedtype.NamedType('signerTrustTrees', CertificateTrustTrees()),
341
+ namedtype.NamedType('signerRevReq', CertRevReq())
342
+ )
343
+
344
+
345
+ class CommitmentTypeIdentifier(univ.ObjectIdentifier):
346
+ pass
347
+
348
+
349
+ class FieldOfApplication(DirectoryString):
350
+ pass
351
+
352
+
353
+ class CommitmentType(univ.Sequence):
354
+ componentType = namedtype.NamedTypes(
355
+ namedtype.NamedType('identifier', CommitmentTypeIdentifier()),
356
+ namedtype.OptionalNamedType('fieldOfApplication',
357
+ FieldOfApplication().subtype(explicitTag=tag.Tag(
358
+ tag.tagClassContext, tag.tagFormatSimple, 0))),
359
+ namedtype.OptionalNamedType('semantics',
360
+ DirectoryString().subtype(explicitTag=tag.Tag(
361
+ tag.tagClassContext, tag.tagFormatSimple, 1)))
362
+ )
363
+
364
+
365
+ class SelectedCommitmentTypes(univ.SequenceOf):
366
+ componentType = univ.Choice(componentType=namedtype.NamedTypes(
367
+ namedtype.NamedType('empty', univ.Null()),
368
+ namedtype.NamedType('recognizedCommitmentType', CommitmentType())
369
+ ))
370
+
371
+
372
+ class CommitmentRule(univ.Sequence):
373
+ componentType = namedtype.NamedTypes(
374
+ namedtype.NamedType('selCommitmentTypes', SelectedCommitmentTypes()),
375
+ namedtype.OptionalNamedType('signerAndVeriferRules',
376
+ SignerAndVerifierRules().subtype(explicitTag=tag.Tag(
377
+ tag.tagClassContext, tag.tagFormatConstructed, 0))),
378
+ namedtype.OptionalNamedType('signingCertTrustCondition',
379
+ SigningCertTrustCondition().subtype(explicitTag=tag.Tag(
380
+ tag.tagClassContext, tag.tagFormatConstructed, 1))),
381
+ namedtype.OptionalNamedType('timeStampTrustCondition',
382
+ TimestampTrustCondition().subtype(explicitTag=tag.Tag(
383
+ tag.tagClassContext, tag.tagFormatConstructed, 2))),
384
+ namedtype.OptionalNamedType('attributeTrustCondition',
385
+ AttributeTrustCondition().subtype(explicitTag=tag.Tag(
386
+ tag.tagClassContext, tag.tagFormatConstructed, 3))),
387
+ namedtype.OptionalNamedType('algorithmConstraintSet',
388
+ AlgorithmConstraintSet().subtype(explicitTag=tag.Tag(
389
+ tag.tagClassContext, tag.tagFormatConstructed, 4))),
390
+ namedtype.OptionalNamedType('signPolExtensions',
391
+ SignPolExtensions().subtype(explicitTag=tag.Tag(
392
+ tag.tagClassContext, tag.tagFormatSimple, 5)))
393
+ )
394
+
395
+
396
+ class CommitmentRules(univ.SequenceOf):
397
+ componentType = CommitmentRule()
398
+
399
+
400
+ class CommonRules(univ.Sequence):
401
+ componentType = namedtype.NamedTypes(
402
+ namedtype.OptionalNamedType('signerAndVeriferRules',
403
+ SignerAndVerifierRules().subtype(explicitTag=tag.Tag(
404
+ tag.tagClassContext, tag.tagFormatConstructed, 0))),
405
+ namedtype.OptionalNamedType('signingCertTrustCondition',
406
+ SigningCertTrustCondition().subtype(explicitTag=tag.Tag(
407
+ tag.tagClassContext, tag.tagFormatConstructed, 1))),
408
+ namedtype.OptionalNamedType('timeStampTrustCondition',
409
+ TimestampTrustCondition().subtype(explicitTag=tag.Tag(
410
+ tag.tagClassContext, tag.tagFormatConstructed, 2))),
411
+ namedtype.OptionalNamedType('attributeTrustCondition',
412
+ AttributeTrustCondition().subtype(explicitTag=tag.Tag(
413
+ tag.tagClassContext, tag.tagFormatConstructed, 3))),
414
+ namedtype.OptionalNamedType('algorithmConstraintSet',
415
+ AlgorithmConstraintSet().subtype(explicitTag=tag.Tag(
416
+ tag.tagClassContext, tag.tagFormatConstructed, 4))),
417
+ namedtype.OptionalNamedType('signPolExtensions',
418
+ SignPolExtensions().subtype(explicitTag=tag.Tag(
419
+ tag.tagClassContext, tag.tagFormatSimple, 5)))
420
+ )
421
+
422
+
423
+ class PolicyIssuerName(GeneralNames):
424
+ pass
425
+
426
+
427
+ class SignPolicyHash(univ.OctetString):
428
+ pass
429
+
430
+
431
+ class SignPolicyId(univ.ObjectIdentifier):
432
+ pass
433
+
434
+
435
+ class SigningPeriod(univ.Sequence):
436
+ componentType = namedtype.NamedTypes(
437
+ namedtype.NamedType('notBefore', useful.GeneralizedTime()),
438
+ namedtype.OptionalNamedType('notAfter', useful.GeneralizedTime())
439
+ )
440
+
441
+
442
+ class SignatureValidationPolicy(univ.Sequence):
443
+ componentType = namedtype.NamedTypes(
444
+ namedtype.NamedType('signingPeriod', SigningPeriod()),
445
+ namedtype.NamedType('commonRules', CommonRules()),
446
+ namedtype.NamedType('commitmentRules', CommitmentRules()),
447
+ namedtype.OptionalNamedType('signPolExtensions', SignPolExtensions())
448
+ )
449
+
450
+
451
+ class SignPolicyInfo(univ.Sequence):
452
+ componentType = namedtype.NamedTypes(
453
+ namedtype.NamedType('signPolicyIdentifier', SignPolicyId()),
454
+ namedtype.NamedType('dateOfIssue', useful.GeneralizedTime()),
455
+ namedtype.NamedType('policyIssuerName', PolicyIssuerName()),
456
+ namedtype.NamedType('fieldOfApplication', FieldOfApplication()),
457
+ namedtype.NamedType('signatureValidationPolicy', SignatureValidationPolicy()),
458
+ namedtype.OptionalNamedType('signPolExtensions', SignPolExtensions())
459
+ )
460
+
461
+
462
+ class SignaturePolicy(univ.Sequence):
463
+ componentType = namedtype.NamedTypes(
464
+ namedtype.NamedType('signPolicyHashAlg', AlgorithmIdentifier()),
465
+ namedtype.NamedType('signPolicyInfo', SignPolicyInfo()),
466
+ namedtype.OptionalNamedType('signPolicyHash', SignPolicyHash())
467
+ )
468
+
469
+
@@ -0,0 +1,142 @@
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
+ #
6
+ # Copyright (c) 2019-2024, Vigil Security, LLC
7
+ # License: http://vigilsec.com/pyasn1-alt-modules-license.txt
8
+ #
9
+ # Time-Stamp Protocol (TSP)
10
+ #
11
+ # ASN.1 source from:
12
+ # https://www.rfc-editor.org/rfc/rfc3161.txt
13
+ #
14
+
15
+ from pyasn1.type import constraint
16
+ from pyasn1.type import namedtype
17
+ from pyasn1.type import namedval
18
+ from pyasn1.type import tag
19
+ from pyasn1.type import univ
20
+ from pyasn1.type import useful
21
+
22
+ from pyasn1_alt_modules import rfc4210
23
+ from pyasn1_alt_modules import rfc5280
24
+ from pyasn1_alt_modules import rfc5652
25
+
26
+
27
+ Extensions = rfc5280.Extensions
28
+
29
+ AlgorithmIdentifier = rfc5280.AlgorithmIdentifier
30
+
31
+ GeneralName = rfc5280.GeneralName
32
+
33
+ ContentInfo = rfc5652.ContentInfo
34
+
35
+ PKIFreeText = rfc4210.PKIFreeText
36
+
37
+
38
+ id_ct_TSTInfo = univ.ObjectIdentifier('1.2.840.113549.1.9.16.1.4')
39
+
40
+
41
+ class Accuracy(univ.Sequence):
42
+ pass
43
+
44
+ Accuracy.componentType = namedtype.NamedTypes(
45
+ namedtype.OptionalNamedType('seconds', univ.Integer()),
46
+ namedtype.OptionalNamedType('millis', univ.Integer().subtype(subtypeSpec=constraint.ValueRangeConstraint(1, 999)).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),
47
+ namedtype.OptionalNamedType('micros', univ.Integer().subtype(subtypeSpec=constraint.ValueRangeConstraint(1, 999)).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1)))
48
+ )
49
+
50
+
51
+ class MessageImprint(univ.Sequence):
52
+ pass
53
+
54
+ MessageImprint.componentType = namedtype.NamedTypes(
55
+ namedtype.NamedType('hashAlgorithm', AlgorithmIdentifier()),
56
+ namedtype.NamedType('hashedMessage', univ.OctetString())
57
+ )
58
+
59
+
60
+ class PKIFailureInfo(univ.BitString):
61
+ pass
62
+
63
+ PKIFailureInfo.namedValues = namedval.NamedValues(
64
+ ('badAlg', 0),
65
+ ('badRequest', 2),
66
+ ('badDataFormat', 5),
67
+ ('timeNotAvailable', 14),
68
+ ('unacceptedPolicy', 15),
69
+ ('unacceptedExtension', 16),
70
+ ('addInfoNotAvailable', 17),
71
+ ('systemFailure', 25)
72
+ )
73
+
74
+
75
+ class PKIStatus(univ.Integer):
76
+ pass
77
+
78
+ PKIStatus.namedValues = namedval.NamedValues(
79
+ ('granted', 0),
80
+ ('grantedWithMods', 1),
81
+ ('rejection', 2),
82
+ ('waiting', 3),
83
+ ('revocationWarning', 4),
84
+ ('revocationNotification', 5)
85
+ )
86
+
87
+
88
+ class PKIStatusInfo(univ.Sequence):
89
+ pass
90
+
91
+ PKIStatusInfo.componentType = namedtype.NamedTypes(
92
+ namedtype.NamedType('status', PKIStatus()),
93
+ namedtype.OptionalNamedType('statusString', PKIFreeText()),
94
+ namedtype.OptionalNamedType('failInfo', PKIFailureInfo())
95
+ )
96
+
97
+
98
+ class TSAPolicyId(univ.ObjectIdentifier):
99
+ pass
100
+
101
+
102
+ class TSTInfo(univ.Sequence):
103
+ pass
104
+
105
+ TSTInfo.componentType = namedtype.NamedTypes(
106
+ namedtype.NamedType('version', univ.Integer(namedValues=namedval.NamedValues(('v1', 1)))),
107
+ namedtype.NamedType('policy', TSAPolicyId()),
108
+ namedtype.NamedType('messageImprint', MessageImprint()),
109
+ namedtype.NamedType('serialNumber', univ.Integer()),
110
+ namedtype.NamedType('genTime', useful.GeneralizedTime()),
111
+ namedtype.OptionalNamedType('accuracy', Accuracy()),
112
+ namedtype.DefaultedNamedType('ordering', univ.Boolean().subtype(value=0)),
113
+ namedtype.OptionalNamedType('nonce', univ.Integer()),
114
+ namedtype.OptionalNamedType('tsa', GeneralName().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),
115
+ namedtype.OptionalNamedType('extensions', Extensions().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1)))
116
+ )
117
+
118
+
119
+ class TimeStampReq(univ.Sequence):
120
+ pass
121
+
122
+ TimeStampReq.componentType = namedtype.NamedTypes(
123
+ namedtype.NamedType('version', univ.Integer(namedValues=namedval.NamedValues(('v1', 1)))),
124
+ namedtype.NamedType('messageImprint', MessageImprint()),
125
+ namedtype.OptionalNamedType('reqPolicy', TSAPolicyId()),
126
+ namedtype.OptionalNamedType('nonce', univ.Integer()),
127
+ namedtype.DefaultedNamedType('certReq', univ.Boolean().subtype(value=0)),
128
+ namedtype.OptionalNamedType('extensions', Extensions().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0)))
129
+ )
130
+
131
+
132
+ class TimeStampToken(ContentInfo):
133
+ pass
134
+
135
+
136
+ class TimeStampResp(univ.Sequence):
137
+ pass
138
+
139
+ TimeStampResp.componentType = namedtype.NamedTypes(
140
+ namedtype.NamedType('status', PKIStatusInfo()),
141
+ namedtype.OptionalNamedType('timeStampToken', TimeStampToken())
142
+ )