[PATCH] Make test vectors 'static const'

Jussi Kivilinna jussi.kivilinna at iki.fi
Mon Nov 4 15:19:06 CET 2013


* cipher/arcfour.c (selftest): Change test vectors to 'static const'.
* cipher/blowfish.c (selftest): Ditto.
* cipher/camellia-glue.c (selftest): Ditto.
* cipher/cast5.c (selftest): Ditto.
* cipher/des.c (selftest): Ditto.
* cipher/rijndael.c (selftest): Ditto.
* tests/basic.c (cipher_cbc_mac_cipher, check_aes128_cbc_cts_cipher)
(check_ctr_cipher, check_cfb_cipher, check_ofb_cipher)
(check_ccm_cipher, check_stream_cipher)
(check_stream_cipher_large_block, check_bulk_cipher_modes)
(check_ciphers, check_digests, check_hmac, check_pubkey_sign)
(check_pubkey_sign_ecdsa, check_pubkey_crypt, check_pubkey): Ditto.
--

Some test vectors have been defined without 'static' and thus end up being
initialized on runtime. Change these to 'static'. Also change test vectors
const where possible.

Signed-off-by: Jussi Kivilinna <jussi.kivilinna at iki.fi>
---
 cipher/arcfour.c       |    4 ++--
 cipher/blowfish.c      |    9 ++++++---
 cipher/camellia-glue.c |   14 +++++++-------
 cipher/cast5.c         |    9 ++++++---
 cipher/des.c           |    3 ++-
 cipher/rijndael.c      |    2 +-
 tests/basic.c          |   36 ++++++++++++++++++------------------
 7 files changed, 42 insertions(+), 35 deletions(-)

diff --git a/cipher/arcfour.c b/cipher/arcfour.c
index e8a5484..89936f4 100644
--- a/cipher/arcfour.c
+++ b/cipher/arcfour.c
@@ -159,9 +159,9 @@ selftest(void)
 
   /* Test vector from Cryptlib labeled there: "from the
      State/Commerce Department". */
-  static byte key_1[] =
+  static const byte key_1[] =
     { 0x61, 0x8A, 0x63, 0xD2, 0xFB };
-  static byte plaintext_1[] =
+  static const byte plaintext_1[] =
     { 0xDC, 0xEE, 0x4C, 0xF9, 0x2C };
   static const byte ciphertext_1[] =
     { 0xF1, 0x38, 0x29, 0xC9, 0xDE };
diff --git a/cipher/blowfish.c b/cipher/blowfish.c
index 3b6bf6b..84fa9d3 100644
--- a/cipher/blowfish.c
+++ b/cipher/blowfish.c
@@ -822,9 +822,12 @@ selftest(void)
   BLOWFISH_context c;
   byte plain[] = "BLOWFISH";
   byte buffer[8];
