aboutsummaryrefslogtreecommitdiffstats
path: root/vectors/cryptography_vectors/asymmetric/OpenSSH/gen.sh
diff options
context:
space:
mode:
authorMarko Kreen <markokr@gmail.com>2020-05-25 21:24:17 +0300
committerGitHub <noreply@github.com>2020-05-25 13:24:17 -0500
commitbf175454a85177dc48933d59f64820e580a711ac (patch)
tree665243763d46a6282b5b2aeaa5d3d30c36516a97 /vectors/cryptography_vectors/asymmetric/OpenSSH/gen.sh
parent9470f67a3086e4c003ab27ca6a2209dae9b1a9e6 (diff)
downloadcryptography-bf175454a85177dc48933d59f64820e580a711ac.tar.gz
cryptography-bf175454a85177dc48933d59f64820e580a711ac.tar.bz2
cryptography-bf175454a85177dc48933d59f64820e580a711ac.zip
Test vectors for OpenSSH serialization format (#5151)
Diffstat (limited to 'vectors/cryptography_vectors/asymmetric/OpenSSH/gen.sh')
-rwxr-xr-xvectors/cryptography_vectors/asymmetric/OpenSSH/gen.sh62
1 files changed, 62 insertions, 0 deletions
diff --git a/vectors/cryptography_vectors/asymmetric/OpenSSH/gen.sh b/vectors/cryptography_vectors/asymmetric/OpenSSH/gen.sh
new file mode 100755
index 00000000..b18c338b
--- /dev/null
+++ b/vectors/cryptography_vectors/asymmetric/OpenSSH/gen.sh
@@ -0,0 +1,62 @@
+#! /bin/sh
+
+rm *.key *.pub
+
+# avoid having too many files
+ecbits="ecbits.txt"
+echo 521 > "$ecbits"
+getecbits() {
+ last=$(cat $ecbits)
+ case "$last" in
+ 256) last=384;;
+ 384) last=521;;
+ 521) last=256;;
+ esac
+ echo $last > "$ecbits"
+ echo $last
+}
+
+genkey() {
+ fn="$1"
+ args="-f $fn -C $fn"
+ case "$fn" in
+ ecdsa-*) args="$args -t ecdsa -b $(getecbits)" ;;
+ rsa-*) args="$args -t rsa" ;;
+ dsa-*) args="$args -t dsa" ;;
+ ed25519-*) args="$args -t ed25519" ;;
+ esac
+ password=''
+ case "$fn" in
+ *-psw.*) password="password" ;;
+ esac
+ ssh-keygen -q -o $args -N "$password"
+}
+
+# generate private key files
+for ktype in rsa dsa ecdsa ed25519; do
+ for psw in nopsw psw; do
+ genkey "${ktype}-${psw}.key"
+ done
+done
+
+# generate public key files
+for fn in *.key; do
+ ssh-keygen -q -y -f "$fn" > /dev/null
+done
+
+rm -f "$ecbits"
+
+# generate public key files with certificate
+ssh-keygen -q -s "dsa-nopsw.key" -I "name" \
+ -z 1 -V 20100101123000:21090101123000 \
+ "dsa-nopsw.key.pub"
+ssh-keygen -q -s "rsa-nopsw.key" -I "name" \
+ -z 2 -n user1,user2 -t rsa-sha2-512 \
+ "rsa-nopsw.key.pub"
+ssh-keygen -q -s "ecdsa-nopsw.key" -I "name" \
+ -h -n domain1,domain2 \
+ "ecdsa-nopsw.key.pub"
+ssh-keygen -q -s "ed25519-nopsw.key" -I "name" \
+ -O no-port-forwarding \
+ "ed25519-nopsw.key.pub"
+