diff --git a/jni/pjproject-android/.svn/pristine/52/52ea6d559634f2dd641e848fe494f5e6de698384.svn-base b/jni/pjproject-android/.svn/pristine/52/52ea6d559634f2dd641e848fe494f5e6de698384.svn-base
new file mode 100644
index 0000000..2b59024
--- /dev/null
+++ b/jni/pjproject-android/.svn/pristine/52/52ea6d559634f2dd641e848fe494f5e6de698384.svn-base
@@ -0,0 +1,109 @@
+/* $Id$ */
+/* 
+ * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
+ * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
+ *
+ * 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  USA 
+ */
+#ifndef __PJLIB_UTIL_HMAC_MD5_H__
+#define __PJLIB_UTIL_HMAC_MD5_H__
+
+/**
+ * @file hmac_md5.h
+ * @brief HMAC MD5 Message Authentication
+ */
+
+/**
+ * @defgroup PJLIB_UTIL_ENCRYPTION Encryption Algorithms
+ */
+
+#include <pj/types.h>
+#include <pjlib-util/md5.h>
+
+PJ_BEGIN_DECL
+
+/**
+ * @defgroup PJLIB_UTIL_HMAC_MD5 HMAC MD5 Message Authentication
+ * @ingroup PJLIB_UTIL_ENCRYPTION
+ * @{
+ *
+ * This module contains the implementation of HMAC: Keyed-Hashing 
+ * for Message Authentication, as described in RFC 2104
+ */
+
+/**
+ * The HMAC-MD5 context used in the incremental HMAC calculation.
+ */
+typedef struct pj_hmac_md5_context
+{
+    pj_md5_context  context;	/**< MD5 context	    */
+    pj_uint8_t	    k_opad[64];	/**< opad xor-ed with key   */
+} pj_hmac_md5_context;
+
+
+/**
+ * Calculate HMAC MD5 digest for the specified input and key.
+ *
+ * @param input		Pointer to the input stream.
+ * @param input_len	Length of input stream in bytes.
+ * @param key		Pointer to the authentication key.
+ * @param key_len	Length of the authentication key.
+ * @param digest	Buffer to be filled with HMAC MD5 digest.
+ */
+PJ_DECL(void) pj_hmac_md5(const pj_uint8_t *input, unsigned input_len, 
+			  const pj_uint8_t *key, unsigned key_len, 
+			  pj_uint8_t digest[16]);
+
+
+/**
+ * Initiate HMAC-MD5 context for incremental hashing.
+ *
+ * @param hctx		HMAC-MD5 context.
+ * @param key		Pointer to the authentication key.
+ * @param key_len	Length of the authentication key.
+ */
+PJ_DECL(void) pj_hmac_md5_init(pj_hmac_md5_context *hctx, 
+			       const pj_uint8_t *key, unsigned key_len);
+
+/**
+ * Append string to the message.
+ *
+ * @param hctx		HMAC-MD5 context.
+ * @param input		Pointer to the input stream.
+ * @param input_len	Length of input stream in bytes.
+ */
+PJ_DECL(void) pj_hmac_md5_update(pj_hmac_md5_context *hctx,
+				 const pj_uint8_t *input, 
+				 unsigned input_len);
+
+/**
+ * Finish the message and return the digest. 
+ *
+ * @param hctx		HMAC-MD5 context.
+ * @param digest	Buffer to be filled with HMAC MD5 digest.
+ */
+PJ_DECL(void) pj_hmac_md5_final(pj_hmac_md5_context *hctx,
+				pj_uint8_t digest[16]);
+
+/**
+ * @}
+ */
+
+PJ_END_DECL
+
+
+#endif	/* __PJLIB_UTIL_HMAC_MD5_H__ */
+
+
