~ubuntu-branches/ubuntu/utopic/nettle/utopic

« back to all changes in this revision

Viewing changes to testsuite/cbc-test.c

  • Committer: Package Import Robot
  • Author(s): Magnus Holmgren
  • Date: 2013-05-07 22:57:14 UTC
  • mfrom: (8.1.8 sid)
  • Revision ID: package-import@ubuntu.com-20130507225714-s331yr8ov53dtt17
Tags: 2.7-2
Tag some (ECC related) symbols that only exist on some architectures.

Show diffs side-by-side

added added

removed removed

Lines of Context:
35
35
 
36
36
  CBC_ENCRYPT(&aes, aes_encrypt, CBC_BULK_DATA, cipher, clear);
37
37
 
38
 
  if (cipher[CBC_BULK_DATA] != 17)
39
 
    FAIL();
 
38
  ASSERT(cipher[CBC_BULK_DATA] == 17);
40
39
 
41
40
  if (verbose)
42
41
    {
45
44
      printf("\n");
46
45
    }
47
46
 
48
 
  if (!MEMEQ(AES_BLOCK_SIZE, aes.iv, end_iv))
49
 
    FAIL();
 
47
  ASSERT(MEMEQ(AES_BLOCK_SIZE, aes.iv, end_iv));
50
48
  
51
49
  /* Decrypt, in place */
52
50
  aes_set_decrypt_key(&aes.ctx, 32, key);
53
51
  CBC_SET_IV(&aes, start_iv);
54
52
  CBC_DECRYPT(&aes, aes_decrypt, CBC_BULK_DATA, cipher, cipher);
55
53
 
56
 
  if (cipher[CBC_BULK_DATA] != 17)
57
 
    FAIL();
 
54
  ASSERT(cipher[CBC_BULK_DATA] == 17);
58
55
 
59
56
  if (verbose)
60
57
    {
63
60
      printf("\n");
64
61
    }
65
62
 
66
 
  if (!MEMEQ(AES_BLOCK_SIZE, aes.iv, end_iv))
67
 
    FAIL();
68
 
 
69
 
  if (!MEMEQ(CBC_BULK_DATA, clear, cipher))
70
 
    FAIL();
 
63
  ASSERT (MEMEQ(AES_BLOCK_SIZE, aes.iv, end_iv));
 
64
  ASSERT (MEMEQ(CBC_BULK_DATA, clear, cipher));
71
65
}
72
66
 
73
 
int
 
67
void
74
68
test_main(void)
75
69
{
76
 
  static const uint8_t msg[2 * AES_BLOCK_SIZE] = "Listen, I'll say this only once!";
77
 
  
78
70
  /* Intermediate values:
79
71
   *   iv XOR first message block:
80
72
   *       "a5 ce 55 d4 21 15 a1 c6 4a a4 0c b2 ca a6 d1 37"
87
79
   */
88
80
 
89
81
  test_cipher_cbc(&nettle_aes256,
90
 
                  HL("8d ae 93 ff fc 78 c9 44"
91
 
                     "2a bd 0c 1e 68 bc a6 c7"
92
 
                     "05 c7 84 e3 5a a9 11 8b"
93
 
                     "d3 16 aa 54 9b 44 08 9e"),
94
 
                  2 * AES_BLOCK_SIZE, msg,
95
 
                  H("1f 94 fc 85 f2 36 21 06"
96
 
                    "4a ea e3 c9 cc 38 01 0e"
97
 
                    "7b f6 5f c5 02 59 2e 71"
98
 
                    "af bf 34 87 c0 36 2a 16"),
99
 
                  H("e9 a7 26 a0 44 7b 8d e6  03 83 60 de ea d5 b0 4e"));
 
82
                  SHEX("8d ae 93 ff fc 78 c9 44"
 
83
                       "2a bd 0c 1e 68 bc a6 c7"
 
84
                       "05 c7 84 e3 5a a9 11 8b"
 
85
                       "d3 16 aa 54 9b 44 08 9e"),
 
86
                  SDATA("Listen, I'll say this only once!"),
 
87
                  SHEX("1f 94 fc 85 f2 36 21 06"
 
88
                       "4a ea e3 c9 cc 38 01 0e"
 
89
                       "7b f6 5f c5 02 59 2e 71"
 
90
                       "af bf 34 87 c0 36 2a 16"),
 
91
                  SHEX("e9 a7 26 a0 44 7b 8d e6  03 83 60 de ea d5 b0 4e"));
100
92
 
101
93
  /* From NIST spec 800-38a on AES modes.
102
94
   *
112
104
   *   8521f2fd3c8eef2cdc3da7e5c44ea206 
113
105
   */
114
106
  test_cipher_cbc(&nettle_aes128,
115
 
                  HL("2b7e151628aed2a6abf7158809cf4f3c"),
116
 
                  HL("6bc1bee22e409f96e93d7e117393172a"
117
 
                     "ae2d8a571e03ac9c9eb76fac45af8e51"
118
 
                     "30c81c46a35ce411e5fbc1191a0a52ef"
119
 
                     "f69f2445df4f9b17ad2b417be66c3710"),
120
 
                  H("7649abac8119b246cee98e9b12e9197d"
121
 
                    "5086cb9b507219ee95db113a917678b2"
122
 
                    "73bed6b8e3c1743b7116e69e22229516"
123
 
                    "3ff1caa1681fac09120eca307586e1a7"),
124
 
                  H("000102030405060708090a0b0c0d0e0f"));
 
