Mercurial > pidgin
diff libpurple/protocols/myspace/myspace.h @ 16725:58cd11fcd84f
Re-add RC4 code from Samba, whose use is enabled by not defining
MSIM_USE_PURPLE_RC4. Otherwise, RC4 from Libpurple's cipher suite will be
used.
Needed to operate with Libpurple 2.0.0, which does not have an RC4 cipher.
Closes #648
author | Jeffrey Connelly <jaconnel@calpoly.edu> |
---|---|
date | Sun, 06 May 2007 06:48:30 +0000 |
parents | 3b5037a93807 |
children | a2e9890a57e0 |
line wrap: on
line diff
--- a/libpurple/protocols/myspace/myspace.h Sat May 05 02:08:27 2007 +0000 +++ b/libpurple/protocols/myspace/myspace.h Sun May 06 06:48:30 2007 +0000 @@ -19,12 +19,24 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -/* Debugging options (1 to enable, 0 disable) */ -#define MSIM_DEBUG_MSG 1 +/* Conditional compilation options */ + +/* Debugging options */ +#define MSIM_DEBUG_MSG /* Low-level and rarely needed */ -#define MSIM_DEBUG_PARSE 0 -#define MSIM_DEBUG_LOGIN_CHALLENGE 0 -#define MSIM_DEBUG_RXBUF 0 +/*#define MSIM_DEBUG_PARSE */ +/*#define MSIM_DEBUG_LOGIN_CHALLENGE */ +/*#define MSIM_DEBUG_RXBUF */ + +/* RC4 didn't make it into Libpurple 2.0.0's cipher suite, so we have + * to use our own RC4 code (from Samba) by not defining this. */ +/*#define MSIM_USE_PURPLE_RC4 */ + +/* TODO: when RC4 makes it into libpurple, use the PURPLE_VERSION_CHECK + * macro to conditionally compile. And then later, get rid of our own + * RC4 code and only support libpurple with RC4. */ + +/* Constants */ /* Statuses */ #define MSIM_STATUS_ONLINE "online" @@ -150,3 +162,40 @@ static void msim_tooltip_text(PurpleBuddy *buddy, PurpleNotifyUserInfo *user_info, gboolean full); +#ifndef MSIM_USE_PURPLE_RC4 +/* + Unix SMB/CIFS implementation. + + a partial implementation of RC4 designed for use in the + SMB authentication protocol + + Copyright (C) Andrew Tridgell 1998 + + $Id: crypt-rc4.h 12116 2004-09-27 23:29:22Z guy $ + + 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., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +typedef struct _rc4_state_struct { + unsigned char s_box[256]; + unsigned char index_i; + unsigned char index_j; +} rc4_state_struct; + +void crypt_rc4_init(rc4_state_struct *rc4_state, + const unsigned char *key, int key_len); + +void crypt_rc4(rc4_state_struct *rc4_state, unsigned char *data, int data_len); +#endif /* !MSIM_USE_PURPLE_RC4 */