blob: 4d772bbf84a15bb9cbcea2cc2fc1c450d761a4b4 [file] [log] [blame] [edit]
#!/bin/bash
. ../../../prepare.inc.sh
. ../../../toolbox.inc.sh
# ---- do the actual testing ----
result=PASS
echo "++++ BEGINNING TEST" >$OUTPUTFILE
# create a keyring and attach it to the session keyring
marker "ADD KEYRING"
create_keyring wibble @s
expect_keyid keyringid
# create a key and attach it to the new keyring
marker "ADD KEY"
create_key user lizard gizzard $keyringid
expect_keyid keyid
# check that we can list the keyring
marker "LIST KEYRING"
list_keyring $keyringid
expect_keyring_rlist ringlist $keyid
# check we can read the key description
marker "CHECK VALIDATE KEY"
describe_key $keyid
expect_key_rdesc kdesc 'user@.*@lizard'
# check we can read the key's payload
marker "CHECK READ PAYLOAD"
print_key $keyid
expect_payload kpayload "gizzard"
# set a silly timeout on the key
marker "SET BIG TIMEOUT"
timeout_key $keyid 10000000
# check we can still read the key's payload
marker "CHECK READ PAYLOAD 2"
print_key $keyid
expect_payload kpayload "gizzard"
# set a small timeout on the key
marker "SET SMALL TIMEOUT"
timeout_key $keyid 2
marker "WAIT FOR TIMEOUT"
sleep_at_least 2
# check the key has expired
marker "CHECK NO READ PAYLOAD"
print_key --fail $keyid
if kernel_at_or_later_than 3.8 && kernel_older_than 3.13 &&
! rhel7_kernel_at_or_later_than 3.10.0-42.el7
then
expect_error ENOKEY
else
expect_error EKEYEXPIRED
fi
# check revocation doesn't work
marker "CHECK NO REVOKE KEY"
revoke_key --fail $keyid
expect_error EKEYEXPIRED
# check timeout setting doesn't work
marker "CHECK NO TIMEOUT KEY"
timeout_key --fail $keyid 20
expect_error EKEYEXPIRED
# remove the key we added
marker "UNLINK KEY"
unlink_key $keyid $keyringid
###############################################################################
# create a key and attach it to the new keyring
marker "ADD KEY"
create_key user lizard gizzard $keyringid
expect_keyid keyid
# set a silly timeout on the key
marker "SET BIG TIMEOUT"
timeout_key $keyid 10000000
# revoke the key
marker "REVOKE KEY"
revoke_key $keyid
# check we can no longer set the key's timeout
marker "CHECK NO SET KEY TIMEOUT"
timeout_key --fail $keyid 20
expect_error EKEYREVOKED
# remove the key we added
marker "UNLINK KEY"
unlink_key $keyid $keyringid
# revoke the keyring
marker "TIMEOUT KEYRING"
timeout_key $keyringid 1
marker "WAIT FOR KEYRING TIMEOUT"
sleep_at_least 1
# listing the session keyring should fail
marker "CHECK NO LIST SESSION KEYRING"
list_keyring --fail $keyringid
if kernel_at_or_later_than 3.8 && kernel_older_than 3.13 &&
! rhel7_kernel_at_or_later_than 3.10.0-42.el7
then
expect_error ENOKEY
else
expect_error EKEYEXPIRED
fi
# validating the new keyring's name and type should also fail
marker "CHECK NO VALIDATE KEYRING"
describe_key --fail $keyringid
expect_error EKEYEXPIRED
# remove the keyring we added
marker "UNLINK KEYRING"
unlink_key $keyringid @s
echo "++++ FINISHED TEST: $result" >>$OUTPUTFILE
# --- then report the results in the database ---
toolbox_report_result $TEST $result