67 const guint8* nextframe;
72 guint8* cksumbuf = NULL;
75 cksumsize = g_checksum_type_get_length(cksumtype);
76 g_return_val_if_fail(cksumsize > 1, NULL);
77 g_return_val_if_fail(framelen == (cksumsize + 2), NULL);
81 g_return_val_if_fail(nextframe != NULL, NULL);
84 remainsize = (
const guint8*)pktend - nextframe;
85 g_return_val_if_fail(remainsize > 0, NULL);
88 cksumobj = g_checksum_new(cksumtype);
89 g_return_val_if_fail(NULL != cksumobj, NULL);
92 g_checksum_update(cksumobj, nextframe, remainsize);
96 if (cksumbuf != NULL) {
98 g_checksum_get_digest(cksumobj, cksumbuf, &bufsize);
100 if (bufsize != (gsize)cksumsize) {
105 g_checksum_free(cksumobj);
112 gconstpointer tlvptr,
113 gconstpointer pktend)
115 const guint8* framedata;
118 GChecksumType cksumtype;
125 if (tlvptr == NULL) {
127 return (g_checksum_type_get_length(sframe->
signaturetype) >= 1);
131 g_return_val_if_fail(framedata != NULL, FALSE);
132 g_return_val_if_fail(framelen > 2, FALSE);
136 g_return_val_if_fail(subtype == 1, FALSE);
141 cksumsize = g_checksum_type_get_length(cksumtype);
146 if (cksumbuf == NULL) {
150 if (memcmp(cksumbuf, framedata+2, cksumsize) != 0) {
170 gconstpointer pktend,
174 GChecksumType cksumtype =
self->signaturetype;
180 g_return_if_fail(framedata != NULL);
184 g_return_if_fail(cksumbuf != NULL);
187 cksumsize = g_checksum_type_get_length(cksumtype);
188 g_return_if_fail(self->baseclass.length == (2 + cksumsize));
197 memcpy(framedata+2, cksumbuf, cksumsize);
200 FREE(cksumbuf); cksumbuf = NULL;
219 cksumsize = g_checksum_type_get_length(sigtype);
220 if (cksumsize <= 1) {
223 baseframe =
frame_new(frame_type, framesize);
226 baseframe->
length = cksumsize + 2;
227 baseframe->
value = NULL;
249 g_return_val_if_fail(framelength > 2, NULL);
253 g_return_val_if_fail(NULL != ret, NULL);