| line |
true |
false |
branch |
|
38
|
117 |
0 |
size_t len = passwd ? strlen(passwd) : 0; |
|
39
|
0 |
117 |
if (len > 32) len = 32; |
|
41
|
75 |
42 |
if (len > 0) { |
|
53
|
5 |
37 |
if (state == 0) { |
|
57
|
476 |
42 |
for (i = 0; i < len; i++) { |
|
97
|
13 |
50 |
if (ctx->R >= 4 && !encrypt_metadata) { |
|
|
0 |
13 |
if (ctx->R >= 4 && !encrypt_metadata) { |
|
109
|
28 |
35 |
if (ctx->R >= 3) { |
|
110
|
1400 |
28 |
for (i = 0; i < 50; i++) { |
|
136
|
15 |
0 |
pw = (owner_passwd && *owner_passwd) ? owner_passwd : user_passwd; |
|
|
15 |
0 |
pw = (owner_passwd && *owner_passwd) ? owner_passwd : user_passwd; |
|
144
|
12 |
3 |
if (ctx->R >= 3) { |
|
145
|
600 |
12 |
for (i = 0; i < 50; i++) { |
|
155
|
12 |
3 |
if (ctx->R >= 3) { |
|
156
|
228 |
12 |
for (i = 1; i <= 19; i++) { |
|
157
|
3648 |
228 |
for (j = 0; j < key_length; j++) { |
|
193
|
228 |
12 |
for (i = 1; i <= 19; i++) { |
|
194
|
3648 |
228 |
for (j = 0; j < ctx->file_key_len; j++) { |
|
237
|
24 |
25 |
if (user_key) { |
|
249
|
3136 |
280 |
while (round < 64 || (round - 32) < last_e_byte) { |
|
|
231 |
49 |
while (round < 64 || (round - 32) < last_e_byte) { |
|
251
|
1633 |
1734 |
k1_single = passwd_len + hash_len + (user_key ? 48 : 0); |
|
254
|
0 |
3367 |
if (!K1) return; |
|
256
|
215488 |
3367 |
for (i = 0; i < 64; i++) { |
|
260
|
104512 |
110976 |
if (user_key) { |
|
269
|
0 |
3367 |
if (!E) { free(K1); return; } |
|
274
|
1024292 |
3367 |
for (pos = 0; pos < k1_len; pos += 16) { |
|
275
|
16388672 |
1024292 |
for (j = 0; j < 16; j++) { |
|
285
|
53872 |
3367 |
for (i = 0; i < 16; i++) sum += E[i]; |
|
288
|
1100 |
2267 |
if (hash_type == 0) { |
|
291
|
1052 |
1215 |
} else if (hash_type == 1) { |
|
328
|
7 |
0 |
passwd_len = user_passwd ? strlen(user_passwd) : 0; |
|
329
|
0 |
7 |
if (passwd_len > 127) passwd_len = 127; |
|
351
|
14 |
7 |
for (i = 0; i < 32; i += 16) { |
|
352
|
224 |
14 |
for (j = 0; j < 16; j++) { |
|
373
|
7 |
0 |
passwd_len = owner_passwd ? strlen(owner_passwd) : 0; |
|
374
|
0 |
7 |
if (passwd_len > 127) passwd_len = 127; |
|
396
|
14 |
7 |
for (i = 0; i < 32; i += 16) { |
|
397
|
224 |
14 |
for (j = 0; j < 16; j++) { |
|
424
|
7 |
0 |
perms_data[8] = ctx->encrypt_metadata ? 'T' : 'F'; |
|
467
|
8 |
14 |
if (doc_id_len > 16) doc_id_len = 16; |
|
497
|
15 |
7 |
if (ctx->R <= 4) { |
|
507
|
3 |
12 |
if (ctx->R == 2) { |
|
519
|
7 |
0 |
op = (owner_passwd && *owner_passwd) ? owner_passwd : user_passwd; |
|
|
7 |
0 |
op = (owner_passwd && *owner_passwd) ? owner_passwd : user_passwd; |
|
553
|
16 |
9 |
if (V == 1) { |
|
556
|
2 |
7 |
} else if (V == 2) { |
|
558
|
2 |
5 |
} else if (V == 4) { |
|
561
|
5 |
0 |
} else if (V == 5) { |
|
569
|
25 |
0 |
if (O && O_len > 0) { |
|
|
25 |
0 |
if (O && O_len > 0) { |
|
573
|
25 |
0 |
if (U && U_len > 0) { |
|
|
25 |
0 |
if (U && U_len > 0) { |
|
577
|
5 |
20 |
if (OE && OE_len == 32) { |
|
|
5 |
0 |
if (OE && OE_len == 32) { |
|
580
|
5 |
20 |
if (UE && UE_len == 32) { |
|
|
5 |
0 |
if (UE && UE_len == 32) { |
|
583
|
5 |
20 |
if (Perms && Perms_len == 16) { |
|
|
5 |
0 |
if (Perms && Perms_len == 16) { |
|
587
|
25 |
0 |
if (doc_id && doc_id_len > 0) { |
|
|
25 |
0 |
if (doc_id && doc_id_len > 0) { |
|
620
|
32 |
16 |
if (ctx->R == 2) { |
|
634
|
304 |
16 |
for (i = 1; i <= 19; i++) { |
|
635
|
4864 |
304 |
for (j = 0; j < ctx->file_key_len; j++) { |
|
660
|
8 |
16 |
if (ctx->R >= 3) { |
|
661
|
400 |
8 |
for (i = 0; i < 50; i++) { |
|
669
|
16 |
8 |
if (ctx->R == 2) { |
|
673
|
160 |
8 |
for (i = 19; i >= 0; i--) { |
|
674
|
2560 |
160 |
for (j = 0; j < ctx->key_length; j++) { |
|
698
|
8 |
0 |
passwd_len = passwd ? strlen(passwd) : 0; |
|
699
|
0 |
8 |
if (passwd_len > 127) passwd_len = 127; |
|
705
|
5 |
3 |
if (memcmp(hash, ctx->U, 32) != 0) { |
|
717
|
6 |
3 |
for (i = 0; i < 32; i += 16) { |
|
719
|
96 |
6 |
for (j = 0; j < 16; j++) { |
|
739
|
9 |
0 |
passwd_len = passwd ? strlen(passwd) : 0; |
|
740
|
0 |
9 |
if (passwd_len > 127) passwd_len = 127; |
|
746
|
8 |
1 |
if (memcmp(hash, ctx->O, 32) != 0) { |
|
758
|
2 |
1 |
for (i = 0; i < 32; i += 16) { |
|
760
|
32 |
2 |
for (j = 0; j < 16; j++) { |
|
772
|
0 |
33 |
if (!ctx->initialized) { |
|
776
|
24 |
9 |
if (ctx->R <= 4) { |
|
778
|
0 |
24 |
if (authenticate_owner_r2_r4(ctx, passwd)) { |
|
785
|
20 |
4 |
if (authenticate_user_r2_r4(ctx, passwd)) { |
|
792
|
1 |
8 |
if (authenticate_owner_r6(ctx, passwd)) { |
|
799
|
3 |
5 |
if (authenticate_user_r6(ctx, passwd)) { |
|
832
|
22 |
109 |
if (ctx->R >= 6) { |
|
851
|
8 |
101 |
if (ctx->R >= 4) { |
|
859
|
16 |
93 |
if (key_len > 16) key_len = 16; |
|
877
|
20 |
5 |
if (ctx->R >= 4) { |
|
896
|
10 |
96 |
if (ctx->R >= 4) { |
|
916
|
6 |
1 |
if (ctx->R >= 4) { |
|
924
|
0 |
7 |
if (!*out) return -1; |
|
928
|
0 |
7 |
if (result < 0) { |
|
946
|
0 |
103 |
if (!*out) return -1; |
|
950
|
0 |
103 |
if (result < 0) { |
|
967
|
3 |
0 |
if (ctx->is_owner) { |