xref: /freebsd/contrib/libfido2/tools/test.sh (revision 2ccfa855b2fc331819953e3de1b1c15ce5b95a7e)
10afa8e06SEd Maste#!/bin/sh -ex
20afa8e06SEd Maste
3*2ccfa855SEd Maste# Copyright (c) 2021-2022 Yubico AB. All rights reserved.
40afa8e06SEd Maste# Use of this source code is governed by a BSD-style
50afa8e06SEd Maste# license that can be found in the LICENSE file.
6*2ccfa855SEd Maste# SPDX-License-Identifier: BSD-2-Clause
70afa8e06SEd Maste
80afa8e06SEd Maste# usage: ./test.sh "$(mktemp -d fido2test-XXXXXXXX)" device
90afa8e06SEd Maste
100afa8e06SEd Maste# Please note that this test script:
110afa8e06SEd Maste# - is incomplete;
120afa8e06SEd Maste# - assumes CTAP 2.1-like hmac-secret;
130afa8e06SEd Maste# - should pass as-is on a YubiKey with a PIN set;
140afa8e06SEd Maste# - may otherwise require set +e above;
150afa8e06SEd Maste# - can be executed with UV=1 to run additional UV tests;
163e696dfbSEd Maste# - was last tested on 2022-01-11 with firmware 5.4.3.
170afa8e06SEd Maste
180afa8e06SEd Mastecd "$1"
190afa8e06SEd MasteDEV="$2"
20*2ccfa855SEd MasteTYPE="es256"
21*2ccfa855SEd Maste#TYPE="es384"
22*2ccfa855SEd Maste#TYPE="eddsa"
230afa8e06SEd Maste
240afa8e06SEd Mastemake_cred() {
253e696dfbSEd Maste	sed /^$/d > cred_param << EOF
260afa8e06SEd Maste$(dd if=/dev/urandom bs=32 count=1 2>/dev/null | base64)
270afa8e06SEd Maste$1
280afa8e06SEd Mastesome user name
290afa8e06SEd Maste$(dd if=/dev/urandom bs=32 count=1 2>/dev/null | base64)
300afa8e06SEd MasteEOF
31*2ccfa855SEd Maste	fido2-cred -M $2 "${DEV}" "${TYPE}" > "$3" < cred_param
320afa8e06SEd Maste}
330afa8e06SEd Maste
340afa8e06SEd Masteverify_cred() {
35*2ccfa855SEd Maste	fido2-cred -V $1 "${TYPE}" > cred_out < "$2"
360afa8e06SEd Maste	head -1 cred_out > "$3"
370afa8e06SEd Maste	tail -n +2 cred_out > "$4"
380afa8e06SEd Maste}
390afa8e06SEd Maste
400afa8e06SEd Masteget_assert() {
413e696dfbSEd Maste	sed /^$/d > assert_param << EOF
420afa8e06SEd Maste$(dd if=/dev/urandom bs=32 count=1 2>/dev/null | base64)
430afa8e06SEd Maste$1
440afa8e06SEd Maste$(cat $3)
450afa8e06SEd Maste$(cat $4)
460afa8e06SEd MasteEOF
470afa8e06SEd Maste	fido2-assert -G $2 "${DEV}" > "$5" < assert_param
480afa8e06SEd Maste}
490afa8e06SEd Maste
500afa8e06SEd Masteverify_assert() {
51*2ccfa855SEd Maste	fido2-assert -V $1 "$2" "${TYPE}" < "$3"
520afa8e06SEd Maste}
530afa8e06SEd Maste
540afa8e06SEd Mastedd if=/dev/urandom bs=32 count=1 | base64 > hmac-salt
550afa8e06SEd Maste
560afa8e06SEd Maste# u2f
57*2ccfa855SEd Masteif [ "x${TYPE}" = "xes256" ]; then
580afa8e06SEd Maste	make_cred no.tld "-u" u2f
590afa8e06SEd Maste	! make_cred no.tld "-ru" /dev/null
600afa8e06SEd Maste	! make_cred no.tld "-uc1" /dev/null
610afa8e06SEd Maste	! make_cred no.tld "-uc2" /dev/null
620afa8e06SEd Maste	verify_cred "--"  u2f u2f-cred u2f-pubkey
630afa8e06SEd Maste	! verify_cred "-h" u2f /dev/null /dev/null
640afa8e06SEd Maste	! verify_cred "-v" u2f /dev/null /dev/null
650afa8e06SEd Maste	verify_cred "-c0" u2f /dev/null /dev/null
660afa8e06SEd Maste	! verify_cred "-c1" u2f /dev/null /dev/null
670afa8e06SEd Maste	! verify_cred "-c2" u2f /dev/null /dev/null
680afa8e06SEd Maste	! verify_cred "-c3" u2f /dev/null /dev/null
69*2ccfa855SEd Mastefi
700afa8e06SEd Maste
710afa8e06SEd Maste# wrap (non-resident)
720afa8e06SEd Mastemake_cred no.tld "--" wrap
730afa8e06SEd Masteverify_cred "--" wrap wrap-cred	wrap-pubkey
740afa8e06SEd Maste! verify_cred "-h" wrap	/dev/null /dev/null
750afa8e06SEd Maste! verify_cred "-v" wrap	/dev/null /dev/null
760afa8e06SEd Masteverify_cred "-c0" wrap /dev/null /dev/null
770afa8e06SEd Maste! verify_cred "-c1" wrap /dev/null /dev/null
780afa8e06SEd Maste! verify_cred "-c2" wrap /dev/null /dev/null
790afa8e06SEd Maste! verify_cred "-c3" wrap /dev/null /dev/null
800afa8e06SEd Maste
810afa8e06SEd Maste# wrap (non-resident) + hmac-secret
820afa8e06SEd Mastemake_cred no.tld "-h" wrap-hs
830afa8e06SEd Maste! verify_cred "--" wrap-hs /dev/null /dev/null
840afa8e06SEd Masteverify_cred "-h" wrap-hs wrap-hs-cred wrap-hs-pubkey
850afa8e06SEd Maste! verify_cred "-v" wrap-hs /dev/null /dev/null
860afa8e06SEd Masteverify_cred "-hc0" wrap-hs /dev/null /dev/null
870afa8e06SEd Maste! verify_cred "-c0" wrap-hs /dev/null /dev/null
880afa8e06SEd Maste! verify_cred "-c1" wrap-hs /dev/null /dev/null
890afa8e06SEd Maste! verify_cred "-c2" wrap-hs /dev/null /dev/null
900afa8e06SEd Maste! verify_cred "-c3" wrap-hs /dev/null /dev/null
910afa8e06SEd Maste
920afa8e06SEd Maste# resident
930afa8e06SEd Mastemake_cred no.tld "-r" rk
940afa8e06SEd Masteverify_cred "--" rk rk-cred rk-pubkey
950afa8e06SEd Maste! verify_cred "-h" rk /dev/null /dev/null
960afa8e06SEd Maste! verify_cred "-v" rk /dev/null /dev/null
970afa8e06SEd Masteverify_cred "-c0" rk /dev/null /dev/null
980afa8e06SEd Maste! verify_cred "-c1" rk /dev/null /dev/null
990afa8e06SEd Maste! verify_cred "-c2" rk /dev/null /dev/null
1000afa8e06SEd Maste! verify_cred "-c3" rk /dev/null /dev/null
1010afa8e06SEd Maste
1020afa8e06SEd Maste# resident + hmac-secret
1030afa8e06SEd Mastemake_cred no.tld "-hr" rk-hs
1040afa8e06SEd Maste! verify_cred  "--" rk-hs rk-hs-cred rk-hs-pubkey
1050afa8e06SEd Masteverify_cred "-h" rk-hs /dev/null /dev/null
1060afa8e06SEd Maste! verify_cred "-v" rk-hs /dev/null /dev/null
1070afa8e06SEd Masteverify_cred "-hc0" rk-hs /dev/null /dev/null
1080afa8e06SEd Maste! verify_cred "-c0" rk-hs /dev/null /dev/null
1090afa8e06SEd Maste! verify_cred "-c1" rk-hs /dev/null /dev/null
1100afa8e06SEd Maste! verify_cred "-c2" rk-hs /dev/null /dev/null
1110afa8e06SEd Maste! verify_cred "-c3" rk-hs /dev/null /dev/null
1120afa8e06SEd Maste
1130afa8e06SEd Maste# u2f
114*2ccfa855SEd Masteif [ "x${TYPE}" = "xes256" ]; then
1150afa8e06SEd Maste	get_assert no.tld "-u" u2f-cred /dev/null u2f-assert
1160afa8e06SEd Maste	! get_assert no.tld "-u -t up=false" u2f-cred /dev/null /dev/null
1170afa8e06SEd Maste	verify_assert "--"  u2f-pubkey u2f-assert
1180afa8e06SEd Maste	verify_assert "-p"  u2f-pubkey u2f-assert
119*2ccfa855SEd Mastefi
1200afa8e06SEd Maste
1210afa8e06SEd Maste# wrap (non-resident)
1220afa8e06SEd Masteget_assert no.tld "--" wrap-cred /dev/null wrap-assert
1230afa8e06SEd Masteverify_assert "--" wrap-pubkey wrap-assert
1240afa8e06SEd Masteget_assert no.tld "-t pin=true" wrap-cred /dev/null wrap-assert
1250afa8e06SEd Masteverify_assert "--" wrap-pubkey wrap-assert
1260afa8e06SEd Masteverify_assert "-v" wrap-pubkey wrap-assert
1270afa8e06SEd Masteget_assert no.tld "-t pin=false" wrap-cred /dev/null wrap-assert
1280afa8e06SEd Masteverify_assert "--" wrap-pubkey wrap-assert
1290afa8e06SEd Masteget_assert no.tld "-t up=true" wrap-cred /dev/null wrap-assert
1300afa8e06SEd Masteverify_assert "-p" wrap-pubkey wrap-assert
1310afa8e06SEd Masteget_assert no.tld "-t up=true -t pin=true" wrap-cred /dev/null wrap-assert
1320afa8e06SEd Masteverify_assert "--" wrap-pubkey wrap-assert
1330afa8e06SEd Masteverify_assert "-p" wrap-pubkey wrap-assert
1340afa8e06SEd Masteverify_assert "-v" wrap-pubkey wrap-assert
1350afa8e06SEd Masteverify_assert "-pv" wrap-pubkey wrap-assert
1360afa8e06SEd Masteget_assert no.tld "-t up=true -t pin=false" wrap-cred /dev/null wrap-assert
1370afa8e06SEd Masteverify_assert "--" wrap-pubkey wrap-assert
1380afa8e06SEd Masteverify_assert "-p" wrap-pubkey wrap-assert
1390afa8e06SEd Masteget_assert no.tld "-t up=false" wrap-cred /dev/null wrap-assert
1400afa8e06SEd Masteverify_assert "--" wrap-pubkey wrap-assert
1410afa8e06SEd Maste! verify_assert "-p" wrap-pubkey wrap-assert
1420afa8e06SEd Masteget_assert no.tld "-t up=false -t pin=true" wrap-cred /dev/null wrap-assert
1430afa8e06SEd Maste! verify_assert "-p" wrap-pubkey wrap-assert
1440afa8e06SEd Masteverify_assert "-v" wrap-pubkey wrap-assert
1450afa8e06SEd Maste! verify_assert "-pv" wrap-pubkey wrap-assert
1460afa8e06SEd Masteget_assert no.tld "-t up=false -t pin=false" wrap-cred /dev/null wrap-assert
1470afa8e06SEd Maste! verify_assert "-p" wrap-pubkey wrap-assert
1480afa8e06SEd Masteget_assert no.tld "-h" wrap-cred hmac-salt wrap-assert
1490afa8e06SEd Maste! verify_assert "--" wrap-pubkey wrap-assert
1500afa8e06SEd Masteverify_assert "-h" wrap-pubkey wrap-assert
1510afa8e06SEd Masteget_assert no.tld "-h -t pin=true" wrap-cred hmac-salt wrap-assert
1520afa8e06SEd Maste! verify_assert "--" wrap-pubkey wrap-assert
1530afa8e06SEd Masteverify_assert "-h" wrap-pubkey wrap-assert
1540afa8e06SEd Masteverify_assert "-hv" wrap-pubkey wrap-assert
1550afa8e06SEd Masteget_assert no.tld "-h -t pin=false" wrap-cred hmac-salt wrap-assert
1560afa8e06SEd Maste! verify_assert "--" wrap-pubkey wrap-assert
1570afa8e06SEd Masteverify_assert "-h" wrap-pubkey wrap-assert
1580afa8e06SEd Masteget_assert no.tld "-h -t up=true" wrap-cred hmac-salt wrap-assert
1590afa8e06SEd Maste! verify_assert "--" wrap-pubkey wrap-assert
1600afa8e06SEd Masteverify_assert "-h" wrap-pubkey wrap-assert
1610afa8e06SEd Masteverify_assert "-hp" wrap-pubkey wrap-assert
1620afa8e06SEd Masteget_assert no.tld "-h -t up=true -t pin=true" wrap-cred hmac-salt wrap-assert
1630afa8e06SEd Maste! verify_assert "--" wrap-pubkey wrap-assert
1640afa8e06SEd Masteverify_assert "-h" wrap-pubkey wrap-assert
1650afa8e06SEd Masteverify_assert "-hp" wrap-pubkey wrap-assert
1660afa8e06SEd Masteverify_assert "-hv" wrap-pubkey wrap-assert
1670afa8e06SEd Masteverify_assert "-hpv" wrap-pubkey wrap-assert
1680afa8e06SEd Masteget_assert no.tld "-h -t up=true -t pin=false" wrap-cred hmac-salt wrap-assert
1690afa8e06SEd Maste! verify_assert "--" wrap-pubkey wrap-assert
1700afa8e06SEd Masteverify_assert "-h" wrap-pubkey wrap-assert
1710afa8e06SEd Masteverify_assert "-hp" wrap-pubkey wrap-assert
1720afa8e06SEd Maste! get_assert no.tld "-h -t up=false" wrap-cred hmac-salt wrap-assert
1730afa8e06SEd Maste! get_assert no.tld "-h -t up=false -t pin=true" wrap-cred hmac-salt wrap-assert
1740afa8e06SEd Maste! get_assert no.tld "-h -t up=false -t pin=false" wrap-cred hmac-salt wrap-assert
1750afa8e06SEd Maste
1760afa8e06SEd Masteif [ "x${UV}" != "x" ]; then
1770afa8e06SEd Maste	get_assert no.tld "-t uv=true" wrap-cred /dev/null wrap-assert
1780afa8e06SEd Maste	verify_assert "-v" wrap-pubkey wrap-assert
1790afa8e06SEd Maste	get_assert no.tld "-t uv=true -t pin=true" wrap-cred /dev/null wrap-assert
1800afa8e06SEd Maste	verify_assert "-v" wrap-pubkey wrap-assert
1810afa8e06SEd Maste	get_assert no.tld "-t uv=true -t pin=false" wrap-cred /dev/null wrap-assert
1820afa8e06SEd Maste	verify_assert "-v" wrap-pubkey wrap-assert
1830afa8e06SEd Maste	get_assert no.tld "-t uv=false" wrap-cred /dev/null wrap-assert
1840afa8e06SEd Maste	verify_assert "--" wrap-pubkey wrap-assert
1850afa8e06SEd Maste	get_assert no.tld "-t uv=false -t pin=true" wrap-cred /dev/null wrap-assert
1860afa8e06SEd Maste	verify_assert "-v" wrap-pubkey wrap-assert
1870afa8e06SEd Maste	get_assert no.tld "-t uv=false -t pin=false" wrap-cred /dev/null wrap-assert
1880afa8e06SEd Maste	verify_assert "--" wrap-pubkey wrap-assert
1890afa8e06SEd Maste	get_assert no.tld "-t up=true -t uv=true" wrap-cred /dev/null wrap-assert
1900afa8e06SEd Maste	verify_assert "-pv" wrap-pubkey wrap-assert
1910afa8e06SEd Maste	get_assert no.tld "-t up=true -t uv=true -t pin=true" wrap-cred /dev/null wrap-assert
1920afa8e06SEd Maste	verify_assert "-pv" wrap-pubkey wrap-assert
1930afa8e06SEd Maste	get_assert no.tld "-t up=true -t uv=true -t pin=false" wrap-cred /dev/null wrap-assert
1940afa8e06SEd Maste	verify_assert "-pv" wrap-pubkey wrap-assert
1950afa8e06SEd Maste	get_assert no.tld "-t up=true -t uv=false" wrap-cred /dev/null wrap-assert
1960afa8e06SEd Maste	verify_assert "-p" wrap-pubkey wrap-assert
1970afa8e06SEd Maste	get_assert no.tld "-t up=true -t uv=false -t pin=true" wrap-cred /dev/null wrap-assert
1980afa8e06SEd Maste	verify_assert "-pv" wrap-pubkey wrap-assert
1990afa8e06SEd Maste	get_assert no.tld "-t up=true -t uv=false -t pin=false" wrap-cred /dev/null wrap-assert
2000afa8e06SEd Maste	verify_assert "-p" wrap-pubkey wrap-assert
2010afa8e06SEd Maste	get_assert no.tld "-t up=false -t uv=true" wrap-cred /dev/null wrap-assert
2020afa8e06SEd Maste	verify_assert "-v" wrap-pubkey wrap-assert
2030afa8e06SEd Maste	get_assert no.tld "-t up=false -t uv=true -t pin=true" wrap-cred /dev/null wrap-assert
2040afa8e06SEd Maste	verify_assert "-v" wrap-pubkey wrap-assert
2050afa8e06SEd Maste	get_assert no.tld "-t up=false -t uv=true -t pin=false" wrap-cred /dev/null wrap-assert
2060afa8e06SEd Maste	verify_assert "-v" wrap-pubkey wrap-assert
2070afa8e06SEd Maste	get_assert no.tld "-t up=false -t uv=false" wrap-cred /dev/null wrap-assert
2080afa8e06SEd Maste	! verify_assert "--" wrap-pubkey wrap-assert
2090afa8e06SEd Maste	get_assert no.tld "-t up=false -t uv=false -t pin=true" wrap-cred /dev/null wrap-assert
2100afa8e06SEd Maste	verify_assert "-v" wrap-pubkey wrap-assert
2110afa8e06SEd Maste	get_assert no.tld "-t up=false -t uv=false -t pin=false" wrap-cred /dev/null wrap-assert
2120afa8e06SEd Maste	! verify_assert "--" wrap-pubkey wrap-assert
2130afa8e06SEd Maste	get_assert no.tld "-h -t uv=true" wrap-cred hmac-salt wrap-assert
2140afa8e06SEd Maste	verify_assert "-hv" wrap-pubkey wrap-assert
2150afa8e06SEd Maste	get_assert no.tld "-h -t uv=true -t pin=true" wrap-cred hmac-salt wrap-assert
2160afa8e06SEd Maste	verify_assert "-hv" wrap-pubkey wrap-assert
2170afa8e06SEd Maste	get_assert no.tld "-h -t uv=true -t pin=false" wrap-cred hmac-salt wrap-assert
2180afa8e06SEd Maste	verify_assert "-hv" wrap-pubkey wrap-assert
2190afa8e06SEd Maste	get_assert no.tld "-h -t uv=false" wrap-cred hmac-salt wrap-assert
2200afa8e06SEd Maste	verify_assert "-h" wrap-pubkey wrap-assert
2210afa8e06SEd Maste	get_assert no.tld "-h -t uv=false -t pin=true" wrap-cred hmac-salt wrap-assert
2220afa8e06SEd Maste	verify_assert "-hv" wrap-pubkey wrap-assert
2230afa8e06SEd Maste	get_assert no.tld "-h -t uv=false -t pin=false" wrap-cred hmac-salt wrap-assert
2240afa8e06SEd Maste	verify_assert "-h" wrap-pubkey wrap-assert
2250afa8e06SEd Maste	get_assert no.tld "-h -t up=true -t uv=true" wrap-cred hmac-salt wrap-assert
2260afa8e06SEd Maste	verify_assert "-hpv" wrap-pubkey wrap-assert
2270afa8e06SEd Maste	get_assert no.tld "-h -t up=true -t uv=true -t pin=true" wrap-cred hmac-salt wrap-assert
2280afa8e06SEd Maste	verify_assert "-hpv" wrap-pubkey wrap-assert
2290afa8e06SEd Maste	get_assert no.tld "-h -t up=true -t uv=true -t pin=false" wrap-cred hmac-salt wrap-assert
2300afa8e06SEd Maste	verify_assert "-hpv" wrap-pubkey wrap-assert
2310afa8e06SEd Maste	get_assert no.tld "-h -t up=true -t uv=false" wrap-cred hmac-salt wrap-assert
2320afa8e06SEd Maste	verify_assert "-hp" wrap-pubkey wrap-assert
2330afa8e06SEd Maste	get_assert no.tld "-h -t up=true -t uv=false -t pin=true" wrap-cred hmac-salt wrap-assert
2340afa8e06SEd Maste	verify_assert "-hpv" wrap-pubkey wrap-assert
2350afa8e06SEd Maste	get_assert no.tld "-h -t up=true -t uv=false -t pin=false" wrap-cred hmac-salt wrap-assert
2360afa8e06SEd Maste	verify_assert "-hp" wrap-pubkey wrap-assert
2370afa8e06SEd Maste	! get_assert no.tld "-h -t up=false -t uv=true" wrap-cred hmac-salt wrap-assert
2380afa8e06SEd Maste	! get_assert no.tld "-h -t up=false -t uv=true -t pin=true" wrap-cred hmac-salt wrap-assert
2390afa8e06SEd Maste	! get_assert no.tld "-h -t up=false -t uv=true -t pin=false" wrap-cred hmac-salt wrap-assert
2400afa8e06SEd Maste	! get_assert no.tld "-h -t up=false -t uv=false" wrap-cred hmac-salt wrap-assert
2410afa8e06SEd Maste	! get_assert no.tld "-h -t up=false -t uv=false -t pin=true" wrap-cred hmac-salt wrap-assert
2420afa8e06SEd Maste	! get_assert no.tld "-h -t up=false -t uv=false -t pin=false" wrap-cred hmac-salt wrap-assert
2430afa8e06SEd Mastefi
2440afa8e06SEd Maste
2450afa8e06SEd Maste# resident
2460afa8e06SEd Masteget_assert no.tld "-r" /dev/null /dev/null wrap-assert
2470afa8e06SEd Masteget_assert no.tld "-r -t pin=true" /dev/null /dev/null wrap-assert
2480afa8e06SEd Masteget_assert no.tld "-r -t pin=false" /dev/null /dev/null wrap-assert
2490afa8e06SEd Masteget_assert no.tld "-r -t up=true" /dev/null /dev/null wrap-assert
2500afa8e06SEd Masteget_assert no.tld "-r -t up=true -t pin=true" /dev/null /dev/null wrap-assert
2510afa8e06SEd Masteget_assert no.tld "-r -t up=true -t pin=false" /dev/null /dev/null wrap-assert
2520afa8e06SEd Masteget_assert no.tld "-r -t up=false" /dev/null /dev/null wrap-assert
2530afa8e06SEd Masteget_assert no.tld "-r -t up=false -t pin=true" /dev/null /dev/null wrap-assert
2540afa8e06SEd Masteget_assert no.tld "-r -t up=false -t pin=false" /dev/null /dev/null wrap-assert
2550afa8e06SEd Masteget_assert no.tld "-r -h" /dev/null hmac-salt wrap-assert
2560afa8e06SEd Masteget_assert no.tld "-r -h -t pin=true" /dev/null hmac-salt wrap-assert
2570afa8e06SEd Masteget_assert no.tld "-r -h -t pin=false" /dev/null hmac-salt wrap-assert
2580afa8e06SEd Masteget_assert no.tld "-r -h -t up=true" /dev/null hmac-salt wrap-assert
2590afa8e06SEd Masteget_assert no.tld "-r -h -t up=true -t pin=true" /dev/null hmac-salt wrap-assert
2600afa8e06SEd Masteget_assert no.tld "-r -h -t up=true -t pin=false" /dev/null hmac-salt wrap-assert
2610afa8e06SEd Maste! get_assert no.tld "-r -h -t up=false" /dev/null hmac-salt wrap-assert
2620afa8e06SEd Maste! get_assert no.tld "-r -h -t up=false -t pin=true" /dev/null hmac-salt wrap-assert
2630afa8e06SEd Maste! get_assert no.tld "-r -h -t up=false -t pin=false" /dev/null hmac-salt wrap-assert
2640afa8e06SEd Maste
2650afa8e06SEd Masteif [ "x${UV}" != "x" ]; then
2660afa8e06SEd Maste	get_assert no.tld "-r -t uv=true" /dev/null /dev/null wrap-assert
2670afa8e06SEd Maste	get_assert no.tld "-r -t uv=true -t pin=true" /dev/null /dev/null wrap-assert
2680afa8e06SEd Maste	get_assert no.tld "-r -t uv=true -t pin=false" /dev/null /dev/null wrap-assert
2690afa8e06SEd Maste	get_assert no.tld "-r -t uv=false" /dev/null /dev/null wrap-assert
2700afa8e06SEd Maste	get_assert no.tld "-r -t uv=false -t pin=true" /dev/null /dev/null wrap-assert
2710afa8e06SEd Maste	get_assert no.tld "-r -t uv=false -t pin=false" /dev/null /dev/null wrap-assert
2720afa8e06SEd Maste	get_assert no.tld "-r -t up=true -t uv=true" /dev/null /dev/null wrap-assert
2730afa8e06SEd Maste	get_assert no.tld "-r -t up=true -t uv=true -t pin=true" /dev/null /dev/null wrap-assert
2740afa8e06SEd Maste	get_assert no.tld "-r -t up=true -t uv=true -t pin=false" /dev/null /dev/null wrap-assert
2750afa8e06SEd Maste	get_assert no.tld "-r -t up=true -t uv=false" /dev/null /dev/null wrap-assert
2760afa8e06SEd Maste	get_assert no.tld "-r -t up=true -t uv=false -t pin=true" /dev/null /dev/null wrap-assert
2770afa8e06SEd Maste	get_assert no.tld "-r -t up=true -t uv=false -t pin=false" /dev/null /dev/null wrap-assert
2780afa8e06SEd Maste	get_assert no.tld "-r -t up=false -t uv=true" /dev/null /dev/null wrap-assert
2790afa8e06SEd Maste	get_assert no.tld "-r -t up=false -t uv=true -t pin=true" /dev/null /dev/null wrap-assert
2800afa8e06SEd Maste	get_assert no.tld "-r -t up=false -t uv=true -t pin=false" /dev/null /dev/null wrap-assert
2810afa8e06SEd Maste	get_assert no.tld "-r -t up=false -t uv=false" /dev/null /dev/null wrap-assert
2820afa8e06SEd Maste	get_assert no.tld "-r -t up=false -t uv=false -t pin=true" /dev/null /dev/null wrap-assert
2830afa8e06SEd Maste	get_assert no.tld "-r -t up=false -t uv=false -t pin=false" /dev/null /dev/null wrap-assert
2840afa8e06SEd Maste	get_assert no.tld "-r -h -t uv=true" /dev/null hmac-salt wrap-assert
2850afa8e06SEd Maste	get_assert no.tld "-r -h -t uv=true -t pin=true" /dev/null hmac-salt wrap-assert
2860afa8e06SEd Maste	get_assert no.tld "-r -h -t uv=true -t pin=false" /dev/null hmac-salt wrap-assert
2870afa8e06SEd Maste	get_assert no.tld "-r -h -t uv=false" /dev/null hmac-salt wrap-assert
2880afa8e06SEd Maste	get_assert no.tld "-r -h -t uv=false -t pin=true" /dev/null hmac-salt wrap-assert
2890afa8e06SEd Maste	get_assert no.tld "-r -h -t uv=false -t pin=false" /dev/null hmac-salt wrap-assert
2900afa8e06SEd Maste	get_assert no.tld "-r -h -t up=true -t uv=true" /dev/null hmac-salt wrap-assert
2910afa8e06SEd Maste	get_assert no.tld "-r -h -t up=true -t uv=true -t pin=true" /dev/null hmac-salt wrap-assert
2920afa8e06SEd Maste	get_assert no.tld "-r -h -t up=true -t uv=true -t pin=false" /dev/null hmac-salt wrap-assert
2930afa8e06SEd Maste	get_assert no.tld "-r -h -t up=true -t uv=false" /dev/null hmac-salt wrap-assert
2940afa8e06SEd Maste	get_assert no.tld "-r -h -t up=true -t uv=false -t pin=true" /dev/null hmac-salt wrap-assert
2950afa8e06SEd Maste	get_assert no.tld "-r -h -t up=true -t uv=false -t pin=false" /dev/null hmac-salt wrap-assert
2960afa8e06SEd Maste	! get_assert no.tld "-r -h -t up=false -t uv=true" /dev/null hmac-salt wrap-assert
2970afa8e06SEd Maste	! get_assert no.tld "-r -h -t up=false -t uv=true -t pin=true" /dev/null hmac-salt wrap-assert
2980afa8e06SEd Maste	! get_assert no.tld "-r -h -t up=false -t uv=true -t pin=false" /dev/null hmac-salt wrap-assert
2990afa8e06SEd Maste	! get_assert no.tld "-r -h -t up=false -t uv=false" /dev/null hmac-salt wrap-assert
3000afa8e06SEd Maste	! get_assert no.tld "-r -h -t up=false -t uv=false -t pin=true" /dev/null hmac-salt wrap-assert
3010afa8e06SEd Maste	! get_assert no.tld "-r -h -t up=false -t uv=false -t pin=false" /dev/null hmac-salt wrap-assert
3020afa8e06SEd Mastefi
3030afa8e06SEd Maste
3040afa8e06SEd Masteexit 0
305