Home | History | Annotate | Download | only in tests
      1 #!/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 
      9 # Load common constants and variables.
     10 . "$(dirname "$0")/common.sh"
     11 
     12 TEST_FILE=${TESTCASE_DIR}/test_file
     13 TEST_FILE_SIZE=1000000
     14 
     15 # Generate public key signatures on an input file for various combinations
     16 # of message digest algorithms and RSA key sizes.
     17 function generate_test_signatures {
     18   echo "Generating test signatures..."
     19   algorithmcounter=0
     20   for keylen in ${key_lengths[@]}
     21   do
     22     for hashalgo in ${hash_algos[@]}
     23     do
     24       openssl dgst -${hashalgo} -binary ${TEST_FILE} > \
     25         ${TEST_FILE}.${hashalgo}.digest
     26       ${BIN_DIR}/signature_digest_utility $algorithmcounter  \
     27         ${TEST_FILE} | openssl rsautl \
     28         -sign -pkcs -inkey ${TESTKEY_DIR}/key_rsa${keylen}.pem \
     29         > ${TEST_FILE}.rsa${keylen}_${hashalgo}.sig
     30       let algorithmcounter=algorithmcounter+1
     31     done
     32   done
     33 }
     34 
     35 # Generate a file with random bytes for signature tests.
     36 function generate_test_file {
     37   echo "Generating test file..."
     38   dd if=/dev/urandom of=${TEST_FILE} bs=${TEST_FILE_SIZE} count=1
     39 }
     40 
     41 mkdir -p ${TESTCASE_DIR}
     42 check_test_keys
     43 generate_test_file
     44 generate_test_signatures
     45