1 1.1.1.2 christos #!/bin/sh -ex 2 1.1.1.2 christos 3 1.1.1.4 christos # Copyright (c) 2021-2022 Yubico AB. All rights reserved. 4 1.1 christos # Use of this source code is governed by a BSD-style 5 1.1 christos # license that can be found in the LICENSE file. 6 1.1.1.4 christos # SPDX-License-Identifier: BSD-2-Clause 7 1.1 christos 8 1.1.1.2 christos # usage: ./test.sh "$(mktemp -d fido2test-XXXXXXXX)" device 9 1.1 christos 10 1.1.1.2 christos # Please note that this test script: 11 1.1.1.2 christos # - is incomplete; 12 1.1.1.2 christos # - assumes CTAP 2.1-like hmac-secret; 13 1.1.1.2 christos # - should pass as-is on a YubiKey with a PIN set; 14 1.1.1.2 christos # - may otherwise require set +e above; 15 1.1.1.2 christos # - can be executed with UV=1 to run additional UV tests; 16 1.1.1.5 christos # - was last tested on 2024-06-15 with firmware 5.7.1. 17 1.1.1.2 christos 18 1.1.1.2 christos cd "$1" 19 1.1.1.2 christos DEV="$2" 20 1.1.1.4 christos TYPE="es256" 21 1.1.1.4 christos #TYPE="es384" 22 1.1.1.4 christos #TYPE="eddsa" 23 1.1.1.2 christos 24 1.1.1.2 christos make_cred() { 25 1.1.1.4 christos sed /^$/d > cred_param << EOF 26 1.1.1.2 christos $(dd if=/dev/urandom bs=32 count=1 2>/dev/null | base64) 27 1.1.1.2 christos $1 28 1.1.1.2 christos some user name 29 1.1.1.2 christos $(dd if=/dev/urandom bs=32 count=1 2>/dev/null | base64) 30 1.1.1.2 christos EOF 31 1.1.1.5 christos fido2-cred -M "$2" "${DEV}" "${TYPE}" > "$3" < cred_param 32 1.1.1.2 christos } 33 1.1 christos 34 1.1.1.2 christos verify_cred() { 35 1.1.1.5 christos fido2-cred -V "$1" "${TYPE}" > cred_out < "$2" || return 1 36 1.1.1.2 christos head -1 cred_out > "$3" 37 1.1.1.2 christos tail -n +2 cred_out > "$4" 38 1.1.1.2 christos } 39 1.1 christos 40 1.1.1.2 christos get_assert() { 41 1.1.1.4 christos sed /^$/d > assert_param << EOF 42 1.1.1.2 christos $(dd if=/dev/urandom bs=32 count=1 2>/dev/null | base64) 43 1.1.1.2 christos $1 44 1.1.1.5 christos $(cat "$3") 45 1.1.1.5 christos $(cat "$4") 46 1.1.1.2 christos EOF 47 1.1.1.5 christos # we want to expand $2 48 1.1.1.5 christos # shellcheck disable=SC2086 49 1.1.1.2 christos fido2-assert -G $2 "${DEV}" > "$5" < assert_param 50 1.1 christos } 51 1.1 christos 52 1.1.1.2 christos verify_assert() { 53 1.1.1.5 christos fido2-assert -V "$1" "$2" "${TYPE}" < "$3" 54 1.1.1.2 christos } 55 1.1.1.2 christos 56 1.1.1.2 christos dd if=/dev/urandom bs=32 count=1 | base64 > hmac-salt 57 1.1.1.2 christos 58 1.1.1.2 christos # u2f 59 1.1.1.5 christos if [ "${TYPE}" = "es256" ]; then 60 1.1.1.4 christos make_cred no.tld "-u" u2f 61 1.1.1.5 christos make_cred no.tld "-ru" /dev/null && exit 1 62 1.1.1.5 christos make_cred no.tld "-uc1" /dev/null && exit 1 63 1.1.1.5 christos make_cred no.tld "-uc2" /dev/null && exit 1 64 1.1.1.4 christos verify_cred "--" u2f u2f-cred u2f-pubkey 65 1.1.1.5 christos verify_cred "-h" u2f /dev/null /dev/null && exit 1 66 1.1.1.5 christos verify_cred "-v" u2f /dev/null /dev/null && exit 1 67 1.1.1.4 christos verify_cred "-c0" u2f /dev/null /dev/null 68 1.1.1.5 christos verify_cred "-c1" u2f /dev/null /dev/null && exit 1 69 1.1.1.5 christos verify_cred "-c2" u2f /dev/null /dev/null && exit 1 70 1.1.1.5 christos verify_cred "-c3" u2f /dev/null /dev/null && exit 1 71 1.1.1.4 christos fi 72 1.1.1.2 christos 73 1.1.1.2 christos # wrap (non-resident) 74 1.1.1.2 christos make_cred no.tld "--" wrap 75 1.1.1.5 christos verify_cred "--" wrap wrap-cred wrap-pubkey 76 1.1.1.5 christos verify_cred "-h" wrap /dev/null /dev/null && exit 1 77 1.1.1.5 christos verify_cred "-v" wrap /dev/null /dev/null && exit 1 78 1.1.1.2 christos verify_cred "-c0" wrap /dev/null /dev/null 79 1.1.1.5 christos verify_cred "-c1" wrap /dev/null /dev/null && exit 1 80 1.1.1.5 christos verify_cred "-c2" wrap /dev/null /dev/null && exit 1 81 1.1.1.5 christos verify_cred "-c3" wrap /dev/null /dev/null && exit 1 82 1.1.1.2 christos 83 1.1.1.2 christos # wrap (non-resident) + hmac-secret 84 1.1.1.2 christos make_cred no.tld "-h" wrap-hs 85 1.1.1.5 christos verify_cred "--" wrap-hs /dev/null /dev/null && exit 1 86 1.1.1.2 christos verify_cred "-h" wrap-hs wrap-hs-cred wrap-hs-pubkey 87 1.1.1.5 christos verify_cred "-v" wrap-hs /dev/null /dev/null && exit 1 88 1.1.1.5 christos verify_cred "-hv" wrap-hs /dev/null /dev/null && exit 1 89 1.1.1.2 christos verify_cred "-hc0" wrap-hs /dev/null /dev/null 90 1.1.1.5 christos verify_cred "-c0" wrap-hs /dev/null /dev/null && exit 1 91 1.1.1.5 christos verify_cred "-c1" wrap-hs /dev/null /dev/null && exit 1 92 1.1.1.5 christos verify_cred "-c2" wrap-hs /dev/null /dev/null && exit 1 93 1.1.1.5 christos verify_cred "-c3" wrap-hs /dev/null /dev/null && exit 1 94 1.1.1.2 christos 95 1.1.1.2 christos # resident 96 1.1.1.2 christos make_cred no.tld "-r" rk 97 1.1.1.2 christos verify_cred "--" rk rk-cred rk-pubkey 98 1.1.1.5 christos verify_cred "-h" rk /dev/null /dev/null && exit 1 99 1.1.1.5 christos verify_cred "-v" rk /dev/null /dev/null 100 1.1.1.5 christos verify_cred "-hv" rk /dev/null /dev/null && exit 1 101 1.1.1.2 christos verify_cred "-c0" rk /dev/null /dev/null 102 1.1.1.5 christos verify_cred "-c1" rk /dev/null /dev/null && exit 1 103 1.1.1.5 christos verify_cred "-c2" rk /dev/null /dev/null && exit 1 104 1.1.1.5 christos verify_cred "-c3" rk /dev/null /dev/null && exit 1 105 1.1.1.2 christos 106 1.1.1.2 christos # resident + hmac-secret 107 1.1.1.2 christos make_cred no.tld "-hr" rk-hs 108 1.1.1.5 christos verify_cred "--" rk-hs rk-hs-cred rk-hs-pubkey && exit 1 109 1.1.1.2 christos verify_cred "-h" rk-hs /dev/null /dev/null 110 1.1.1.5 christos verify_cred "-v" rk-hs /dev/null /dev/null && exit 1 111 1.1.1.5 christos verify_cred "-hv" rk-hs /dev/null /dev/null 112 1.1.1.2 christos verify_cred "-hc0" rk-hs /dev/null /dev/null 113 1.1.1.5 christos verify_cred "-c0" rk-hs /dev/null /dev/null && exit 1 114 1.1.1.5 christos verify_cred "-c1" rk-hs /dev/null /dev/null && exit 1 115 1.1.1.5 christos verify_cred "-c2" rk-hs /dev/null /dev/null && exit 1 116 1.1.1.5 christos verify_cred "-c3" rk-hs /dev/null /dev/null && exit 1 117 1.1.1.2 christos 118 1.1.1.2 christos # u2f 119 1.1.1.5 christos if [ "${TYPE}" = "es256" ]; then 120 1.1.1.4 christos get_assert no.tld "-u" u2f-cred /dev/null u2f-assert 121 1.1.1.5 christos get_assert no.tld "-u -t up=false" u2f-cred /dev/null /dev/null && exit 1 122 1.1.1.4 christos verify_assert "--" u2f-pubkey u2f-assert 123 1.1.1.4 christos verify_assert "-p" u2f-pubkey u2f-assert 124 1.1.1.4 christos fi 125 1.1.1.2 christos 126 1.1.1.2 christos # wrap (non-resident) 127 1.1.1.2 christos get_assert no.tld "--" wrap-cred /dev/null wrap-assert 128 1.1.1.2 christos verify_assert "--" wrap-pubkey wrap-assert 129 1.1.1.2 christos get_assert no.tld "-t pin=true" wrap-cred /dev/null wrap-assert 130 1.1.1.2 christos verify_assert "--" wrap-pubkey wrap-assert 131 1.1.1.2 christos verify_assert "-v" wrap-pubkey wrap-assert 132 1.1.1.2 christos get_assert no.tld "-t pin=false" wrap-cred /dev/null wrap-assert 133 1.1.1.2 christos verify_assert "--" wrap-pubkey wrap-assert 134 1.1.1.2 christos get_assert no.tld "-t up=true" wrap-cred /dev/null wrap-assert 135 1.1.1.2 christos verify_assert "-p" wrap-pubkey wrap-assert 136 1.1.1.2 christos get_assert no.tld "-t up=true -t pin=true" wrap-cred /dev/null wrap-assert 137 1.1.1.2 christos verify_assert "--" wrap-pubkey wrap-assert 138 1.1.1.2 christos verify_assert "-p" wrap-pubkey wrap-assert 139 1.1.1.2 christos verify_assert "-v" wrap-pubkey wrap-assert 140 1.1.1.2 christos verify_assert "-pv" wrap-pubkey wrap-assert 141 1.1.1.2 christos get_assert no.tld "-t up=true -t pin=false" wrap-cred /dev/null wrap-assert 142 1.1.1.2 christos verify_assert "--" wrap-pubkey wrap-assert 143 1.1.1.2 christos verify_assert "-p" wrap-pubkey wrap-assert 144 1.1.1.2 christos get_assert no.tld "-t up=false" wrap-cred /dev/null wrap-assert 145 1.1.1.2 christos verify_assert "--" wrap-pubkey wrap-assert 146 1.1.1.5 christos verify_assert "-p" wrap-pubkey wrap-assert && exit 1 147 1.1.1.2 christos get_assert no.tld "-t up=false -t pin=true" wrap-cred /dev/null wrap-assert 148 1.1.1.5 christos verify_assert "-p" wrap-pubkey wrap-assert && exit 1 149 1.1.1.2 christos verify_assert "-v" wrap-pubkey wrap-assert 150 1.1.1.5 christos verify_assert "-pv" wrap-pubkey wrap-assert && exit 1 151 1.1.1.2 christos get_assert no.tld "-t up=false -t pin=false" wrap-cred /dev/null wrap-assert 152 1.1.1.5 christos verify_assert "-p" wrap-pubkey wrap-assert && exit 1 153 1.1.1.2 christos get_assert no.tld "-h" wrap-cred hmac-salt wrap-assert 154 1.1.1.5 christos verify_assert "--" wrap-pubkey wrap-assert && exit 1 155 1.1.1.2 christos verify_assert "-h" wrap-pubkey wrap-assert 156 1.1.1.2 christos get_assert no.tld "-h -t pin=true" wrap-cred hmac-salt wrap-assert 157 1.1.1.5 christos verify_assert "--" wrap-pubkey wrap-assert && exit 1 158 1.1.1.2 christos verify_assert "-h" wrap-pubkey wrap-assert 159 1.1.1.2 christos verify_assert "-hv" wrap-pubkey wrap-assert 160 1.1.1.2 christos get_assert no.tld "-h -t pin=false" wrap-cred hmac-salt wrap-assert 161 1.1.1.5 christos verify_assert "--" wrap-pubkey wrap-assert && exit 1 162 1.1.1.2 christos verify_assert "-h" wrap-pubkey wrap-assert 163 1.1.1.2 christos get_assert no.tld "-h -t up=true" wrap-cred hmac-salt wrap-assert 164 1.1.1.5 christos verify_assert "--" wrap-pubkey wrap-assert && exit 1 165 1.1.1.2 christos verify_assert "-h" wrap-pubkey wrap-assert 166 1.1.1.2 christos verify_assert "-hp" wrap-pubkey wrap-assert 167 1.1.1.2 christos get_assert no.tld "-h -t up=true -t pin=true" wrap-cred hmac-salt wrap-assert 168 1.1.1.5 christos verify_assert "--" wrap-pubkey wrap-assert && exit 1 169 1.1.1.2 christos verify_assert "-h" wrap-pubkey wrap-assert 170 1.1.1.2 christos verify_assert "-hp" wrap-pubkey wrap-assert 171 1.1.1.2 christos verify_assert "-hv" wrap-pubkey wrap-assert 172 1.1.1.2 christos verify_assert "-hpv" wrap-pubkey wrap-assert 173 1.1.1.2 christos get_assert no.tld "-h -t up=true -t pin=false" wrap-cred hmac-salt wrap-assert 174 1.1.1.5 christos verify_assert "--" wrap-pubkey wrap-assert && exit 1 175 1.1.1.2 christos verify_assert "-h" wrap-pubkey wrap-assert 176 1.1.1.2 christos verify_assert "-hp" wrap-pubkey wrap-assert 177 1.1.1.5 christos get_assert no.tld "-h -t up=false" wrap-cred hmac-salt wrap-assert && exit 1 178 1.1.1.5 christos get_assert no.tld "-h -t up=false -t pin=true" wrap-cred hmac-salt wrap-assert && exit 1 179 1.1.1.5 christos get_assert no.tld "-h -t up=false -t pin=false" wrap-cred hmac-salt wrap-assert && exit 1 180 1.1.1.2 christos 181 1.1.1.2 christos if [ "x${UV}" != "x" ]; then 182 1.1.1.2 christos get_assert no.tld "-t uv=true" wrap-cred /dev/null wrap-assert 183 1.1.1.2 christos verify_assert "-v" wrap-pubkey wrap-assert 184 1.1.1.2 christos get_assert no.tld "-t uv=true -t pin=true" wrap-cred /dev/null wrap-assert 185 1.1.1.2 christos verify_assert "-v" wrap-pubkey wrap-assert 186 1.1.1.2 christos get_assert no.tld "-t uv=true -t pin=false" wrap-cred /dev/null wrap-assert 187 1.1.1.2 christos verify_assert "-v" wrap-pubkey wrap-assert 188 1.1.1.2 christos get_assert no.tld "-t uv=false" wrap-cred /dev/null wrap-assert 189 1.1.1.2 christos verify_assert "--" wrap-pubkey wrap-assert 190 1.1.1.2 christos get_assert no.tld "-t uv=false -t pin=true" wrap-cred /dev/null wrap-assert 191 1.1.1.2 christos verify_assert "-v" wrap-pubkey wrap-assert 192 1.1.1.2 christos get_assert no.tld "-t uv=false -t pin=false" wrap-cred /dev/null wrap-assert 193 1.1.1.2 christos verify_assert "--" wrap-pubkey wrap-assert 194 1.1.1.2 christos get_assert no.tld "-t up=true -t uv=true" wrap-cred /dev/null wrap-assert 195 1.1.1.2 christos verify_assert "-pv" wrap-pubkey wrap-assert 196 1.1.1.2 christos get_assert no.tld "-t up=true -t uv=true -t pin=true" wrap-cred /dev/null wrap-assert 197 1.1.1.2 christos verify_assert "-pv" wrap-pubkey wrap-assert 198 1.1.1.2 christos get_assert no.tld "-t up=true -t uv=true -t pin=false" wrap-cred /dev/null wrap-assert 199 1.1.1.2 christos verify_assert "-pv" wrap-pubkey wrap-assert 200 1.1.1.2 christos get_assert no.tld "-t up=true -t uv=false" wrap-cred /dev/null wrap-assert 201 1.1.1.2 christos verify_assert "-p" wrap-pubkey wrap-assert 202 1.1.1.2 christos get_assert no.tld "-t up=true -t uv=false -t pin=true" wrap-cred /dev/null wrap-assert 203 1.1.1.2 christos verify_assert "-pv" wrap-pubkey wrap-assert 204 1.1.1.2 christos get_assert no.tld "-t up=true -t uv=false -t pin=false" wrap-cred /dev/null wrap-assert 205 1.1.1.2 christos verify_assert "-p" wrap-pubkey wrap-assert 206 1.1.1.2 christos get_assert no.tld "-t up=false -t uv=true" wrap-cred /dev/null wrap-assert 207 1.1.1.2 christos verify_assert "-v" wrap-pubkey wrap-assert 208 1.1.1.2 christos get_assert no.tld "-t up=false -t uv=true -t pin=true" wrap-cred /dev/null wrap-assert 209 1.1.1.2 christos verify_assert "-v" wrap-pubkey wrap-assert 210 1.1.1.2 christos get_assert no.tld "-t up=false -t uv=true -t pin=false" wrap-cred /dev/null wrap-assert 211 1.1.1.2 christos verify_assert "-v" wrap-pubkey wrap-assert 212 1.1.1.2 christos get_assert no.tld "-t up=false -t uv=false" wrap-cred /dev/null wrap-assert 213 1.1.1.5 christos verify_assert "--" wrap-pubkey wrap-assert && exit 1 214 1.1.1.2 christos get_assert no.tld "-t up=false -t uv=false -t pin=true" wrap-cred /dev/null wrap-assert 215 1.1.1.2 christos verify_assert "-v" wrap-pubkey wrap-assert 216 1.1.1.2 christos get_assert no.tld "-t up=false -t uv=false -t pin=false" wrap-cred /dev/null wrap-assert 217 1.1.1.5 christos verify_assert "--" wrap-pubkey wrap-assert && exit 1 218 1.1.1.2 christos get_assert no.tld "-h -t uv=true" wrap-cred hmac-salt wrap-assert 219 1.1.1.2 christos verify_assert "-hv" wrap-pubkey wrap-assert 220 1.1.1.2 christos get_assert no.tld "-h -t uv=true -t pin=true" wrap-cred hmac-salt wrap-assert 221 1.1.1.2 christos verify_assert "-hv" wrap-pubkey wrap-assert 222 1.1.1.2 christos get_assert no.tld "-h -t uv=true -t pin=false" wrap-cred hmac-salt wrap-assert 223 1.1.1.2 christos verify_assert "-hv" wrap-pubkey wrap-assert 224 1.1.1.2 christos get_assert no.tld "-h -t uv=false" wrap-cred hmac-salt wrap-assert 225 1.1.1.2 christos verify_assert "-h" wrap-pubkey wrap-assert 226 1.1.1.2 christos get_assert no.tld "-h -t uv=false -t pin=true" wrap-cred hmac-salt wrap-assert 227 1.1.1.2 christos verify_assert "-hv" wrap-pubkey wrap-assert 228 1.1.1.2 christos get_assert no.tld "-h -t uv=false -t pin=false" wrap-cred hmac-salt wrap-assert 229 1.1.1.2 christos verify_assert "-h" wrap-pubkey wrap-assert 230 1.1.1.2 christos get_assert no.tld "-h -t up=true -t uv=true" wrap-cred hmac-salt wrap-assert 231 1.1.1.2 christos verify_assert "-hpv" wrap-pubkey wrap-assert 232 1.1.1.2 christos get_assert no.tld "-h -t up=true -t uv=true -t pin=true" wrap-cred hmac-salt wrap-assert 233 1.1.1.2 christos verify_assert "-hpv" wrap-pubkey wrap-assert 234 1.1.1.2 christos get_assert no.tld "-h -t up=true -t uv=true -t pin=false" wrap-cred hmac-salt wrap-assert 235 1.1.1.2 christos verify_assert "-hpv" wrap-pubkey wrap-assert 236 1.1.1.2 christos get_assert no.tld "-h -t up=true -t uv=false" wrap-cred hmac-salt wrap-assert 237 1.1.1.2 christos verify_assert "-hp" wrap-pubkey wrap-assert 238 1.1.1.2 christos get_assert no.tld "-h -t up=true -t uv=false -t pin=true" wrap-cred hmac-salt wrap-assert 239 1.1.1.2 christos verify_assert "-hpv" wrap-pubkey wrap-assert 240 1.1.1.2 christos get_assert no.tld "-h -t up=true -t uv=false -t pin=false" wrap-cred hmac-salt wrap-assert 241 1.1.1.2 christos verify_assert "-hp" wrap-pubkey wrap-assert 242 1.1.1.5 christos get_assert no.tld "-h -t up=false -t uv=true" wrap-cred hmac-salt wrap-assert && exit 1 243 1.1.1.5 christos get_assert no.tld "-h -t up=false -t uv=true -t pin=true" wrap-cred hmac-salt wrap-assert && exit 1 244 1.1.1.5 christos get_assert no.tld "-h -t up=false -t uv=true -t pin=false" wrap-cred hmac-salt wrap-assert && exit 1 245 1.1.1.5 christos get_assert no.tld "-h -t up=false -t uv=false" wrap-cred hmac-salt wrap-assert && exit 1 246 1.1.1.5 christos get_assert no.tld "-h -t up=false -t uv=false -t pin=true" wrap-cred hmac-salt wrap-assert && exit 1 247 1.1.1.5 christos get_assert no.tld "-h -t up=false -t uv=false -t pin=false" wrap-cred hmac-salt wrap-assert && exit 1 248 1.1.1.2 christos fi 249 1.1.1.2 christos 250 1.1.1.2 christos # resident 251 1.1.1.2 christos get_assert no.tld "-r" /dev/null /dev/null wrap-assert 252 1.1.1.2 christos get_assert no.tld "-r -t pin=true" /dev/null /dev/null wrap-assert 253 1.1.1.2 christos get_assert no.tld "-r -t pin=false" /dev/null /dev/null wrap-assert 254 1.1.1.2 christos get_assert no.tld "-r -t up=true" /dev/null /dev/null wrap-assert 255 1.1.1.2 christos get_assert no.tld "-r -t up=true -t pin=true" /dev/null /dev/null wrap-assert 256 1.1.1.2 christos get_assert no.tld "-r -t up=true -t pin=false" /dev/null /dev/null wrap-assert 257 1.1.1.2 christos get_assert no.tld "-r -t up=false" /dev/null /dev/null wrap-assert 258 1.1.1.2 christos get_assert no.tld "-r -t up=false -t pin=true" /dev/null /dev/null wrap-assert 259 1.1.1.2 christos get_assert no.tld "-r -t up=false -t pin=false" /dev/null /dev/null wrap-assert 260 1.1.1.2 christos get_assert no.tld "-r -h" /dev/null hmac-salt wrap-assert 261 1.1.1.2 christos get_assert no.tld "-r -h -t pin=true" /dev/null hmac-salt wrap-assert 262 1.1.1.2 christos get_assert no.tld "-r -h -t pin=false" /dev/null hmac-salt wrap-assert 263 1.1.1.2 christos get_assert no.tld "-r -h -t up=true" /dev/null hmac-salt wrap-assert 264 1.1.1.2 christos get_assert no.tld "-r -h -t up=true -t pin=true" /dev/null hmac-salt wrap-assert 265 1.1.1.2 christos get_assert no.tld "-r -h -t up=true -t pin=false" /dev/null hmac-salt wrap-assert 266 1.1.1.5 christos get_assert no.tld "-r -h -t up=false" /dev/null hmac-salt wrap-assert && exit 1 267 1.1.1.5 christos get_assert no.tld "-r -h -t up=false -t pin=true" /dev/null hmac-salt wrap-assert && exit 1 268 1.1.1.5 christos get_assert no.tld "-r -h -t up=false -t pin=false" /dev/null hmac-salt wrap-assert && exit 1 269 1.1.1.2 christos 270 1.1.1.2 christos if [ "x${UV}" != "x" ]; then 271 1.1.1.2 christos get_assert no.tld "-r -t uv=true" /dev/null /dev/null wrap-assert 272 1.1.1.2 christos get_assert no.tld "-r -t uv=true -t pin=true" /dev/null /dev/null wrap-assert 273 1.1.1.2 christos get_assert no.tld "-r -t uv=true -t pin=false" /dev/null /dev/null wrap-assert 274 1.1.1.2 christos get_assert no.tld "-r -t uv=false" /dev/null /dev/null wrap-assert 275 1.1.1.2 christos get_assert no.tld "-r -t uv=false -t pin=true" /dev/null /dev/null wrap-assert 276 1.1.1.2 christos get_assert no.tld "-r -t uv=false -t pin=false" /dev/null /dev/null wrap-assert 277 1.1.1.2 christos get_assert no.tld "-r -t up=true -t uv=true" /dev/null /dev/null wrap-assert 278 1.1.1.2 christos get_assert no.tld "-r -t up=true -t uv=true -t pin=true" /dev/null /dev/null wrap-assert 279 1.1.1.2 christos get_assert no.tld "-r -t up=true -t uv=true -t pin=false" /dev/null /dev/null wrap-assert 280 1.1.1.2 christos get_assert no.tld "-r -t up=true -t uv=false" /dev/null /dev/null wrap-assert 281 1.1.1.2 christos get_assert no.tld "-r -t up=true -t uv=false -t pin=true" /dev/null /dev/null wrap-assert 282 1.1.1.2 christos get_assert no.tld "-r -t up=true -t uv=false -t pin=false" /dev/null /dev/null wrap-assert 283 1.1.1.2 christos get_assert no.tld "-r -t up=false -t uv=true" /dev/null /dev/null wrap-assert 284 1.1.1.2 christos get_assert no.tld "-r -t up=false -t uv=true -t pin=true" /dev/null /dev/null wrap-assert 285 1.1.1.2 christos get_assert no.tld "-r -t up=false -t uv=true -t pin=false" /dev/null /dev/null wrap-assert 286 1.1.1.2 christos get_assert no.tld "-r -t up=false -t uv=false" /dev/null /dev/null wrap-assert 287 1.1.1.2 christos get_assert no.tld "-r -t up=false -t uv=false -t pin=true" /dev/null /dev/null wrap-assert 288 1.1.1.2 christos get_assert no.tld "-r -t up=false -t uv=false -t pin=false" /dev/null /dev/null wrap-assert 289 1.1.1.2 christos get_assert no.tld "-r -h -t uv=true" /dev/null hmac-salt wrap-assert 290 1.1.1.2 christos get_assert no.tld "-r -h -t uv=true -t pin=true" /dev/null hmac-salt wrap-assert 291 1.1.1.2 christos get_assert no.tld "-r -h -t uv=true -t pin=false" /dev/null hmac-salt wrap-assert 292 1.1.1.2 christos get_assert no.tld "-r -h -t uv=false" /dev/null hmac-salt wrap-assert 293 1.1.1.2 christos get_assert no.tld "-r -h -t uv=false -t pin=true" /dev/null hmac-salt wrap-assert 294 1.1.1.2 christos get_assert no.tld "-r -h -t uv=false -t pin=false" /dev/null hmac-salt wrap-assert 295 1.1.1.2 christos get_assert no.tld "-r -h -t up=true -t uv=true" /dev/null hmac-salt wrap-assert 296 1.1.1.2 christos get_assert no.tld "-r -h -t up=true -t uv=true -t pin=true" /dev/null hmac-salt wrap-assert 297 1.1.1.2 christos get_assert no.tld "-r -h -t up=true -t uv=true -t pin=false" /dev/null hmac-salt wrap-assert 298 1.1.1.2 christos get_assert no.tld "-r -h -t up=true -t uv=false" /dev/null hmac-salt wrap-assert 299 1.1.1.2 christos get_assert no.tld "-r -h -t up=true -t uv=false -t pin=true" /dev/null hmac-salt wrap-assert 300 1.1.1.2 christos get_assert no.tld "-r -h -t up=true -t uv=false -t pin=false" /dev/null hmac-salt wrap-assert 301 1.1.1.5 christos get_assert no.tld "-r -h -t up=false -t uv=true" /dev/null hmac-salt wrap-assert && exit 1 302 1.1.1.5 christos get_assert no.tld "-r -h -t up=false -t uv=true -t pin=true" /dev/null hmac-salt wrap-assert && exit 1 303 1.1.1.5 christos get_assert no.tld "-r -h -t up=false -t uv=true -t pin=false" /dev/null hmac-salt wrap-assert && exit 1 304 1.1.1.5 christos get_assert no.tld "-r -h -t up=false -t uv=false" /dev/null hmac-salt wrap-assert && exit 1 305 1.1.1.5 christos get_assert no.tld "-r -h -t up=false -t uv=false -t pin=true" /dev/null hmac-salt wrap-assert && exit 1 306 1.1.1.5 christos get_assert no.tld "-r -h -t up=false -t uv=false -t pin=false" /dev/null hmac-salt wrap-assert && exit 1 307 1.1.1.2 christos fi 308 1.1 christos 309 1.1.1.2 christos exit 0 310