Coverage Report

Created: 2022-10-31 07:00

/src/ghostpdl/base/gscrypt1.c
Line
Count
Source
1
/* Copyright (C) 2001-2021 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.,  1305 Grant Avenue - Suite 200, Novato,
13
   CA 94945, U.S.A., +1(415)492-9861, 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
208k
{
26
208k
    crypt_state state = *pstate;
27
208k
    const byte *from = src;
28
208k
    byte *to = dest;
29
208k
    uint count = len;
30
31
14.2M
    while (count) {
32
14.0M
        encrypt_next(*from, state, *to);
33
14.0M
        from++, to++, count--;
34
14.0M
    }
35
208k
    *pstate = state;
36
208k
    return 0;
37
208k
}
38
/* Decrypt a string. */
39
int
40
gs_type1_decrypt(byte * dest, const byte * src, uint len, crypt_state * pstate)
41
76.4M
{
42
76.4M
    crypt_state state = *pstate;
43
76.4M
    const byte *from = src;
44
76.4M
    byte *to = dest;
45
76.4M
    uint count = len;
46
47
3.24G
    while (count) {
48
        /* If from == to, we can't use the obvious */
49
        /*      decrypt_next(*from, state, *to);        */
50
3.16G
        byte ch = *from++;
51
52
3.16G
        decrypt_next(ch, state, *to);
53
3.16G
        to++, count--;
54
3.16G
    }
55
76.4M
    *pstate = state;
56
76.4M
    return 0;
57
76.4M
}