summaryrefslogtreecommitdiff
path: root/libpurple/plugins/perl/common/Cipher.xs
blob: 27ae45992f9bb3b82375327b88252d2587505db1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
#include "module.h"

MODULE = Purple::Cipher  PACKAGE = Purple::Cipher  PREFIX = purple_cipher_
PROTOTYPES: ENABLE

const gchar *
purple_cipher_get_name(cipher)
	Purple::Cipher cipher

guint
purple_cipher_get_capabilities(cipher)
	Purple::Cipher cipher

gboolean
purple_cipher_digest_region(name, data, data_len, in_len, digest, out_len)
	const gchar * name
	const guchar * data
	size_t data_len
	size_t in_len
	guchar &digest
	size_t * out_len

MODULE = Purple::Cipher  PACKAGE = Purple::Ciphers  PREFIX = purple_ciphers_
PROTOTYPES: ENABLE

Purple::Cipher
purple_ciphers_find_cipher(name)
	gchar * name

Purple::Cipher
purple_ciphers_register_cipher(name, ops)
	gchar * name
	Purple::Cipher::Ops ops

gboolean
purple_ciphers_unregister_cipher(cipher)
	Purple::Cipher cipher

void
purple_ciphers_get_ciphers()
PREINIT:
	GList *l;
PPCODE:
	for (l = purple_ciphers_get_ciphers(); l != NULL; l = l->next) {
		XPUSHs(sv_2mortal(purple_perl_bless_object(l->data, "Purple::Cipher")));
	}

Purple::Handle
purple_ciphers_get_handle()

void
purple_ciphers_init()

void
purple_ciphers_uninit()

MODULE = Purple::Cipher  PACKAGE = Purple::Cipher::Context  PREFIX = purple_cipher_context_
PROTOTYPES: ENABLE

void
purple_cipher_context_set_option(context, name, value)
	Purple::Cipher::Context context
	gchar *name
	gpointer value

gpointer
purple_cipher_context_get_option(context, name)
	Purple::Cipher::Context context
	gchar *name

Purple::Cipher::Context
purple_cipher_context_new(cipher, extra)
	Purple::Cipher cipher
	void *extra

Purple::Cipher::Context
purple_cipher_context_new_by_name(name, extra)
	gchar *name
	void *extra

void
purple_cipher_context_reset(context, extra)
	Purple::Cipher::Context context
	gpointer extra

void
purple_cipher_context_destroy(context)
	Purple::Cipher::Context context

void
purple_cipher_context_set_iv(context, iv, len)
	Purple::Cipher::Context context
	guchar * iv
	size_t len

void
purple_cipher_context_append(context, data, len)
	Purple::Cipher::Context context
	guchar * data
	size_t len

gboolean
purple_cipher_context_digest(context, in_len, digest, out_len)
	Purple::Cipher::Context context
	size_t in_len
	guchar &digest
	size_t &out_len

gboolean
purple_cipher_context_digest_to_str(context, in_len, digest_s, out_len)
	Purple::Cipher::Context context
	size_t in_len
	gchar &digest_s
	size_t &out_len

gint
purple_cipher_context_encrypt(context, data, len, output, outlen)
	Purple::Cipher::Context context
	guchar &data
	size_t len
	guchar &output
	size_t &outlen

gint
purple_cipher_context_decrypt(context, data, len, output, outlen)
	Purple::Cipher::Context context
	guchar &data
	size_t len
	guchar &output
	size_t &outlen

void
purple_cipher_context_set_salt(context, salt)
	Purple::Cipher::Context context
	guchar *salt

size_t
purple_cipher_context_get_salt_size(context)
	Purple::Cipher::Context context

void
purple_cipher_context_set_key(context, key)
	Purple::Cipher::Context context
	guchar *key

size_t
purple_cipher_context_get_key_size(context)
	Purple::Cipher::Context context

void
purple_cipher_context_set_data(context, data)
	Purple::Cipher::Context context
	gpointer data

gpointer
purple_cipher_context_get_data(context)
	Purple::Cipher::Context context