1
+ $OUTDIR = " .\artifacts"
2
+
3
+
4
+
5
+
6
+ Function Create-TA ([string ] $OUTDIR , [string ] $KEYALG , [string ] $SIGALG ) {
7
+ mkdir - Force $OUTDIR \ta
8
+ .\pqutil.bat keygen - alg $KEYALG - pubout " $OUTDIR \ta\ta_pub.der" - privout " $OUTDIR \ta\ta_priv.der"
9
+ .\pqutil.bat newcsr - pubkey " $OUTDIR \ta\ta_pub.der" - privkey " $OUTDIR \ta\ta_priv.der" - csrout " $OUTDIR \ta\ta.csr" - sigalg $SIGALG.Split (" " )
10
+ .\pqutil.bat newca - capubkey " $OUTDIR \ta\ta_pub.der" - caprivkey " $OUTDIR \ta\ta_priv.der" - certout " $OUTDIR \ta\ta.der" - sigalg $SIGALG
11
+ }
12
+
13
+
14
+ Function Create-CA ([string ] $OUTDIR , [string ] $KEYALG , [string ] $SIGALG ) {
15
+ mkdir - Force $OUTDIR \ca
16
+ .\pqutil.bat keygen - alg $KEYALG - pubout " $OUTDIR \ca\ca_pub.der" - privout " $OUTDIR \ca\ca_priv.der"
17
+ .\pqutil.bat newcsr - pubkey " $OUTDIR \ca\ca_pub.der" - privkey " $OUTDIR \ca\ca_priv.der" - csrout " $OUTDIR \ca\ca.csr" - sigalg $SIGALG.Split (" " )
18
+ .\pqutil.bat issue - csr " $OUTDIR \ca\ca.csr.der" - caprivkey " $OUTDIR \ta\ta_priv.der" - certout " $OUTDIR \ca\ca.der" - sigalg $SIGALG.Split (" " ) - subca
19
+ }
20
+
21
+ Function Create-EE ([string ] $OUTDIR , [string ] $KEYALG , [string ] $SIGALG ) {
22
+ mkdir - Force $OUTDIR \ee
23
+ .\pqutil.bat keygen - alg $KEYALG - pubout " $OUTDIR \ee\cert_pub.der" - privout " $OUTDIR \ee\cert_priv.der"
24
+ .\pqutil.bat newcsr - pubkey " $OUTDIR \ee\cert_pub.der" - privkey " $OUTDIR \ee\cert_priv.der" - csrout " $OUTDIR \ee\cert.csr" - sigalg $SIGALG.Split (" " )
25
+ .\pqutil.bat issue - csr " $OUTDIR \ee\cert.csr.der" - caprivkey " $OUTDIR \ca\ca_priv.der" - certout " $OUTDIR \ee\cert.der" - sigalg $SIGALG.Split (" " )
26
+ }
27
+
28
+ Function Create-CRLs ([string ] $OUTDIR , [string ] $SIGALG ) {
29
+ mkdir - Force $OUTDIR \crl
30
+
31
+ # CRL for TA
32
+ .\pqutil.bat issuecrl - cacert " $OUTDIR \ta\ta.der" - caprivkey " $OUTDIR \ta\ta_priv.der" - crlfile " $OUTDIR \crl\crl_ta.crl" - createnew - sigalg $SIGALG.Split (" " )
33
+
34
+ # Create an EE to revoke
35
+ .\pqutil.bat issue - csr " $OUTDIR \ee\cert.csr.der" - caprivkey " $OUTDIR \ca\ca_priv.der" - certout " $OUTDIR \crl\revoked.der" - sigalg $SIGALG.Split (" " )
36
+
37
+ # CRL for CA
38
+ .\pqutil.bat issuecrl - cacert " $OUTDIR \ca\ca.der" - caprivkey " $OUTDIR \ca\ca_priv.der" - crlfile " $OUTDIR \crl\crl_ca.crl.der" - createnew - addrevocation " $OUTDIR \crl\revoked.der" - sigalg $SIGALG
39
+
40
+ }
41
+
42
+ Function Create ([string ] $OUTDIR , [string ] $KEYALG , [string ] $SIGALG ) {
43
+ Create- TA - OUTDIR $OUTDIR - KEYALG $KEYALG - SIGALG $SIGALG
44
+ Create- CA - OUTDIR $OUTDIR - KEYALG $KEYALG - SIGALG $SIGALG
45
+ Create- EE - OUTDIR $OUTDIR - KEYALG $KEYALG - SIGALG $SIGALG
46
+ Create- CRLs - OUTDIR $OUTDIR - SIGALG $SIGALG
47
+ }
48
+
49
+
50
+
51
+ Function Create-Composite-TA ([string ] $OUTDIR , [string ] $KEYALG1 , [string ] $KEYALG2 , [string ] $SIGALG1 , [string ] $SIGALG2 ) {
52
+ mkdir - Force $OUTDIR \ta
53
+ .\pqutil.bat keygen - alg $KEYALG1.Split (" " ) - alg $KEYALG2.Split (" " ) - pubout " $OUTDIR \ta\ta_pub.der" - privout " $OUTDIR \ta\ta_priv.der"
54
+ .\pqutil.bat newcsr - pubkey " $OUTDIR \ta\ta_pub.der" - privkey " $OUTDIR \ta\ta_priv.der" - csrout " $OUTDIR \ta\ta.csr" - sigalg $SIGALG1.Split (" " ) - sigalg $SIGALG2.Split (" " )
55
+ .\pqutil.bat newca - capubkey " $OUTDIR \ta\ta_pub.der" - caprivkey " $OUTDIR \ta\ta_priv.der" - certout " $OUTDIR \ta\ta.der" - sigalg $SIGALG1.Split (" " ) - sigalg $SIGALG2.Split (" " )
56
+ }
57
+
58
+
59
+ Function Create-Composite-CA ([string ] $OUTDIR , [string ] $KEYALG1 , [string ] $KEYALG2 , [string ] $SIGALG1 , [string ] $SIGALG2 ) {
60
+ mkdir - Force $OUTDIR \ca
61
+ .\pqutil.bat keygen - alg $KEYALG1.Split (" " ).Split(" " ) - alg $KEYALG2.Split (" " ) - pubout " $OUTDIR \ca\ca_pub.der" - privout " $OUTDIR \ca\ca_priv.der"
62
+ .\pqutil.bat newcsr - pubkey " $OUTDIR \ca\ca_pub.der" - privkey " $OUTDIR \ca\ca_priv.der" - csrout " $OUTDIR \ca\ca.csr.der" - sigalg $SIGALG1.Split (" " ) - sigalg $SIGALG2.Split (" " )
63
+ .\pqutil.bat issue - csr " $OUTDIR \ca\ca.csr.der" - caprivkey " $OUTDIR \ta\ta_priv.der" - certout " $OUTDIR \ca\ca.der" - sigalg $SIGALG1.Split (" " ) - sigalg $SIGALG2.Split (" " ) - subca
64
+ }
65
+
66
+ Function Create-Composite-EE ([string ] $OUTDIR , [string ] $KEYALG1 , [string ] $KEYALG2 , [string ] $SIGALG1 , [string ] $SIGALG2 ) {
67
+ mkdir - Force $OUTDIR \ee
68
+ .\pqutil.bat keygen - alg $KEYALG1.Split (" " ) - alg $KEYALG2.Split (" " ) - pubout " $OUTDIR \ee\cert_pub.der" - privout " $OUTDIR \ee\cert_priv.der"
69
+ .\pqutil.bat newcsr - pubkey " $OUTDIR \ee\cert_pub.der" - privkey " $OUTDIR \ee\cert_priv.der" - csrout " $OUTDIR \ee\cert.csr.der" - sigalg $SIGALG1.Split (" " ) - sigalg $SIGALG2.Split (" " )
70
+ .\pqutil.bat issue - csr " $OUTDIR \ee\cert.csr.der" - caprivkey " $OUTDIR \ca\ca_priv.der" - certout " $OUTDIR \ee\cert.der" - sigalg $SIGALG1.Split (" " ) - sigalg $SIGALG2.Split (" " )
71
+ }
72
+
73
+ Function Create-Composite-CRLs ([string ] $OUTDIR , [string ] $SIGALG1 , [string ] $SIGALG2 ) {
74
+ mkdir - Force $OUTDIR \crl
75
+
76
+ # CRL for TA
77
+ .\pqutil.bat issuecrl - cacert " $OUTDIR \ta\ta.der" - caprivkey " $OUTDIR \ta\ta_priv.der" - crlfile " $OUTDIR \crl\crl_ta.crl.der" - createnew - sigalg $SIGALG1.Split (" " ) - sigalg $SIGALG2.Split (" " )
78
+
79
+ # Create an EE to revoke
80
+ .\pqutil.bat issue - csr " $OUTDIR \ee\cert.csr.der" - caprivkey " $OUTDIR \ca\ca_priv.der" - certout " $OUTDIR \crl\revoked.der" - sigalg $SIGALG1.Split (" " ) - sigalg $SIGALG2.Split (" " )
81
+
82
+ # CRL for CA
83
+ .\pqutil.bat issuecrl - cacert " $OUTDIR \ca\ca.der" - caprivkey " $OUTDIR \ca\ca_priv.der" - crlfile " $OUTDIR \crl\crl_ca.crl.der" - createnew - addrevocation " $OUTDIR \crl\revoked.der" - sigalg $SIGALG1.Split (" " ) - sigalg $SIGALG2.Split (" " )
84
+
85
+ }
86
+
87
+ Function Create-Composite ([string ] $OUTDIR , [string ] $KEYALG1 , [string ] $KEYALG2 , [string ] $SIGALG1 , [string ] $SIGALG2 ) {
88
+ Create- Composite- TA - OUTDIR $OUTDIR - KEYALG1 $KEYALG1 - KEYALG2 $KEYALG2 - SIGALG1 $SIGALG1 - SIGALG2 $SIGALG2
89
+ Create- Composite- CA - OUTDIR $OUTDIR - KEYALG1 $KEYALG1 - KEYALG2 $KEYALG2 - SIGALG1 $SIGALG1 - SIGALG2 $SIGALG2
90
+ Create- Composite- EE - OUTDIR $OUTDIR - KEYALG1 $KEYALG1 - KEYALG2 $KEYALG2 - SIGALG1 $SIGALG1 - SIGALG2 $SIGALG2
91
+ Create- Composite- CRLs - OUTDIR $OUTDIR - SIGALG1 $SIGALG1 - SIGALG2 $SIGALG2
92
+ }
93
+
94
+
95
+
96
+
97
+ # Create -OUTDIR $OUTDIR\"1.3.6.1.4.1.2.267.7.4.4" -KEYALG "Dilithium2" -SIGALG "Dilithium2"
98
+ # Create -OUTDIR $OUTDIR\"1.3.6.1.4.1.2.267.7.6.5" -KEYALG "Dilithium3" -SIGALG "Dilithium3"
99
+ # Create -OUTDIR $OUTDIR\"1.3.6.1.4.1.2.267.7.8.7" -KEYALG "Dilithium5" -SIGALG "Dilithium5"
100
+ # Create -OUTDIR $OUTDIR\"1.3.6.1.4.1.2.267.11.4.4" -KEYALG "Dilithium2-AES" -SIGALG "Dilithium2-AES"
101
+ # Create -OUTDIR $OUTDIR\"1.3.6.1.4.1.2.267.11.6.5" -KEYALG "Dilithium3-AES" -SIGALG "Dilithium3-AES"
102
+ # Create -OUTDIR $OUTDIR\"1.3.6.1.4.1.2.267.11.8.7" -KEYALG "Dilithium5-AES" -SIGALG "Dilithium5-AES"
103
+ # Create -OUTDIR $OUTDIR\"1.3.9999.3.1" -KEYALG "Falcon-512" -SIGALG "Falcon-512"
104
+ # Create -OUTDIR $OUTDIR\"1.3.9999.3.4" -KEYALG "Falcon-1024" -SIGALG "Falcon-1024"
105
+
106
+ # @John -- these ones throw an error in the toolkit about key length. You'll need to debug that.
107
+ # Create -OUTDIR $OUTDIR\"1.3.9999.6.4.1" -KEYALG "SPHINCS+-SHA256-128f-robust" -SIGALG "SPHINCS+-SHA256-128f-robust"
108
+ # Create -OUTDIR $OUTDIR\"1.3.9999.6.4.4" -KEYALG "SPHINCS+-SHA256-128f-simple" -SIGALG "SPHINCS+-SHA256-128f-simple"
109
+ # Create -OUTDIR $OUTDIR\"1.3.9999.6.4.7" -KEYALG "SPHINCS+-SHA256-128s-robust" -SIGALG "SPHINCS+-SHA256-128s-robust"
110
+ # Create -OUTDIR $OUTDIR\"1.3.9999.6.4.10" -KEYALG "SPHINCS+-SHA256-128s-simple" -SIGALG "SPHINCS+-SHA256-128s-simple"
111
+ # Create -OUTDIR $OUTDIR\"1.3.9999.6.5.1" -KEYALG "SPHINCS+-SHA256-192f-robust" -SIGALG "SPHINCS+-SHA256-192f-robust"
112
+ # Create -OUTDIR $OUTDIR\"1.3.9999.6.5.3" -KEYALG "SPHINCS+-SHA256-192f-simple" -SIGALG "SPHINCS+-SHA256-192f-simple"
113
+ # Create -OUTDIR $OUTDIR\"1.3.9999.6.5.5" -KEYALG "SPHINCS+-SHA256-192s-robust" -SIGALG "SPHINCS+-SHA256-192s-robust"
114
+ # Create -OUTDIR $OUTDIR\"1.3.9999.6.5.7" -KEYALG "SPHINCS+-SHA256-192s-simple" -SIGALG "SPHINCS+-SHA256-192s-simple"
115
+ # Create -OUTDIR $OUTDIR\"1.3.9999.6.6.1" -KEYALG "SPHINCS+-SHA256-256f-robust" -SIGALG "SPHINCS+-SHA256-256f-robust"
116
+ # Create -OUTDIR $OUTDIR\"1.3.9999.6.6.3" -KEYALG "SPHINCS+-SHA256-256f-simple" -SIGALG "SPHINCS+-SHA256-256f-simple"
117
+ # Create -OUTDIR $OUTDIR\"1.3.9999.6.6.5" -KEYALG "SPHINCS+-SHA256-256s-robust" -SIGALG "SPHINCS+-SHA256-256s-robust"
118
+ # Create -OUTDIR $OUTDIR\"1.3.9999.6.6.7" -KEYALG "SPHINCS+-SHA256-256s-simple" -SIGALG "SPHINCS+-SHA256-256s-simple"
119
+
120
+
121
+ Create- Composite - OUTDIR $OUTDIR \" 2.16.840.1.114027.80.4.1" - KEYALG1 " Dilithium3" - KEYALG2 " ECDSA P-256" - SIGALG1 " Dilithium3" - SIGALG2 " SHA256withECDSA"
122
+
123
+ # TODO: @John add explicit composites
124
+
125
+
126
+ # zip it up
127
+ Compress-Archive - Force - Path " $OUTDIR \*" - DestinationPath " $OUTDIR .zip"
0 commit comments