blob: 19b744723a9d450dec583276efea3d82d8f0bad7 [file] [log] [blame]
Gaurav Shah52898d32010-02-17 16:37:33 -08001#!/bin/bash
2
3# Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
4# Use of this source code is governed by a BSD-style license that can be
5# found in the LICENSE file.
6
7# Generate test cases for use for the RSA verify benchmark.
8
Gaurav Shah445925f2010-03-19 16:19:09 -07009# Load common constants and variables.
10. "$(dirname "$0")/common.sh"
11
12TEST_FILE=${TESTCASE_DIR}/test_file
Gaurav Shah52898d32010-02-17 16:37:33 -080013TEST_FILE_SIZE=1000000
14
Gaurav Shah445925f2010-03-19 16:19:09 -070015# Generate public key signatures on an input file for various combinations
16# of message digest algorithms and RSA key sizes.
Gaurav Shah52898d32010-02-17 16:37:33 -080017function generate_test_signatures {
Gaurav Shah445925f2010-03-19 16:19:09 -070018 echo "Generating test signatures..."
Gaurav Shah52898d32010-02-17 16:37:33 -080019 algorithmcounter=0
20 for keylen in ${key_lengths[@]}
21 do
22 for hashalgo in ${hash_algos[@]}
23 do
Gaurav Shah445925f2010-03-19 16:19:09 -070024 openssl dgst -${hashalgo} -binary ${TEST_FILE} > \
25 ${TEST_FILE}.${hashalgo}.digest
Bill Richardson3e3790d2014-07-14 15:05:54 -070026 ${BIN_DIR}/signature_digest_utility $algorithmcounter \
Gaurav Shah445925f2010-03-19 16:19:09 -070027 ${TEST_FILE} | openssl rsautl \
28 -sign -pkcs -inkey ${TESTKEY_DIR}/key_rsa${keylen}.pem \
29 > ${TEST_FILE}.rsa${keylen}_${hashalgo}.sig
Gaurav Shah52898d32010-02-17 16:37:33 -080030 let algorithmcounter=algorithmcounter+1
31 done
32 done
33}
34
Gaurav Shah445925f2010-03-19 16:19:09 -070035# Generate a file with random bytes for signature tests.
36function generate_test_file {
Gaurav Shah52898d32010-02-17 16:37:33 -080037 echo "Generating test file..."
Gaurav Shah445925f2010-03-19 16:19:09 -070038 dd if=/dev/urandom of=${TEST_FILE} bs=${TEST_FILE_SIZE} count=1
Gaurav Shah52898d32010-02-17 16:37:33 -080039}
40
Gaurav Shah445925f2010-03-19 16:19:09 -070041mkdir -p ${TESTCASE_DIR}
42check_test_keys
43generate_test_file
44generate_test_signatures