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 | unsigned char j; | - |
7 | | - |
8 | memset(key,0,8); | - |
9 | length=strlen(str); | - |
10 | | - |
11 | | - |
12 | | - |
13 | | - |
14 | for (i=0; i<lengthTRUE | never evaluated | FALSE | never evaluated |
; i++) | 0 |
15 | { | - |
16 | j=str[i]; | - |
17 | if ((TRUE | never evaluated | FALSE | never evaluated |
i%16) < 8TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
18 | (* never executed: (*key)[i%8]^=(j<<1); key)[i%8]^=(j<<1);never executed: (*key)[i%8]^=(j<<1); | 0 |
19 | else | - |
20 | { | - |
21 | | - |
22 | j=((j<<4)&0xf0)|((j>>4)&0x0f); | - |
23 | j=((j<<2)&0xcc)|((j>>2)&0x33); | - |
24 | j=((j<<1)&0xaa)|((j>>1)&0x55); | - |
25 | (*key)[7-(i%8)]^=j; | - |
26 | } never executed: end of block | 0 |
27 | } | - |
28 | | - |
29 | DES_set_odd_parity(key); | - |
30 | | - |
31 | | - |
32 | | - |
33 | | - |
34 | | - |
35 | DES_set_key_unchecked(key,&ks); | - |
36 | | - |
37 | DES_cbc_cksum((const unsigned char*)str,key,length,&ks,key); | - |
38 | explicit_bzero(&ks,sizeof(ks)); | - |
39 | DES_set_odd_parity(key); | - |
40 | } never executed: end of block | 0 |
41 | | - |
42 | void DES_string_to_2keys(const char *str, DES_cblock *key1, DES_cblock *key2) | - |
43 | { | - |
44 | DES_key_schedule ks; | - |
45 | int i,length; | - |
46 | unsigned char j; | - |
47 | | - |
48 | memset(key1,0,8); | - |
49 | memset(key2,0,8); | - |
50 | length=strlen(str); | - |
51 | for (i=0; i<lengthTRUE | never evaluated | FALSE | never evaluated |
; i++) | 0 |
52 | { | - |
53 | j=str[i]; | - |
54 | if ((TRUE | never evaluated | FALSE | never evaluated |
i%32) < 16TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
55 | { | - |
56 | if ((TRUE | never evaluated | FALSE | never evaluated |
i%16) < 8TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
57 | (* never executed: (*key1)[i%8]^=(j<<1); key1)[i%8]^=(j<<1);never executed: (*key1)[i%8]^=(j<<1); | 0 |
58 | else | - |
59 | (* never executed: (*key2)[i%8]^=(j<<1); key2)[i%8]^=(j<<1);never executed: (*key2)[i%8]^=(j<<1); | 0 |
60 | } | - |
61 | else | - |
62 | { | - |
63 | j=((j<<4)&0xf0)|((j>>4)&0x0f); | - |
64 | j=((j<<2)&0xcc)|((j>>2)&0x33); | - |
65 | j=((j<<1)&0xaa)|((j>>1)&0x55); | - |
66 | if ((TRUE | never evaluated | FALSE | never evaluated |
i%16) < 8TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
67 | (* never executed: (*key1)[7-(i%8)]^=j; key1)[7-(i%8)]^=j;never executed: (*key1)[7-(i%8)]^=j; | 0 |
68 | else | - |
69 | (* never executed: (*key2)[7-(i%8)]^=j; key2)[7-(i%8)]^=j;never executed: (*key2)[7-(i%8)]^=j; | 0 |
70 | } | - |
71 | } | - |
72 | if (length <= 8TRUE | never evaluated | FALSE | never evaluated |
) memcpy(key2,key1,8);never executed: memcpy(key2,key1,8); | 0 |
73 | | - |
74 | DES_set_odd_parity(key1); | - |
75 | DES_set_odd_parity(key2); | - |
76 | | - |
77 | | - |
78 | | - |
79 | | - |
80 | | - |
81 | DES_set_key_unchecked(key1,&ks); | - |
82 | | - |
83 | DES_cbc_cksum((const unsigned char*)str,key1,length,&ks,key1); | - |
84 | | - |
85 | | - |
86 | | - |
87 | | - |
88 | | - |
89 | DES_set_key_unchecked(key2,&ks); | - |
90 | | - |
91 | DES_cbc_cksum((const unsigned char*)str,key2,length,&ks,key2); | - |
92 | explicit_bzero(&ks,sizeof(ks)); | - |
93 | DES_set_odd_parity(key1); | - |
94 | DES_set_odd_parity(key2); | - |
95 | } never executed: end of block | 0 |
| | |