Coverage Report

Created: 2025-11-16 07:40

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/ghostpdl/base/gscrypt1.c
Line
Count
Source
1
/* Copyright (C) 2001-2023 Artifex Software, Inc.
2
   All Rights Reserved.
3
4
   This software is provided AS-IS with no warranty, either express or
5
   implied.
6
7
   This software is distributed under license and may not be copied,
8
   modified or distributed except as expressly authorized under the terms
9
   of the license contained in the file LICENSE in this distribution.
10
11
   Refer to licensing information at http://www.artifex.com or contact
12
   Artifex Software, Inc.,  39 Mesa Street, Suite 108A, San Francisco,
13
   CA 94129, USA, for further information.
14
*/
15
16
17
/* Adobe Type 1 encryption/decryption. */
18
#include "stdpre.h"
19
#include "gstypes.h"
20
#include "gscrypt1.h"
21
22
/* Encrypt a string. */
23
int
24
gs_type1_encrypt(byte * dest, const byte * src, uint len, crypt_state * pstate)
25
486k
{
26
486k
    crypt_state state = *pstate;
27
486k
    const byte *from = src;
28
486k
    byte *to = dest;
29
486k
    uint count = len;
30
31
33.3M
    while (count) {
32
32.8M
        encrypt_next(*from, state, *to);
33
32.8M
        from++, to++, count--;
34
32.8M
    }
35
486k
    *pstate = state;
36
486k
    return 0;
37
486k
}
38
/* Decrypt a string. */
39
int
40
gs_type1_decrypt(byte * dest, const byte * src, uint len, crypt_state * pstate)
41
234M
{
42
234M
    crypt_state state = *pstate;
43
234M
    const byte *from = src;
44
234M
    byte *to = dest;
45
234M
    uint count = len;
46
47
9.43G
    while (count) {
48
        /* If from == to, we can't use the obvious */
49
        /*      decrypt_next(*from, state, *to);        */
50
9.19G
        byte ch = *from++;
51
52
9.19G
        decrypt_next(ch, state, *to);
53
9.19G
        to++, count--;
54
9.19G
    }
55
234M
    *pstate = state;
56
234M
    return 0;
57
234M
}