]> CyberLeo.Net >> Repos - FreeBSD/releng/10.3.git/blob - crypto/openssh/regress/unittests/sshkey/mktestdata.sh
- Copy stable/10@296371 to releng/10.3 in preparation for 10.3-RC1
[FreeBSD/releng/10.3.git] / crypto / openssh / regress / unittests / sshkey / mktestdata.sh
1 #!/bin/sh
2 # $OpenBSD: mktestdata.sh,v 1.5 2015/07/07 14:53:30 markus Exp $
3
4 PW=mekmitasdigoat
5
6 rsa1_params() {
7         _in="$1"
8         _outbase="$2"
9         set -e
10         ssh-keygen -f $_in -e -m pkcs8 | \
11             openssl rsa -noout -text -pubin | \
12             awk '/^Modulus:$/,/^Exponent:/' | \
13             grep -v '^[a-zA-Z]' | tr -d ' \n:' > ${_outbase}.n
14         # XXX need conversion support in ssh-keygen for the other params
15         for x in n ; do
16                 echo "" >> ${_outbase}.$x
17                 echo ============ ${_outbase}.$x
18                 cat ${_outbase}.$x
19                 echo ============
20         done
21 }
22
23 rsa_params() {
24         _in="$1"
25         _outbase="$2"
26         set -e
27         openssl rsa -noout -text -in $_in | \
28             awk '/^modulus:$/,/^publicExponent:/' | \
29             grep -v '^[a-zA-Z]' | tr -d ' \n:' > ${_outbase}.n
30         openssl rsa -noout -text -in $_in | \
31             awk '/^prime1:$/,/^prime2:/' | \
32             grep -v '^[a-zA-Z]' | tr -d ' \n:' > ${_outbase}.p
33         openssl rsa -noout -text -in $_in | \
34             awk '/^prime2:$/,/^exponent1:/' | \
35             grep -v '^[a-zA-Z]' | tr -d ' \n:' > ${_outbase}.q
36         for x in n p q ; do
37                 echo "" >> ${_outbase}.$x
38                 echo ============ ${_outbase}.$x
39                 cat ${_outbase}.$x
40                 echo ============
41         done
42 }
43
44 dsa_params() {
45         _in="$1"
46         _outbase="$2"
47         set -e
48         openssl dsa -noout -text -in $_in | \
49             awk '/^priv:$/,/^pub:/' | \
50             grep -v '^[a-zA-Z]' | tr -d ' \n:' > ${_outbase}.priv
51         openssl dsa -noout -text -in $_in | \
52             awk '/^pub:/,/^P:/' | #\
53             grep -v '^[a-zA-Z]' | tr -d ' \n:' > ${_outbase}.pub
54         openssl dsa -noout -text -in $_in | \
55             awk '/^G:/,0' | \
56             grep -v '^[a-zA-Z]' | tr -d ' \n:' > ${_outbase}.g
57         for x in priv pub g ; do
58                 echo "" >> ${_outbase}.$x
59                 echo ============ ${_outbase}.$x
60                 cat ${_outbase}.$x
61                 echo ============
62         done
63 }
64
65 ecdsa_params() {
66         _in="$1"
67         _outbase="$2"
68         set -e
69         openssl ec -noout -text -in $_in | \
70             awk '/^priv:$/,/^pub:/' | \
71             grep -v '^[a-zA-Z]' | tr -d ' \n:' > ${_outbase}.priv
72         openssl ec -noout -text -in $_in | \
73             awk '/^pub:/,/^ASN1 OID:/' | #\
74             grep -v '^[a-zA-Z]' | tr -d ' \n:' > ${_outbase}.pub
75         openssl ec -noout -text -in $_in | \
76             grep "ASN1 OID:" | tr -d '\n' | \
77             sed 's/.*: //;s/ *$//' > ${_outbase}.curve
78         for x in priv pub curve ; do
79                 echo "" >> ${_outbase}.$x
80                 echo ============ ${_outbase}.$x
81                 cat ${_outbase}.$x
82                 echo ============
83         done
84 }
85
86 set -ex
87
88 cd testdata
89
90 rm -f rsa1_1 rsa_1 dsa_1 ecdsa_1 ed25519_1
91 rm -f rsa1_2 rsa_2 dsa_2 ecdsa_2 ed25519_2
92 rm -f rsa_n dsa_n ecdsa_n # new-format keys
93 rm -f rsa1_1_pw rsa_1_pw dsa_1_pw ecdsa_1_pw ed25519_1_pw
94 rm -f rsa_n_pw dsa_n_pw ecdsa_n_pw
95 rm -f pw *.pub *.bn.* *.param.* *.fp *.fp.bb
96
97 ssh-keygen -t rsa1 -b 1024 -C "RSA1 test key #1" -N "" -f rsa1_1
98 ssh-keygen -t rsa -b 1024 -C "RSA test key #1" -N "" -f rsa_1
99 ssh-keygen -t dsa -b 1024 -C "DSA test key #1" -N "" -f dsa_1
100 ssh-keygen -t ecdsa -b 256 -C "ECDSA test key #1" -N "" -f ecdsa_1
101 ssh-keygen -t ed25519 -C "ED25519 test key #1" -N "" -f ed25519_1
102
103 ssh-keygen -t rsa1 -b 2048 -C "RSA1 test key #2" -N "" -f rsa1_2
104 ssh-keygen -t rsa -b 2048 -C "RSA test key #2" -N "" -f rsa_2
105 ssh-keygen -t dsa -b 1024 -C "DSA test key #2" -N "" -f dsa_2
106 ssh-keygen -t ecdsa -b 521 -C "ECDSA test key #2" -N "" -f ecdsa_2
107 ssh-keygen -t ed25519 -C "ED25519 test key #1" -N "" -f ed25519_2
108
109 cp rsa_1 rsa_n
110 cp dsa_1 dsa_n
111 cp ecdsa_1 ecdsa_n
112
113 cp rsa1_1 rsa1_1_pw
114 cp rsa_1 rsa_1_pw
115 cp dsa_1 dsa_1_pw
116 cp ecdsa_1 ecdsa_1_pw
117 cp ed25519_1 ed25519_1_pw
118 cp rsa_1 rsa_n_pw
119 cp dsa_1 dsa_n_pw
120 cp ecdsa_1 ecdsa_n_pw
121
122 ssh-keygen -pf rsa1_1_pw -N "$PW"
123 ssh-keygen -pf rsa_1_pw -N "$PW"
124 ssh-keygen -pf dsa_1_pw -N "$PW"
125 ssh-keygen -pf ecdsa_1_pw -N "$PW"
126 ssh-keygen -pf ed25519_1_pw -N "$PW"
127 ssh-keygen -opf rsa_n_pw -N "$PW"
128 ssh-keygen -opf dsa_n_pw -N "$PW"
129 ssh-keygen -opf ecdsa_n_pw -N "$PW"
130
131 rsa1_params rsa1_1 rsa1_1.param
132 rsa1_params rsa1_2 rsa1_2.param
133 rsa_params rsa_1 rsa_1.param
134 rsa_params rsa_2 rsa_2.param
135 dsa_params dsa_1 dsa_1.param
136 dsa_params dsa_1 dsa_1.param
137 ecdsa_params ecdsa_1 ecdsa_1.param
138 ecdsa_params ecdsa_2 ecdsa_2.param
139 # XXX ed25519 params
140
141 ssh-keygen -s rsa_2 -I hugo -n user1,user2 \
142     -Oforce-command=/bin/ls -Ono-port-forwarding -Osource-address=10.0.0.0/8 \
143     -V 19990101:20110101 -z 1 rsa_1.pub
144 ssh-keygen -s rsa_2 -I hugo -n user1,user2 \
145     -Oforce-command=/bin/ls -Ono-port-forwarding -Osource-address=10.0.0.0/8 \
146     -V 19990101:20110101 -z 2 dsa_1.pub
147 ssh-keygen -s rsa_2 -I hugo -n user1,user2 \
148     -Oforce-command=/bin/ls -Ono-port-forwarding -Osource-address=10.0.0.0/8 \
149     -V 19990101:20110101 -z 3 ecdsa_1.pub
150 ssh-keygen -s rsa_2 -I hugo -n user1,user2 \
151     -Oforce-command=/bin/ls -Ono-port-forwarding -Osource-address=10.0.0.0/8 \
152     -V 19990101:20110101 -z 4 ed25519_1.pub
153
154 ssh-keygen -s ed25519_1 -I julius -n host1,host2 -h \
155     -V 19990101:20110101 -z 5 rsa_1.pub
156 ssh-keygen -s ed25519_1 -I julius -n host1,host2 -h \
157     -V 19990101:20110101 -z 6 dsa_1.pub
158 ssh-keygen -s ecdsa_1 -I julius -n host1,host2 -h \
159     -V 19990101:20110101 -z 7 ecdsa_1.pub
160 ssh-keygen -s ed25519_1 -I julius -n host1,host2 -h \
161     -V 19990101:20110101 -z 8 ed25519_1.pub
162
163 ssh-keygen -lf rsa1_1 | awk '{print $2}' > rsa1_1.fp
164 ssh-keygen -lf rsa_1 | awk '{print $2}' > rsa_1.fp
165 ssh-keygen -lf dsa_1 | awk '{print $2}' > dsa_1.fp
166 ssh-keygen -lf ecdsa_1 | awk '{print $2}' > ecdsa_1.fp
167 ssh-keygen -lf ed25519_1 | awk '{print $2}' > ed25519_1.fp
168 ssh-keygen -lf rsa1_2 | awk '{print $2}' > rsa1_2.fp
169 ssh-keygen -lf rsa_2 | awk '{print $2}' > rsa_2.fp
170 ssh-keygen -lf dsa_2 | awk '{print $2}' > dsa_2.fp
171 ssh-keygen -lf ecdsa_2 | awk '{print $2}' > ecdsa_2.fp
172 ssh-keygen -lf ed25519_2 | awk '{print $2}' > ed25519_2.fp
173
174 ssh-keygen -lf dsa_1-cert.pub  | awk '{print $2}' > dsa_1-cert.fp
175 ssh-keygen -lf ecdsa_1-cert.pub  | awk '{print $2}' > ecdsa_1-cert.fp
176 ssh-keygen -lf ed25519_1-cert.pub  | awk '{print $2}' > ed25519_1-cert.fp
177 ssh-keygen -lf rsa_1-cert.pub  | awk '{print $2}' > rsa_1-cert.fp
178
179 ssh-keygen -Bf rsa1_1 | awk '{print $2}' > rsa1_1.fp.bb
180 ssh-keygen -Bf rsa_1 | awk '{print $2}' > rsa_1.fp.bb
181 ssh-keygen -Bf dsa_1 | awk '{print $2}' > dsa_1.fp.bb
182 ssh-keygen -Bf ecdsa_1 | awk '{print $2}' > ecdsa_1.fp.bb
183 ssh-keygen -Bf ed25519_1 | awk '{print $2}' > ed25519_1.fp.bb
184 ssh-keygen -Bf rsa1_2 | awk '{print $2}' > rsa1_2.fp.bb
185 ssh-keygen -Bf rsa_2 | awk '{print $2}' > rsa_2.fp.bb
186 ssh-keygen -Bf dsa_2 | awk '{print $2}' > dsa_2.fp.bb
187 ssh-keygen -Bf ecdsa_2 | awk '{print $2}' > ecdsa_2.fp.bb
188 ssh-keygen -Bf ed25519_2 | awk '{print $2}' > ed25519_2.fp.bb
189
190 # XXX Extend ssh-keygen to do detached signatures (better to test/fuzz against)
191
192 echo "$PW" > pw