Refactor code from test/ to utils/ since they are not just used by tests.

Also, adds a simple analog of verify_data.

BUG=none
TEST=none

Review URL: http://codereview.chromium.org/578025
This commit is contained in:
Gaurav Shah
2010-02-06 14:34:31 -08:00
parent 355031b445
commit 1f81a6f936
8 changed files with 31 additions and 15 deletions

View File

@@ -2,19 +2,14 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
SRCS=sha_tests.c verify_data.c signature_digest.c
SRCS=sha_tests.c
OBJS=$(SRCS:.c=.o)
LIBS=$(TOP)/crypto/libcrypto.a $(TOP)/common/libcommon.a
tests: sha_tests verify_data signature_digest
tests: sha_tests
sha_tests: sha_tests.c
sha_tests: sha_tests.c
$(CC) $(CFLAGS) -DNDEBUG $(INCLUDES) $< -o $@ $(LIBS)
verify_data: verify_data.c digest_utility.o
$(CC) $(CFLAGS) -DNDEBUG $(INCLUDES) $< -o $@ $(LIBS)
signature_digest: signature_digest.c
$(CC) $(CFLAGS) -DNDEBUG $(INCLUDES) $< -o $@ $(LIBS)
clean:
rm -f $(OBJS) sha_tests verify_data signature_digest

View File

@@ -11,7 +11,7 @@ hash_algos=( sha1 sha256 sha512 )
key_lengths=( 1024 2048 4096 8192 )
TEST_FILE=test_file
TEST_FILE_SIZE=1000000
UTILDIR=../utils/
UTIL_DIR=../utils/
# Generate RSA test keys of various lengths.
function generate_keys {
@@ -21,7 +21,7 @@ function generate_keys {
# Generate self-signed certificate from key.
openssl req -batch -new -x509 -key key_rsa$i.pem -out key_rsa$i.crt
# Generate pre-processed key for use by RSA signature verification code.
${UTILDIR}/dumpRSAPublicKey key_rsa$i.crt > key_rsa$i.keyb
${UTIL_DIR}/dumpRSAPublicKey key_rsa$i.crt > key_rsa$i.keyb
done
}
@@ -33,8 +33,8 @@ function generate_signatures {
do
for hashalgo in ${hash_algos[@]}
do
./signature_digest $algorithmcounter $1 | openssl rsautl -sign -pkcs \
-inkey key_rsa${keylen}.pem > $1.rsa${keylen}\_${hashalgo}.sig
${UTIL_DIR}/signature_digest $algorithmcounter $1 | openssl rsautl -sign \
-pkcs -inkey key_rsa${keylen}.pem > $1.rsa${keylen}\_${hashalgo}.sig
let algorithmcounter=algorithmcounter+1
done
done
@@ -47,7 +47,7 @@ function test_signatures {
for hashalgo in ${hash_algos[@]}
do
echo "For RSA-$keylen and $hashalgo:"
./verify_data $algorithmcounter key_rsa${keylen}.keyb \
${UTIL_DIR}/verify_data $algorithmcounter key_rsa${keylen}.keyb \
${TEST_FILE}.rsa${keylen}\_${hashalgo}.sig ${TEST_FILE}
let algorithmcounter=algorithmcounter+1
done

View File

@@ -3,10 +3,18 @@
# found in the LICENSE file.
LIBS=-lcrypto
FIRMWARELIBS=$(TOP)/crypto/libcrypto.a $(TOP)/common/libcommon.a
all: dumpRSAPublicKey
all: dumpRSAPublicKey verify_data signature_digest
dumpRSAPublicKey: dumpRSAPublicKey.c
$(CC) $(CFLAGS) $(LIBS) $< -o $@
verify_data: verify_data.c
$(CC) $(CFLAGS) -DNDEBUG $(INCLUDES) $< -o $@ $(FIRMWARELIBS)
signature_digest: signature_digest.c
$(CC) $(CFLAGS) -DNDEBUG $(INCLUDES) $< -o $@ $(FIRMWARELIBS)
clean:
rm -f dumpRSAPublicKey
rm -f dumpRSAPublicKey verify_data signature_digest

13
utils/sign_data.sh Executable file
View File

@@ -0,0 +1,13 @@
#!/bin/bash
# Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
if [ $# -ne 3 ]
then
echo "Usage: `basename $0` <algorithm> <key file> <input file>"
exit -1
fi
./signature_digest $1 $3 | openssl rsautl -sign -pkcs -inkey $2