summaryrefslogtreecommitdiff
path: root/scripts/genpadding.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/genpadding.sh')
-rwxr-xr-xscripts/genpadding.sh235
1 files changed, 0 insertions, 235 deletions
diff --git a/scripts/genpadding.sh b/scripts/genpadding.sh
deleted file mode 100755
index baac71bd..00000000
--- a/scripts/genpadding.sh
+++ /dev/null
@@ -1,235 +0,0 @@
-#!/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.
-
-# Script to generate padding.c containing PKCS 1.5 padding byte arrays for
-# various combinations of RSA key lengths and message digest algorithms.
-
-Pad_Preamble="0x00,0x01"
-
-SHA1_digestinfo="0x30,0x21,0x30,0x09,0x06,0x05,0x2b,0x0e,0x03,0x02,0x1a,0x05"\
-",0x00,0x04,0x14"
-SHA256_digestinfo="0x30,0x31,0x30,0x0d,0x06,0x09,0x60,0x86,0x48,0x01,0x65,0x03"\
-",0x04,0x02,0x01,0x05,0x00,0x04,0x20"
-SHA512_digestinfo="0x30,0x51,0x30,0x0d,0x06,0x09,0x60,0x86,0x48,0x01,0x65,0x03"\
-",0x04,0x02,0x03,0x05,0x00,0x04,0x40"
-
-RSA1024_Len=128
-RSA2048_Len=256
-RSA4096_Len=512
-RSA8192_Len=1024
-
-SHA1_T_Len=35
-SHA256_T_Len=51
-SHA512_T_Len=83
-
-HashAlgos=( SHA1 SHA256 SHA512 )
-RSAAlgos=( RSA1024 RSA2048 RSA4096 RSA8192 )
-
-function genFFOctets {
- count=$1
- while [ $count -gt 0 ]; do
- echo -n "0xff,"
- let count=count-1
- done
-}
-
-
-cat <<EOF
-/*
- * DO NOT MODIFY THIS FILE DIRECTLY.
- *
- * This file is automatically generated by genpadding.sh and contains padding
- * arrays corresponding to various combinations of algorithms for RSA signatures.
- */
-
-EOF
-
-
-echo '#include "cryptolib.h"'
-echo
-echo
-cat <<EOF
-/*
- * PKCS 1.5 padding (from the RSA PKCS#1 v2.1 standard)
- *
- * Depending on the RSA key size and hash function, the padding is calculated
- * as follows:
- *
- * 0x00 || 0x01 || PS || 0x00 || T
- *
- * T: DER Encoded DigestInfo value which depends on the hash function used.
- *
- * SHA-1: (0x)30 21 30 09 06 05 2b 0e 03 02 1a 05 00 04 14 || H.
- * SHA-256: (0x)30 31 30 0d 06 09 60 86 48 01 65 03 04 02 01 05 00 04 20 || H.
- * SHA-512: (0x)30 51 30 0d 06 09 60 86 48 01 65 03 04 02 03 05 00 04 40 || H.
- *
- * Length(T) = 35 octets for SHA-1
- * Length(T) = 51 octets for SHA-256
- * Length(T) = 83 octets for SHA-512
- *
- * PS: octet string consisting of {Length(RSA Key) - Length(T) - 3} 0xFF
- *
- */
-EOF
-echo
-echo
-
-
-# Generate padding arrays.
-algorithmcounter=0
-
-for rsaalgo in ${RSAAlgos[@]}
-do
- for hashalgo in ${HashAlgos[@]}
- do
- echo "/* Algorithm Type $algorithmcounter */"
- let algorithmcounter=algorithmcounter+1
- eval rsalen=${rsaalgo}_Len
- eval hashlen=${hashalgo}_T_Len
- let nums=rsalen-hashlen-3
- echo "const uint8_t padding${rsaalgo}_${hashalgo}[${rsaalgo}NUMBYTES - ${hashalgo}_DIGEST_SIZE] = {"
- echo -n $Pad_Preamble,
- genFFOctets $nums
- echo -n "0x00,"
- eval digestinfo=\$${hashalgo}_digestinfo
- echo $digestinfo
- echo "};"
- echo
- done
-done
-
-echo "const int kNumAlgorithms = $algorithmcounter;";
-echo "#define NUMALGORITHMS $algorithmcounter"
-echo
-
-# Output DigestInfo field lengths.
-cat <<EOF
-#define SHA1_DIGESTINFO_LEN 15
-#define SHA256_DIGESTINFO_LEN 19
-#define SHA512_DIGESTINFO_LEN 19
-EOF
-
-
-# Generate DigestInfo arrays.
-for hashalgo in ${HashAlgos[@]}
-do
- echo "const uint8_t ${hashalgo}_digestinfo[] = {"
- eval digestinfo=\$${hashalgo}_digestinfo
- echo $digestinfo
- echo "};"
- echo
-done
-
-# Generate DigestInfo to size map.
-echo "const int digestinfo_size_map[] = {"
-for rsaalgo in ${RSAAlgos[@]}
-do
- for hashalgo in ${HashAlgos[@]}
- do
- echo ${hashalgo}_DIGESTINFO_LEN,
- done
-done
-echo "};"
-echo
-
-# Generate algorithm signature length map.
-echo "const int siglen_map[NUMALGORITHMS] = {"
-for rsaalgo in ${RSAAlgos[@]}
-do
- for hashalgo in ${HashAlgos[@]}
- do
- echo ${rsaalgo}NUMBYTES,
- done
-done
-echo "};"
-echo
-
-# Generate algorithm padding array map.
-echo "const uint8_t* padding_map[NUMALGORITHMS] = {"
-for rsaalgo in ${RSAAlgos[@]}
-do
- for hashalgo in ${HashAlgos[@]}
- do
- echo padding${rsaalgo}_${hashalgo},
- done
-done
-echo "};"
-echo
-
-# Generate algorithm padding size map.
-echo "const int padding_size_map[NUMALGORITHMS] = {"
-for rsaalgo in ${RSAAlgos[@]}
-do
- for hashalgo in ${HashAlgos[@]}
- do
- echo ${rsaalgo}NUMBYTES - ${hashalgo}_DIGEST_SIZE,
- done
-done
-echo "};"
-echo
-
-# Generate signature algorithm to messge digest algorithm map.
-echo "const int hash_type_map[] = {"
-for rsaalgo in ${RSAAlgos[@]}
-do
- for hashalgo in ${HashAlgos[@]}
- do
- echo ${hashalgo}_DIGEST_ALGORITHM,
- done
-done
-echo "};"
-echo
-
-# Generate algorithm to message digest's output size map.
-echo "const int hash_size_map[NUMALGORITHMS] = {"
-for rsaalgo in ${RSAAlgos[@]}
-do
- for hashalgo in ${HashAlgos[@]}
- do
- echo ${hashalgo}_DIGEST_SIZE,
- done
-done
-echo "};"
-echo
-
-# Generate algorithm to message digest's input block size map.
-echo "const int hash_blocksize_map[NUMALGORITHMS] = {"
-for rsaalgo in ${RSAAlgos[@]}
-do
- for hashalgo in ${HashAlgos[@]}
- do
- echo ${hashalgo}_BLOCK_SIZE,
- done
-done
-echo "};"
-echo
-
-# Generate algorithm to message's digest ASN.1 DigestInfo map.
-echo "const uint8_t* hash_digestinfo_map[NUMALGORITHMS] = {"
-for rsaalgo in ${RSAAlgos[@]}
-do
- for hashalgo in ${HashAlgos[@]}
- do
- echo ${hashalgo}_digestinfo,
- done
-done
-echo "};"
-echo
-
-
-# Generate algorithm description strings.
-echo "const char* algo_strings[NUMALGORITHMS] = {"
-for rsaalgo in ${RSAAlgos[@]}
-do
- for hashalgo in ${HashAlgos[@]}
- do
- echo \"${rsaalgo} ${hashalgo}\",
- done
-done
-echo "};"
-echo
-
-#echo "#endif /* VBOOT_REFERENCE_PADDING_H_ */"