Line | Source | Count |
1 | | - |
2 | void DES_string_to_key(const char *str, DES_cblock *key) | - |
3 | { | - |
4 | DES_key_schedule ks; | - |
5 | int i, length; | - |
6 | | - |
7 | memset(key, 0, 8); | - |
8 | length = strlen(str); | - |
9 | for (i = 0; i < lengthTRUE | never evaluated | FALSE | never evaluated |
; i++) { | 0 |
10 | register unsigned char j = str[i]; | - |
11 | | - |
12 | if ((TRUE | never evaluated | FALSE | never evaluated |
i % 16) < 8TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
13 | (* never executed: (*key)[i % 8] ^= (j << 1); key)[i % 8] ^= (j << 1);never executed: (*key)[i % 8] ^= (j << 1); | 0 |
14 | else { | - |
15 | | - |
16 | j = ((j << 4) & 0xf0) | ((j >> 4) & 0x0f); | - |
17 | j = ((j << 2) & 0xcc) | ((j >> 2) & 0x33); | - |
18 | j = ((j << 1) & 0xaa) | ((j >> 1) & 0x55); | - |
19 | (*key)[7 - (i % 8)] ^= j; | - |
20 | } never executed: end of block | 0 |
21 | } | - |
22 | DES_set_odd_parity(key); | - |
23 | DES_set_key_unchecked(key, &ks); | - |
24 | DES_cbc_cksum((const unsigned char *)str, key, length, &ks, key); | - |
25 | OPENSSL_cleanse(&ks, sizeof(ks)); | - |
26 | DES_set_odd_parity(key); | - |
27 | } never executed: end of block | 0 |
28 | | - |
29 | void DES_string_to_2keys(const char *str, DES_cblock *key1, DES_cblock *key2) | - |
30 | { | - |
31 | DES_key_schedule ks; | - |
32 | int i, length; | - |
33 | | - |
34 | memset(key1, 0, 8); | - |
35 | memset(key2, 0, 8); | - |
36 | length = strlen(str); | - |
37 | for (i = 0; i < lengthTRUE | never evaluated | FALSE | never evaluated |
; i++) { | 0 |
38 | register unsigned char j = str[i]; | - |
39 | | - |
40 | if ((TRUE | never evaluated | FALSE | never evaluated |
i % 32) < 16TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
41 | if ((TRUE | never evaluated | FALSE | never evaluated |
i % 16) < 8TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
42 | (* never executed: (*key1)[i % 8] ^= (j << 1); key1)[i % 8] ^= (j << 1);never executed: (*key1)[i % 8] ^= (j << 1); | 0 |
43 | else | - |
44 | (* never executed: (*key2)[i % 8] ^= (j << 1); key2)[i % 8] ^= (j << 1);never executed: (*key2)[i % 8] ^= (j << 1); | 0 |
45 | } else { | - |
46 | j = ((j << 4) & 0xf0) | ((j >> 4) & 0x0f); | - |
47 | j = ((j << 2) & 0xcc) | ((j >> 2) & 0x33); | - |
48 | j = ((j << 1) & 0xaa) | ((j >> 1) & 0x55); | - |
49 | if ((TRUE | never evaluated | FALSE | never evaluated |
i % 16) < 8TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
50 | (* never executed: (*key1)[7 - (i % 8)] ^= j; key1)[7 - (i % 8)] ^= j;never executed: (*key1)[7 - (i % 8)] ^= j; | 0 |
51 | else | - |
52 | (* never executed: (*key2)[7 - (i % 8)] ^= j; key2)[7 - (i % 8)] ^= j;never executed: (*key2)[7 - (i % 8)] ^= j; | 0 |
53 | } | - |
54 | } | - |
55 | if (length <= 8TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
56 | memcpy(key2, key1, 8); never executed: memcpy(key2, key1, 8); | 0 |
57 | DES_set_odd_parity(key1); | - |
58 | DES_set_odd_parity(key2); | - |
59 | DES_set_key_unchecked(key1, &ks); | - |
60 | DES_cbc_cksum((const unsigned char *)str, key1, length, &ks, key1); | - |
61 | DES_set_key_unchecked(key2, &ks); | - |
62 | DES_cbc_cksum((const unsigned char *)str, key2, length, &ks, key2); | - |
63 | OPENSSL_cleanse(&ks, sizeof(ks)); | - |
64 | DES_set_odd_parity(key1); | - |
65 | DES_set_odd_parity(key2); | - |
66 | } never executed: end of block | 0 |
| | |