mirror of
https://github.com/signalapp/libsignal.git
synced 2024-09-20 20:03:07 +02:00
6b16626593
Small change to import better into Swift
628 lines
32 KiB
C
628 lines
32 KiB
C
/*
|
|
Copyright (C) 2020 Signal Messenger, LLC.
|
|
All rights reserved.
|
|
|
|
SPDX-License-Identifier: GPL-3.0-only
|
|
*/
|
|
|
|
|
|
#ifndef SIGNAL_FFI_H_
|
|
#define SIGNAL_FFI_H_
|
|
|
|
/* This file was automatically generated by cbindgen */
|
|
|
|
#include <stdarg.h>
|
|
#include <stdbool.h>
|
|
#include <stdint.h>
|
|
#include <stdlib.h>
|
|
|
|
typedef enum {
|
|
SignalErrorCode_UnknownError = 1,
|
|
SignalErrorCode_InvalidState = 2,
|
|
SignalErrorCode_InternalError = 3,
|
|
SignalErrorCode_NullParameter = 4,
|
|
SignalErrorCode_InvalidArgument = 5,
|
|
SignalErrorCode_InvalidType = 6,
|
|
SignalErrorCode_InvalidUtf8String = 7,
|
|
SignalErrorCode_InsufficientOutputSize = 8,
|
|
SignalErrorCode_ProtobufError = 10,
|
|
SignalErrorCode_InvalidCiphertext = 20,
|
|
SignalErrorCode_LegacyCiphertextVersion = 21,
|
|
SignalErrorCode_UnknownCiphertextVersion = 22,
|
|
SignalErrorCode_UnrecognizedMessageVersion = 23,
|
|
SignalErrorCode_InvalidMessage = 30,
|
|
SignalErrorCode_InvalidKey = 40,
|
|
SignalErrorCode_InvalidSignature = 41,
|
|
SignalErrorCode_FingerprintIdentifierMismatch = 50,
|
|
SignalErrorCode_FingerprintVersionMismatch = 51,
|
|
SignalErrorCode_UntrustedIdentity = 60,
|
|
SignalErrorCode_InvalidKeyIdentifier = 70,
|
|
SignalErrorCode_SessionNotFound = 80,
|
|
SignalErrorCode_DuplicatedMessage = 90,
|
|
SignalErrorCode_CallbackError = 100,
|
|
} SignalErrorCode;
|
|
|
|
typedef struct SignalFingerprint SignalFingerprint;
|
|
|
|
typedef struct SignalPreKeyBundle SignalPreKeyBundle;
|
|
|
|
typedef struct SignalPreKeyRecord SignalPreKeyRecord;
|
|
|
|
typedef struct SignalPreKeySignalMessage SignalPreKeySignalMessage;
|
|
|
|
typedef struct SignalPrivateKey SignalPrivateKey;
|
|
|
|
typedef struct SignalProtocolAddress SignalProtocolAddress;
|
|
|
|
typedef struct SignalPublicKey SignalPublicKey;
|
|
|
|
typedef struct SignalSenderKeyDistributionMessage SignalSenderKeyDistributionMessage;
|
|
|
|
typedef struct SignalSenderKeyMessage SignalSenderKeyMessage;
|
|
|
|
typedef struct SignalSenderKeyName SignalSenderKeyName;
|
|
|
|
typedef struct SignalSenderKeyRecord SignalSenderKeyRecord;
|
|
|
|
typedef struct SignalSessionRecord SignalSessionRecord;
|
|
|
|
typedef struct SignalFfiError SignalFfiError;
|
|
|
|
typedef struct SignalMessage SignalMessage;
|
|
|
|
typedef struct SignalSignedPreKeyRecord SignalSignedPreKeyRecord;
|
|
|
|
typedef int (*SignalLoadSession)(void*, SignalSessionRecord**, const SignalProtocolAddress*, void*);
|
|
|
|
typedef int (*SignalStoreSession)(void*, const SignalProtocolAddress*, const SignalSessionRecord*, void*);
|
|
|
|
typedef struct {
|
|
void *ctx;
|
|
SignalLoadSession load_session;
|
|
SignalStoreSession store_session;
|
|
} SignalSessionStore;
|
|
|
|
typedef int (*SignalGetIdentityKeyPair)(void*, SignalPrivateKey**, void*);
|
|
|
|
typedef int (*SignalGetLocalRegistrationId)(void*, uint32_t*, void*);
|
|
|
|
typedef int (*SignalSaveIdentityKey)(void*, const SignalProtocolAddress*, const SignalPublicKey*, void*);
|
|
|
|
typedef int (*SignalGetIdentityKey)(void*, SignalPublicKey**, const SignalProtocolAddress*, void*);
|
|
|
|
typedef int (*SignalIsTrustedIdentity)(void*, const SignalProtocolAddress*, const SignalPublicKey*, unsigned int, void*);
|
|
|
|
typedef struct {
|
|
void *ctx;
|
|
SignalGetIdentityKeyPair get_identity_key_pair;
|
|
SignalGetLocalRegistrationId get_local_registration_id;
|
|
SignalSaveIdentityKey save_identity;
|
|
SignalGetIdentityKey get_identity;
|
|
SignalIsTrustedIdentity is_trusted_identity;
|
|
} SignalIdentityKeyStore;
|
|
|
|
typedef int (*SignalLoadPreKey)(void*, SignalPreKeyRecord**, uint32_t, void*);
|
|
|
|
typedef int (*SignalStorePreKey)(void*, uint32_t, const SignalPreKeyRecord*, void*);
|
|
|
|
typedef int (*SignalRemovePreKey)(void*, uint32_t, void*);
|
|
|
|
typedef struct {
|
|
void *ctx;
|
|
SignalLoadPreKey load_pre_key;
|
|
SignalStorePreKey store_pre_key;
|
|
SignalRemovePreKey remove_pre_key;
|
|
} SignalPreKeyStore;
|
|
|
|
typedef int (*SignalLoadSignedPreKey)(void*, SignalSignedPreKeyRecord**, uint32_t, void*);
|
|
|
|
typedef int (*SignalStoreSignedPreKey)(void*, uint32_t, const SignalSignedPreKeyRecord*, void*);
|
|
|
|
typedef struct {
|
|
void *ctx;
|
|
SignalLoadSignedPreKey load_signed_pre_key;
|
|
SignalStoreSignedPreKey store_signed_pre_key;
|
|
} SignalSignedPreKeyStore;
|
|
|
|
typedef int (*SignalLoadSenderKey)(void*, SignalSenderKeyRecord**, const SignalSenderKeyName*, void*);
|
|
|
|
typedef int (*SignalStoreSenderKey)(void*, const SignalSenderKeyName*, const SignalSenderKeyRecord*, void*);
|
|
|
|
typedef struct {
|
|
void *ctx;
|
|
SignalLoadSenderKey load_sender_key;
|
|
SignalStoreSenderKey store_sender_key;
|
|
} SignalSenderKeyStore;
|
|
|
|
void signal_print_ptr(const void *p);
|
|
|
|
void signal_free_string(const char *buf);
|
|
|
|
void signal_free_buffer(const unsigned char *buf, size_t buf_len);
|
|
|
|
SignalFfiError *signal_error_get_message(const SignalFfiError *err, const char **out);
|
|
|
|
uint32_t signal_error_get_type(const SignalFfiError *err);
|
|
|
|
void signal_error_free(SignalFfiError *err);
|
|
|
|
SignalFfiError *signal_hkdf_derive(unsigned char *output,
|
|
size_t output_length,
|
|
int version,
|
|
const unsigned char *input_key_material,
|
|
size_t input_key_material_len,
|
|
const unsigned char *salt,
|
|
size_t salt_len,
|
|
const unsigned char *info,
|
|
size_t info_len);
|
|
|
|
SignalFfiError *signal_address_new(SignalProtocolAddress **address,
|
|
const char *name,
|
|
unsigned int device_id);
|
|
|
|
SignalFfiError *signal_address_get_name(const SignalProtocolAddress *obj, const char **out);
|
|
|
|
SignalFfiError *signal_address_get_device_id(const SignalProtocolAddress *obj, unsigned int *out);
|
|
|
|
SignalFfiError *signal_address_destroy(SignalProtocolAddress *p);
|
|
|
|
SignalFfiError *signal_address_clone(SignalProtocolAddress **new_obj,
|
|
const SignalProtocolAddress *obj);
|
|
|
|
SignalFfiError *signal_publickey_deserialize(SignalPublicKey **p,
|
|
const unsigned char *data,
|
|
size_t data_len);
|
|
|
|
SignalFfiError *signal_publickey_serialize(const SignalPublicKey *obj,
|
|
const unsigned char **out,
|
|
size_t *out_len);
|
|
|
|
SignalFfiError *signal_publickey_compare(int32_t *result,
|
|
const SignalPublicKey *key1,
|
|
const SignalPublicKey *key2);
|
|
|
|
SignalFfiError *signal_publickey_verify(const SignalPublicKey *key,
|
|
unsigned char *result,
|
|
const unsigned char *message,
|
|
size_t message_len,
|
|
const unsigned char *signature,
|
|
size_t signature_len);
|
|
|
|
SignalFfiError *signal_publickey_destroy(SignalPublicKey *p);
|
|
|
|
SignalFfiError *signal_publickey_clone(SignalPublicKey **new_obj, const SignalPublicKey *obj);
|
|
|
|
SignalFfiError *signal_privatekey_deserialize(SignalPrivateKey **p,
|
|
const unsigned char *data,
|
|
size_t data_len);
|
|
|
|
SignalFfiError *signal_privatekey_serialize(const SignalPrivateKey *obj,
|
|
const unsigned char **out,
|
|
size_t *out_len);
|
|
|
|
SignalFfiError *signal_privatekey_generate(SignalPrivateKey **key);
|
|
|
|
SignalFfiError *signal_privatekey_get_public_key(SignalPublicKey **new_obj,
|
|
const SignalPrivateKey *obj);
|
|
|
|
SignalFfiError *signal_privatekey_sign(const unsigned char **signature,
|
|
size_t *signature_len,
|
|
const SignalPrivateKey *key,
|
|
const unsigned char *message,
|
|
size_t message_len);
|
|
|
|
SignalFfiError *signal_privatekey_agree(const unsigned char **shared_secret,
|
|
size_t *shared_secret_len,
|
|
const SignalPrivateKey *private_key,
|
|
const SignalPublicKey *public_key);
|
|
|
|
SignalFfiError *signal_privatekey_destroy(SignalPrivateKey *p);
|
|
|
|
SignalFfiError *signal_privatekey_clone(SignalPrivateKey **new_obj, const SignalPrivateKey *obj);
|
|
|
|
SignalFfiError *signal_identitykeypair_serialize(const unsigned char **output,
|
|
size_t *output_len,
|
|
const SignalPrivateKey *private_key,
|
|
const SignalPublicKey *public_key);
|
|
|
|
SignalFfiError *signal_identitykeypair_deserialize(SignalPrivateKey **private_key,
|
|
SignalPublicKey **public_key,
|
|
const unsigned char *input,
|
|
size_t input_len);
|
|
|
|
SignalFfiError *signal_session_record_deserialize(SignalSessionRecord **p,
|
|
const unsigned char *data,
|
|
size_t data_len);
|
|
|
|
SignalFfiError *signal_session_record_serialize(const SignalSessionRecord *obj,
|
|
const unsigned char **out,
|
|
size_t *out_len);
|
|
|
|
SignalFfiError *signal_session_record_destroy(SignalSessionRecord *p);
|
|
|
|
SignalFfiError *signal_session_record_clone(SignalSessionRecord **new_obj,
|
|
const SignalSessionRecord *obj);
|
|
|
|
SignalFfiError *signal_fingerprint_format(const char **fprint,
|
|
const unsigned char *local,
|
|
size_t local_len,
|
|
const unsigned char *remote,
|
|
size_t remote_len);
|
|
|
|
SignalFfiError *signal_fingerprint_new(SignalFingerprint **obj,
|
|
unsigned int iterations,
|
|
unsigned int version,
|
|
const unsigned char *local_identifier,
|
|
size_t local_identifier_len,
|
|
const SignalPublicKey *local_key,
|
|
const unsigned char *remote_identifier,
|
|
size_t remote_identifier_len,
|
|
const SignalPublicKey *remote_key);
|
|
|
|
SignalFfiError *signal_fingerprint_destroy(SignalFingerprint *p);
|
|
|
|
SignalFfiError *signal_fingerprint_clone(SignalFingerprint **new_obj, const SignalFingerprint *obj);
|
|
|
|
SignalFfiError *signal_fingerprint_display_string(const SignalFingerprint *obj, const char **out);
|
|
|
|
SignalFfiError *signal_fingerprint_scannable_encoding(const SignalFingerprint *obj,
|
|
const unsigned char **out,
|
|
size_t *out_len);
|
|
|
|
SignalFfiError *signal_fingerprint_compare(unsigned char *result,
|
|
const unsigned char *fprint1,
|
|
size_t fprint1_len,
|
|
const unsigned char *fprint2,
|
|
size_t fprint2_len);
|
|
|
|
SignalFfiError *signal_message_deserialize(SignalMessage **p,
|
|
const unsigned char *data,
|
|
size_t data_len);
|
|
|
|
SignalFfiError *signal_message_new(SignalMessage **obj,
|
|
unsigned char message_version,
|
|
const unsigned char *mac_key,
|
|
size_t mac_key_len,
|
|
const SignalPublicKey *sender_ratchet_key,
|
|
unsigned int counter,
|
|
unsigned int previous_counter,
|
|
const unsigned char *ciphertext,
|
|
size_t ciphertext_len,
|
|
const SignalPublicKey *sender_identity_key,
|
|
const SignalPublicKey *receiver_identity_key);
|
|
|
|
SignalFfiError *signal_message_destroy(SignalMessage *p);
|
|
|
|
SignalFfiError *signal_message_clone(SignalMessage **new_obj, const SignalMessage *obj);
|
|
|
|
SignalFfiError *signal_message_get_sender_ratchet_key(SignalPublicKey **new_obj,
|
|
const SignalMessage *obj);
|
|
|
|
SignalFfiError *signal_message_get_body(const SignalMessage *obj,
|
|
const unsigned char **out,
|
|
size_t *out_len);
|
|
|
|
SignalFfiError *signal_message_get_serialized(const SignalMessage *obj,
|
|
const unsigned char **out,
|
|
size_t *out_len);
|
|
|
|
SignalFfiError *signal_message_get_message_version(const SignalMessage *obj, unsigned int *out);
|
|
|
|
SignalFfiError *signal_message_get_counter(const SignalMessage *obj, unsigned int *out);
|
|
|
|
SignalFfiError *signal_message_verify_mac(unsigned int *result,
|
|
const SignalMessage *handle,
|
|
const SignalPublicKey *sender_identity_key,
|
|
const SignalPublicKey *receiver_identity_key,
|
|
const unsigned char *mac_key,
|
|
size_t mac_key_len);
|
|
|
|
SignalFfiError *signal_pre_key_signal_message_deserialize(SignalPreKeySignalMessage **p,
|
|
const unsigned char *data,
|
|
size_t data_len);
|
|
|
|
SignalFfiError *signal_pre_key_signal_message_new(SignalPreKeySignalMessage **obj,
|
|
unsigned char message_version,
|
|
unsigned int registration_id,
|
|
const unsigned int *pre_key_id,
|
|
unsigned int signed_pre_key_id,
|
|
const SignalPublicKey *base_key,
|
|
const SignalPublicKey *identity_key,
|
|
const SignalMessage *signal_message);
|
|
|
|
SignalFfiError *signal_pre_key_signal_message_destroy(SignalPreKeySignalMessage *p);
|
|
|
|
SignalFfiError *signal_pre_key_signal_message_clone(SignalPreKeySignalMessage **new_obj,
|
|
const SignalPreKeySignalMessage *obj);
|
|
|
|
SignalFfiError *signal_pre_key_signal_message_get_version(const SignalPreKeySignalMessage *obj,
|
|
unsigned int *out);
|
|
|
|
SignalFfiError *signal_pre_key_signal_message_get_registration_id(const SignalPreKeySignalMessage *obj,
|
|
unsigned int *out);
|
|
|
|
SignalFfiError *signal_pre_key_signal_message_get_pre_key_id(const SignalPreKeySignalMessage *obj,
|
|
unsigned int *out);
|
|
|
|
SignalFfiError *signal_pre_key_signal_message_get_signed_pre_key_id(const SignalPreKeySignalMessage *obj,
|
|
unsigned int *out);
|
|
|
|
SignalFfiError *signal_pre_key_signal_message_get_base_key(SignalPublicKey **new_obj,
|
|
const SignalPreKeySignalMessage *obj);
|
|
|
|
SignalFfiError *signal_pre_key_signal_message_get_identity_key(SignalPublicKey **new_obj,
|
|
const SignalPreKeySignalMessage *obj);
|
|
|
|
SignalFfiError *signal_pre_key_signal_message_get_signal_message(SignalMessage **new_obj,
|
|
const SignalPreKeySignalMessage *obj);
|
|
|
|
SignalFfiError *signal_pre_key_signal_message_serialize(const SignalPreKeySignalMessage *obj,
|
|
const unsigned char **out,
|
|
size_t *out_len);
|
|
|
|
SignalFfiError *signal_sender_key_message_new(SignalSenderKeyMessage **obj,
|
|
unsigned int key_id,
|
|
unsigned int iteration,
|
|
const unsigned char *ciphertext,
|
|
size_t ciphertext_len,
|
|
const SignalPrivateKey *pk);
|
|
|
|
SignalFfiError *signal_sender_key_message_deserialize(SignalSenderKeyMessage **p,
|
|
const unsigned char *data,
|
|
size_t data_len);
|
|
|
|
SignalFfiError *signal_sender_key_message_destroy(SignalSenderKeyMessage *p);
|
|
|
|
SignalFfiError *signal_sender_key_message_clone(SignalSenderKeyMessage **new_obj,
|
|
const SignalSenderKeyMessage *obj);
|
|
|
|
SignalFfiError *signal_sender_key_message_get_key_id(const SignalSenderKeyMessage *obj,
|
|
unsigned int *out);
|
|
|
|
SignalFfiError *signal_sender_key_message_get_iteration(const SignalSenderKeyMessage *obj,
|
|
unsigned int *out);
|
|
|
|
SignalFfiError *signal_sender_key_message_get_cipher_text(const SignalSenderKeyMessage *obj,
|
|
const unsigned char **out,
|
|
size_t *out_len);
|
|
|
|
SignalFfiError *signal_sender_key_message_serialize(const SignalSenderKeyMessage *obj,
|
|
const unsigned char **out,
|
|
size_t *out_len);
|
|
|
|
SignalFfiError *signal_sender_key_message_verify_signature(unsigned int *result,
|
|
const SignalSenderKeyMessage *skm,
|
|
const SignalPublicKey *pubkey);
|
|
|
|
SignalFfiError *signal_sender_key_distribution_message_new(SignalSenderKeyDistributionMessage **obj,
|
|
unsigned int key_id,
|
|
unsigned int iteration,
|
|
const unsigned char *chainkey,
|
|
size_t chainkey_len,
|
|
const SignalPublicKey *pk);
|
|
|
|
SignalFfiError *signal_sender_key_distribution_message_deserialize(SignalSenderKeyDistributionMessage **p,
|
|
const unsigned char *data,
|
|
size_t data_len);
|
|
|
|
SignalFfiError *signal_sender_key_distribution_message_destroy(SignalSenderKeyDistributionMessage *p);
|
|
|
|
SignalFfiError *signal_sender_key_distribution_message_clone(SignalSenderKeyDistributionMessage **new_obj,
|
|
const SignalSenderKeyDistributionMessage *obj);
|
|
|
|
SignalFfiError *signal_sender_key_distribution_message_get_id(const SignalSenderKeyDistributionMessage *obj,
|
|
unsigned int *out);
|
|
|
|
SignalFfiError *signal_sender_key_distribution_message_get_iteration(const SignalSenderKeyDistributionMessage *obj,
|
|
unsigned int *out);
|
|
|
|
SignalFfiError *signal_sender_key_distribution_message_get_chain_key(const SignalSenderKeyDistributionMessage *obj,
|
|
const unsigned char **out,
|
|
size_t *out_len);
|
|
|
|
SignalFfiError *signal_sender_key_distribution_message_get_signature_key(SignalPublicKey **new_obj,
|
|
const SignalSenderKeyDistributionMessage *obj);
|
|
|
|
SignalFfiError *signal_sender_key_distribution_message_serialize(const SignalSenderKeyDistributionMessage *obj,
|
|
const unsigned char **out,
|
|
size_t *out_len);
|
|
|
|
SignalFfiError *signal_pre_key_bundle_new(SignalPreKeyBundle **obj,
|
|
unsigned int registration_id,
|
|
unsigned int device_id,
|
|
const unsigned int *prekey_id,
|
|
const SignalPublicKey *prekey,
|
|
unsigned int signed_prekey_id,
|
|
const SignalPublicKey *signed_prekey,
|
|
const unsigned char *signed_prekey_signature,
|
|
size_t signed_prekey_signature_len,
|
|
const SignalPublicKey *identity_key);
|
|
|
|
SignalFfiError *signal_pre_key_bundle_destroy(SignalPreKeyBundle *p);
|
|
|
|
SignalFfiError *signal_pre_key_bundle_clone(SignalPreKeyBundle **new_obj,
|
|
const SignalPreKeyBundle *obj);
|
|
|
|
SignalFfiError *signal_pre_key_bundle_get_registration_id(const SignalPreKeyBundle *obj,
|
|
unsigned int *out);
|
|
|
|
SignalFfiError *signal_pre_key_bundle_get_device_id(const SignalPreKeyBundle *obj,
|
|
unsigned int *out);
|
|
|
|
SignalFfiError *signal_pre_key_bundle_get_signed_pre_key_id(const SignalPreKeyBundle *obj,
|
|
unsigned int *out);
|
|
|
|
SignalFfiError *signal_pre_key_bundle_get_pre_key_id(const SignalPreKeyBundle *obj,
|
|
unsigned int *out);
|
|
|
|
SignalFfiError *signal_pre_key_bundle_get_pre_key_public(SignalPublicKey **new_obj,
|
|
const SignalPreKeyBundle *obj);
|
|
|
|
SignalFfiError *signal_pre_key_bundle_get_signed_pre_key_public(SignalPublicKey **new_obj,
|
|
const SignalPreKeyBundle *obj);
|
|
|
|
SignalFfiError *signal_pre_key_bundle_get_identity_key(SignalPublicKey **new_obj,
|
|
const SignalPreKeyBundle *obj);
|
|
|
|
SignalFfiError *signal_pre_key_bundle_get_signed_pre_key_signature(const SignalPreKeyBundle *obj,
|
|
const unsigned char **out,
|
|
size_t *out_len);
|
|
|
|
SignalFfiError *signal_signed_pre_key_record_new(SignalSignedPreKeyRecord **obj,
|
|
unsigned int id,
|
|
unsigned long long timestamp,
|
|
const SignalPublicKey *pub_key,
|
|
const SignalPrivateKey *priv_key,
|
|
const unsigned char *signature,
|
|
size_t signature_len);
|
|
|
|
SignalFfiError *signal_signed_pre_key_record_deserialize(SignalSignedPreKeyRecord **p,
|
|
const unsigned char *data,
|
|
size_t data_len);
|
|
|
|
SignalFfiError *signal_signed_pre_key_record_get_id(const SignalSignedPreKeyRecord *obj,
|
|
unsigned int *out);
|
|
|
|
SignalFfiError *signal_signed_pre_key_record_get_timestamp(const SignalSignedPreKeyRecord *obj,
|
|
unsigned long long *out);
|
|
|
|
SignalFfiError *signal_signed_pre_key_record_get_public_key(SignalPublicKey **new_obj,
|
|
const SignalSignedPreKeyRecord *obj);
|
|
|
|
SignalFfiError *signal_signed_pre_key_record_get_private_key(SignalPrivateKey **new_obj,
|
|
const SignalSignedPreKeyRecord *obj);
|
|
|
|
SignalFfiError *signal_signed_pre_key_record_get_signature(const SignalSignedPreKeyRecord *obj,
|
|
const unsigned char **out,
|
|
size_t *out_len);
|
|
|
|
SignalFfiError *signal_signed_pre_key_record_serialize(const SignalSignedPreKeyRecord *obj,
|
|
const unsigned char **out,
|
|
size_t *out_len);
|
|
|
|
SignalFfiError *signal_signed_pre_key_record_destroy(SignalSignedPreKeyRecord *p);
|
|
|
|
SignalFfiError *signal_signed_pre_key_record_clone(SignalSignedPreKeyRecord **new_obj,
|
|
const SignalSignedPreKeyRecord *obj);
|
|
|
|
SignalFfiError *signal_pre_key_record_new(SignalPreKeyRecord **obj,
|
|
unsigned int id,
|
|
const SignalPublicKey *pub_key,
|
|
const SignalPrivateKey *priv_key);
|
|
|
|
SignalFfiError *signal_pre_key_record_deserialize(SignalPreKeyRecord **p,
|
|
const unsigned char *data,
|
|
size_t data_len);
|
|
|
|
SignalFfiError *signal_pre_key_record_get_id(const SignalPreKeyRecord *obj, unsigned int *out);
|
|
|
|
SignalFfiError *signal_pre_key_record_get_public_key(SignalPublicKey **new_obj,
|
|
const SignalPreKeyRecord *obj);
|
|
|
|
SignalFfiError *signal_pre_key_record_get_private_key(SignalPrivateKey **new_obj,
|
|
const SignalPreKeyRecord *obj);
|
|
|
|
SignalFfiError *signal_pre_key_record_serialize(const SignalPreKeyRecord *obj,
|
|
const unsigned char **out,
|
|
size_t *out_len);
|
|
|
|
SignalFfiError *signal_pre_key_record_destroy(SignalPreKeyRecord *p);
|
|
|
|
SignalFfiError *signal_pre_key_record_clone(SignalPreKeyRecord **new_obj,
|
|
const SignalPreKeyRecord *obj);
|
|
|
|
SignalFfiError *signal_sender_key_name_new(SignalSenderKeyName **obj,
|
|
const char *group_id,
|
|
const char *sender_name,
|
|
unsigned int sender_device_id);
|
|
|
|
SignalFfiError *signal_sender_key_name_destroy(SignalSenderKeyName *p);
|
|
|
|
SignalFfiError *signal_sender_key_name_clone(SignalSenderKeyName **new_obj,
|
|
const SignalSenderKeyName *obj);
|
|
|
|
SignalFfiError *signal_sender_key_name_get_group_id(const SignalSenderKeyName *obj,
|
|
const char **out);
|
|
|
|
SignalFfiError *signal_sender_key_name_get_sender_name(const SignalSenderKeyName *obj,
|
|
const char **out);
|
|
|
|
SignalFfiError *signal_sender_key_name_get_sender_device_id(const SignalSenderKeyName *obj,
|
|
unsigned int *out);
|
|
|
|
SignalFfiError *signal_sender_key_record_new_fresh(SignalSenderKeyRecord **obj);
|
|
|
|
SignalFfiError *signal_sender_key_record_clone(SignalSenderKeyRecord **new_obj,
|
|
const SignalSenderKeyRecord *obj);
|
|
|
|
SignalFfiError *signal_sender_key_record_destroy(SignalSenderKeyRecord *p);
|
|
|
|
SignalFfiError *signal_sender_key_record_deserialize(SignalSenderKeyRecord **p,
|
|
const unsigned char *data,
|
|
size_t data_len);
|
|
|
|
SignalFfiError *signal_sender_key_record_serialize(const SignalSenderKeyRecord *obj,
|
|
const unsigned char **out,
|
|
size_t *out_len);
|
|
|
|
SignalFfiError *signal_process_prekey_bundle(SignalPreKeyBundle *bundle,
|
|
const SignalProtocolAddress *protocol_address,
|
|
SignalSessionStore *session_store,
|
|
SignalIdentityKeyStore *identity_key_store,
|
|
void *ctx);
|
|
|
|
SignalFfiError *signal_encrypt_message(const unsigned char **result,
|
|
size_t *result_len,
|
|
const unsigned char *ptext,
|
|
size_t ptext_len,
|
|
const SignalProtocolAddress *protocol_address,
|
|
SignalSessionStore *session_store,
|
|
SignalIdentityKeyStore *identity_key_store,
|
|
void *ctx);
|
|
|
|
SignalFfiError *signal_decrypt_message(const unsigned char **result,
|
|
size_t *result_len,
|
|
const SignalMessage *message,
|
|
const SignalProtocolAddress *protocol_address,
|
|
SignalSessionStore *session_store,
|
|
SignalIdentityKeyStore *identity_key_store,
|
|
void *ctx);
|
|
|
|
SignalFfiError *signal_decrypt_pre_key_message(const unsigned char **result,
|
|
size_t *result_len,
|
|
const SignalPreKeySignalMessage *message,
|
|
const SignalProtocolAddress *protocol_address,
|
|
SignalSessionStore *session_store,
|
|
SignalIdentityKeyStore *identity_key_store,
|
|
SignalPreKeyStore *prekey_store,
|
|
SignalSignedPreKeyStore *signed_prekey_store,
|
|
void *ctx);
|
|
|
|
SignalFfiError *signal_create_sender_key_distribution_message(SignalSenderKeyDistributionMessage **obj,
|
|
const SignalSenderKeyName *sender_key_name,
|
|
SignalSenderKeyStore *store,
|
|
void *ctx);
|
|
|
|
SignalFfiError *signal_process_sender_key_distribution_message(const SignalSenderKeyName *sender_key_name,
|
|
const SignalSenderKeyDistributionMessage *sender_key_distribution_message,
|
|
SignalSenderKeyStore *store,
|
|
void *ctx);
|
|
|
|
SignalFfiError *signal_group_encrypt_message(const unsigned char **out,
|
|
size_t *out_len,
|
|
const SignalSenderKeyName *sender_key_name,
|
|
const unsigned char *message,
|
|
size_t message_len,
|
|
SignalSenderKeyStore *store,
|
|
void *ctx);
|
|
|
|
SignalFfiError *signal_group_decrypt_message(const unsigned char **out,
|
|
size_t *out_len,
|
|
const SignalSenderKeyName *sender_key_name,
|
|
const unsigned char *message,
|
|
size_t message_len,
|
|
SignalSenderKeyStore *store,
|
|
void *ctx);
|
|
|
|
#endif /* SIGNAL_FFI_H_ */
|