libpurple/plugins/perl/common/Cipher.xs

branch
soc.2013.gobjectification
changeset 35026
fde23518e1e5
parent 35001
85144a4a7942
child 36002
31a8779e91d4
--- a/libpurple/plugins/perl/common/Cipher.xs	Fri Oct 18 20:09:56 2013 +0530
+++ b/libpurple/plugins/perl/common/Cipher.xs	Sun Oct 20 15:37:08 2013 +0530
@@ -216,3 +216,108 @@
 
 Purple::Cipher
 purple_rc4_cipher_new()
+
+MODULE = Purple::Cipher  PACKAGE = Purple::Hash  PREFIX = purple_hash_
+PROTOTYPES: ENABLE
+
+gchar_own*
+purple_http_digest_calculate_response(algorithm, method, digest_uri, qop, entity, nonce, nonce_count, client_nonce, session_key)
+	const gchar* algorithm
+	const gchar* method
+	const gchar* digest_uri
+	const gchar* qop
+	const gchar* entity
+	const gchar* nonce
+	const gchar* nonce_count
+	const gchar* client_nonce
+	const gchar* session_key
+
+gchar_own*
+purple_http_digest_calculate_session_key(algorithm, username, realm, password, nonce, client_nonce)
+	const gchar* algorithm
+	const gchar* username
+	const gchar* realm
+	const gchar* password
+	const gchar* nonce
+	const gchar* client_nonce
+
+void
+purple_hash_reset(hash)
+	Purple::Hash hash
+
+void
+purple_hash_append(Purple::Hash hash, guchar *data, size_t length(data))
+	PROTOTYPE: $$
+
+gboolean
+purple_hash_digest(hash, digest)
+	Purple::Hash hash
+	SV *digest
+	PREINIT:
+		guchar *buff = NULL;
+		size_t digest_size;
+	CODE:
+		digest_size = purple_hash_get_digest_size(hash);
+		SvUPGRADE_common(digest, SVt_PV);
+		buff = (guchar *)SvGROW(digest, digest_size);
+		if (purple_hash_digest(hash, buff, digest_size)) {
+			SvCUR_set(digest, digest_size);
+			SvPOK_only(digest);
+			RETVAL = 1;
+		} else {
+			SvSetSV_nosteal(digest, &PL_sv_undef);
+			RETVAL = 0;
+		}
+	OUTPUT:
+		RETVAL
+
+gboolean
+purple_hash_digest_to_str(hash, digest_s)
+	Purple::Hash hash
+	SV *digest_s
+	PREINIT:
+		gchar *buff = NULL;
+		size_t digest_size, str_len;
+	CODE:
+		digest_size = purple_hash_get_digest_size(hash);
+		str_len = 2 * digest_size;
+		SvUPGRADE_common(digest_s, SVt_PV);
+		buff = SvGROW(digest_s, str_len + 1);
+		if (purple_hash_digest_to_str(hash, buff, str_len + 1)) {
+			SvCUR_set(digest_s, str_len);
+			SvPOK_only(digest_s);
+			RETVAL = 1;
+		} else {
+			SvSetSV_nosteal(digest_s, &PL_sv_undef);
+			RETVAL = 0;
+		}
+	OUTPUT:
+		RETVAL
+
+size_t
+purple_hash_get_block_size(hash)
+	Purple::Hash hash
+
+MODULE = Purple::Hash  PACKAGE = Purple::MD4Hash  PREFIX = purple_md4_hash_
+PROTOTYPES: ENABLE
+
+Purple::Hash
+purple_md4_hash_new()
+
+MODULE = Purple::Hash  PACKAGE = Purple::MD5Hash  PREFIX = purple_md5_hash_
+PROTOTYPES: ENABLE
+
+Purple::Hash
+purple_md5_hash_new()
+
+MODULE = Purple::Hash  PACKAGE = Purple::SHA1Hash  PREFIX = purple_sha1_hash_
+PROTOTYPES: ENABLE
+
+Purple::Hash
+purple_sha1_hash_new()
+
+MODULE = Purple::Hash  PACKAGE = Purple::SHA256Hash  PREFIX = purple_sha256_hash_
+PROTOTYPES: ENABLE
+
+Purple::Hash
+purple_sha256_hash_new()

mercurial