1322536d2f9d30f42218cc9f2ab40574557da8a9Gaurav Shah#!/bin/bash
2322536d2f9d30f42218cc9f2ab40574557da8a9Gaurav Shah
3322536d2f9d30f42218cc9f2ab40574557da8a9Gaurav Shah# Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
4322536d2f9d30f42218cc9f2ab40574557da8a9Gaurav Shah# Use of this source code is governed by a BSD-style license that can be
5322536d2f9d30f42218cc9f2ab40574557da8a9Gaurav Shah# found in the LICENSE file.
6445925fe0f11280c585879247eada43de32090caGaurav Shah#
7f67bcaa9a6d8ac8c31cb5650405f99c475c9ad5eGaurav Shah# Run tests for RSA Signature verification.
8322536d2f9d30f42218cc9f2ab40574557da8a9Gaurav Shah
9445925fe0f11280c585879247eada43de32090caGaurav Shah# Load common constants and variables.
10445925fe0f11280c585879247eada43de32090caGaurav Shah. "$(dirname "$0")/common.sh"
1108df9b88a36b7a351305a06b2849c5fcdac54135Gaurav Shah
12a222fbc00eb470c104602be262b97c9c8c7be7a2vbendebset -e
13a222fbc00eb470c104602be262b97c9c8c7be7a2vbendeb
14445925fe0f11280c585879247eada43de32090caGaurav Shahreturn_code=0
15445925fe0f11280c585879247eada43de32090caGaurav ShahTEST_FILE=${TESTCASE_DIR}/test_file
16322536d2f9d30f42218cc9f2ab40574557da8a9Gaurav Shah
17322536d2f9d30f42218cc9f2ab40574557da8a9Gaurav Shahfunction test_signatures {
18322536d2f9d30f42218cc9f2ab40574557da8a9Gaurav Shah  algorithmcounter=0
198bf29d8ea10392c03f8d11561a4e63182f6211a3Gaurav Shah  for keylen in ${key_lengths[@]}
20322536d2f9d30f42218cc9f2ab40574557da8a9Gaurav Shah  do
21322536d2f9d30f42218cc9f2ab40574557da8a9Gaurav Shah    for hashalgo in ${hash_algos[@]}
22322536d2f9d30f42218cc9f2ab40574557da8a9Gaurav Shah    do
2308df9b88a36b7a351305a06b2849c5fcdac54135Gaurav Shah      echo -e "For ${COL_YELLOW}RSA-$keylen and $hashalgo${COL_STOP}:"
243e3790d00827e75d39b77a14bca2756a14a51b3cBill Richardson      ${BIN_DIR}/verify_data $algorithmcounter \
25445925fe0f11280c585879247eada43de32090caGaurav Shah        ${TESTKEY_DIR}/key_rsa${keylen}.keyb \
26445925fe0f11280c585879247eada43de32090caGaurav Shah        ${TEST_FILE}.rsa${keylen}_${hashalgo}.sig \
27445925fe0f11280c585879247eada43de32090caGaurav Shah        ${TEST_FILE}
281a055adf7bb61ef239e554441defc13503eb2b51Gaurav Shah      if [ $? -ne 0 ]
29a222fbc00eb470c104602be262b97c9c8c7be7a2vbendeb      then
301a055adf7bb61ef239e554441defc13503eb2b51Gaurav Shah        return_code=255
311a055adf7bb61ef239e554441defc13503eb2b51Gaurav Shah      fi
32322536d2f9d30f42218cc9f2ab40574557da8a9Gaurav Shah      let algorithmcounter=algorithmcounter+1
33322536d2f9d30f42218cc9f2ab40574557da8a9Gaurav Shah    done
34322536d2f9d30f42218cc9f2ab40574557da8a9Gaurav Shah  done
357d122e2a47145ef535163744daa55cec54e12b16Gaurav Shah  echo -e "Peforming ${COL_YELLOW}PKCS #1 v1.5 Padding Tests${COL_STOP}..."
36445925fe0f11280c585879247eada43de32090caGaurav Shah  ${TEST_DIR}/rsa_padding_test ${TESTKEY_DIR}/rsa_padding_test_pubkey.keyb
37322536d2f9d30f42218cc9f2ab40574557da8a9Gaurav Shah}
38322536d2f9d30f42218cc9f2ab40574557da8a9Gaurav Shah
39445925fe0f11280c585879247eada43de32090caGaurav Shahcheck_test_keys
40322536d2f9d30f42218cc9f2ab40574557da8a9Gaurav Shahecho "Testing signature verification..."
41322536d2f9d30f42218cc9f2ab40574557da8a9Gaurav Shahtest_signatures
42322536d2f9d30f42218cc9f2ab40574557da8a9Gaurav Shah
431a055adf7bb61ef239e554441defc13503eb2b51Gaurav Shahexit $return_code
44322536d2f9d30f42218cc9f2ab40574557da8a9Gaurav Shah
45