#!/bin/bash -ex # # Copyright (c) 2021 Red Hat, Inc. # Author: Sergio Arroutbi Braojos # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # TEST=$(basename "${0}") . tests-common-functions on_exit() { [ ! -d "${TMP}" ] && return 0 tang_stop "${TMP}" rm -rf "${TMP}" } trap 'on_exit' EXIT TMP="$(mktemp -d)" ADV_AMOUNT=50 # Create LUKS1 device DEV="${TMP}/luks1-device" new_device "luks1" "${DEV}" # TANG server specifics port=$(tang_new_random_port) tang_run "${TMP}" "${port}" url="http://localhost:${port}" # Initial binding to ensure luksmeta gets corrupted for ADV_NU in $(seq 0 ${ADV_AMOUNT}); do "${TANGD_KEYGEN}" "${TMP}/db" done tang_new_keys "${TMP}" CFG=$(printf '{"url":"%s"}' "${url}") # At this point, luks bind must return an error. If not, test fails if clevis luks bind -y -d "${DEV}" tang "${CFG}" <<< "${DEFAULT_PASS}"; then error "${TEST}: Binding is expected to fail when given a too long adv" fi