mirror of
https://dev.narayana.im/narayana/telegabber.git
synced 2026-08-05 12:17:06 +00:00
37 lines
1.1 KiB
Go
37 lines
1.1 KiB
Go
//go:build signal_legacy
|
|
|
|
package libsignal
|
|
|
|
/*
|
|
#include <signal_protocol.h>
|
|
#include <session_builder.h>
|
|
#include <session_cipher.h>
|
|
*/
|
|
import "C"
|
|
|
|
import "errors"
|
|
|
|
// errModernOMEMOUnavailable is returned whenever the caller asks this
|
|
// legacy build to do something only libomemo-c can do.
|
|
var errModernOMEMOUnavailable = errors.New("libsignal: modern OMEMO (protocol v4) requires linking libomemo-c; this build links vanilla libsignal-protocol-c (build tag \"signal_legacy\")")
|
|
|
|
// Vanilla libsignal-protocol-c has no session_builder_set_version /
|
|
// session_cipher_set_version - it only ever produces/consumes
|
|
// CIPHERTEXT_CURRENT_VERSION (protocol v3, legacy/siacs OMEMO) messages.
|
|
// Requesting ProtocolVersionV3 is a no-op (that's the library's only
|
|
// behavior); requesting anything else is rejected rather than silently
|
|
// ignored.
|
|
|
|
func setBuilderVersion(b *C.session_builder, version int) error {
|
|
if version != ProtocolVersionV3 {
|
|
return errModernOMEMOUnavailable
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func setCipherVersion(c *C.session_cipher, version int) error {
|
|
if version != ProtocolVersionV3 {
|
|
return errModernOMEMOUnavailable
|
|
}
|
|
return nil
|
|
}
|