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,54 @@
1
+ #
2
+ # This file is part of pyasn1-alt-modules software.
3
+ #
4
+ # Created by Russ Housley.
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
+ # Digital Signatures on Internet-Draft Documents
11
+ #
12
+ # ASN.1 source from:
13
+ # https://www.rfc-editor.org/rfc/rfc8358.txt
14
+ #
15
+
16
+ from pyasn1.type import univ
17
+
18
+ from pyasn1_alt_modules import opentypemap
19
+
20
+ cmsContentTypesMap = opentypemap.get('cmsContentTypesMap')
21
+
22
+
23
+ # Object Identifiers for the Content Types
24
+
25
+ id_ct = univ.ObjectIdentifier('1.2.840.113549.1.9.16.1')
26
+
27
+ id_ct_asciiTextWithCRLF = id_ct + (27, )
28
+
29
+ id_ct_epub = id_ct + (39, )
30
+
31
+ id_ct_htmlWithCRLF = id_ct + (38, )
32
+
33
+ id_ct_pdf = id_ct + (29, )
34
+
35
+ id_ct_postscript = id_ct + (30, )
36
+
37
+ id_ct_utf8TextWithCRLF = id_ct + (37, )
38
+
39
+ id_ct_xml = id_ct + (28, )
40
+
41
+
42
+ # Update the CMS of Content Types Map
43
+
44
+ _cmsContentTypesMapUpdate = {
45
+ id_ct_asciiTextWithCRLF: univ.OctetString(),
46
+ id_ct_epub: univ.OctetString(),
47
+ id_ct_htmlWithCRLF: univ.OctetString(),
48
+ id_ct_pdf: univ.OctetString(),
49
+ id_ct_postscript: univ.OctetString(),
50
+ id_ct_utf8TextWithCRLF: univ.OctetString(),
51
+ id_ct_xml: univ.OctetString(),
52
+ }
53
+
54
+ cmsContentTypesMap.update(_cmsContentTypesMapUpdate)
@@ -0,0 +1,46 @@
1
+ #
2
+ # This file is part of pyasn1-alt-modules software.
3
+ #
4
+ # Created by Russ Housley.
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
+ # Resource Public Key Infrastructure (RPKI) Validation Reconsidered
11
+ #
12
+ # ASN.1 source from:
13
+ # https://www.rfc-editor.org/rfc/rfc8360.txt
14
+ # https://www.rfc-editor.org/errata/eid5870
15
+ #
16
+
17
+ from pyasn1.type import univ
18
+
19
+ from pyasn1_alt_modules import rfc3779
20
+ from pyasn1_alt_modules import opentypemap
21
+
22
+ certificateExtensionsMap = opentypemap.get('certificateExtensionsMap')
23
+
24
+
25
+ # IP Address Delegation Extension V2
26
+
27
+ id_pe_ipAddrBlocks_v2 = univ.ObjectIdentifier('1.3.6.1.5.5.7.1.28')
28
+
29
+ IPAddrBlocks = rfc3779.IPAddrBlocks
30
+
31
+
32
+ # Autonomous System Identifier Delegation Extension V2
33
+
34
+ id_pe_autonomousSysIds_v2 = univ.ObjectIdentifier('1.3.6.1.5.5.7.1.29')
35
+
36
+ ASIdentifiers = rfc3779.ASIdentifiers
37
+
38
+
39
+ # Update the Certificate Extensions Map
40
+
41
+ _certificateExtensionsMapUpdate = {
42
+ id_pe_ipAddrBlocks_v2: IPAddrBlocks(),
43
+ id_pe_autonomousSysIds_v2: ASIdentifiers(),
44
+ }
45
+
46
+ certificateExtensionsMap.update(_certificateExtensionsMapUpdate)
@@ -0,0 +1,55 @@
1
+ #
2
+ # This file is part of pyasn1-alt-modules software.
3
+ #
4
+ # Created by Russ Housley with some 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
+ # Internationalized Email Addresses in X.509 Certificates
11
+ #
12
+ # ASN.1 source from:
13
+ # https://www.rfc-editor.org/rfc/rfc8398.txt
14
+ # https://www.rfc-editor.org/errata/eid5418
15
+ #
16
+
17
+ from pyasn1.type import char
18
+ from pyasn1.type import constraint
19
+ from pyasn1.type import univ
20
+
21
+ from pyasn1_alt_modules import rfc5280
22
+ from pyasn1_alt_modules import opentypemap
23
+
24
+ otherNamesMap = opentypemap.get('otherNamesMap')
25
+
26
+ MAX = float('inf')
27
+
28
+
29
+ # SmtpUTF8Mailbox contains Mailbox as specified in Section 3.3 of RFC 6531
30
+
31
+ id_pkix = rfc5280.id_pkix
32
+
33
+ id_on = id_pkix + (8, )
34
+
35
+ id_on_SmtpUTF8Mailbox = id_on + (9, )
36
+
37
+
38
+ class SmtpUTF8Mailbox(char.UTF8String):
39
+ pass
40
+
41
+ SmtpUTF8Mailbox.subtypeSpec = constraint.ValueSizeConstraint(1, MAX)
42
+
43
+
44
+ on_SmtpUTF8Mailbox = rfc5280.AnotherName()
45
+ on_SmtpUTF8Mailbox['type-id'] = id_on_SmtpUTF8Mailbox
46
+ on_SmtpUTF8Mailbox['value'] = SmtpUTF8Mailbox()
47
+
48
+
49
+ # Update the Other Names Map
50
+
51
+ _otherNamesMapUpdate = {
52
+ id_on_SmtpUTF8Mailbox: SmtpUTF8Mailbox(),
53
+ }
54
+
55
+ otherNamesMap.update(_otherNamesMapUpdate)
@@ -0,0 +1,43 @@
1
+ # This file is part of pyasn1-alt-modules software.
2
+ #
3
+ # Created by Russ Housley.
4
+ #
5
+ # Copyright (c) 2019-2024, Vigil Security, LLC
6
+ # License: http://vigilsec.com/pyasn1-alt-modules-license.txt
7
+ #
8
+ # Algorithm Identifiers for Ed25519, Ed448, X25519, and X448
9
+ #
10
+ # ASN.1 source from:
11
+ # https://www.rfc-editor.org/rfc/rfc8410.txt
12
+
13
+ from pyasn1.type import univ
14
+ from pyasn1_alt_modules import rfc3565
15
+ from pyasn1_alt_modules import rfc4055
16
+ from pyasn1_alt_modules import rfc5280
17
+
18
+
19
+ class SignatureAlgorithmIdentifier(rfc5280.AlgorithmIdentifier):
20
+ pass
21
+
22
+
23
+ class KeyEncryptionAlgorithmIdentifier(rfc5280.AlgorithmIdentifier):
24
+ pass
25
+
26
+
27
+ class CurvePrivateKey(univ.OctetString):
28
+ pass
29
+
30
+
31
+ id_X25519 = univ.ObjectIdentifier('1.3.101.110')
32
+
33
+ id_X448 = univ.ObjectIdentifier('1.3.101.111')
34
+
35
+ id_Ed25519 = univ.ObjectIdentifier('1.3.101.112')
36
+
37
+ id_Ed448 = univ.ObjectIdentifier('1.3.101.113')
38
+
39
+ id_sha512 = rfc4055.id_sha512
40
+
41
+ id_aes128_wrap = rfc3565.id_aes128_wrap
42
+
43
+ id_aes256_wrap = rfc3565.id_aes256_wrap
@@ -0,0 +1,36 @@
1
+ # This file is part of pyasn1-alt-modules software.
2
+ #
3
+ # Created by Russ Housley.
4
+ #
5
+ # Copyright (c) 2019-2024, Vigil Security, LLC
6
+ # License: http://vigilsec.com/pyasn1-alt-modules-license.txt
7
+ #
8
+ # Elliptic Curve Diffie-Hellman (ECDH) Key Agreement Algorithm
9
+ # with X25519 and X448
10
+ #
11
+ # ASN.1 source from:
12
+ # https://www.rfc-editor.org/rfc/rfc8418.txt
13
+
14
+ from pyasn1.type import univ
15
+ from pyasn1_alt_modules import rfc5280
16
+
17
+
18
+ class KeyEncryptionAlgorithmIdentifier(rfc5280.AlgorithmIdentifier):
19
+ pass
20
+
21
+
22
+ class KeyWrapAlgorithmIdentifier(rfc5280.AlgorithmIdentifier):
23
+ pass
24
+
25
+
26
+ dhSinglePass_stdDH_sha256kdf_scheme = univ.ObjectIdentifier('1.3.133.16.840.63.0.11.1')
27
+
28
+ dhSinglePass_stdDH_sha384kdf_scheme = univ.ObjectIdentifier('1.3.133.16.840.63.0.11.2')
29
+
30
+ dhSinglePass_stdDH_sha512kdf_scheme = univ.ObjectIdentifier('1.3.133.16.840.63.0.11.3')
31
+
32
+ dhSinglePass_stdDH_hkdf_sha256_scheme = univ.ObjectIdentifier('1.2.840.113549.1.9.16.3.19')
33
+
34
+ dhSinglePass_stdDH_hkdf_sha384_scheme = univ.ObjectIdentifier('1.2.840.113549.1.9.16.3.20')
35
+
36
+ dhSinglePass_stdDH_hkdf_sha512_scheme = univ.ObjectIdentifier('1.2.840.113549.1.9.16.3.21')
@@ -0,0 +1,70 @@
1
+ # This file is part of pyasn1-alt-modules software.
2
+ #
3
+ # Created by Russ Housley.
4
+ # Modified by Russ Housley to include the opentypemap manager.
5
+ #
6
+ # Copyright (c) 2019-2024, Vigil Security, LLC
7
+ # License: http://vigilsec.com/pyasn1-alt-modules-license.txt
8
+ #
9
+ # Edwards-Curve Digital Signature Algorithm (EdDSA) Signatures in the CMS
10
+ #
11
+ # ASN.1 source from:
12
+ # https://www.rfc-editor.org/rfc/rfc8419.txt
13
+ # https://www.rfc-editor.org/errata/eid5869
14
+
15
+ from pyasn1.type import univ
16
+
17
+ from pyasn1_alt_modules import rfc5280
18
+ from pyasn1_alt_modules import opentypemap
19
+
20
+ algorithmIdentifierMap = opentypemap.get('algorithmIdentifierMap')
21
+
22
+
23
+ class ShakeOutputLen(univ.Integer):
24
+ pass
25
+
26
+
27
+ id_Ed25519 = univ.ObjectIdentifier('1.3.101.112')
28
+
29
+ sigAlg_Ed25519 = rfc5280.AlgorithmIdentifier()
30
+ sigAlg_Ed25519['algorithm'] = id_Ed25519
31
+ # sigAlg_Ed25519['parameters'] is absent
32
+
33
+
34
+ id_Ed448 = univ.ObjectIdentifier('1.3.101.113')
35
+
36
+ sigAlg_Ed448 = rfc5280.AlgorithmIdentifier()
37
+ sigAlg_Ed448['algorithm'] = id_Ed448
38
+ # sigAlg_Ed448['parameters'] is absent
39
+
40
+
41
+ hashAlgs = univ.ObjectIdentifier('2.16.840.1.101.3.4.2')
42
+
43
+ id_sha512 = hashAlgs + (3, )
44
+
45
+ hashAlg_SHA_512 = rfc5280.AlgorithmIdentifier()
46
+ hashAlg_SHA_512['algorithm'] = id_sha512
47
+ # hashAlg_SHA_512['parameters'] is absent
48
+
49
+
50
+ id_shake256 = hashAlgs + (12, )
51
+
52
+ hashAlg_SHAKE256 = rfc5280.AlgorithmIdentifier()
53
+ hashAlg_SHAKE256['algorithm'] = id_shake256
54
+ # hashAlg_SHAKE256['parameters']is absent
55
+
56
+
57
+ id_shake256_len = hashAlgs + (18, )
58
+
59
+ hashAlg_SHAKE256_LEN = rfc5280.AlgorithmIdentifier()
60
+ hashAlg_SHAKE256_LEN['algorithm'] = id_shake256_len
61
+ hashAlg_SHAKE256_LEN['parameters'] = ShakeOutputLen()
62
+
63
+
64
+ # Update the Algorithm Identifiers Map
65
+
66
+ _algorithmIdentifierMapUpdate = {
67
+ id_shake256_len: ShakeOutputLen(),
68
+ }
69
+
70
+ algorithmIdentifierMap.update(_algorithmIdentifierMapUpdate)
@@ -0,0 +1,48 @@
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
+ # Storing Validation Parameters in PKCS#8
11
+ #
12
+ # ASN.1 source from:
13
+ # https://www.rfc-editor.org/rfc/rfc8479.txt
14
+ #
15
+
16
+ from pyasn1.type import namedtype
17
+ from pyasn1.type import univ
18
+
19
+ from pyasn1_alt_modules import rfc5652
20
+ from pyasn1_alt_modules import opentypemap
21
+
22
+ cmsAttributesMap = opentypemap.get('cmsAttributesMap')
23
+
24
+
25
+ id_attr_validation_parameters = univ.ObjectIdentifier('1.3.6.1.4.1.2312.18.8.1')
26
+
27
+
28
+ class ValidationParams(univ.Sequence):
29
+ pass
30
+
31
+ ValidationParams.componentType = namedtype.NamedTypes(
32
+ namedtype.NamedType('hashAlg', univ.ObjectIdentifier()),
33
+ namedtype.NamedType('seed', univ.OctetString())
34
+ )
35
+
36
+
37
+ at_validation_parameters = rfc5652.Attribute()
38
+ at_validation_parameters['attrType'] = id_attr_validation_parameters
39
+ at_validation_parameters['attrValues'][0] = ValidationParams()
40
+
41
+
42
+ # Update the CMS Attributes Map
43
+
44
+ _cmsAttributesMapUpdate = {
45
+ id_attr_validation_parameters: ValidationParams(),
46
+ }
47
+
48
+ cmsAttributesMap.update(_cmsAttributesMapUpdate)
@@ -0,0 +1,80 @@
1
+ # This file is part of pyasn1-alt-modules software.
2
+ #
3
+ # Created by Russ Housley with assistance from asn1ate v.0.6.0.
4
+ #
5
+ # Copyright (c) 2019-2024, Vigil Security, LLC
6
+ # License: http://vigilsec.com/pyasn1-alt-modules-license.txt
7
+ #
8
+ # Multicast Email (MULE) over Allied Communications Publication 142
9
+ #
10
+ # ASN.1 source from:
11
+ # https://www.rfc-editor.org/rfc/rfc8494.txt
12
+
13
+ from pyasn1.type import namedtype
14
+ from pyasn1.type import namedval
15
+ from pyasn1.type import tag
16
+ from pyasn1.type import univ
17
+
18
+
19
+ id_mmhs_CDT = univ.ObjectIdentifier('1.3.26.0.4406.0.4.2')
20
+
21
+
22
+ class AlgorithmID_ShortForm(univ.Integer):
23
+ pass
24
+
25
+ AlgorithmID_ShortForm.namedValues = namedval.NamedValues(
26
+ ('zlibCompress', 0)
27
+ )
28
+
29
+
30
+ class ContentType_ShortForm(univ.Integer):
31
+ pass
32
+
33
+ ContentType_ShortForm.namedValues = namedval.NamedValues(
34
+ ('unidentified', 0),
35
+ ('external', 1),
36
+ ('p1', 2),
37
+ ('p3', 3),
38
+ ('p7', 4),
39
+ ('mule', 25)
40
+ )
41
+
42
+
43
+ class CompressedContentInfo(univ.Sequence):
44
+ pass
45
+
46
+ CompressedContentInfo.componentType = namedtype.NamedTypes(
47
+ namedtype.NamedType('unnamed', univ.Choice(componentType=namedtype.NamedTypes(
48
+ namedtype.NamedType('contentType-ShortForm',
49
+ ContentType_ShortForm().subtype(explicitTag=tag.Tag(
50
+ tag.tagClassContext, tag.tagFormatSimple, 0))),
51
+ namedtype.NamedType('contentType-OID',
52
+ univ.ObjectIdentifier().subtype(explicitTag=tag.Tag(
53
+ tag.tagClassContext, tag.tagFormatSimple, 1)))
54
+ ))),
55
+ namedtype.NamedType('compressedContent',
56
+ univ.OctetString().subtype(explicitTag=tag.Tag(
57
+ tag.tagClassContext, tag.tagFormatSimple, 0)))
58
+ )
59
+
60
+
61
+ class CompressionAlgorithmIdentifier(univ.Choice):
62
+ pass
63
+
64
+ CompressionAlgorithmIdentifier.componentType = namedtype.NamedTypes(
65
+ namedtype.NamedType('algorithmID-ShortForm',
66
+ AlgorithmID_ShortForm().subtype(explicitTag=tag.Tag(
67
+ tag.tagClassContext, tag.tagFormatSimple, 0))),
68
+ namedtype.NamedType('algorithmID-OID',
69
+ univ.ObjectIdentifier().subtype(explicitTag=tag.Tag(
70
+ tag.tagClassContext, tag.tagFormatSimple, 1)))
71
+ )
72
+
73
+
74
+ class CompressedData(univ.Sequence):
75
+ pass
76
+
77
+ CompressedData.componentType = namedtype.NamedTypes(
78
+ namedtype.NamedType('compressionAlgorithm', CompressionAlgorithmIdentifier()),
79
+ namedtype.NamedType('compressedContentInfo', CompressedContentInfo())
80
+ )
@@ -0,0 +1,66 @@
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 maps for use with opentypes.
6
+ # Modified 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
+ # X.509 Extensions for MUD URL and MUD Signer;
12
+ # Object Identifier for CMS Content Type for a MUD file
13
+ #
14
+ # ASN.1 source from:
15
+ # https://www.rfc-editor.org/rfc/rfc8520.txt
16
+ #
17
+
18
+ from pyasn1.type import char
19
+ from pyasn1.type import univ
20
+
21
+ from pyasn1_alt_modules import rfc5280
22
+ from pyasn1_alt_modules import opentypemap
23
+
24
+ certificateExtensionsMap = opentypemap.get('certificateExtensionsMap')
25
+
26
+ cmsContentTypesMap = opentypemap.get('cmsContentTypesMap')
27
+
28
+
29
+ # X.509 Extension for MUD URL
30
+
31
+ id_pe_mud_url = univ.ObjectIdentifier('1.3.6.1.5.5.7.1.25')
32
+
33
+ class MUDURLSyntax(char.IA5String):
34
+ pass
35
+
36
+
37
+ # X.509 Extension for MUD Signer
38
+
39
+ id_pe_mudsigner = univ.ObjectIdentifier('1.3.6.1.5.5.7.1.30')
40
+
41
+ class MUDsignerSyntax(rfc5280.Name):
42
+ pass
43
+
44
+
45
+ # Object Identifier for CMS Content Type for a MUD file
46
+
47
+ id_ct_mudtype = univ.ObjectIdentifier('1.2.840.113549.1.9.16.1.41')
48
+
49
+
50
+ # Update the Certificate Extensions Map
51
+
52
+ _certificateExtensionsMapUpdate = {
53
+ id_pe_mud_url: MUDURLSyntax(),
54
+ id_pe_mudsigner: MUDsignerSyntax(),
55
+ }
56
+
57
+ certificateExtensionsMap.update(_certificateExtensionsMapUpdate)
58
+
59
+
60
+ # Update the CMS Content Types Map
61
+
62
+ _cmsContentTypesMapUpdate = {
63
+ id_ct_mudtype: univ.OctetString(),
64
+ }
65
+
66
+ cmsContentTypesMap.update(_cmsContentTypesMapUpdate)
@@ -0,0 +1,45 @@
1
+ #
2
+ # This file is part of pyasn1-alt-modules software.
3
+ #
4
+ # Created by Russ Housley.
5
+ #
6
+ # Copyright (c) 2019-2024, Vigil Security, LLC
7
+ # License: http://vigilsec.com/pyasn1-alt-modules-license.txt
8
+ #
9
+ # Algorithm Identifiers for HKDF
10
+ #
11
+ # ASN.1 source from:
12
+ # https://www.rfc-editor.org/rfc/rfc8619.txt
13
+ #
14
+
15
+ from pyasn1.type import univ
16
+
17
+ from pyasn1_alt_modules import rfc5280
18
+
19
+
20
+ # Object Identifiers
21
+
22
+ id_alg_hkdf_with_sha256 = univ.ObjectIdentifier('1.2.840.113549.1.9.16.3.28')
23
+
24
+
25
+ id_alg_hkdf_with_sha384 = univ.ObjectIdentifier('1.2.840.113549.1.9.16.3.29')
26
+
27
+
28
+ id_alg_hkdf_with_sha512 = univ.ObjectIdentifier('1.2.840.113549.1.9.16.3.30')
29
+
30
+
31
+ # Key Derivation Algorithm Identifiers
32
+
33
+ kda_hkdf_with_sha256 = rfc5280.AlgorithmIdentifier()
34
+ kda_hkdf_with_sha256['algorithm'] = id_alg_hkdf_with_sha256
35
+ # kda_hkdf_with_sha256['parameters'] are absent
36
+
37
+
38
+ kda_hkdf_with_sha384 = rfc5280.AlgorithmIdentifier()
39
+ kda_hkdf_with_sha384['algorithm'] = id_alg_hkdf_with_sha384
40
+ # kda_hkdf_with_sha384['parameters'] are absent
41
+
42
+
43
+ kda_hkdf_with_sha512 = rfc5280.AlgorithmIdentifier()
44
+ kda_hkdf_with_sha512['algorithm'] = id_alg_hkdf_with_sha512
45
+ # kda_hkdf_with_sha512['parameters'] are absent
@@ -0,0 +1,42 @@
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
+ # X.509 Certificate Extension for Hash Of Root Key
10
+ #
11
+ # ASN.1 source from:
12
+ # https://www.rfc-editor.org/rfc/rfc8649.txt
13
+ #
14
+
15
+ from pyasn1.type import namedtype
16
+ from pyasn1.type import univ
17
+
18
+ from pyasn1_alt_modules import rfc5280
19
+ from pyasn1_alt_modules import opentypemap
20
+
21
+ certificateExtensionsMap = opentypemap.get('certificateExtensionsMap')
22
+
23
+
24
+ id_ce_hashOfRootKey = univ.ObjectIdentifier('1.3.6.1.4.1.51483.2.1')
25
+
26
+
27
+ class HashedRootKey(univ.Sequence):
28
+ pass
29
+
30
+ HashedRootKey.componentType = namedtype.NamedTypes(
31
+ namedtype.NamedType('hashAlg', rfc5280.AlgorithmIdentifier()),
32
+ namedtype.NamedType('hashValue', univ.OctetString())
33
+ )
34
+
35
+
36
+ # Update the Certificate Extensions Map
37
+
38
+ _certificateExtensionsMapUpdate = {
39
+ id_ce_hashOfRootKey: HashedRootKey(),
40
+ }
41
+
42
+ certificateExtensionsMap.update(_certificateExtensionsMapUpdate)
@@ -0,0 +1,79 @@
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
+ # Algorithm Identifiers for RSASSA-PSS and ECDSA using SHAKEs
10
+ #
11
+ # ASN.1 source from:
12
+ # https://www.rfc-editor.org/rfc/rfc8692.txt
13
+ #
14
+
15
+ from pyasn1.type import univ
16
+
17
+ from pyasn1_alt_modules import rfc4055
18
+ from pyasn1_alt_modules import rfc5280
19
+ from pyasn1_alt_modules import rfc5480
20
+
21
+
22
+ # SHAKE128 One-Way Hash Function
23
+
24
+ id_shake128 = univ.ObjectIdentifier('2.16.840.1.101.3.4.2.11')
25
+
26
+ mda_shake128 = rfc5280.AlgorithmIdentifier()
27
+ mda_shake128['algorithm'] = id_shake128
28
+ # mda_shake128['parameters'] is absent
29
+
30
+
31
+ # SHAKE256 One-Way Hash Function
32
+
33
+ id_shake256 = univ.ObjectIdentifier('2.16.840.1.101.3.4.2.12')
34
+
35
+ mda_shake256 = rfc5280.AlgorithmIdentifier()
36
+ mda_shake256['algorithm'] = id_shake256
37
+ # mda_shake256['parameters'] is absent
38
+
39
+
40
+ # RSA PSS with SHAKE128
41
+
42
+ id_RSASSA_PSS_SHAKE128 = univ.ObjectIdentifier('1.3.6.1.5.5.7.6.30')
43
+
44
+ sa_rSASSA_PSS_SHAKE128 = rfc5280.AlgorithmIdentifier()
45
+ sa_rSASSA_PSS_SHAKE128['algorithm'] = id_RSASSA_PSS_SHAKE128
46
+ # sa_rSASSA_PSS_SHAKE128['parameters'] is absent
47
+
48
+ pk_rsaSSA_PSS_SHAKE128 = rfc4055.RSAPublicKey()
49
+
50
+
51
+ # RSA PSS with SHAKE256
52
+
53
+ id_RSASSA_PSS_SHAKE256 = univ.ObjectIdentifier('1.3.6.1.5.5.7.6.31')
54
+
55
+ sa_rSASSA_PSS_SHAKE256 = rfc5280.AlgorithmIdentifier()
56
+ sa_rSASSA_PSS_SHAKE256['algorithm'] = id_RSASSA_PSS_SHAKE256
57
+ # sa_rSASSA_PSS_SHAKE256['parameters'] is absent
58
+
59
+ pk_rsaSSA_PSS_SHAKE256 = rfc4055.RSAPublicKey()
60
+
61
+
62
+ # ECDSA with SHAKE128
63
+
64
+ id_ecdsa_with_shake128 = univ.ObjectIdentifier('1.3.6.1.5.5.7.6.32')
65
+
66
+ sa_ecdsa_with_shake128 = rfc5280.AlgorithmIdentifier()
67
+ sa_ecdsa_with_shake128['algorithm'] = id_ecdsa_with_shake128
68
+ # sa_ecdsa_with_shake128['parameters'] is absent
69
+
70
+ pk_ec = rfc5480.ECPoint()
71
+
72
+
73
+ # ECDSA with SHAKE128
74
+
75
+ id_ecdsa_with_shake256 = univ.ObjectIdentifier('1.3.6.1.5.5.7.6.33')
76
+
77
+ sa_ecdsa_with_shake256 = rfc5280.AlgorithmIdentifier()
78
+ sa_ecdsa_with_shake256['algorithm'] = id_ecdsa_with_shake256
79
+ # sa_ecdsa_with_shake256['parameters'] is absent