libpurple/plugins/perl/common/Hash.xs

Sat, 22 Jun 2013 15:58:44 +0530

author
Ankit Vani <a@nevitus.org>
date
Sat, 22 Jun 2013 15:58:44 +0530
branch
soc.2013.gobjectification
changeset 34606
bca53cda8ed5
parent 34573
f726a7da6516
child 34984
49540359d6fc
permissions
-rw-r--r--

Added ciphers and hashes _new functions to .xs files

34567
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1 #include "module.h"
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
2
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
3 MODULE = Purple::Hash PACKAGE = Purple::Hash PREFIX = purple_hash_
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
4 PROTOTYPES: ENABLE
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
5
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
6 const gchar *
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
7 purple_hash_get_name(hash)
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
8 Purple::Hash hash
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
9
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
10 gchar_own*
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
11 purple_http_digest_calculate_response(algorithm, method, digest_uri, qop, entity, nonce, nonce_count, client_nonce, session_key)
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
12 const gchar* algorithm
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
13 const gchar* method
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
14 const gchar* digest_uri
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
15 const gchar* qop
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
16 const gchar* entity
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
17 const gchar* nonce
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
18 const gchar* nonce_count
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
19 const gchar* client_nonce
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
20 const gchar* session_key
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
21
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
22 gchar_own*
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
23 purple_http_digest_calculate_session_key(algorithm, username, realm, password, nonce, client_nonce)
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
24 const gchar* algorithm
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
25 const gchar* username
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
26 const gchar* realm
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
27 const gchar* password
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
28 const gchar* nonce
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
29 const gchar* client_nonce
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
30
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
31 void
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
32 purple_hash_reset(hash)
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
33 Purple::Hash hash
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
34
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
35 void
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
36 purple_hash_append(Purple::Hash hash, guchar *data, size_t length(data))
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
37 PROTOTYPE: $$
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
38
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
39 gboolean
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
40 purple_hash_digest(hash, digest)
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
41 Purple::Hash hash
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
42 SV *digest
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
43 PREINIT:
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
44 guchar *buff = NULL;
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
45 size_t digest_size;
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
46 CODE:
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
47 digest_size = purple_hash_get_digest_size(hash);
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
48 SvUPGRADE(digest, SVt_PV);
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
49 buff = (guchar *)SvGROW(digest, digest_size);
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
50 if (purple_hash_digest(hash, buff, digest_size)) {
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
51 SvCUR_set(digest, digest_size);
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
52 SvPOK_only(digest);
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
53 RETVAL = 1;
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
54 } else {
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
55 SvSetSV_nosteal(digest, &PL_sv_undef);
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
56 RETVAL = 0;
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
57 }
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
58 OUTPUT:
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
59 RETVAL
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
60
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
61 gboolean
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
62 purple_hash_digest_to_str(hash, digest_s)
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
63 Purple::Hash hash
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
64 SV *digest_s
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
65 PREINIT:
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
66 gchar *buff = NULL;
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
67 size_t digest_size, str_len;
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
68 CODE:
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
69 digest_size = purple_hash_get_digest_size(hash);
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
70 str_len = 2 * digest_size;
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
71 SvUPGRADE(digest_s, SVt_PV);
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
72 buff = SvGROW(digest_s, str_len + 1);
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
73 if (purple_hash_digest_to_str(hash, buff, str_len + 1)) {
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
74 SvCUR_set(digest_s, str_len);
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
75 SvPOK_only(digest_s);
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
76 RETVAL = 1;
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
77 } else {
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
78 SvSetSV_nosteal(digest_s, &PL_sv_undef);
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
79 RETVAL = 0;
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
80 }
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
81 OUTPUT:
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
82 RETVAL
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
83
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
84 size_t
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
85 purple_hash_get_block_size(hash)
ea5103f66b0e Refactor the codebase to use PurpleHash
Ankit Vani <a@nevitus.org>
parents:
diff changeset
86 Purple::Hash hash
34606
bca53cda8ed5 Added ciphers and hashes _new functions to .xs files
Ankit Vani <a@nevitus.org>
parents: 34573
diff changeset
87
bca53cda8ed5 Added ciphers and hashes _new functions to .xs files
Ankit Vani <a@nevitus.org>
parents: 34573
diff changeset
88 MODULE = Purple::Hash PACKAGE = Purple::MD4Hash PREFIX = purple_md4_hash_
bca53cda8ed5 Added ciphers and hashes _new functions to .xs files
Ankit Vani <a@nevitus.org>
parents: 34573
diff changeset
89 PROTOTYPES: ENABLE
bca53cda8ed5 Added ciphers and hashes _new functions to .xs files
Ankit Vani <a@nevitus.org>
parents: 34573
diff changeset
90
bca53cda8ed5 Added ciphers and hashes _new functions to .xs files
Ankit Vani <a@nevitus.org>
parents: 34573
diff changeset
91 Purple::Hash
bca53cda8ed5 Added ciphers and hashes _new functions to .xs files
Ankit Vani <a@nevitus.org>
parents: 34573
diff changeset
92 purple_md4_hash_new()
bca53cda8ed5 Added ciphers and hashes _new functions to .xs files
Ankit Vani <a@nevitus.org>
parents: 34573
diff changeset
93
bca53cda8ed5 Added ciphers and hashes _new functions to .xs files
Ankit Vani <a@nevitus.org>
parents: 34573
diff changeset
94 MODULE = Purple::Hash PACKAGE = Purple::MD5Hash PREFIX = purple_md5_hash_
bca53cda8ed5 Added ciphers and hashes _new functions to .xs files
Ankit Vani <a@nevitus.org>
parents: 34573
diff changeset
95 PROTOTYPES: ENABLE
bca53cda8ed5 Added ciphers and hashes _new functions to .xs files
Ankit Vani <a@nevitus.org>
parents: 34573
diff changeset
96
bca53cda8ed5 Added ciphers and hashes _new functions to .xs files
Ankit Vani <a@nevitus.org>
parents: 34573
diff changeset
97 Purple::Hash
bca53cda8ed5 Added ciphers and hashes _new functions to .xs files
Ankit Vani <a@nevitus.org>
parents: 34573
diff changeset
98 purple_md5_hash_new()
bca53cda8ed5 Added ciphers and hashes _new functions to .xs files
Ankit Vani <a@nevitus.org>
parents: 34573
diff changeset
99
bca53cda8ed5 Added ciphers and hashes _new functions to .xs files
Ankit Vani <a@nevitus.org>
parents: 34573
diff changeset
100 MODULE = Purple::Hash PACKAGE = Purple::SHA1Hash PREFIX = purple_sha1_hash_
bca53cda8ed5 Added ciphers and hashes _new functions to .xs files
Ankit Vani <a@nevitus.org>
parents: 34573
diff changeset
101 PROTOTYPES: ENABLE
bca53cda8ed5 Added ciphers and hashes _new functions to .xs files
Ankit Vani <a@nevitus.org>
parents: 34573
diff changeset
102
bca53cda8ed5 Added ciphers and hashes _new functions to .xs files
Ankit Vani <a@nevitus.org>
parents: 34573
diff changeset
103 Purple::Hash
bca53cda8ed5 Added ciphers and hashes _new functions to .xs files
Ankit Vani <a@nevitus.org>
parents: 34573
diff changeset
104 purple_sha1_hash_new()
bca53cda8ed5 Added ciphers and hashes _new functions to .xs files
Ankit Vani <a@nevitus.org>
parents: 34573
diff changeset
105
bca53cda8ed5 Added ciphers and hashes _new functions to .xs files
Ankit Vani <a@nevitus.org>
parents: 34573
diff changeset
106 MODULE = Purple::Hash PACKAGE = Purple::SHA256Hash PREFIX = purple_sha256_hash_
bca53cda8ed5 Added ciphers and hashes _new functions to .xs files
Ankit Vani <a@nevitus.org>
parents: 34573
diff changeset
107 PROTOTYPES: ENABLE
bca53cda8ed5 Added ciphers and hashes _new functions to .xs files
Ankit Vani <a@nevitus.org>
parents: 34573
diff changeset
108
bca53cda8ed5 Added ciphers and hashes _new functions to .xs files
Ankit Vani <a@nevitus.org>
parents: 34573
diff changeset
109 Purple::Hash
bca53cda8ed5 Added ciphers and hashes _new functions to .xs files
Ankit Vani <a@nevitus.org>
parents: 34573
diff changeset
110 purple_sha256_hash_new()

mercurial