telegabber/e2ee/omemo/libsignal/deserialize_modern.go
2026-07-28 00:38:46 -04:00

27 lines
979 B
Go

//go:build !signal_legacy
package libsignal
/*
#include <signal_protocol.h>
#include <protocol.h>
*/
import "C"
// deserializeSignalMessageOmemo and deserializePreKeySignalMessageOmemo
// parse the OMEMO (protocol v4) wire encoding, which only libomemo-c
// understands - signal_message_deserialize_omemo and
// pre_key_signal_message_deserialize_omemo don't exist in vanilla
// libsignal-protocol-c (see deserialize_legacy.go).
func deserializeSignalMessageOmemo(ctx *Context, data *C.uint8_t, length C.size_t) (*C.signal_message, C.int) {
var msg *C.signal_message
code := C.signal_message_deserialize_omemo(&msg, data, length, ctx.raw)
return msg, code
}
func deserializePreKeySignalMessageOmemo(ctx *Context, data *C.uint8_t, length C.size_t, registrationID uint32) (*C.pre_key_signal_message, C.int) {
var msg *C.pre_key_signal_message
code := C.pre_key_signal_message_deserialize_omemo(&msg, data, length, C.uint32_t(registrationID), ctx.raw)
return msg, code
}