Skip to content

Commit 07d2424

Browse files
committed
Test various security key options
1 parent c16b90a commit 07d2424

File tree

57 files changed

+321
-154
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+321
-154
lines changed

lib/ssh_data/public_key/skecdsa.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,9 @@ def rfc4253
3737

3838
def verify(signed_data, signature, **opts)
3939
opts = DEFAULT_SK_VERIFY_OPTS.merge(opts)
40+
unknown_opts = opts.keys - DEFAULT_SK_VERIFY_OPTS.keys
41+
raise UnsupportedError, "Verification options #{unknown_opts.inspect} are not supported." unless unknown_opts.empty?
4042

41-
read = 0
4243
sig_algo, raw_sig, sk_flags, blob = build_signing_blob(application, signed_data, signature)
4344
self.class.check_algorithm!(sig_algo, curve)
4445

lib/ssh_data/public_key/sked25519.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ def rfc4253
2727
def verify(signed_data, signature, **opts)
2828
self.class.ed25519_gem_required!
2929
opts = DEFAULT_SK_VERIFY_OPTS.merge(opts)
30+
unknown_opts = opts.keys - DEFAULT_SK_VERIFY_OPTS.keys
31+
raise UnsupportedError, "Verification options #{unknown_opts.inspect} are not supported." unless unknown_opts.empty?
32+
3033
sig_algo, raw_sig, sk_flags, blob = build_signing_blob(application, signed_data, signature)
3134

3235
if sig_algo != self.class.algorithm_identifier

spec/fixtures/signatures/create-signatures.sh

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,18 @@ fi
1212
create_key_and_sign() {
1313
local alg=$1
1414
local keysize=$2
15-
local key=$filedir/$alg-$keysize.key
15+
local key=$filedir/$alg-$keysize-no-options.key
1616
yes | ssh-keygen -q -N "" -t $alg -b $keysize -C "" -f $key
17-
cat $message | ssh-keygen -Y sign -n file -f $key > $message.$alg-$keysize.sig
17+
cat $message | ssh-keygen -Y sign -n file -f $key > $message.$alg-$keysize-no-options.sig
18+
}
19+
20+
create_key_and_sign_options() {
21+
local alg=$1
22+
local keysize=$2
23+
local options=$3
24+
local key=$filedir/$alg-$keysize-$options.key
25+
yes | ssh-keygen -q -O $options -N "" -t $alg -b $keysize -C "" -f $key
26+
cat $message | ssh-keygen -Y sign -n file -f $key > $message.$alg-$keysize-$options.sig
1827
}
1928

2029
create_key_and_sign "rsa" 2048
@@ -30,6 +39,12 @@ if [[ $REPLY =~ ^[Yy]$ ]]
3039
then
3140
create_key_and_sign "ed25519-sk" 256
3241
create_key_and_sign "ecdsa-sk" 256
42+
43+
create_key_and_sign_options "ed25519-sk" 256 "no-touch-required"
44+
create_key_and_sign_options "ecdsa-sk" 256 "no-touch-required"
45+
46+
create_key_and_sign_options "ed25519-sk" 256 "verify-required"
47+
create_key_and_sign_options "ecdsa-sk" 256 "verify-required"
3348
fi
3449

3550
popd
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
-----BEGIN OPENSSH PRIVATE KEY-----
2+
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAaAAAABNlY2RzYS
3+
1zaGEyLW5pc3RwMjU2AAAACG5pc3RwMjU2AAAAQQTu7bLmPHQJ1883rJnsHgr3BqmdsFrv
4+
4c2U1NN6yGFCqhQQFAsPI2bn14Bm573qZ8Q4YGn++RdyGDXYK7WYEwnXAAAAoHNCEUZzQh
5+
FGAAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBO7tsuY8dAnXzzes
6+
meweCvcGqZ2wWu/hzZTU03rIYUKqFBAUCw8jZufXgGbnvepnxDhgaf75F3IYNdgrtZgTCd
7+
cAAAAhANbn8yJTkseH4y/zFcbMkSsxDpE+rb46YeyLEGh2KqVdAAAAAAECAwQFBgc=
8+
-----END OPENSSH PRIVATE KEY-----
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBO7tsuY8dAnXzzesmeweCvcGqZ2wWu/hzZTU03rIYUKqFBAUCw8jZufXgGbnvepnxDhgaf75F3IYNdgrtZgTCdc=

spec/fixtures/signatures/ecdsa-256.key

Lines changed: 0 additions & 8 deletions
This file was deleted.

spec/fixtures/signatures/ecdsa-256.key.pub

Lines changed: 0 additions & 1 deletion
This file was deleted.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
-----BEGIN OPENSSH PRIVATE KEY-----
2+
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAiAAAABNlY2RzYS
3+
1zaGEyLW5pc3RwMzg0AAAACG5pc3RwMzg0AAAAYQQ2IoaL8jZJ7QH7ROay4U0Q/8nz6/Dl
4+
/3alJnyyt2XrzzyPa8fK+ukG19oTggTLz13ypcJucrXvr8JqkmS5CFbQDAl5qJLJoCuSbt
5+
QeJWRLJb4X2gNYhjpcdkc35jqN/KIAAADQvMiFzrzIhc4AAAATZWNkc2Etc2hhMi1uaXN0
6+
cDM4NAAAAAhuaXN0cDM4NAAAAGEENiKGi/I2Se0B+0TmsuFNEP/J8+vw5f92pSZ8srdl68
7+
88j2vHyvrpBtfaE4IEy89d8qXCbnK176/CapJkuQhW0AwJeaiSyaArkm7UHiVkSyW+F9oD
8+
WIY6XHZHN+Y6jfyiAAAAMQDfv4v4pwrMXvwOR5jG6f81ecedO/oW+nhioCRwOyjaKO7iOS
9+
hu0xMdcAdtoE1twGIAAAAAAQIDBAUGBw==
10+
-----END OPENSSH PRIVATE KEY-----
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
ecdsa-sha2-nistp384 AAAAE2VjZHNhLXNoYTItbmlzdHAzODQAAAAIbmlzdHAzODQAAABhBDYihovyNkntAftE5rLhTRD/yfPr8OX/dqUmfLK3ZevPPI9rx8r66QbX2hOCBMvPXfKlwm5yte+vwmqSZLkIVtAMCXmoksmgK5Ju1B4lZEslvhfaA1iGOlx2RzfmOo38og==

spec/fixtures/signatures/ecdsa-384.key

Lines changed: 0 additions & 10 deletions
This file was deleted.

0 commit comments

Comments
 (0)