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 */