|
1 | 1 | -: 0:Source:aria.c |
2 | | - -: 0:Graph:main.gcno |
| 2 | + -: 0:Graph:./main.gcno |
3 | 3 | -: 0:Data:- |
4 | 4 | -: 0:Runs:0 |
5 | 5 | -: 0:Programs:0 |
|
108 | 108 | -: 103:}; |
109 | 109 | -: 104: |
110 | 110 | -: 105:// Diffusion Layer |
| 111 | +function DL called 0 returned 0% blocks executed 0% |
111 | 112 | #####: 106:void DL (const Byte *i, Byte *o) |
112 | 113 | -: 107:{ |
113 | 114 | -: 108: Byte T; |
|
134 | 135 | #####: 129: o[13] = i[ 3] ^ i[ 6] ^ i[ 8] ^ T; |
135 | 136 | #####: 130:} |
136 | 137 | -: 131:// Right-rotate 128 bit source string s by n bits and XOR it to target string t |
| 138 | +function RotXOR called 0 returned 0% blocks executed 0% |
137 | 139 | #####: 132:void RotXOR (const Byte *s, int n, Byte *t) |
138 | 140 | -: 133:{ |
139 | 141 | -: 134: int i, q; |
140 | 142 | -: 135: |
141 | 143 | #####: 136: q = n/8; n %= 8; |
142 | 144 | #####: 137: for (i = 0; i < 16; i++) { |
| 145 | +branch 0 never executed |
| 146 | +branch 1 never executed |
143 | 147 | #####: 138: t[(q+i) % 16] ^= (s[i] >> n); |
144 | 148 | #####: 139: if (n != 0) t[(q+i+1) % 16] ^= (s[i] << (8-n)); |
| 149 | +branch 0 never executed |
| 150 | +branch 1 never executed |
145 | 151 | -: 140: } |
146 | 152 | #####: 141:} |
147 | 153 | -: 142: |
148 | 154 | -: 143:void printBlock(Byte *b); |
149 | 155 | -: 144: |
150 | 156 | -: 145:// Encryption round key generation rountine |
151 | 157 | -: 146:// w0 : master key, e : encryption round keys |
| 158 | +function EncKeySetup called 0 returned 0% blocks executed 0% |
152 | 159 | #####: 147:int EncKeySetup(const Byte *w0, Byte *e, int keyBits) { |
153 | 160 | #####: 148: int i, R=(keyBits+256)/32, q; |
154 | 161 | -: 149: Byte t[16], w1[16], w2[16], w3[16]; |
155 | 162 | -: 150: |
156 | 163 | #####: 151: q = (keyBits - 128) / 64; |
157 | 164 | #####: 152: for (i = 0; i < 16; i++) t[i] = S[ i % 4][KRK[q][i ] ^ w0[i]]; |
| 165 | +branch 0 never executed |
| 166 | +branch 1 never executed |
158 | 167 | #####: 153: DL (t, w1); |
| 168 | +call 0 never executed |
159 | 169 | #####: 154: if (R==14) |
| 170 | +branch 0 never executed |
| 171 | +branch 1 never executed |
160 | 172 | #####: 155: for (i = 0; i < 8; i++) w1[i] ^= w0[16+i]; |
| 173 | +branch 0 never executed |
| 174 | +branch 1 never executed |
161 | 175 | #####: 156: else if (R==16) |
| 176 | +branch 0 never executed |
| 177 | +branch 1 never executed |
162 | 178 | #####: 157: for (i = 0; i < 16; i++) w1[i] ^= w0[16+i]; |
| 179 | +branch 0 never executed |
| 180 | +branch 1 never executed |
163 | 181 | -: 158: |
164 | 182 | #####: 159: q = (q==2)? 0 : (q+1); |
| 183 | +branch 0 never executed |
| 184 | +branch 1 never executed |
165 | 185 | #####: 160: for (i = 0; i < 16; i++) t[i] = S[(2 + i) % 4][KRK[q][i] ^ w1[i]]; |
| 186 | +branch 0 never executed |
| 187 | +branch 1 never executed |
166 | 188 | #####: 161: DL (t, w2); |
| 189 | +call 0 never executed |
167 | 190 | #####: 162: for (i = 0; i < 16; i++) w2[i] ^= w0[i]; |
| 191 | +branch 0 never executed |
| 192 | +branch 1 never executed |
168 | 193 | -: 163: |
169 | 194 | #####: 164: q = (q==2)? 0 : (q+1); |
| 195 | +branch 0 never executed |
| 196 | +branch 1 never executed |
170 | 197 | #####: 165: for (i = 0; i < 16; i++) t[i] = S[ i % 4][KRK[q][i] ^ w2[i]]; |
| 198 | +branch 0 never executed |
| 199 | +branch 1 never executed |
171 | 200 | #####: 166: DL (t, w3); |
| 201 | +call 0 never executed |
172 | 202 | #####: 167: for (i = 0; i < 16; i++) w3[i] ^= w1[i]; |
| 203 | +branch 0 never executed |
| 204 | +branch 1 never executed |
173 | 205 | -: 168: |
174 | 206 | #####: 169: for (i = 0; i < 16*(R+1); i++) e[i] = 0; |
| 207 | +branch 0 never executed |
| 208 | +branch 1 never executed |
175 | 209 | -: 170: |
176 | 210 | #####: 171: RotXOR (w0, 0, e ); RotXOR (w1, 19, e ); |
| 211 | +call 0 never executed |
| 212 | +call 1 never executed |
177 | 213 | #####: 172: RotXOR (w1, 0, e + 16); RotXOR (w2, 19, e + 16); |
| 214 | +call 0 never executed |
| 215 | +call 1 never executed |
178 | 216 | #####: 173: RotXOR (w2, 0, e + 32); RotXOR (w3, 19, e + 32); |
| 217 | +call 0 never executed |
| 218 | +call 1 never executed |
179 | 219 | #####: 174: RotXOR (w3, 0, e + 48); RotXOR (w0, 19, e + 48); |
| 220 | +call 0 never executed |
| 221 | +call 1 never executed |
180 | 222 | #####: 175: RotXOR (w0, 0, e + 64); RotXOR (w1, 31, e + 64); |
| 223 | +call 0 never executed |
| 224 | +call 1 never executed |
181 | 225 | #####: 176: RotXOR (w1, 0, e + 80); RotXOR (w2, 31, e + 80); |
| 226 | +call 0 never executed |
| 227 | +call 1 never executed |
182 | 228 | #####: 177: RotXOR (w2, 0, e + 96); RotXOR (w3, 31, e + 96); |
| 229 | +call 0 never executed |
| 230 | +call 1 never executed |
183 | 231 | #####: 178: RotXOR (w3, 0, e + 112); RotXOR (w0, 31, e + 112); |
| 232 | +call 0 never executed |
| 233 | +call 1 never executed |
184 | 234 | #####: 179: RotXOR (w0, 0, e + 128); RotXOR (w1, 67, e + 128); |
| 235 | +call 0 never executed |
| 236 | +call 1 never executed |
185 | 237 | #####: 180: RotXOR (w1, 0, e + 144); RotXOR (w2, 67, e + 144); |
| 238 | +call 0 never executed |
| 239 | +call 1 never executed |
186 | 240 | #####: 181: RotXOR (w2, 0, e + 160); RotXOR (w3, 67, e + 160); |
| 241 | +call 0 never executed |
| 242 | +call 1 never executed |
187 | 243 | #####: 182: RotXOR (w3, 0, e + 176); RotXOR (w0, 67, e + 176); |
| 244 | +call 0 never executed |
| 245 | +call 1 never executed |
188 | 246 | #####: 183: RotXOR (w0, 0, e + 192); RotXOR (w1, 97, e + 192); |
| 247 | +call 0 never executed |
| 248 | +call 1 never executed |
189 | 249 | #####: 184: if (R > 12) { |
| 250 | +branch 0 never executed |
| 251 | +branch 1 never executed |
190 | 252 | #####: 185: RotXOR (w1, 0, e + 208); RotXOR (w2, 97, e + 208); |
| 253 | +call 0 never executed |
| 254 | +call 1 never executed |
191 | 255 | #####: 186: RotXOR (w2, 0, e + 224); RotXOR (w3, 97, e + 224); |
| 256 | +call 0 never executed |
| 257 | +call 1 never executed |
192 | 258 | -: 187: } |
193 | 259 | #####: 188: if (R > 14) { |
| 260 | +branch 0 never executed |
| 261 | +branch 1 never executed |
194 | 262 | #####: 189: RotXOR (w3, 0, e + 240); RotXOR (w0, 97, e + 240); |
| 263 | +call 0 never executed |
| 264 | +call 1 never executed |
195 | 265 | #####: 190: RotXOR (w0, 0, e + 256); RotXOR (w1, 109, e + 256); |
| 266 | +call 0 never executed |
| 267 | +call 1 never executed |
196 | 268 | -: 191: } |
197 | 269 | #####: 192: return R; |
198 | 270 | -: 193:} |
199 | 271 | -: 194:// Decryption round key generation rountine |
200 | 272 | -: 195:// w0 : maskter key, d : decryption round keys |
| 273 | +function DecKeySetup called 0 returned 0% blocks executed 0% |
201 | 274 | #####: 196:int DecKeySetup(const Byte *w0, Byte *d, int keyBits) { |
202 | 275 | -: 197: int i, j, R; |
203 | 276 | -: 198: Byte t[16]; |
204 | 277 | -: 199: |
205 | 278 | #####: 200: R=EncKeySetup(w0, d, keyBits); |
| 279 | +call 0 never executed |
206 | 280 | #####: 201: for (j = 0; j < 16; j++){ |
| 281 | +branch 0 never executed |
| 282 | +branch 1 never executed |
207 | 283 | #####: 202: t[j] = d[j]; |
208 | 284 | #####: 203: d[j] = d[16*R + j]; |
209 | 285 | #####: 204: d[16*R + j] = t[j]; |
210 | 286 | -: 205: } |
211 | 287 | #####: 206: for (i = 1; i <= R/2; i++){ |
| 288 | +branch 0 never executed |
| 289 | +branch 1 never executed |
212 | 290 | #####: 207: DL (d + i*16, t); |
| 291 | +call 0 never executed |
213 | 292 | #####: 208: DL (d + (R-i)*16, d + i*16); |
| 293 | +call 0 never executed |
214 | 294 | #####: 209: for (j = 0; j < 16; j++) d[(R-i)*16 + j] = t[j]; |
| 295 | +branch 0 never executed |
| 296 | +branch 1 never executed |
215 | 297 | -: 210: } |
216 | 298 | #####: 211: return R; |
217 | 299 | -: 212:} |
218 | 300 | -: 213:// Encryption and decryption rountine |
219 | 301 | -: 214:// p: plain text, e: round keys, c: ciphertext |
| 302 | +function Crypt called 0 returned 0% blocks executed 0% |
220 | 303 | #####: 215:void Crypt(const Byte *p, int R, const Byte *e, Byte *c) |
221 | 304 | -: 216:{ |
222 | 305 | -: 217: int i, j; |
223 | 306 | -: 218: Byte t[16]; |
224 | 307 | -: 219: |
225 | 308 | #####: 220: for (j = 0; j < 16; j++) c[j] = p[j]; |
| 309 | +branch 0 never executed |
| 310 | +branch 1 never executed |
226 | 311 | #####: 221: for (i = 0; i < R/2; i++) |
| 312 | +branch 0 never executed |
| 313 | +branch 1 never executed |
227 | 314 | -: 222: { |
228 | 315 | #####: 223: for (j = 0; j < 16; j++) t[j] = S[ j % 4][e[j] ^ c[j]]; |
| 316 | +branch 0 never executed |
| 317 | +branch 1 never executed |
229 | 318 | #####: 224: DL(t, c); e += 16; |
| 319 | +call 0 never executed |
230 | 320 | #####: 225: for (j = 0; j < 16; j++) t[j] = S[(2 + j) % 4][e[j] ^ c[j]]; |
| 321 | +branch 0 never executed |
| 322 | +branch 1 never executed |
231 | 323 | #####: 226: DL(t, c); e += 16; |
| 324 | +call 0 never executed |
232 | 325 | -: 227: } |
233 | 326 | #####: 228: DL(c, t); |
| 327 | +call 0 never executed |
234 | 328 | #####: 229: for (j = 0; j < 16; j++) c[j] = e[j] ^ t[j]; |
| 329 | +branch 0 never executed |
| 330 | +branch 1 never executed |
235 | 331 | #####: 230:} |
236 | 332 | -: 231: |
| 333 | +function printBlockOfLength called 0 returned 0% blocks executed 0% |
237 | 334 | #####: 232:void printBlockOfLength(Byte *b, int len) { |
238 | 335 | -: 233: int i; |
239 | 336 | -: 234: |
240 | 337 | #####: 235: for (i=0; i<len; i++, b++) { |
| 338 | +branch 0 never executed |
| 339 | +branch 1 never executed |
241 | 340 | #####: 236: printf("%02x", *b); |
| 341 | +call 0 never executed |
242 | 342 | #####: 237: if (i%4==3 && i<len-1) printf(" "); |
| 343 | +branch 0 never executed |
| 344 | +branch 1 never executed |
| 345 | +branch 2 never executed |
| 346 | +branch 3 never executed |
| 347 | +call 4 never executed |
243 | 348 | -: 238: } |
244 | 349 | #####: 239:} |
245 | 350 | -: 240: |
| 351 | +function printBlock called 0 returned 0% blocks executed 0% |
246 | 352 | #####: 241:void printBlock(Byte *b) { |
247 | 353 | #####: 242: printBlockOfLength(b, 16); |
| 354 | +call 0 never executed |
248 | 355 | #####: 243:} |
249 | 356 | -: 244: |
| 357 | +function ARIA called 0 returned 0% blocks executed 0% |
250 | 358 | #####: 245:char ARIA (Byte *p) { |
251 | 359 | -: 246: Byte rk[16*17], c[16], mk[32]; |
252 | 360 | -: 247: int i; |
253 | 361 | -: 248: |
254 | 362 | #####: 249: for (i=0; i<16; i++) |
| 363 | +branch 0 never executed |
| 364 | +branch 1 never executed |
255 | 365 | #####: 250: mk[i]=i*0x11; |
256 | 366 | #####: 251: for (i=16; i<24; i++) |
| 367 | +branch 0 never executed |
| 368 | +branch 1 never executed |
257 | 369 | #####: 252: mk[i]=(i-16)*0x11; |
258 | 370 | -: 253: |
259 | 371 | #####: 254: Crypt(p, EncKeySetup(mk, rk, 192), rk, c); |
| 372 | +call 0 never executed |
| 373 | +call 1 never executed |
260 | 374 | -: 255: |
261 | 375 | #####: 256: return *p; |
262 | 376 | -: 257:} |
|
0 commit comments