mirror of
				https://github.com/PowerShell/Win32-OpenSSH.git
				synced 2025-10-31 19:53:55 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			95 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			95 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/bin/sh
 | |
| # $OpenBSD: mktestdata.sh,v 1.1 2015/02/16 22:18:34 djm Exp $
 | |
| 
 | |
| set -ex
 | |
| 
 | |
| cd testdata
 | |
| 
 | |
| rm -f rsa1* rsa* dsa* ecdsa* ed25519*
 | |
| rm -f known_hosts*
 | |
| 
 | |
| gen_all() {
 | |
| 	_n=$1
 | |
| 	_ecdsa_bits=256
 | |
| 	test "x$_n" = "x1" && _ecdsa_bits=384
 | |
| 	test "x$_n" = "x2" && _ecdsa_bits=521
 | |
| 	ssh-keygen -qt rsa1 -b 1024 -C "RSA1 #$_n" -N "" -f rsa1_$_n
 | |
| 	ssh-keygen -qt rsa -b 1024 -C "RSA #$_n" -N "" -f rsa_$_n
 | |
| 	ssh-keygen -qt dsa -b 1024 -C "DSA #$_n" -N "" -f dsa_$_n
 | |
| 	ssh-keygen -qt ecdsa -b $_ecdsa_bits -C "ECDSA #$_n" -N "" -f ecdsa_$_n
 | |
| 	ssh-keygen -qt ed25519 -C "ED25519 #$_n" -N "" -f ed25519_$_n
 | |
| 	# Don't need private keys
 | |
| 	rm -f rsa1_$_n  rsa_$_n dsa_$_n ecdsa_$_n ed25519_$_n
 | |
| }
 | |
| 
 | |
| hentries() {
 | |
| 	_preamble=$1
 | |
| 	_kspec=$2
 | |
| 	for k in `ls -1 $_kspec | sort` ; do
 | |
| 		printf "$_preamble "
 | |
| 		cat $k
 | |
| 	done
 | |
| 	echo
 | |
| }
 | |
| 
 | |
| gen_all 1
 | |
| gen_all 2
 | |
| gen_all 3
 | |
| gen_all 4
 | |
| gen_all 5
 | |
| gen_all 6
 | |
| 
 | |
| # A section of known_hosts with hashed hostnames.
 | |
| (
 | |
| 	hentries "sisyphus.example.com" "*_5.pub"
 | |
| 	hentries "prometheus.example.com,192.0.2.1,2001:db8::1" "*_6.pub"
 | |
| ) > known_hosts_hash_frag
 | |
| ssh-keygen -Hf known_hosts_hash_frag
 | |
| rm -f known_hosts_hash_frag.old
 | |
| 
 | |
| # Populated known_hosts, including comments, hashed names and invalid lines
 | |
| (
 | |
| 	echo "# Plain host keys, plain host names"
 | |
| 	hentries "sisyphus.example.com" "*_1.pub"
 | |
| 
 | |
| 	echo "# Plain host keys, hostnames + addresses"
 | |
| 	hentries "prometheus.example.com,192.0.2.1,2001:db8::1" "*_2.pub"
 | |
| 
 | |
| 	echo "# Some hosts with wildcard names / IPs"
 | |
| 	hentries "*.example.com,192.0.2.*,2001:*" "*_3.pub"
 | |
| 
 | |
| 	echo "# Hashed hostname and address entries"
 | |
| 	cat known_hosts_hash_frag
 | |
| 	rm -f known_hosts_hash_frag
 | |
| 	echo
 | |
| 
 | |
| 	echo "# Revoked and CA keys"
 | |
| 	printf "@revoked sisyphus.example.com " ; cat rsa1_4.pub
 | |
| 	printf "@revoked sisyphus.example.com " ; cat ed25519_4.pub
 | |
| 	printf "@cert-authority prometheus.example.com " ; cat ecdsa_4.pub
 | |
| 	printf "@cert-authority *.example.com " ; cat dsa_4.pub
 | |
| 
 | |
| 	printf "\n"
 | |
| 	echo "# Some invalid lines"
 | |
| 	# Invalid marker
 | |
| 	printf "@what sisyphus.example.com " ; cat rsa1_1.pub
 | |
| 	# Key missing
 | |
| 	echo "sisyphus.example.com      "
 | |
| 	# Key blob missing
 | |
| 	echo "prometheus.example.com ssh-ed25519 "
 | |
| 	# Key blob truncated
 | |
| 	echo "sisyphus.example.com ssh-dsa AAAATgAAAAdz"
 | |
| 	# RSA1 key truncated after key bits
 | |
| 	echo "prometheus.example.com 1024   "
 | |
| 	# RSA1 key truncated after exponent
 | |
| 	echo "sisyphus.example.com 1024 65535   "
 | |
| 	# RSA1 key incorrect key bits
 | |
| 	printf "prometheus.example.com 1025 " ; cut -d' ' -f2- < rsa1_1.pub
 | |
| 	# Invalid type
 | |
| 	echo "sisyphus.example.com ssh-XXX AAAATgAAAAdzc2gtWFhYAAAAP0ZVQ0tPRkZGVUNLT0ZGRlVDS09GRkZVQ0tPRkZGVUNLT0ZGRlVDS09GRkZVQ0tPRkZGVUNLT0ZGRlVDS09GRg=="
 | |
| 	# Type mismatch with blob
 | |
| 	echo "prometheus.example.com ssh-rsa AAAATgAAAAdzc2gtWFhYAAAAP0ZVQ0tPRkZGVUNLT0ZGRlVDS09GRkZVQ0tPRkZGVUNLT0ZGRlVDS09GRkZVQ0tPRkZGVUNLT0ZGRlVDS09GRg=="
 | |
| ) > known_hosts
 | |
| 
 | |
| echo OK
 |