#!/bin/bash # SPDX-License-Identifier: MIT file=$2 build_dir=$3 # input part prng_output_stream=$(grep "seed: " "$file" | sed 's/seed: //g') sig_msg=$(grep "sig_message: " "$file" | sed 's/sig_message: //g') sig_sk=$(grep "sig_sk: " "$file" | sed 's/sig_sk: //g') sig_rnd=$(grep "rnd: " "$file" | sed "s/rnd: //g") verif_sig=$(grep "verif_signature: " "$file" | sed "s/verif_signature: //g") verif_pk=$(grep "verif_pk: " "$file" | sed "s/verif_pk: //g") verif_msg=$(grep "verif_message: " "$file" | sed "s/verif_message: //g") # KAT part keygen_pk=$(grep "keygen_pk: " "$file") keygen_sk=$(grep "keygen_sk: " "$file") sig_signature=$(grep "sig_signature: " "$file") output=$($build_dir/tests/vectors_sig $1 "$prng_output_stream$sig_rnd" "$sig_msg" "$sig_sk" "$verif_sig" "$verif_pk" "$verif_msg") if [ $? != 0 ]; then exit 1 fi # Parse output: pk, sk, signature output_pk=$(echo "$output" | grep "pk: " | sed "s/pk: /keygen_pk: /g") output_sk=$(echo "$output" | grep "sk: " | sed "s/sk: /keygen_sk: /g") output_signature=$(echo "$output" | grep "signature: " | sed "s/signature: /sig_signature: /g") if [ "$keygen_pk" != "$output_pk" ]; then echo "keygen_pk mismatch for $1" exit 1 elif [ "$keygen_sk" != "$output_sk" ]; then echo "keygen_sk mismatch for $1" exit 1 elif [ "$sig_signature" != "$output_signature" ]; then echo "sig_signature mismatch for $1" exit 1 else echo "Vector tests succeeded for $1" fi