xref: /aosp_15_r20/external/vboot_reference/tests/vb2_rsa_tests.sh (revision 8617a60d3594060b7ecbd21bc622a7c14f3cf2bc)
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