107
                  SHEX("2b7e151628aed2a6abf7158809cf4f3c"),
 
108
                  SHEX("6bc1bee22e409f96e93d7e117393172a"
 
109
                       "ae2d8a571e03ac9c9eb76fac45af8e51"
 
110
                       "30c81c46a35ce411e5fbc1191a0a52ef"
 
111
                       "f69f2445df4f9b17ad2b417be66c3710"),
 
112
                  SHEX("7649abac8119b246cee98e9b12e9197d"
 
113
                       "5086cb9b507219ee95db113a917678b2"
 
114
                       "73bed6b8e3c1743b7116e69e22229516"
 
115
                       "3ff1caa1681fac09120eca307586e1a7"),
 
116
                  SHEX("000102030405060708090a0b0c0d0e0f"));
125
117
  
126
118
  /* F.2.3 CBC-AES192.Encrypt */
127
119
  
134
126
   */
135
127
 
136
128
  test_cipher_cbc(&nettle_aes192,
137
 
                  HL("8e73b0f7da0e6452c810f32b809079e5"
138
 
                     "62f8ead2522c6b7b"),
139
 
                  HL("6bc1bee22e409f96e93d7e117393172a"
140
 
                     "ae2d8a571e03ac9c9eb76fac45af8e51"
141
 
                     "30c81c46a35ce411e5fbc1191a0a52ef"
142
 
                     "f69f2445df4f9b17ad2b417be66c3710"),
143
 
                  H("4f021db243bc633d7178183a9fa071e8"
144
 
                    "b4d9ada9ad7dedf4e5e738763f69145a"
145
 
                    "571b242012fb7ae07fa9baac3df102e0"
146
 
                    "08b0e27988598881d920a9e64f5615cd"),
147
 
                  H("000102030405060708090a0b0c0d0e0f"));
 
129
                  SHEX("8e73b0f7da0e6452c810f32b809079e5"
 
130
                       "62f8ead2522c6b7b"),
 
131
                  SHEX("6bc1bee22e409f96e93d7e117393172a"
 
132
                       "ae2d8a571e03ac9c9eb76fac45af8e51"
 
133
                       "30c81c46a35ce411e5fbc1191a0a52ef"
 
134
                       "f69f2445df4f9b17ad2b417be66c3710"),
 
135
                  SHEX("4f021db243bc633d7178183a9fa071e8"
 
136
                       "b4d9ada9ad7dedf4e5e738763f69145a"
 
137
                       "571b242012fb7ae07fa9baac3df102e0"
 
138
                       "08b0e27988598881d920a9e64f5615cd"),
 
139
                  SHEX("000102030405060708090a0b0c0d0e0f"));
148
140
   
149
141
  /* F.2.5 CBC-AES256.Encrypt */
150
142
 
157
149
   */
158
150
 
159
151
  test_cipher_cbc(&nettle_aes256,
160
 
                  HL("603deb1015ca71be2b73aef0857d7781"
161
 
                     "1f352c073b6108d72d9810a30914dff4"),
162
 
                  HL("6bc1bee22e409f96e93d7e117393172a"
163
 
                     "ae2d8a571e03ac9c9eb76fac45af8e51"
164
 
                     "30c81c46a35ce411e5fbc1191a0a52ef"
165
 
                     "f69f2445df4f9b17ad2b417be66c3710"),
166
 
                  H("f58c4c04d6e5f1ba779eabfb5f7bfbd6"
167
 
                    "9cfc4e967edb808d679f777bc6702c7d"
168
 
                    "39f23369a9d9bacfa530e26304231461"
169
 
                    "b2eb05e2c39be9fcda6c19078c6a9d1b"),
170
 
                  H("000102030405060708090a0b0c0d0e0f"));
 
152
                  SHEX("603deb1015ca71be2b73aef0857d7781"
 
153
                       "1f352c073b6108d72d9810a30914dff4"),
 
154
                  SHEX("6bc1bee22e409f96e93d7e117393172a"
 
155
                       "ae2d8a571e03ac9c9eb76fac45af8e51"
 
156
                       "30c81c46a35ce411e5fbc1191a0a52ef"
 
157
                       "f69f2445df4f9b17ad2b417be66c3710"),
 
158
                  SHEX("f58c4c04d6e5f1ba779eabfb5f7bfbd6"
 
159
                       "9cfc4e967edb808d679f777bc6702c7d"
 
160
                       "39f23369a9d9bacfa530e26304231461"
 
161
                       "b2eb05e2c39be9fcda6c19078c6a9d1b"),
 
162
                  SHEX("000102030405060708090a0b0c0d0e0f"));
171
163
 
172
164
  test_cbc_bulk();
173
 
   
174
 
  SUCCESS();
175
165
}
176
166
 
177
167
/*