1*8617a60dSAndroid Build Coastguard Worker#!/bin/bash 2*8617a60dSAndroid Build Coastguard Worker 3*8617a60dSAndroid Build Coastguard Worker# Copyright 2010 The ChromiumOS Authors 4*8617a60dSAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be 5*8617a60dSAndroid Build Coastguard Worker# found in the LICENSE file. 6*8617a60dSAndroid Build Coastguard Worker# 7*8617a60dSAndroid Build Coastguard Worker# Run tests for RSA Signature verification. 8*8617a60dSAndroid Build Coastguard Worker 9*8617a60dSAndroid Build Coastguard Worker# Load common constants and variables. 10*8617a60dSAndroid Build Coastguard Worker. "$(dirname "$0")/common.sh" 11*8617a60dSAndroid Build Coastguard Worker 12*8617a60dSAndroid Build Coastguard Workerset -e 13*8617a60dSAndroid Build Coastguard Worker 14*8617a60dSAndroid Build Coastguard Workerreturn_code=0 15*8617a60dSAndroid Build Coastguard WorkerTEST_FILE=${TESTCASE_DIR}/test_file 16*8617a60dSAndroid Build Coastguard Worker 17*8617a60dSAndroid Build Coastguard Workerfunction test_signatures { 18*8617a60dSAndroid Build Coastguard Worker algorithmcounter=0 19*8617a60dSAndroid Build Coastguard Worker for keylen in "${key_lengths[@]}" 20*8617a60dSAndroid Build Coastguard Worker do 21*8617a60dSAndroid Build Coastguard Worker for hashalgo in "${hash_algos[@]}" 22*8617a60dSAndroid Build Coastguard Worker do 23*8617a60dSAndroid Build Coastguard Worker echo -e "For ${COL_YELLOW}RSA-$keylen and $hashalgo${COL_STOP}:" 24*8617a60dSAndroid Build Coastguard Worker if ! "${BIN_DIR}/verify_data" "$algorithmcounter" \ 25*8617a60dSAndroid Build Coastguard Worker "${TESTKEY_DIR}/key_rsa${keylen}.keyb" \ 26*8617a60dSAndroid Build Coastguard Worker "${TEST_FILE}.rsa${keylen}_${hashalgo}.sig" \ 27*8617a60dSAndroid Build Coastguard Worker "${TEST_FILE}" 28*8617a60dSAndroid Build Coastguard Worker then 29*8617a60dSAndroid Build Coastguard Worker return_code=255 30*8617a60dSAndroid Build Coastguard Worker fi 31*8617a60dSAndroid Build Coastguard Worker algorithmcounter=$((algorithmcounter + 1)) 32*8617a60dSAndroid Build Coastguard Worker done 33*8617a60dSAndroid Build Coastguard Worker done 34*8617a60dSAndroid Build Coastguard Worker echo -e "Peforming ${COL_YELLOW}PKCS #1 v1.5 Padding Tests${COL_STOP}..." 35*8617a60dSAndroid Build Coastguard Worker "${TEST_DIR}/vb20_rsa_padding_tests" \ 36*8617a60dSAndroid Build Coastguard Worker "${TESTKEY_DIR}/rsa_padding_test_pubkey.keyb" 37*8617a60dSAndroid Build Coastguard Worker if [ -e "${TEST_DIR}/vb20_hwcrypto_rsa_padding_tests" ] 38*8617a60dSAndroid Build Coastguard Worker then 39*8617a60dSAndroid Build Coastguard Worker "${TEST_DIR}/vb20_hwcrypto_rsa_padding_tests" \ 40*8617a60dSAndroid Build Coastguard Worker "${TESTKEY_DIR}/rsa_padding_test_pubkey.keyb" 41*8617a60dSAndroid Build Coastguard Worker fi 42*8617a60dSAndroid Build Coastguard Worker} 43*8617a60dSAndroid Build Coastguard Worker 44*8617a60dSAndroid Build Coastguard Workercheck_test_keys 45*8617a60dSAndroid Build Coastguard Workerecho "Testing signature verification..." 46*8617a60dSAndroid Build Coastguard Workertest_signatures 47*8617a60dSAndroid Build Coastguard Worker 48*8617a60dSAndroid Build Coastguard Workerexit $return_code 49