-  byte plain3[] = { 0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10 };
-  byte key3[] = { 0x41, 0x79, 0x6E, 0xA0, 0x52, 0x61, 0x6E, 0xE4 };
-  byte cipher3[] = { 0xE1, 0x13, 0xF4, 0x10, 0x2C, 0xFC, 0xCE, 0x43 };
+  static const byte plain3[] =
+    { 0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10 };
+  static const byte key3[] =
+    { 0x41, 0x79, 0x6E, 0xA0, 0x52, 0x61, 0x6E, 0xE4 };
+  static const byte cipher3[] =
+    { 0xE1, 0x13, 0xF4, 0x10, 0x2C, 0xFC, 0xCE, 0x43 };
   const char *r;
 
   bf_setkey( (void *) &c,
diff --git a/cipher/camellia-glue.c b/cipher/camellia-glue.c
index 8c217a7..42b62d2 100644
--- a/cipher/camellia-glue.c
+++ b/cipher/camellia-glue.c
@@ -582,38 +582,38 @@ selftest(void)
   const char *r;
 
   /* These test vectors are from RFC-3713 */
-  const byte plaintext[]=
+  static const byte plaintext[]=
     {
       0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef,
       0xfe,0xdc,0xba,0x98,0x76,0x54,0x32,0x10
     };
-  const byte key_128[]=
+  static const byte key_128[]=
     {
       0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef,
       0xfe,0xdc,0xba,0x98,0x76,0x54,0x32,0x10
     };
-  const byte ciphertext_128[]=
+  static const byte ciphertext_128[]=
     {
       0x67,0x67,0x31,0x38,0x54,0x96,0x69,0x73,
       0x08,0x57,0x06,0x56,0x48,0xea,0xbe,0x43
     };
-  const byte key_192[]=
+  static const byte key_192[]=
     {
       0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef,0xfe,0xdc,0xba,0x98,
       0x76,0x54,0x32,0x10,0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77
     };
-  const byte ciphertext_192[]=
+  static const byte ciphertext_192[]=
     {
       0xb4,0x99,0x34,0x01,0xb3,0xe9,0x96,0xf8,
       0x4e,0xe5,0xce,0xe7,0xd7,0x9b,0x09,0xb9
     };
-  const byte key_256[]=
+  static const byte key_256[]=
     {
       0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef,0xfe,0xdc,0xba,
       0x98,0x76,0x54,0x32,0x10,0x00,0x11,0x22,0x33,0x44,0x55,
       0x66,0x77,0x88,0x99,0xaa,0xbb,0xcc,0xdd,0xee,0xff
     };
-  const byte ciphertext_256[]=
+  static const byte ciphertext_256[]=
     {
       0x9a,0xcc,0x23,0x7d,0xff,0x16,0xd7,0x6c,
       0x20,0xef,0x7c,0x91,0x9e,0x3a,0x75,0x09
diff --git a/cipher/cast5.c b/cipher/cast5.c
index 0df7886..8d14183 100644
--- a/cipher/cast5.c
+++ b/cipher/cast5.c
@@ -796,10 +796,13 @@ static const char*
 selftest(void)
 {
     CAST5_context c;
-    byte key[16]  = { 0x01, 0x23, 0x45, 0x67, 0x12, 0x34, 0x56, 0x78,
+    static const byte key[16] =
+                    { 0x01, 0x23, 0x45, 0x67, 0x12, 0x34, 0x56, 0x78,
 		      0x23, 0x45, 0x67, 0x89, 0x34, 0x56, 0x78, 0x9A  };
-    byte plain[8] = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF };
-    byte cipher[8]= { 0x23, 0x8B, 0x4F, 0xE5, 0x84, 0x7E, 0x44, 0xB2 };
+    static const byte plain[8] =
+                    { 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF };
+    static const byte cipher[8] =
+                    { 0x23, 0x8B, 0x4F, 0xE5, 0x84, 0x7E, 0x44, 0xB2 };
     byte buffer[8];
     const char *r;
 
diff --git a/cipher/des.c b/cipher/des.c
index 3464d53..6611fd3 100644
--- a/cipher/des.c
+++ b/cipher/des.c
@@ -893,7 +893,8 @@ selftest (void)
    * thanks to Jeroen C. van Gelderen.
    */
   {
-    struct { byte key[24]; byte plain[8]; byte cipher[8]; } testdata[] = {
+    static const struct { byte key[24]; byte plain[8]; byte cipher[8]; }
+      testdata[] = {
       { { 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
           0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
           0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01  },
diff --git a/cipher/rijndael.c b/cipher/rijndael.c
index e8733c9..b8cc18b 100644
--- a/cipher/rijndael.c
+++ b/cipher/rijndael.c
@@ -2308,7 +2308,7 @@ selftest (void)
 static const char *
 selftest_fips_128_38a (int requested_mode)
 {
-  struct tv
+  static const struct tv
   {
     int mode;
     const unsigned char key[16];
diff --git a/tests/basic.c b/tests/basic.c
index 21af21d..99d63ae 100644
--- a/tests/basic.c
+++ b/tests/basic.c
@@ -139,7 +139,7 @@ progress_handler (void *cb_data, const char *what, int printchar,
 static void
 check_cbc_mac_cipher (void)
 {
-  struct tv
+  static const struct tv
   {
     int algo;
     char key[MAX_DATA_LEN];
@@ -264,10 +264,10 @@ check_cbc_mac_cipher (void)
 static void
 check_aes128_cbc_cts_cipher (void)
 {
-  char key[128 / 8] = "chicken teriyaki";
-  unsigned char plaintext[] =
+  static const char key[128 / 8] = "chicken teriyaki";
+  static const unsigned char plaintext[] =
     "I would like the General Gau's Chicken, please, and wonton soup.";
-  struct tv
+  static const struct tv
   {
     unsigned char out[MAX_DATA_LEN];
     int inlen;
@@ -378,7 +378,7 @@ check_aes128_cbc_cts_cipher (void)
 static void
 check_ctr_cipher (void)
 {
-  struct tv
+  static const struct tv
   {
     int algo;
     char key[MAX_DATA_LEN];
@@ -734,7 +734,7 @@ check_ctr_cipher (void)
 static void
 check_cfb_cipher (void)
 {
-  struct tv
+  static const struct tv
   {
     int algo;
     char key[MAX_DATA_LEN];
@@ -905,7 +905,7 @@ check_cfb_cipher (void)
 static void
 check_ofb_cipher (void)
 {
-  struct tv
+  static const struct tv
   {
     int algo;
     char key[MAX_DATA_LEN];
@@ -1911,7 +1911,7 @@ check_ccm_cipher (void)
 static void
 check_stream_cipher (void)
 {
-  struct tv
+  static const struct tv
   {
     const char *name;
     int algo;
@@ -2252,7 +2252,7 @@ check_stream_cipher (void)
 static void
 check_stream_cipher_large_block (void)
 {
-  struct tv
+  static const struct tv
   {
     const char *name;
     int algo;
@@ -2690,7 +2690,7 @@ check_stream_cipher_large_block (void)
 static void
 check_bulk_cipher_modes (void)
 {
-  struct
+  static const struct
   {
     int algo;
     int mode;
@@ -3110,7 +3110,7 @@ check_one_cipher (int algo, int mode, int flags)
 static void
 check_ciphers (void)
 {
-  static int algos[] = {
+  static const int algos[] = {
 #if USE_BLOWFISH
     GCRY_CIPHER_BLOWFISH,
 #endif
@@ -3154,7 +3154,7 @@ check_ciphers (void)
 #endif
     0
   };
-  static int algos2[] = {
+  static const int algos2[] = {
 #if USE_ARCFOUR
     GCRY_CIPHER_ARCFOUR,
 #endif
@@ -3364,7 +3364,7 @@ check_one_md_multi (int algo, const char *data, int len, const char *expect)
 static void
 check_digests (void)
 {
-  static struct algos
+  static const struct algos
   {
     int md;
     const char *data;
@@ -3728,7 +3728,7 @@ check_one_hmac (int algo, const char *data, int datalen,
 static void
 check_hmac (void)
 {
-  static struct algos
+  static const struct algos
   {
     int md;
     const char *data;
@@ -4070,7 +4070,7 @@ check_pubkey_sign (int n, gcry_sexp_t skey, gcry_sexp_t pkey, int algo)
   static const char baddata[] =
     "(data\n (flags pkcs1)\n"
     " (hash sha1 #11223344556677889900AABBCCDDEEFF10203041#))\n";
-  static struct
+  static const struct
   {
     const char *data;
     int algo;
@@ -4173,7 +4173,7 @@ check_pubkey_sign_ecdsa (int n, gcry_sexp_t skey, gcry_sexp_t pkey)
   gcry_sexp_t sig, badhash, hash;
   unsigned int nbits;
   int dataidx;
-  static struct
+  static const struct
   {
     unsigned int nbits;
     const char *data;
@@ -4285,7 +4285,7 @@ check_pubkey_crypt (int n, gcry_sexp_t skey, gcry_sexp_t pkey, int algo)
   gcry_sexp_t ciph = NULL;
   gcry_sexp_t data = NULL;
   int dataidx;
-  static struct
+  static const struct
   {
     int algo;    /* If not 0 run test only if ALGO matches.  */
     const char *data;
@@ -4599,7 +4599,7 @@ check_one_pubkey_new (int n)
 static void
 check_pubkey (void)
 {
-  test_spec_pubkey_t pubkeys[] = {
+  static const test_spec_pubkey_t pubkeys[] = {
   {
     GCRY_PK_RSA, FLAG_CRYPT | FLAG_SIGN,
     {




More information about the Gcrypt-devel mailing list