/* Copyright (C) 1999 artofcode LLC. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA, 02111-1307. */ /*$Id: gscrypt1.c,v 1.2.6.1.2.1 2003/01/17 00:49:02 giles Exp $ */ /* Adobe Type 1 encryption/decryption. */ #include "stdpre.h" #include "gstypes.h" #include "gscrypt1.h" /* Encrypt a string. */ int gs_type1_encrypt(byte * dest, const byte * src, uint len, crypt_state * pstate) { crypt_state state = *pstate; const byte *from = src; byte *to = dest; uint count = len; while (count) { encrypt_next(*from, state, *to); from++, to++, count--; } *pstate = state; return 0; } /* Decrypt a string. */ int gs_type1_decrypt(byte * dest, const byte * src, uint len, crypt_state * pstate) { crypt_state state = *pstate; const byte *from = src; byte *to = dest; uint count = len; while (count) { /* If from == to, we can't use the obvious */ /* decrypt_next(*from, state, *to); */ byte ch = *from++; decrypt_next(ch, state, *to); to++, count--; } *pstate = state; return 0; }