mirror of
https://github.com/signalapp/libsignal.git
synced 2025-12-05 01:10:27 +00:00
2548 lines
124 KiB
C++
2548 lines
124 KiB
C++
/*
|
|
Copyright (C) 2020-2021 Signal Messenger, LLC.
|
|
SPDX-License-Identifier: AGPL-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 <stddef.h>
|
|
#include <stdint.h>
|
|
#include <stdlib.h>
|
|
|
|
#define SignalSVR_KEY_LEN 32
|
|
|
|
#define SignalBACKUP_KEY_LEN 32
|
|
|
|
#define SignalLOCAL_BACKUP_METADATA_KEY_LEN 32
|
|
|
|
#define SignalMEDIA_ID_LEN 15
|
|
|
|
#define SignalBACKUP_FORWARD_SECRECY_TOKEN_LEN 32
|
|
|
|
#define SignalMEDIA_ENCRYPTION_KEY_LEN (32 + 32)
|
|
|
|
#define SignalBackupId_LEN 16
|
|
|
|
#define SignalNUM_AUTH_CRED_ATTRIBUTES 3
|
|
|
|
#define SignalNUM_PROFILE_KEY_CRED_ATTRIBUTES 4
|
|
|
|
#define SignalNUM_RECEIPT_CRED_ATTRIBUTES 2
|
|
|
|
#define SignalPRESENTATION_VERSION_1 0
|
|
|
|
#define SignalPRESENTATION_VERSION_2 1
|
|
|
|
#define SignalPRESENTATION_VERSION_3 2
|
|
|
|
#define SignalPRESENTATION_VERSION_4 3
|
|
|
|
#define SignalAES_KEY_LEN 32
|
|
|
|
#define SignalAESGCM_NONCE_LEN 12
|
|
|
|
#define SignalAESGCM_TAG_LEN 16
|
|
|
|
#define SignalGROUP_MASTER_KEY_LEN 32
|
|
|
|
#define SignalGROUP_SECRET_PARAMS_LEN 289
|
|
|
|
#define SignalGROUP_PUBLIC_PARAMS_LEN 97
|
|
|
|
#define SignalGROUP_IDENTIFIER_LEN 32
|
|
|
|
#define SignalAUTH_CREDENTIAL_LEN 181
|
|
|
|
#define SignalAUTH_CREDENTIAL_PRESENTATION_V2_LEN 461
|
|
|
|
#define SignalAUTH_CREDENTIAL_RESPONSE_LEN 361
|
|
|
|
#define SignalAUTH_CREDENTIAL_WITH_PNI_LEN 265
|
|
|
|
#define SignalAUTH_CREDENTIAL_WITH_PNI_RESPONSE_LEN 425
|
|
|
|
#define SignalPROFILE_KEY_LEN 32
|
|
|
|
#define SignalPROFILE_KEY_CIPHERTEXT_LEN 65
|
|
|
|
#define SignalPROFILE_KEY_COMMITMENT_LEN 97
|
|
|
|
#define SignalEXPIRING_PROFILE_KEY_CREDENTIAL_LEN 153
|
|
|
|
#define SignalPROFILE_KEY_CREDENTIAL_PRESENTATION_V2_LEN 713
|
|
|
|
#define SignalPROFILE_KEY_CREDENTIAL_REQUEST_LEN 329
|
|
|
|
#define SignalPROFILE_KEY_CREDENTIAL_REQUEST_CONTEXT_LEN 473
|
|
|
|
#define SignalEXPIRING_PROFILE_KEY_CREDENTIAL_RESPONSE_LEN 497
|
|
|
|
#define SignalPROFILE_KEY_VERSION_LEN 32
|
|
|
|
#define SignalPROFILE_KEY_VERSION_ENCODED_LEN 64
|
|
|
|
#define SignalRECEIPT_CREDENTIAL_LEN 129
|
|
|
|
#define SignalRECEIPT_CREDENTIAL_PRESENTATION_LEN 329
|
|
|
|
#define SignalRECEIPT_CREDENTIAL_REQUEST_LEN 97
|
|
|
|
#define SignalRECEIPT_CREDENTIAL_REQUEST_CONTEXT_LEN 177
|
|
|
|
#define SignalRECEIPT_CREDENTIAL_RESPONSE_LEN 409
|
|
|
|
#define SignalRECEIPT_SERIAL_LEN 16
|
|
|
|
#define SignalRESERVED_LEN 1
|
|
|
|
#define SignalSERVER_SECRET_PARAMS_LEN 2721
|
|
|
|
#define SignalSERVER_PUBLIC_PARAMS_LEN 673
|
|
|
|
#define SignalUUID_CIPHERTEXT_LEN 65
|
|
|
|
#define SignalRANDOMNESS_LEN 32
|
|
|
|
#define SignalSIGNATURE_LEN 64
|
|
|
|
#define SignalUUID_LEN 16
|
|
|
|
#define SignalACCESS_KEY_LEN 16
|
|
|
|
/**
|
|
* Seconds in a 24-hour cycle (ignoring leap seconds).
|
|
*/
|
|
#define SignalSECONDS_PER_DAY 86400
|
|
|
|
/**
|
|
* The encoded length of a [`FourCC`], in bytes.
|
|
*/
|
|
#define SignalFourCC_ENCODED_LEN 4
|
|
|
|
enum SignalChallengeOption {
|
|
SignalChallengeOptionPushChallenge,
|
|
SignalChallengeOptionCaptcha,
|
|
};
|
|
typedef uint8_t SignalChallengeOption;
|
|
|
|
typedef enum {
|
|
SignalCiphertextMessageTypeWhisper = 2,
|
|
SignalCiphertextMessageTypePreKey = 3,
|
|
SignalCiphertextMessageTypeSenderKey = 7,
|
|
SignalCiphertextMessageTypePlaintext = 8,
|
|
} SignalCiphertextMessageType;
|
|
|
|
typedef enum {
|
|
SignalContentHintDefault = 0,
|
|
SignalContentHintResendable = 1,
|
|
SignalContentHintImplicit = 2,
|
|
} SignalContentHint;
|
|
|
|
typedef enum {
|
|
SignalDirectionSending = 0,
|
|
SignalDirectionReceiving = 1,
|
|
} SignalDirection;
|
|
|
|
enum SignalFfiPublicKeyType {
|
|
SignalFfiPublicKeyTypeECC,
|
|
SignalFfiPublicKeyTypeKyber,
|
|
};
|
|
typedef uint8_t SignalFfiPublicKeyType;
|
|
|
|
/**
|
|
* The result of saving a new identity key for a protocol address.
|
|
*/
|
|
typedef enum {
|
|
/**
|
|
* The protocol address didn't have an identity key or had the same key.
|
|
*/
|
|
SignalIdentityChangeNewOrUnchanged,
|
|
/**
|
|
* The new identity key replaced a different key for the protocol address.
|
|
*/
|
|
SignalIdentityChangeReplacedExisting,
|
|
} SignalIdentityChange;
|
|
|
|
typedef enum {
|
|
SignalLogLevelError = 1,
|
|
SignalLogLevelWarn,
|
|
SignalLogLevelInfo,
|
|
SignalLogLevelDebug,
|
|
SignalLogLevelTrace,
|
|
} SignalLogLevel;
|
|
|
|
typedef enum {
|
|
SignalErrorCodeUnknownError = 1,
|
|
SignalErrorCodeInvalidState = 2,
|
|
SignalErrorCodeInternalError = 3,
|
|
SignalErrorCodeNullParameter = 4,
|
|
SignalErrorCodeInvalidArgument = 5,
|
|
SignalErrorCodeInvalidType = 6,
|
|
SignalErrorCodeInvalidUtf8String = 7,
|
|
SignalErrorCodeCancelled = 8,
|
|
SignalErrorCodeProtobufError = 10,
|
|
SignalErrorCodeLegacyCiphertextVersion = 21,
|
|
SignalErrorCodeUnknownCiphertextVersion = 22,
|
|
SignalErrorCodeUnrecognizedMessageVersion = 23,
|
|
SignalErrorCodeInvalidMessage = 30,
|
|
SignalErrorCodeSealedSenderSelfSend = 31,
|
|
SignalErrorCodeInvalidKey = 40,
|
|
SignalErrorCodeInvalidSignature = 41,
|
|
SignalErrorCodeInvalidAttestationData = 42,
|
|
SignalErrorCodeFingerprintVersionMismatch = 51,
|
|
SignalErrorCodeFingerprintParsingError = 52,
|
|
SignalErrorCodeUntrustedIdentity = 60,
|
|
SignalErrorCodeInvalidKeyIdentifier = 70,
|
|
SignalErrorCodeSessionNotFound = 80,
|
|
SignalErrorCodeInvalidRegistrationId = 81,
|
|
SignalErrorCodeInvalidSession = 82,
|
|
SignalErrorCodeInvalidSenderKeySession = 83,
|
|
SignalErrorCodeInvalidProtocolAddress = 84,
|
|
SignalErrorCodeDuplicatedMessage = 90,
|
|
SignalErrorCodeCallbackError = 100,
|
|
SignalErrorCodeVerificationFailure = 110,
|
|
SignalErrorCodeUsernameCannotBeEmpty = 120,
|
|
SignalErrorCodeUsernameCannotStartWithDigit = 121,
|
|
SignalErrorCodeUsernameMissingSeparator = 122,
|
|
SignalErrorCodeUsernameBadDiscriminatorCharacter = 123,
|
|
SignalErrorCodeUsernameBadNicknameCharacter = 124,
|
|
SignalErrorCodeUsernameTooShort = 125,
|
|
SignalErrorCodeUsernameTooLong = 126,
|
|
SignalErrorCodeUsernameLinkInvalidEntropyDataLength = 127,
|
|
SignalErrorCodeUsernameLinkInvalid = 128,
|
|
SignalErrorCodeUsernameDiscriminatorCannotBeEmpty = 130,
|
|
SignalErrorCodeUsernameDiscriminatorCannotBeZero = 131,
|
|
SignalErrorCodeUsernameDiscriminatorCannotBeSingleDigit = 132,
|
|
SignalErrorCodeUsernameDiscriminatorCannotHaveLeadingZeros = 133,
|
|
SignalErrorCodeUsernameDiscriminatorTooLarge = 134,
|
|
SignalErrorCodeIoError = 140,
|
|
SignalErrorCodeInvalidMediaInput = 141,
|
|
SignalErrorCodeUnsupportedMediaInput = 142,
|
|
SignalErrorCodeConnectionTimedOut = 143,
|
|
SignalErrorCodeNetworkProtocol = 144,
|
|
SignalErrorCodeRateLimited = 145,
|
|
SignalErrorCodeWebSocket = 146,
|
|
SignalErrorCodeCdsiInvalidToken = 147,
|
|
SignalErrorCodeConnectionFailed = 148,
|
|
SignalErrorCodeChatServiceInactive = 149,
|
|
SignalErrorCodeRequestTimedOut = 150,
|
|
SignalErrorCodeRateLimitChallenge = 151,
|
|
SignalErrorCodeSvrDataMissing = 160,
|
|
SignalErrorCodeSvrRestoreFailed = 161,
|
|
SignalErrorCodeSvrRotationMachineTooManySteps = 162,
|
|
SignalErrorCodeSvrRequestFailed = 163,
|
|
SignalErrorCodeAppExpired = 170,
|
|
SignalErrorCodeDeviceDeregistered = 171,
|
|
SignalErrorCodeConnectionInvalidated = 172,
|
|
SignalErrorCodeConnectedElsewhere = 173,
|
|
SignalErrorCodeBackupValidation = 180,
|
|
SignalErrorCodeRegistrationInvalidSessionId = 190,
|
|
SignalErrorCodeRegistrationUnknown = 192,
|
|
SignalErrorCodeRegistrationSessionNotFound = 193,
|
|
SignalErrorCodeRegistrationNotReadyForVerification = 194,
|
|
SignalErrorCodeRegistrationSendVerificationCodeFailed = 195,
|
|
SignalErrorCodeRegistrationCodeNotDeliverable = 196,
|
|
SignalErrorCodeRegistrationSessionUpdateRejected = 197,
|
|
SignalErrorCodeRegistrationCredentialsCouldNotBeParsed = 198,
|
|
SignalErrorCodeRegistrationDeviceTransferPossible = 199,
|
|
SignalErrorCodeRegistrationRecoveryVerificationFailed = 200,
|
|
SignalErrorCodeRegistrationLock = 201,
|
|
SignalErrorCodeKeyTransparencyError = 210,
|
|
SignalErrorCodeKeyTransparencyVerificationFailed = 211,
|
|
} SignalErrorCode;
|
|
|
|
enum SignalSvr2CredentialsResult {
|
|
SignalSvr2CredentialsResultMatch,
|
|
SignalSvr2CredentialsResultNoMatch,
|
|
SignalSvr2CredentialsResultInvalid,
|
|
};
|
|
typedef uint8_t SignalSvr2CredentialsResult;
|
|
|
|
typedef struct SignalAccountAttributes SignalAccountAttributes;
|
|
|
|
/**
|
|
* A wrapper around [`ctr::Ctr32BE`] that uses a smaller nonce and supports an initial counter.
|
|
*/
|
|
typedef struct SignalAes256Ctr32 SignalAes256Ctr32;
|
|
|
|
typedef struct SignalAes256GcmDecryption SignalAes256GcmDecryption;
|
|
|
|
typedef struct SignalAes256GcmEncryption SignalAes256GcmEncryption;
|
|
|
|
typedef struct SignalAes256GcmSiv SignalAes256GcmSiv;
|
|
|
|
typedef struct SignalAuthenticatedChatConnection SignalAuthenticatedChatConnection;
|
|
|
|
typedef struct SignalBackupRestoreResponse SignalBackupRestoreResponse;
|
|
|
|
typedef struct SignalBackupStoreResponse SignalBackupStoreResponse;
|
|
|
|
typedef struct SignalBridgedStringMap SignalBridgedStringMap;
|
|
|
|
typedef struct SignalCdsiLookup SignalCdsiLookup;
|
|
|
|
typedef struct SignalCiphertextMessage SignalCiphertextMessage;
|
|
|
|
/**
|
|
* Information about an established connection.
|
|
*/
|
|
typedef struct SignalConnectionInfo SignalConnectionInfo;
|
|
|
|
typedef struct SignalConnectionManager SignalConnectionManager;
|
|
|
|
typedef struct SignalConnectionProxyConfig SignalConnectionProxyConfig;
|
|
|
|
typedef struct SignalDecryptionErrorMessage SignalDecryptionErrorMessage;
|
|
|
|
typedef struct SignalFingerprint SignalFingerprint;
|
|
|
|
typedef struct SignalHsmEnclaveClient SignalHsmEnclaveClient;
|
|
|
|
typedef struct SignalHttpRequest SignalHttpRequest;
|
|
|
|
typedef struct SignalIncrementalMac SignalIncrementalMac;
|
|
|
|
typedef struct SignalKeyPair SignalKeyPair;
|
|
|
|
typedef struct SignalKeySecret SignalKeySecret;
|
|
|
|
typedef struct SignalKyberPreKeyRecord SignalKyberPreKeyRecord;
|
|
|
|
typedef struct SignalLookupRequest SignalLookupRequest;
|
|
|
|
typedef struct SignalMessageBackupKey SignalMessageBackupKey;
|
|
|
|
typedef struct SignalMessageBackupValidationOutcome SignalMessageBackupValidationOutcome;
|
|
|
|
typedef struct SignalOnlineBackupValidator SignalOnlineBackupValidator;
|
|
|
|
typedef struct SignalPinHash SignalPinHash;
|
|
|
|
typedef struct SignalPlaintextContent SignalPlaintextContent;
|
|
|
|
typedef struct SignalPreKeyBundle SignalPreKeyBundle;
|
|
|
|
typedef struct SignalPreKeyRecord SignalPreKeyRecord;
|
|
|
|
typedef struct SignalPreKeySignalMessage SignalPreKeySignalMessage;
|
|
|
|
typedef struct SignalPrivateKey SignalPrivateKey;
|
|
|
|
/**
|
|
* Represents a unique Signal client instance as `(<user ID>, <device ID>)` pair.
|
|
*/
|
|
typedef struct SignalProtocolAddress SignalProtocolAddress;
|
|
|
|
typedef struct SignalPublicKey SignalPublicKey;
|
|
|
|
typedef struct SignalRegisterAccountRequest SignalRegisterAccountRequest;
|
|
|
|
typedef struct SignalRegisterAccountResponse SignalRegisterAccountResponse;
|
|
|
|
typedef struct SignalRegistrationService SignalRegistrationService;
|
|
|
|
typedef struct SignalRegistrationSession SignalRegistrationSession;
|
|
|
|
typedef struct SignalSanitizedMetadata SignalSanitizedMetadata;
|
|
|
|
typedef struct SignalSenderCertificate SignalSenderCertificate;
|
|
|
|
typedef struct SignalSenderKeyDistributionMessage SignalSenderKeyDistributionMessage;
|
|
|
|
typedef struct SignalSenderKeyMessage SignalSenderKeyMessage;
|
|
|
|
typedef struct SignalSenderKeyRecord SignalSenderKeyRecord;
|
|
|
|
typedef struct SignalServerCertificate SignalServerCertificate;
|
|
|
|
/**
|
|
* Wraps a named type and a single-use guard around [`chat::server_requests::ResponseEnvelopeSender`].
|
|
*/
|
|
typedef struct SignalServerMessageAck SignalServerMessageAck;
|
|
|
|
typedef struct SignalServerPublicParams SignalServerPublicParams;
|
|
|
|
typedef struct SignalServerSecretParams SignalServerSecretParams;
|
|
|
|
typedef struct SignalSessionRecord SignalSessionRecord;
|
|
|
|
typedef struct SignalSgxClientState SignalSgxClientState;
|
|
|
|
/**
|
|
* The top-level error type (opaquely) returned to C clients when something goes wrong.
|
|
*
|
|
* Ideally this would use [ThinBox][], and then we wouldn't need an extra level of indirection when
|
|
* returning it to C, but unfortunately that isn't stable yet.
|
|
*
|
|
* [ThinBox]: https://doc.rust-lang.org/std/boxed/struct.ThinBox.html
|
|
*/
|
|
typedef struct SignalFfiError SignalFfiError;
|
|
|
|
typedef struct SignalMessage SignalMessage;
|
|
|
|
typedef struct SignalSignedPreKeyRecord SignalSignedPreKeyRecord;
|
|
|
|
typedef struct SignalTokioAsyncContext SignalTokioAsyncContext;
|
|
|
|
typedef struct SignalUnauthenticatedChatConnection SignalUnauthenticatedChatConnection;
|
|
|
|
typedef struct SignalUnidentifiedSenderMessageContent SignalUnidentifiedSenderMessageContent;
|
|
|
|
typedef struct SignalValidatingMac SignalValidatingMac;
|
|
|
|
typedef struct {
|
|
SignalProtocolAddress *raw;
|
|
} SignalMutPointerProtocolAddress;
|
|
|
|
typedef struct {
|
|
const SignalProtocolAddress *raw;
|
|
} SignalConstPointerProtocolAddress;
|
|
|
|
typedef struct {
|
|
SignalAes256Ctr32 *raw;
|
|
} SignalMutPointerAes256Ctr32;
|
|
|
|
typedef struct {
|
|
const unsigned char *base;
|
|
size_t length;
|
|
} SignalBorrowedBuffer;
|
|
|
|
typedef struct {
|
|
unsigned char *base;
|
|
size_t length;
|
|
} SignalBorrowedMutableBuffer;
|
|
|
|
typedef struct {
|
|
SignalAes256GcmDecryption *raw;
|
|
} SignalMutPointerAes256GcmDecryption;
|
|
|
|
/**
|
|
* A representation of a array allocated on the Rust heap for use in C code.
|
|
*/
|
|
typedef struct {
|
|
unsigned char *base;
|
|
/**
|
|
* The number of elements in the buffer (not necessarily the number of bytes).
|
|
*/
|
|
size_t length;
|
|
} SignalOwnedBuffer;
|
|
|
|
typedef struct {
|
|
SignalAes256GcmEncryption *raw;
|
|
} SignalMutPointerAes256GcmEncryption;
|
|
|
|
typedef struct {
|
|
const SignalAes256GcmSiv *raw;
|
|
} SignalConstPointerAes256GcmSiv;
|
|
|
|
typedef struct {
|
|
SignalAes256GcmSiv *raw;
|
|
} SignalMutPointerAes256GcmSiv;
|
|
|
|
typedef struct {
|
|
SignalAuthenticatedChatConnection *raw;
|
|
} SignalMutPointerAuthenticatedChatConnection;
|
|
|
|
typedef uint64_t SignalCancellationId;
|
|
|
|
/**
|
|
* A C callback used to report the results of Rust futures.
|
|
*
|
|
* cbindgen will produce independent C types like `SignalCPromisei32` and
|
|
* `SignalCPromiseProtocolAddress`.
|
|
*
|
|
* This derives Copy because it behaves like a C type; nevertheless, a promise should still only be
|
|
* completed once.
|
|
*/
|
|
typedef struct {
|
|
void (*complete)(SignalFfiError *error, const SignalMutPointerAuthenticatedChatConnection *result, const void *context);
|
|
const void *context;
|
|
SignalCancellationId cancellation_id;
|
|
} SignalCPromiseMutPointerAuthenticatedChatConnection;
|
|
|
|
typedef struct {
|
|
const SignalTokioAsyncContext *raw;
|
|
} SignalConstPointerTokioAsyncContext;
|
|
|
|
typedef struct {
|
|
const SignalConnectionManager *raw;
|
|
} SignalConstPointerConnectionManager;
|
|
|
|
typedef struct {
|
|
const size_t *base;
|
|
size_t length;
|
|
} SignalBorrowedSliceOfusize;
|
|
|
|
typedef struct {
|
|
SignalBorrowedBuffer bytes;
|
|
SignalBorrowedSliceOfusize lengths;
|
|
} SignalBorrowedBytestringArray;
|
|
|
|
/**
|
|
* A C callback used to report the results of Rust futures.
|
|
*
|
|
* cbindgen will produce independent C types like `SignalCPromisei32` and
|
|
* `SignalCPromiseProtocolAddress`.
|
|
*
|
|
* This derives Copy because it behaves like a C type; nevertheless, a promise should still only be
|
|
* completed once.
|
|
*/
|
|
typedef struct {
|
|
void (*complete)(SignalFfiError *error, const bool *result, const void *context);
|
|
const void *context;
|
|
SignalCancellationId cancellation_id;
|
|
} SignalCPromisebool;
|
|
|
|
typedef struct {
|
|
const SignalAuthenticatedChatConnection *raw;
|
|
} SignalConstPointerAuthenticatedChatConnection;
|
|
|
|
typedef SignalConnectionInfo SignalChatConnectionInfo;
|
|
|
|
typedef struct {
|
|
SignalChatConnectionInfo *raw;
|
|
} SignalMutPointerChatConnectionInfo;
|
|
|
|
typedef void (*SignalReceivedIncomingMessage)(void *ctx, SignalOwnedBuffer envelope, uint64_t timestamp_millis, SignalServerMessageAck *cleanup);
|
|
|
|
typedef void (*SignalReceivedQueueEmpty)(void *ctx);
|
|
|
|
/**
|
|
* A representation of a array allocated on the Rust heap for use in C code.
|
|
*/
|
|
typedef struct {
|
|
size_t *base;
|
|
/**
|
|
* The number of elements in the buffer (not necessarily the number of bytes).
|
|
*/
|
|
size_t length;
|
|
} SignalOwnedBufferOfusize;
|
|
|
|
typedef struct {
|
|
SignalOwnedBuffer bytes;
|
|
SignalOwnedBufferOfusize lengths;
|
|
} SignalBytestringArray;
|
|
|
|
typedef SignalBytestringArray SignalStringArray;
|
|
|
|
typedef void (*SignalReceivedAlerts)(void *ctx, SignalStringArray alerts);
|
|
|
|
typedef void (*SignalConnectionInterrupted)(void *ctx, SignalFfiError *error);
|
|
|
|
typedef void (*SignalDestroyChatListener)(void *ctx);
|
|
|
|
/**
|
|
* Callbacks for [`ChatListener`].
|
|
*
|
|
* Callbacks will be serialized (i.e. two calls will not come in at the same time), but may not
|
|
* always happen on the same thread. Calls should be responded to promptly to avoid blocking later
|
|
* messages.
|
|
*
|
|
* # Safety
|
|
*
|
|
* This type contains raw pointers. Code that constructs an instance of this type must ensure
|
|
* memory safety assuming that
|
|
* - the callback function pointer fields are called with `ctx` as an argument;
|
|
* - the `destroy` function pointer field is called with `ctx` as an argument;
|
|
* - no function pointer fields are called after `destroy` is called.
|
|
*/
|
|
typedef struct {
|
|
void *ctx;
|
|
SignalReceivedIncomingMessage received_incoming_message;
|
|
SignalReceivedQueueEmpty received_queue_empty;
|
|
SignalReceivedAlerts received_alerts;
|
|
SignalConnectionInterrupted connection_interrupted;
|
|
SignalDestroyChatListener destroy;
|
|
} SignalFfiChatListenerStruct;
|
|
|
|
typedef struct {
|
|
const SignalFfiChatListenerStruct *raw;
|
|
} SignalConstPointerFfiChatListenerStruct;
|
|
|
|
/**
|
|
* A type alias to be used with [`OwnedBufferOf`], so that `OwnedBufferOf<c_char>` and
|
|
* `OwnedBufferOf<*const c_char>` get distinct names.
|
|
*/
|
|
typedef const char *SignalCStringPtr;
|
|
|
|
/**
|
|
* A representation of a array allocated on the Rust heap for use in C code.
|
|
*/
|
|
typedef struct {
|
|
SignalCStringPtr *base;
|
|
/**
|
|
* The number of elements in the buffer (not necessarily the number of bytes).
|
|
*/
|
|
size_t length;
|
|
} SignalOwnedBufferOfCStringPtr;
|
|
|
|
typedef struct {
|
|
uint16_t status;
|
|
const char *message;
|
|
SignalOwnedBufferOfCStringPtr headers;
|
|
SignalOwnedBuffer body;
|
|
} SignalFfiChatResponse;
|
|
|
|
/**
|
|
* A C callback used to report the results of Rust futures.
|
|
*
|
|
* cbindgen will produce independent C types like `SignalCPromisei32` and
|
|
* `SignalCPromiseProtocolAddress`.
|
|
*
|
|
* This derives Copy because it behaves like a C type; nevertheless, a promise should still only be
|
|
* completed once.
|
|
*/
|
|
typedef struct {
|
|
void (*complete)(SignalFfiError *error, const SignalFfiChatResponse *result, const void *context);
|
|
const void *context;
|
|
SignalCancellationId cancellation_id;
|
|
} SignalCPromiseFfiChatResponse;
|
|
|
|
typedef struct {
|
|
const SignalHttpRequest *raw;
|
|
} SignalConstPointerHttpRequest;
|
|
|
|
/**
|
|
* The fixed-width binary representation of a ServiceId.
|
|
*
|
|
* Rarely used. The variable-width format that privileges ACIs is preferred.
|
|
*/
|
|
typedef uint8_t SignalServiceIdFixedWidthBinaryBytes[17];
|
|
|
|
typedef struct {
|
|
SignalPrivateKey *raw;
|
|
} SignalMutPointerPrivateKey;
|
|
|
|
typedef struct {
|
|
SignalBackupRestoreResponse *raw;
|
|
} SignalMutPointerBackupRestoreResponse;
|
|
|
|
typedef struct {
|
|
const SignalBackupRestoreResponse *raw;
|
|
} SignalConstPointerBackupRestoreResponse;
|
|
|
|
typedef struct {
|
|
SignalBackupStoreResponse *raw;
|
|
} SignalMutPointerBackupStoreResponse;
|
|
|
|
typedef struct {
|
|
const SignalBackupStoreResponse *raw;
|
|
} SignalConstPointerBackupStoreResponse;
|
|
|
|
typedef struct {
|
|
SignalBridgedStringMap *raw;
|
|
} SignalMutPointerBridgedStringMap;
|
|
|
|
typedef struct {
|
|
const SignalBridgedStringMap *raw;
|
|
} SignalConstPointerBridgedStringMap;
|
|
|
|
typedef struct {
|
|
SignalSgxClientState *raw;
|
|
} SignalMutPointerSgxClientState;
|
|
|
|
typedef struct {
|
|
/**
|
|
* Telephone number, as an unformatted e164.
|
|
*/
|
|
uint64_t e164;
|
|
uint8_t rawAciUuid[16];
|
|
uint8_t rawPniUuid[16];
|
|
} SignalFfiCdsiLookupResponseEntry;
|
|
|
|
/**
|
|
* A representation of a array allocated on the Rust heap for use in C code.
|
|
*/
|
|
typedef struct {
|
|
SignalFfiCdsiLookupResponseEntry *base;
|
|
/**
|
|
* The number of elements in the buffer (not necessarily the number of bytes).
|
|
*/
|
|
size_t length;
|
|
} SignalOwnedBufferOfFfiCdsiLookupResponseEntry;
|
|
|
|
typedef struct {
|
|
SignalOwnedBufferOfFfiCdsiLookupResponseEntry entries;
|
|
int32_t debug_permits_used;
|
|
} SignalFfiCdsiLookupResponse;
|
|
|
|
/**
|
|
* A C callback used to report the results of Rust futures.
|
|
*
|
|
* cbindgen will produce independent C types like `SignalCPromisei32` and
|
|
* `SignalCPromiseProtocolAddress`.
|
|
*
|
|
* This derives Copy because it behaves like a C type; nevertheless, a promise should still only be
|
|
* completed once.
|
|
*/
|
|
typedef struct {
|
|
void (*complete)(SignalFfiError *error, const SignalFfiCdsiLookupResponse *result, const void *context);
|
|
const void *context;
|
|
SignalCancellationId cancellation_id;
|
|
} SignalCPromiseFfiCdsiLookupResponse;
|
|
|
|
typedef struct {
|
|
const SignalCdsiLookup *raw;
|
|
} SignalConstPointerCdsiLookup;
|
|
|
|
typedef struct {
|
|
SignalCdsiLookup *raw;
|
|
} SignalMutPointerCdsiLookup;
|
|
|
|
/**
|
|
* A C callback used to report the results of Rust futures.
|
|
*
|
|
* cbindgen will produce independent C types like `SignalCPromisei32` and
|
|
* `SignalCPromiseProtocolAddress`.
|
|
*
|
|
* This derives Copy because it behaves like a C type; nevertheless, a promise should still only be
|
|
* completed once.
|
|
*/
|
|
typedef struct {
|
|
void (*complete)(SignalFfiError *error, const SignalMutPointerCdsiLookup *result, const void *context);
|
|
const void *context;
|
|
SignalCancellationId cancellation_id;
|
|
} SignalCPromiseMutPointerCdsiLookup;
|
|
|
|
typedef struct {
|
|
const SignalLookupRequest *raw;
|
|
} SignalConstPointerLookupRequest;
|
|
|
|
typedef struct {
|
|
const SignalChatConnectionInfo *raw;
|
|
} SignalConstPointerChatConnectionInfo;
|
|
|
|
typedef struct {
|
|
SignalCiphertextMessage *raw;
|
|
} SignalMutPointerCiphertextMessage;
|
|
|
|
typedef struct {
|
|
const SignalPlaintextContent *raw;
|
|
} SignalConstPointerPlaintextContent;
|
|
|
|
typedef struct {
|
|
const SignalCiphertextMessage *raw;
|
|
} SignalConstPointerCiphertextMessage;
|
|
|
|
typedef struct {
|
|
SignalConnectionInfo *raw;
|
|
} SignalMutPointerConnectionInfo;
|
|
|
|
typedef struct {
|
|
SignalConnectionManager *raw;
|
|
} SignalMutPointerConnectionManager;
|
|
|
|
typedef struct {
|
|
const SignalConnectionProxyConfig *raw;
|
|
} SignalConstPointerConnectionProxyConfig;
|
|
|
|
typedef struct {
|
|
SignalConnectionProxyConfig *raw;
|
|
} SignalMutPointerConnectionProxyConfig;
|
|
|
|
typedef struct {
|
|
const SignalMessage *raw;
|
|
} SignalConstPointerSignalMessage;
|
|
|
|
typedef struct {
|
|
SignalSessionRecord *raw;
|
|
} SignalMutPointerSessionRecord;
|
|
|
|
typedef int (*SignalLoadSession)(void *store_ctx, SignalMutPointerSessionRecord *recordp, SignalConstPointerProtocolAddress address);
|
|
|
|
typedef struct {
|
|
const SignalSessionRecord *raw;
|
|
} SignalConstPointerSessionRecord;
|
|
|
|
typedef int (*SignalStoreSession)(void *store_ctx, SignalConstPointerProtocolAddress address, SignalConstPointerSessionRecord record);
|
|
|
|
typedef struct {
|
|
void *ctx;
|
|
SignalLoadSession load_session;
|
|
SignalStoreSession store_session;
|
|
} SignalSessionStore;
|
|
|
|
typedef struct {
|
|
const SignalSessionStore *raw;
|
|
} SignalConstPointerFfiSessionStoreStruct;
|
|
|
|
typedef int (*SignalGetIdentityKeyPair)(void *store_ctx, SignalMutPointerPrivateKey *keyp);
|
|
|
|
typedef int (*SignalGetLocalRegistrationId)(void *store_ctx, uint32_t *idp);
|
|
|
|
typedef struct {
|
|
const SignalPublicKey *raw;
|
|
} SignalConstPointerPublicKey;
|
|
|
|
typedef int (*SignalSaveIdentityKey)(void *store_ctx, SignalConstPointerProtocolAddress address, SignalConstPointerPublicKey public_key);
|
|
|
|
typedef struct {
|
|
SignalPublicKey *raw;
|
|
} SignalMutPointerPublicKey;
|
|
|
|
typedef int (*SignalGetIdentityKey)(void *store_ctx, SignalMutPointerPublicKey *public_keyp, SignalConstPointerProtocolAddress address);
|
|
|
|
typedef int (*SignalIsTrustedIdentity)(void *store_ctx, SignalConstPointerProtocolAddress address, SignalConstPointerPublicKey public_key, unsigned int direction);
|
|
|
|
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 struct {
|
|
const SignalIdentityKeyStore *raw;
|
|
} SignalConstPointerFfiIdentityKeyStoreStruct;
|
|
|
|
typedef struct {
|
|
const SignalPreKeySignalMessage *raw;
|
|
} SignalConstPointerPreKeySignalMessage;
|
|
|
|
typedef struct {
|
|
SignalPreKeyRecord *raw;
|
|
} SignalMutPointerPreKeyRecord;
|
|
|
|
typedef int (*SignalLoadPreKey)(void *store_ctx, SignalMutPointerPreKeyRecord *recordp, uint32_t id);
|
|
|
|
typedef struct {
|
|
const SignalPreKeyRecord *raw;
|
|
} SignalConstPointerPreKeyRecord;
|
|
|
|
typedef int (*SignalStorePreKey)(void *store_ctx, uint32_t id, SignalConstPointerPreKeyRecord record);
|
|
|
|
typedef int (*SignalRemovePreKey)(void *store_ctx, uint32_t id);
|
|
|
|
typedef struct {
|
|
void *ctx;
|
|
SignalLoadPreKey load_pre_key;
|
|
SignalStorePreKey store_pre_key;
|
|
SignalRemovePreKey remove_pre_key;
|
|
} SignalPreKeyStore;
|
|
|
|
typedef struct {
|
|
const SignalPreKeyStore *raw;
|
|
} SignalConstPointerFfiPreKeyStoreStruct;
|
|
|
|
typedef struct {
|
|
SignalSignedPreKeyRecord *raw;
|
|
} SignalMutPointerSignedPreKeyRecord;
|
|
|
|
typedef int (*SignalLoadSignedPreKey)(void *store_ctx, SignalMutPointerSignedPreKeyRecord *recordp, uint32_t id);
|
|
|
|
typedef struct {
|
|
const SignalSignedPreKeyRecord *raw;
|
|
} SignalConstPointerSignedPreKeyRecord;
|
|
|
|
typedef int (*SignalStoreSignedPreKey)(void *store_ctx, uint32_t id, SignalConstPointerSignedPreKeyRecord record);
|
|
|
|
typedef struct {
|
|
void *ctx;
|
|
SignalLoadSignedPreKey load_signed_pre_key;
|
|
SignalStoreSignedPreKey store_signed_pre_key;
|
|
} SignalSignedPreKeyStore;
|
|
|
|
typedef struct {
|
|
const SignalSignedPreKeyStore *raw;
|
|
} SignalConstPointerFfiSignedPreKeyStoreStruct;
|
|
|
|
typedef struct {
|
|
SignalKyberPreKeyRecord *raw;
|
|
} SignalMutPointerKyberPreKeyRecord;
|
|
|
|
typedef int (*SignalLoadKyberPreKey)(void *store_ctx, SignalMutPointerKyberPreKeyRecord *recordp, uint32_t id);
|
|
|
|
typedef struct {
|
|
const SignalKyberPreKeyRecord *raw;
|
|
} SignalConstPointerKyberPreKeyRecord;
|
|
|
|
typedef int (*SignalStoreKyberPreKey)(void *store_ctx, uint32_t id, SignalConstPointerKyberPreKeyRecord record);
|
|
|
|
typedef int (*SignalMarkKyberPreKeyUsed)(void *store_ctx, uint32_t id, uint32_t signed_prekey_id, SignalConstPointerPublicKey base_key);
|
|
|
|
typedef struct {
|
|
void *ctx;
|
|
SignalLoadKyberPreKey load_kyber_pre_key;
|
|
SignalStoreKyberPreKey store_kyber_pre_key;
|
|
SignalMarkKyberPreKeyUsed mark_kyber_pre_key_used;
|
|
} SignalKyberPreKeyStore;
|
|
|
|
typedef struct {
|
|
const SignalKyberPreKeyStore *raw;
|
|
} SignalConstPointerFfiKyberPreKeyStoreStruct;
|
|
|
|
typedef struct {
|
|
SignalDecryptionErrorMessage *raw;
|
|
} SignalMutPointerDecryptionErrorMessage;
|
|
|
|
typedef struct {
|
|
const SignalDecryptionErrorMessage *raw;
|
|
} SignalConstPointerDecryptionErrorMessage;
|
|
|
|
/**
|
|
* Like [`std::panic::AssertUnwindSafe`], but FFI-compatible.
|
|
*/
|
|
typedef const SignalFfiError *SignalUnwindSafeArgSignalFfiError;
|
|
|
|
typedef struct {
|
|
SignalFingerprint *raw;
|
|
} SignalMutPointerFingerprint;
|
|
|
|
typedef struct {
|
|
const SignalFingerprint *raw;
|
|
} SignalConstPointerFingerprint;
|
|
|
|
typedef struct {
|
|
/**
|
|
* The badge ID.
|
|
*/
|
|
const char *id;
|
|
/**
|
|
* Whether the badge is currently configured to be visible.
|
|
*/
|
|
bool visible;
|
|
/**
|
|
* When the badge expires.
|
|
*/
|
|
double expiration_secs;
|
|
} SignalFfiRegisterResponseBadge;
|
|
|
|
/**
|
|
* A representation of a array allocated on the Rust heap for use in C code.
|
|
*/
|
|
typedef struct {
|
|
SignalFfiRegisterResponseBadge *base;
|
|
/**
|
|
* The number of elements in the buffer (not necessarily the number of bytes).
|
|
*/
|
|
size_t length;
|
|
} SignalOwnedBufferOfFfiRegisterResponseBadge;
|
|
|
|
typedef struct {
|
|
SignalSenderKeyRecord *raw;
|
|
} SignalMutPointerSenderKeyRecord;
|
|
|
|
typedef int (*SignalLoadSenderKey)(void *store_ctx, SignalMutPointerSenderKeyRecord*, SignalConstPointerProtocolAddress, const uint8_t (*distribution_id)[16]);
|
|
|
|
typedef struct {
|
|
const SignalSenderKeyRecord *raw;
|
|
} SignalConstPointerSenderKeyRecord;
|
|
|
|
typedef int (*SignalStoreSenderKey)(void *store_ctx, SignalConstPointerProtocolAddress, const uint8_t (*distribution_id)[16], SignalConstPointerSenderKeyRecord);
|
|
|
|
typedef struct {
|
|
void *ctx;
|
|
SignalLoadSenderKey load_sender_key;
|
|
SignalStoreSenderKey store_sender_key;
|
|
} SignalSenderKeyStore;
|
|
|
|
typedef struct {
|
|
const SignalSenderKeyStore *raw;
|
|
} SignalConstPointerFfiSenderKeyStoreStruct;
|
|
|
|
typedef struct {
|
|
const SignalServerSecretParams *raw;
|
|
} SignalConstPointerServerSecretParams;
|
|
|
|
typedef struct {
|
|
const SignalBorrowedBuffer *base;
|
|
size_t length;
|
|
} SignalBorrowedSliceOfBuffers;
|
|
|
|
typedef struct {
|
|
const SignalServerPublicParams *raw;
|
|
} SignalConstPointerServerPublicParams;
|
|
|
|
typedef struct {
|
|
SignalHsmEnclaveClient *raw;
|
|
} SignalMutPointerHsmEnclaveClient;
|
|
|
|
typedef struct {
|
|
const SignalHsmEnclaveClient *raw;
|
|
} SignalConstPointerHsmEnclaveClient;
|
|
|
|
typedef struct {
|
|
SignalHttpRequest *raw;
|
|
} SignalMutPointerHttpRequest;
|
|
|
|
typedef struct {
|
|
const SignalPrivateKey *raw;
|
|
} SignalConstPointerPrivateKey;
|
|
|
|
typedef struct {
|
|
SignalIncrementalMac *raw;
|
|
} SignalMutPointerIncrementalMac;
|
|
|
|
typedef void (*SignalLogCallback)(void *ctx, SignalLogLevel level, const char *file, uint32_t line, const char *message);
|
|
|
|
typedef void (*SignalLogFlushCallback)(void *ctx);
|
|
|
|
typedef struct {
|
|
void *ctx;
|
|
SignalLogCallback log;
|
|
SignalLogFlushCallback flush;
|
|
} SignalFfiLogger;
|
|
|
|
/**
|
|
* A C callback used to report the results of Rust futures.
|
|
*
|
|
* cbindgen will produce independent C types like `SignalCPromisei32` and
|
|
* `SignalCPromiseProtocolAddress`.
|
|
*
|
|
* This derives Copy because it behaves like a C type; nevertheless, a promise should still only be
|
|
* completed once.
|
|
*/
|
|
typedef struct {
|
|
void (*complete)(SignalFfiError *error, const SignalOwnedBuffer *result, const void *context);
|
|
const void *context;
|
|
SignalCancellationId cancellation_id;
|
|
} SignalCPromiseOwnedBufferOfc_uchar;
|
|
|
|
typedef struct {
|
|
const SignalUnauthenticatedChatConnection *raw;
|
|
} SignalConstPointerUnauthenticatedChatConnection;
|
|
|
|
typedef struct {
|
|
bool present;
|
|
SignalBorrowedBuffer value;
|
|
} SignalOptionalBorrowedSliceOfc_uchar;
|
|
|
|
typedef SignalKeyPair SignalKyberKeyPair;
|
|
|
|
typedef struct {
|
|
SignalKyberKeyPair *raw;
|
|
} SignalMutPointerKyberKeyPair;
|
|
|
|
typedef struct {
|
|
const SignalKyberKeyPair *raw;
|
|
} SignalConstPointerKyberKeyPair;
|
|
|
|
typedef SignalPublicKey SignalKyberPublicKey;
|
|
|
|
typedef struct {
|
|
SignalKyberPublicKey *raw;
|
|
} SignalMutPointerKyberPublicKey;
|
|
|
|
/**
|
|
* A KEM secret key with the ability to decapsulate a shared secret.
|
|
*/
|
|
typedef SignalKeySecret SignalSecretKey;
|
|
|
|
typedef SignalSecretKey SignalKyberSecretKey;
|
|
|
|
typedef struct {
|
|
SignalKyberSecretKey *raw;
|
|
} SignalMutPointerKyberSecretKey;
|
|
|
|
typedef struct {
|
|
const SignalKyberPublicKey *raw;
|
|
} SignalConstPointerKyberPublicKey;
|
|
|
|
typedef struct {
|
|
const SignalKyberSecretKey *raw;
|
|
} SignalConstPointerKyberSecretKey;
|
|
|
|
typedef struct {
|
|
SignalLookupRequest *raw;
|
|
} SignalMutPointerLookupRequest;
|
|
|
|
typedef struct {
|
|
SignalMessageBackupKey *raw;
|
|
} SignalMutPointerMessageBackupKey;
|
|
|
|
typedef struct {
|
|
const SignalMessageBackupKey *raw;
|
|
} SignalConstPointerMessageBackupKey;
|
|
|
|
typedef struct {
|
|
SignalMessageBackupValidationOutcome *raw;
|
|
} SignalMutPointerMessageBackupValidationOutcome;
|
|
|
|
typedef struct {
|
|
const SignalMessageBackupValidationOutcome *raw;
|
|
} SignalConstPointerMessageBackupValidationOutcome;
|
|
|
|
typedef int (*SignalRead)(void *ctx, uint8_t *buf, size_t buf_len, size_t *amount_read);
|
|
|
|
typedef int (*SignalSkip)(void *ctx, uint64_t amount);
|
|
|
|
typedef struct {
|
|
void *ctx;
|
|
SignalRead read;
|
|
SignalSkip skip;
|
|
} SignalInputStream;
|
|
|
|
typedef struct {
|
|
const SignalInputStream *raw;
|
|
} SignalConstPointerFfiInputStreamStruct;
|
|
|
|
typedef struct {
|
|
SignalMessage *raw;
|
|
} SignalMutPointerSignalMessage;
|
|
|
|
typedef struct {
|
|
SignalSanitizedMetadata *raw;
|
|
} SignalMutPointerSanitizedMetadata;
|
|
|
|
typedef struct {
|
|
SignalOnlineBackupValidator *raw;
|
|
} SignalMutPointerOnlineBackupValidator;
|
|
|
|
typedef struct {
|
|
const SignalPinHash *raw;
|
|
} SignalConstPointerPinHash;
|
|
|
|
typedef struct {
|
|
SignalPinHash *raw;
|
|
} SignalMutPointerPinHash;
|
|
|
|
typedef struct {
|
|
SignalPlaintextContent *raw;
|
|
} SignalMutPointerPlaintextContent;
|
|
|
|
typedef struct {
|
|
SignalPreKeyBundle *raw;
|
|
} SignalMutPointerPreKeyBundle;
|
|
|
|
typedef struct {
|
|
const SignalPreKeyBundle *raw;
|
|
} SignalConstPointerPreKeyBundle;
|
|
|
|
typedef struct {
|
|
SignalPreKeySignalMessage *raw;
|
|
} SignalMutPointerPreKeySignalMessage;
|
|
|
|
typedef struct {
|
|
const SignalSenderKeyDistributionMessage *raw;
|
|
} SignalConstPointerSenderKeyDistributionMessage;
|
|
|
|
typedef struct {
|
|
SignalRegisterAccountRequest *raw;
|
|
} SignalMutPointerRegisterAccountRequest;
|
|
|
|
typedef struct {
|
|
const SignalRegisterAccountRequest *raw;
|
|
} SignalConstPointerRegisterAccountRequest;
|
|
|
|
typedef struct {
|
|
uint32_t key_id;
|
|
SignalFfiPublicKeyType public_key_type;
|
|
const void *public_key;
|
|
SignalBorrowedBuffer signature;
|
|
} SignalFfiSignedPublicPreKey;
|
|
|
|
typedef struct {
|
|
SignalRegisterAccountResponse *raw;
|
|
} SignalMutPointerRegisterAccountResponse;
|
|
|
|
typedef struct {
|
|
const SignalRegisterAccountResponse *raw;
|
|
} SignalConstPointerRegisterAccountResponse;
|
|
|
|
typedef uint8_t SignalOptionalUuid[17];
|
|
|
|
typedef SignalAccountAttributes SignalRegistrationAccountAttributes;
|
|
|
|
typedef struct {
|
|
SignalRegistrationAccountAttributes *raw;
|
|
} SignalMutPointerRegistrationAccountAttributes;
|
|
|
|
typedef struct {
|
|
/**
|
|
* Bridged as a string of bytes, but each entry is a UTF-8 `String` key
|
|
* concatenated with a byte for the value.
|
|
*/
|
|
SignalBytestringArray entries;
|
|
} SignalFfiCheckSvr2CredentialsResponse;
|
|
|
|
/**
|
|
* A C callback used to report the results of Rust futures.
|
|
*
|
|
* cbindgen will produce independent C types like `SignalCPromisei32` and
|
|
* `SignalCPromiseProtocolAddress`.
|
|
*
|
|
* This derives Copy because it behaves like a C type; nevertheless, a promise should still only be
|
|
* completed once.
|
|
*/
|
|
typedef struct {
|
|
void (*complete)(SignalFfiError *error, const SignalFfiCheckSvr2CredentialsResponse *result, const void *context);
|
|
const void *context;
|
|
SignalCancellationId cancellation_id;
|
|
} SignalCPromiseFfiCheckSvr2CredentialsResponse;
|
|
|
|
typedef struct {
|
|
const SignalRegistrationService *raw;
|
|
} SignalConstPointerRegistrationService;
|
|
|
|
typedef struct {
|
|
SignalRegistrationService *raw;
|
|
} SignalMutPointerRegistrationService;
|
|
|
|
/**
|
|
* A C callback used to report the results of Rust futures.
|
|
*
|
|
* cbindgen will produce independent C types like `SignalCPromisei32` and
|
|
* `SignalCPromiseProtocolAddress`.
|
|
*
|
|
* This derives Copy because it behaves like a C type; nevertheless, a promise should still only be
|
|
* completed once.
|
|
*/
|
|
typedef struct {
|
|
void (*complete)(SignalFfiError *error, const SignalMutPointerRegistrationService *result, const void *context);
|
|
const void *context;
|
|
SignalCancellationId cancellation_id;
|
|
} SignalCPromiseMutPointerRegistrationService;
|
|
|
|
typedef struct {
|
|
const char *number;
|
|
const char *push_token;
|
|
const char *mcc;
|
|
const char *mnc;
|
|
} SignalFfiRegistrationCreateSessionRequest;
|
|
|
|
typedef const SignalConnectionManager *(*SignalGetConnectChatConnectionManager)(void *ctx);
|
|
|
|
typedef void (*SignalDestroyConnectChatBridge)(void *ctx);
|
|
|
|
/**
|
|
* A ref-counting pointer to a [`ConnectionManager`] and a callback to
|
|
* decrement the count.
|
|
*/
|
|
typedef struct {
|
|
void *ctx;
|
|
SignalGetConnectChatConnectionManager get_connection_manager;
|
|
SignalDestroyConnectChatBridge destroy;
|
|
} SignalFfiConnectChatBridgeStruct;
|
|
|
|
typedef struct {
|
|
const SignalFfiConnectChatBridgeStruct *raw;
|
|
} SignalConstPointerFfiConnectChatBridgeStruct;
|
|
|
|
/**
|
|
* A C callback used to report the results of Rust futures.
|
|
*
|
|
* cbindgen will produce independent C types like `SignalCPromisei32` and
|
|
* `SignalCPromiseProtocolAddress`.
|
|
*
|
|
* This derives Copy because it behaves like a C type; nevertheless, a promise should still only be
|
|
* completed once.
|
|
*/
|
|
typedef struct {
|
|
void (*complete)(SignalFfiError *error, const SignalMutPointerRegisterAccountResponse *result, const void *context);
|
|
const void *context;
|
|
SignalCancellationId cancellation_id;
|
|
} SignalCPromiseMutPointerRegisterAccountResponse;
|
|
|
|
typedef struct {
|
|
const SignalRegistrationAccountAttributes *raw;
|
|
} SignalConstPointerRegistrationAccountAttributes;
|
|
|
|
typedef struct {
|
|
SignalRegistrationSession *raw;
|
|
} SignalMutPointerRegistrationSession;
|
|
|
|
typedef struct {
|
|
const SignalRegistrationSession *raw;
|
|
} SignalConstPointerRegistrationSession;
|
|
|
|
typedef struct {
|
|
const SignalSanitizedMetadata *raw;
|
|
} SignalConstPointerSanitizedMetadata;
|
|
|
|
typedef struct {
|
|
const SignalConstPointerProtocolAddress *base;
|
|
size_t length;
|
|
} SignalBorrowedSliceOfConstPointerProtocolAddress;
|
|
|
|
typedef struct {
|
|
const SignalConstPointerSessionRecord *base;
|
|
size_t length;
|
|
} SignalBorrowedSliceOfConstPointerSessionRecord;
|
|
|
|
typedef struct {
|
|
const SignalUnidentifiedSenderMessageContent *raw;
|
|
} SignalConstPointerUnidentifiedSenderMessageContent;
|
|
|
|
typedef struct {
|
|
SignalUnidentifiedSenderMessageContent *raw;
|
|
} SignalMutPointerUnidentifiedSenderMessageContent;
|
|
|
|
typedef uint8_t SignalBackupKeyBytes[SignalBACKUP_KEY_LEN];
|
|
|
|
/**
|
|
* A C callback used to report the results of Rust futures.
|
|
*
|
|
* cbindgen will produce independent C types like `SignalCPromisei32` and
|
|
* `SignalCPromiseProtocolAddress`.
|
|
*
|
|
* This derives Copy because it behaves like a C type; nevertheless, a promise should still only be
|
|
* completed once.
|
|
*/
|
|
typedef struct {
|
|
void (*complete)(SignalFfiError *error, const SignalMutPointerBackupRestoreResponse *result, const void *context);
|
|
const void *context;
|
|
SignalCancellationId cancellation_id;
|
|
} SignalCPromiseMutPointerBackupRestoreResponse;
|
|
|
|
/**
|
|
* A C callback used to report the results of Rust futures.
|
|
*
|
|
* cbindgen will produce independent C types like `SignalCPromisei32` and
|
|
* `SignalCPromiseProtocolAddress`.
|
|
*
|
|
* This derives Copy because it behaves like a C type; nevertheless, a promise should still only be
|
|
* completed once.
|
|
*/
|
|
typedef struct {
|
|
void (*complete)(SignalFfiError *error, const SignalMutPointerBackupStoreResponse *result, const void *context);
|
|
const void *context;
|
|
SignalCancellationId cancellation_id;
|
|
} SignalCPromiseMutPointerBackupStoreResponse;
|
|
|
|
typedef struct {
|
|
SignalSenderCertificate *raw;
|
|
} SignalMutPointerSenderCertificate;
|
|
|
|
typedef struct {
|
|
const SignalSenderCertificate *raw;
|
|
} SignalConstPointerSenderCertificate;
|
|
|
|
typedef struct {
|
|
SignalServerCertificate *raw;
|
|
} SignalMutPointerServerCertificate;
|
|
|
|
typedef struct {
|
|
const SignalServerCertificate *raw;
|
|
} SignalConstPointerServerCertificate;
|
|
|
|
typedef struct {
|
|
const SignalConstPointerPublicKey *base;
|
|
size_t length;
|
|
} SignalBorrowedSliceOfConstPointerPublicKey;
|
|
|
|
typedef struct {
|
|
SignalSenderKeyDistributionMessage *raw;
|
|
} SignalMutPointerSenderKeyDistributionMessage;
|
|
|
|
typedef struct {
|
|
SignalSenderKeyMessage *raw;
|
|
} SignalMutPointerSenderKeyMessage;
|
|
|
|
typedef struct {
|
|
const SignalSenderKeyMessage *raw;
|
|
} SignalConstPointerSenderKeyMessage;
|
|
|
|
typedef struct {
|
|
SignalServerMessageAck *raw;
|
|
} SignalMutPointerServerMessageAck;
|
|
|
|
typedef struct {
|
|
const SignalServerMessageAck *raw;
|
|
} SignalConstPointerServerMessageAck;
|
|
|
|
typedef struct {
|
|
SignalServerPublicParams *raw;
|
|
} SignalMutPointerServerPublicParams;
|
|
|
|
typedef struct {
|
|
SignalServerSecretParams *raw;
|
|
} SignalMutPointerServerSecretParams;
|
|
|
|
typedef struct {
|
|
const SignalSgxClientState *raw;
|
|
} SignalConstPointerSgxClientState;
|
|
|
|
typedef struct {
|
|
SignalTokioAsyncContext *raw;
|
|
} SignalMutPointerTokioAsyncContext;
|
|
|
|
typedef struct {
|
|
SignalUnauthenticatedChatConnection *raw;
|
|
} SignalMutPointerUnauthenticatedChatConnection;
|
|
|
|
/**
|
|
* A C callback used to report the results of Rust futures.
|
|
*
|
|
* cbindgen will produce independent C types like `SignalCPromisei32` and
|
|
* `SignalCPromiseProtocolAddress`.
|
|
*
|
|
* This derives Copy because it behaves like a C type; nevertheless, a promise should still only be
|
|
* completed once.
|
|
*/
|
|
typedef struct {
|
|
void (*complete)(SignalFfiError *error, const SignalMutPointerUnauthenticatedChatConnection *result, const void *context);
|
|
const void *context;
|
|
SignalCancellationId cancellation_id;
|
|
} SignalCPromiseMutPointerUnauthenticatedChatConnection;
|
|
|
|
/**
|
|
* A C callback used to report the results of Rust futures.
|
|
*
|
|
* cbindgen will produce independent C types like `SignalCPromisei32` and
|
|
* `SignalCPromiseProtocolAddress`.
|
|
*
|
|
* This derives Copy because it behaves like a C type; nevertheless, a promise should still only be
|
|
* completed once.
|
|
*/
|
|
typedef struct {
|
|
void (*complete)(SignalFfiError *error, const SignalOptionalUuid *result, const void *context);
|
|
const void *context;
|
|
SignalCancellationId cancellation_id;
|
|
} SignalCPromiseOptionalUuid;
|
|
|
|
typedef struct {
|
|
SignalValidatingMac *raw;
|
|
} SignalMutPointerValidatingMac;
|
|
|
|
typedef SignalInputStream SignalSyncInputStream;
|
|
|
|
typedef struct {
|
|
const SignalSyncInputStream *raw;
|
|
} SignalConstPointerFfiSyncInputStreamStruct;
|
|
|
|
typedef uint8_t SignalRandomnessBytes[SignalRANDOMNESS_LEN];
|
|
|
|
typedef uint8_t SignalUnidentifiedAccessKey[SignalACCESS_KEY_LEN];
|
|
|
|
SignalFfiError *signal_account_entropy_pool_derive_backup_key(uint8_t (*out)[SignalBACKUP_KEY_LEN], const char *account_entropy);
|
|
|
|
SignalFfiError *signal_account_entropy_pool_derive_svr_key(uint8_t (*out)[SignalSVR_KEY_LEN], const char *account_entropy);
|
|
|
|
SignalFfiError *signal_account_entropy_pool_generate(const char **out);
|
|
|
|
SignalFfiError *signal_account_entropy_pool_is_valid(bool *out, const char *account_entropy);
|
|
|
|
SignalFfiError *signal_address_clone(SignalMutPointerProtocolAddress *new_obj, SignalConstPointerProtocolAddress obj);
|
|
|
|
SignalFfiError *signal_address_destroy(SignalMutPointerProtocolAddress p);
|
|
|
|
SignalFfiError *signal_address_get_device_id(uint32_t *out, SignalConstPointerProtocolAddress obj);
|
|
|
|
SignalFfiError *signal_address_get_name(const char **out, SignalConstPointerProtocolAddress obj);
|
|
|
|
SignalFfiError *signal_address_new(SignalMutPointerProtocolAddress *out, const char *name, uint32_t device_id);
|
|
|
|
SignalFfiError *signal_aes256_ctr32_destroy(SignalMutPointerAes256Ctr32 p);
|
|
|
|
SignalFfiError *signal_aes256_ctr32_new(SignalMutPointerAes256Ctr32 *out, SignalBorrowedBuffer key, SignalBorrowedBuffer nonce, uint32_t initial_ctr);
|
|
|
|
SignalFfiError *signal_aes256_ctr32_process(SignalMutPointerAes256Ctr32 ctr, SignalBorrowedMutableBuffer data, uint32_t offset, uint32_t length);
|
|
|
|
SignalFfiError *signal_aes256_gcm_decryption_destroy(SignalMutPointerAes256GcmDecryption p);
|
|
|
|
SignalFfiError *signal_aes256_gcm_decryption_new(SignalMutPointerAes256GcmDecryption *out, SignalBorrowedBuffer key, SignalBorrowedBuffer nonce, SignalBorrowedBuffer associated_data);
|
|
|
|
SignalFfiError *signal_aes256_gcm_decryption_update(SignalMutPointerAes256GcmDecryption gcm, SignalBorrowedMutableBuffer data, uint32_t offset, uint32_t length);
|
|
|
|
SignalFfiError *signal_aes256_gcm_decryption_verify_tag(bool *out, SignalMutPointerAes256GcmDecryption gcm, SignalBorrowedBuffer tag);
|
|
|
|
SignalFfiError *signal_aes256_gcm_encryption_compute_tag(SignalOwnedBuffer *out, SignalMutPointerAes256GcmEncryption gcm);
|
|
|
|
SignalFfiError *signal_aes256_gcm_encryption_destroy(SignalMutPointerAes256GcmEncryption p);
|
|
|
|
SignalFfiError *signal_aes256_gcm_encryption_new(SignalMutPointerAes256GcmEncryption *out, SignalBorrowedBuffer key, SignalBorrowedBuffer nonce, SignalBorrowedBuffer associated_data);
|
|
|
|
SignalFfiError *signal_aes256_gcm_encryption_update(SignalMutPointerAes256GcmEncryption gcm, SignalBorrowedMutableBuffer data, uint32_t offset, uint32_t length);
|
|
|
|
SignalFfiError *signal_aes256_gcm_siv_decrypt(SignalOwnedBuffer *out, SignalConstPointerAes256GcmSiv aes_gcm_siv, SignalBorrowedBuffer ctext, SignalBorrowedBuffer nonce, SignalBorrowedBuffer associated_data);
|
|
|
|
SignalFfiError *signal_aes256_gcm_siv_destroy(SignalMutPointerAes256GcmSiv p);
|
|
|
|
SignalFfiError *signal_aes256_gcm_siv_encrypt(SignalOwnedBuffer *out, SignalConstPointerAes256GcmSiv aes_gcm_siv_obj, SignalBorrowedBuffer ptext, SignalBorrowedBuffer nonce, SignalBorrowedBuffer associated_data);
|
|
|
|
SignalFfiError *signal_aes256_gcm_siv_new(SignalMutPointerAes256GcmSiv *out, SignalBorrowedBuffer key);
|
|
|
|
SignalFfiError *signal_auth_credential_presentation_check_valid_contents(SignalBorrowedBuffer presentation_bytes);
|
|
|
|
SignalFfiError *signal_auth_credential_presentation_get_pni_ciphertext(unsigned char (*out)[SignalUUID_CIPHERTEXT_LEN], SignalBorrowedBuffer presentation_bytes);
|
|
|
|
SignalFfiError *signal_auth_credential_presentation_get_redemption_time(uint64_t *out, SignalBorrowedBuffer presentation_bytes);
|
|
|
|
SignalFfiError *signal_auth_credential_presentation_get_uuid_ciphertext(unsigned char (*out)[SignalUUID_CIPHERTEXT_LEN], SignalBorrowedBuffer presentation_bytes);
|
|
|
|
SignalFfiError *signal_auth_credential_with_pni_check_valid_contents(SignalBorrowedBuffer bytes);
|
|
|
|
SignalFfiError *signal_auth_credential_with_pni_response_check_valid_contents(SignalBorrowedBuffer bytes);
|
|
|
|
SignalFfiError *signal_authenticated_chat_connection_connect(SignalCPromiseMutPointerAuthenticatedChatConnection *promise, SignalConstPointerTokioAsyncContext async_runtime, SignalConstPointerConnectionManager connection_manager, const char *username, const char *password, bool receive_stories, SignalBorrowedBytestringArray languages);
|
|
|
|
SignalFfiError *signal_authenticated_chat_connection_destroy(SignalMutPointerAuthenticatedChatConnection p);
|
|
|
|
SignalFfiError *signal_authenticated_chat_connection_disconnect(SignalCPromisebool *promise, SignalConstPointerTokioAsyncContext async_runtime, SignalConstPointerAuthenticatedChatConnection chat);
|
|
|
|
SignalFfiError *signal_authenticated_chat_connection_info(SignalMutPointerChatConnectionInfo *out, SignalConstPointerAuthenticatedChatConnection chat);
|
|
|
|
SignalFfiError *signal_authenticated_chat_connection_init_listener(SignalConstPointerAuthenticatedChatConnection chat, SignalConstPointerFfiChatListenerStruct listener);
|
|
|
|
SignalFfiError *signal_authenticated_chat_connection_preconnect(SignalCPromisebool *promise, SignalConstPointerTokioAsyncContext async_runtime, SignalConstPointerConnectionManager connection_manager);
|
|
|
|
SignalFfiError *signal_authenticated_chat_connection_send(SignalCPromiseFfiChatResponse *promise, SignalConstPointerTokioAsyncContext async_runtime, SignalConstPointerAuthenticatedChatConnection chat, SignalConstPointerHttpRequest http_request, uint32_t timeout_millis);
|
|
|
|
SignalFfiError *signal_backup_auth_credential_check_valid_contents(SignalBorrowedBuffer params_bytes);
|
|
|
|
SignalFfiError *signal_backup_auth_credential_get_backup_id(uint8_t (*out)[16], SignalBorrowedBuffer credential_bytes);
|
|
|
|
SignalFfiError *signal_backup_auth_credential_get_backup_level(uint8_t *out, SignalBorrowedBuffer credential_bytes);
|
|
|
|
SignalFfiError *signal_backup_auth_credential_get_type(uint8_t *out, SignalBorrowedBuffer credential_bytes);
|
|
|
|
SignalFfiError *signal_backup_auth_credential_present_deterministic(SignalOwnedBuffer *out, SignalBorrowedBuffer credential_bytes, SignalBorrowedBuffer server_params_bytes, const uint8_t (*randomness)[SignalRANDOMNESS_LEN]);
|
|
|
|
SignalFfiError *signal_backup_auth_credential_presentation_check_valid_contents(SignalBorrowedBuffer presentation_bytes);
|
|
|
|
SignalFfiError *signal_backup_auth_credential_presentation_verify(SignalBorrowedBuffer presentation_bytes, uint64_t now, SignalBorrowedBuffer server_params_bytes);
|
|
|
|
SignalFfiError *signal_backup_auth_credential_request_check_valid_contents(SignalBorrowedBuffer request_bytes);
|
|
|
|
SignalFfiError *signal_backup_auth_credential_request_context_check_valid_contents(SignalBorrowedBuffer context_bytes);
|
|
|
|
SignalFfiError *signal_backup_auth_credential_request_context_get_request(SignalOwnedBuffer *out, SignalBorrowedBuffer context_bytes);
|
|
|
|
SignalFfiError *signal_backup_auth_credential_request_context_new(SignalOwnedBuffer *out, const uint8_t (*backup_key)[32], const uint8_t (*uuid)[16]);
|
|
|
|
SignalFfiError *signal_backup_auth_credential_request_context_receive_response(SignalOwnedBuffer *out, SignalBorrowedBuffer context_bytes, SignalBorrowedBuffer response_bytes, uint64_t expected_redemption_time, SignalBorrowedBuffer params_bytes);
|
|
|
|
SignalFfiError *signal_backup_auth_credential_request_issue_deterministic(SignalOwnedBuffer *out, SignalBorrowedBuffer request_bytes, uint64_t redemption_time, uint8_t backup_level, uint8_t credential_type, SignalBorrowedBuffer params_bytes, const uint8_t (*randomness)[SignalRANDOMNESS_LEN]);
|
|
|
|
SignalFfiError *signal_backup_auth_credential_response_check_valid_contents(SignalBorrowedBuffer response_bytes);
|
|
|
|
SignalFfiError *signal_backup_key_derive_backup_id(uint8_t (*out)[16], const uint8_t (*backup_key)[SignalBACKUP_KEY_LEN], const SignalServiceIdFixedWidthBinaryBytes *aci);
|
|
|
|
SignalFfiError *signal_backup_key_derive_ec_key(SignalMutPointerPrivateKey *out, const uint8_t (*backup_key)[SignalBACKUP_KEY_LEN], const SignalServiceIdFixedWidthBinaryBytes *aci);
|
|
|
|
SignalFfiError *signal_backup_key_derive_local_backup_metadata_key(uint8_t (*out)[SignalLOCAL_BACKUP_METADATA_KEY_LEN], const uint8_t (*backup_key)[SignalBACKUP_KEY_LEN]);
|
|
|
|
SignalFfiError *signal_backup_key_derive_media_encryption_key(uint8_t (*out)[SignalMEDIA_ENCRYPTION_KEY_LEN], const uint8_t (*backup_key)[SignalBACKUP_KEY_LEN], const uint8_t (*media_id)[SignalMEDIA_ID_LEN]);
|
|
|
|
SignalFfiError *signal_backup_key_derive_media_id(uint8_t (*out)[SignalMEDIA_ID_LEN], const uint8_t (*backup_key)[SignalBACKUP_KEY_LEN], const char *media_name);
|
|
|
|
SignalFfiError *signal_backup_key_derive_thumbnail_transit_encryption_key(uint8_t (*out)[SignalMEDIA_ENCRYPTION_KEY_LEN], const uint8_t (*backup_key)[SignalBACKUP_KEY_LEN], const uint8_t (*media_id)[SignalMEDIA_ID_LEN]);
|
|
|
|
SignalFfiError *signal_backup_restore_response_destroy(SignalMutPointerBackupRestoreResponse p);
|
|
|
|
SignalFfiError *signal_backup_restore_response_get_forward_secrecy_token(uint8_t (*out)[SignalBACKUP_FORWARD_SECRECY_TOKEN_LEN], SignalConstPointerBackupRestoreResponse response);
|
|
|
|
SignalFfiError *signal_backup_restore_response_get_next_backup_secret_data(SignalOwnedBuffer *out, SignalConstPointerBackupRestoreResponse response);
|
|
|
|
SignalFfiError *signal_backup_store_response_destroy(SignalMutPointerBackupStoreResponse p);
|
|
|
|
SignalFfiError *signal_backup_store_response_get_forward_secrecy_token(uint8_t (*out)[SignalBACKUP_FORWARD_SECRECY_TOKEN_LEN], SignalConstPointerBackupStoreResponse response);
|
|
|
|
SignalFfiError *signal_backup_store_response_get_next_backup_secret_data(SignalOwnedBuffer *out, SignalConstPointerBackupStoreResponse response);
|
|
|
|
SignalFfiError *signal_backup_store_response_get_opaque_metadata(SignalOwnedBuffer *out, SignalConstPointerBackupStoreResponse response);
|
|
|
|
SignalFfiError *signal_bridged_string_map_clone(SignalMutPointerBridgedStringMap *new_obj, SignalConstPointerBridgedStringMap obj);
|
|
|
|
SignalFfiError *signal_bridged_string_map_destroy(SignalMutPointerBridgedStringMap p);
|
|
|
|
SignalFfiError *signal_bridged_string_map_insert(SignalMutPointerBridgedStringMap map, const char *key, const char *value);
|
|
|
|
SignalFfiError *signal_bridged_string_map_new(SignalMutPointerBridgedStringMap *out, uint32_t initial_capacity);
|
|
|
|
SignalFfiError *signal_call_link_auth_credential_check_valid_contents(SignalBorrowedBuffer credential_bytes);
|
|
|
|
SignalFfiError *signal_call_link_auth_credential_present_deterministic(SignalOwnedBuffer *out, SignalBorrowedBuffer credential_bytes, const SignalServiceIdFixedWidthBinaryBytes *user_id, uint64_t redemption_time, SignalBorrowedBuffer server_params_bytes, SignalBorrowedBuffer call_link_params_bytes, const uint8_t (*randomness)[SignalRANDOMNESS_LEN]);
|
|
|
|
SignalFfiError *signal_call_link_auth_credential_presentation_check_valid_contents(SignalBorrowedBuffer presentation_bytes);
|
|
|
|
SignalFfiError *signal_call_link_auth_credential_presentation_get_user_id(unsigned char (*out)[SignalUUID_CIPHERTEXT_LEN], SignalBorrowedBuffer presentation_bytes);
|
|
|
|
SignalFfiError *signal_call_link_auth_credential_presentation_verify(SignalBorrowedBuffer presentation_bytes, uint64_t now, SignalBorrowedBuffer server_params_bytes, SignalBorrowedBuffer call_link_params_bytes);
|
|
|
|
SignalFfiError *signal_call_link_auth_credential_response_check_valid_contents(SignalBorrowedBuffer response_bytes);
|
|
|
|
SignalFfiError *signal_call_link_auth_credential_response_issue_deterministic(SignalOwnedBuffer *out, const SignalServiceIdFixedWidthBinaryBytes *user_id, uint64_t redemption_time, SignalBorrowedBuffer params_bytes, const uint8_t (*randomness)[SignalRANDOMNESS_LEN]);
|
|
|
|
SignalFfiError *signal_call_link_auth_credential_response_receive(SignalOwnedBuffer *out, SignalBorrowedBuffer response_bytes, const SignalServiceIdFixedWidthBinaryBytes *user_id, uint64_t redemption_time, SignalBorrowedBuffer params_bytes);
|
|
|
|
SignalFfiError *signal_call_link_public_params_check_valid_contents(SignalBorrowedBuffer params_bytes);
|
|
|
|
SignalFfiError *signal_call_link_secret_params_check_valid_contents(SignalBorrowedBuffer params_bytes);
|
|
|
|
SignalFfiError *signal_call_link_secret_params_decrypt_user_id(SignalServiceIdFixedWidthBinaryBytes *out, SignalBorrowedBuffer params_bytes, const unsigned char (*user_id)[SignalUUID_CIPHERTEXT_LEN]);
|
|
|
|
SignalFfiError *signal_call_link_secret_params_derive_from_root_key(SignalOwnedBuffer *out, SignalBorrowedBuffer root_key);
|
|
|
|
SignalFfiError *signal_call_link_secret_params_encrypt_user_id(unsigned char (*out)[SignalUUID_CIPHERTEXT_LEN], SignalBorrowedBuffer params_bytes, const SignalServiceIdFixedWidthBinaryBytes *user_id);
|
|
|
|
SignalFfiError *signal_call_link_secret_params_get_public_params(SignalOwnedBuffer *out, SignalBorrowedBuffer params_bytes);
|
|
|
|
SignalFfiError *signal_cds2_client_state_new(SignalMutPointerSgxClientState *out, SignalBorrowedBuffer mrenclave, SignalBorrowedBuffer attestation_msg, uint64_t current_timestamp);
|
|
|
|
SignalFfiError *signal_cdsi_lookup_complete(SignalCPromiseFfiCdsiLookupResponse *promise, SignalConstPointerTokioAsyncContext async_runtime, SignalConstPointerCdsiLookup lookup);
|
|
|
|
SignalFfiError *signal_cdsi_lookup_destroy(SignalMutPointerCdsiLookup p);
|
|
|
|
SignalFfiError *signal_cdsi_lookup_new(SignalCPromiseMutPointerCdsiLookup *promise, SignalConstPointerTokioAsyncContext async_runtime, SignalConstPointerConnectionManager connection_manager, const char *username, const char *password, SignalConstPointerLookupRequest request);
|
|
|
|
SignalFfiError *signal_cdsi_lookup_token(SignalOwnedBuffer *out, SignalConstPointerCdsiLookup lookup);
|
|
|
|
SignalFfiError *signal_chat_connection_info_description(const char **out, SignalConstPointerChatConnectionInfo connection_info);
|
|
|
|
SignalFfiError *signal_chat_connection_info_ip_version(uint8_t *out, SignalConstPointerChatConnectionInfo connection_info);
|
|
|
|
SignalFfiError *signal_chat_connection_info_local_port(uint16_t *out, SignalConstPointerChatConnectionInfo connection_info);
|
|
|
|
SignalFfiError *signal_ciphertext_message_destroy(SignalMutPointerCiphertextMessage p);
|
|
|
|
SignalFfiError *signal_ciphertext_message_from_plaintext_content(SignalMutPointerCiphertextMessage *out, SignalConstPointerPlaintextContent m);
|
|
|
|
SignalFfiError *signal_ciphertext_message_serialize(SignalOwnedBuffer *out, SignalConstPointerCiphertextMessage obj);
|
|
|
|
SignalFfiError *signal_ciphertext_message_type(uint8_t *out, SignalConstPointerCiphertextMessage msg);
|
|
|
|
SignalFfiError *signal_connection_info_destroy(SignalMutPointerConnectionInfo p);
|
|
|
|
SignalFfiError *signal_connection_manager_clear_proxy(SignalConstPointerConnectionManager connection_manager);
|
|
|
|
SignalFfiError *signal_connection_manager_destroy(SignalMutPointerConnectionManager p);
|
|
|
|
SignalFfiError *signal_connection_manager_new(SignalMutPointerConnectionManager *out, uint8_t environment, const char *user_agent, SignalMutPointerBridgedStringMap remote_config);
|
|
|
|
SignalFfiError *signal_connection_manager_on_network_change(SignalConstPointerConnectionManager connection_manager);
|
|
|
|
SignalFfiError *signal_connection_manager_set_censorship_circumvention_enabled(SignalConstPointerConnectionManager connection_manager, bool enabled);
|
|
|
|
SignalFfiError *signal_connection_manager_set_invalid_proxy(SignalConstPointerConnectionManager connection_manager);
|
|
|
|
SignalFfiError *signal_connection_manager_set_proxy(SignalConstPointerConnectionManager connection_manager, SignalConstPointerConnectionProxyConfig proxy);
|
|
|
|
SignalFfiError *signal_connection_manager_set_remote_config(SignalConstPointerConnectionManager connection_manager, SignalMutPointerBridgedStringMap remote_config);
|
|
|
|
SignalFfiError *signal_connection_proxy_config_clone(SignalMutPointerConnectionProxyConfig *new_obj, SignalConstPointerConnectionProxyConfig obj);
|
|
|
|
SignalFfiError *signal_connection_proxy_config_destroy(SignalMutPointerConnectionProxyConfig p);
|
|
|
|
SignalFfiError *signal_connection_proxy_config_new(SignalMutPointerConnectionProxyConfig *out, const char *scheme, const char *host, int32_t port, const char *username, const char *password);
|
|
|
|
SignalFfiError *signal_create_call_link_credential_check_valid_contents(SignalBorrowedBuffer params_bytes);
|
|
|
|
SignalFfiError *signal_create_call_link_credential_present_deterministic(SignalOwnedBuffer *out, SignalBorrowedBuffer credential_bytes, SignalBorrowedBuffer room_id, const SignalServiceIdFixedWidthBinaryBytes *user_id, SignalBorrowedBuffer server_params_bytes, SignalBorrowedBuffer call_link_params_bytes, const uint8_t (*randomness)[SignalRANDOMNESS_LEN]);
|
|
|
|
SignalFfiError *signal_create_call_link_credential_presentation_check_valid_contents(SignalBorrowedBuffer presentation_bytes);
|
|
|
|
SignalFfiError *signal_create_call_link_credential_presentation_verify(SignalBorrowedBuffer presentation_bytes, SignalBorrowedBuffer room_id, uint64_t now, SignalBorrowedBuffer server_params_bytes, SignalBorrowedBuffer call_link_params_bytes);
|
|
|
|
SignalFfiError *signal_create_call_link_credential_request_check_valid_contents(SignalBorrowedBuffer request_bytes);
|
|
|
|
SignalFfiError *signal_create_call_link_credential_request_context_check_valid_contents(SignalBorrowedBuffer context_bytes);
|
|
|
|
SignalFfiError *signal_create_call_link_credential_request_context_get_request(SignalOwnedBuffer *out, SignalBorrowedBuffer context_bytes);
|
|
|
|
SignalFfiError *signal_create_call_link_credential_request_context_new_deterministic(SignalOwnedBuffer *out, SignalBorrowedBuffer room_id, const uint8_t (*randomness)[SignalRANDOMNESS_LEN]);
|
|
|
|
SignalFfiError *signal_create_call_link_credential_request_context_receive_response(SignalOwnedBuffer *out, SignalBorrowedBuffer context_bytes, SignalBorrowedBuffer response_bytes, const SignalServiceIdFixedWidthBinaryBytes *user_id, SignalBorrowedBuffer params_bytes);
|
|
|
|
SignalFfiError *signal_create_call_link_credential_request_issue_deterministic(SignalOwnedBuffer *out, SignalBorrowedBuffer request_bytes, const SignalServiceIdFixedWidthBinaryBytes *user_id, uint64_t timestamp, SignalBorrowedBuffer params_bytes, const uint8_t (*randomness)[SignalRANDOMNESS_LEN]);
|
|
|
|
SignalFfiError *signal_create_call_link_credential_response_check_valid_contents(SignalBorrowedBuffer response_bytes);
|
|
|
|
SignalFfiError *signal_decrypt_message(SignalOwnedBuffer *out, SignalConstPointerSignalMessage message, SignalConstPointerProtocolAddress protocol_address, SignalConstPointerFfiSessionStoreStruct session_store, SignalConstPointerFfiIdentityKeyStoreStruct identity_key_store);
|
|
|
|
SignalFfiError *signal_decrypt_pre_key_message(SignalOwnedBuffer *out, SignalConstPointerPreKeySignalMessage message, SignalConstPointerProtocolAddress protocol_address, SignalConstPointerFfiSessionStoreStruct session_store, SignalConstPointerFfiIdentityKeyStoreStruct identity_key_store, SignalConstPointerFfiPreKeyStoreStruct prekey_store, SignalConstPointerFfiSignedPreKeyStoreStruct signed_prekey_store, SignalConstPointerFfiKyberPreKeyStoreStruct kyber_prekey_store, bool use_pq_ratchet);
|
|
|
|
SignalFfiError *signal_decryption_error_message_clone(SignalMutPointerDecryptionErrorMessage *new_obj, SignalConstPointerDecryptionErrorMessage obj);
|
|
|
|
SignalFfiError *signal_decryption_error_message_deserialize(SignalMutPointerDecryptionErrorMessage *out, SignalBorrowedBuffer data);
|
|
|
|
SignalFfiError *signal_decryption_error_message_destroy(SignalMutPointerDecryptionErrorMessage p);
|
|
|
|
SignalFfiError *signal_decryption_error_message_extract_from_serialized_content(SignalMutPointerDecryptionErrorMessage *out, SignalBorrowedBuffer bytes);
|
|
|
|
SignalFfiError *signal_decryption_error_message_for_original_message(SignalMutPointerDecryptionErrorMessage *out, SignalBorrowedBuffer original_bytes, uint8_t original_type, uint64_t original_timestamp, uint32_t original_sender_device_id);
|
|
|
|
SignalFfiError *signal_decryption_error_message_get_device_id(uint32_t *out, SignalConstPointerDecryptionErrorMessage obj);
|
|
|
|
SignalFfiError *signal_decryption_error_message_get_ratchet_key(SignalMutPointerPublicKey *out, SignalConstPointerDecryptionErrorMessage m);
|
|
|
|
SignalFfiError *signal_decryption_error_message_get_timestamp(uint64_t *out, SignalConstPointerDecryptionErrorMessage obj);
|
|
|
|
SignalFfiError *signal_decryption_error_message_serialize(SignalOwnedBuffer *out, SignalConstPointerDecryptionErrorMessage obj);
|
|
|
|
SignalFfiError *signal_device_transfer_generate_certificate(SignalOwnedBuffer *out, SignalBorrowedBuffer private_key, const char *name, uint32_t days_to_expire);
|
|
|
|
SignalFfiError *signal_device_transfer_generate_private_key(SignalOwnedBuffer *out);
|
|
|
|
SignalFfiError *signal_device_transfer_generate_private_key_with_format(SignalOwnedBuffer *out, uint8_t key_format);
|
|
|
|
SignalFfiError *signal_encrypt_message(SignalMutPointerCiphertextMessage *out, SignalBorrowedBuffer ptext, SignalConstPointerProtocolAddress protocol_address, SignalConstPointerFfiSessionStoreStruct session_store, SignalConstPointerFfiIdentityKeyStoreStruct identity_key_store, uint64_t now);
|
|
|
|
void signal_error_free(SignalFfiError *err);
|
|
|
|
SignalFfiError *signal_error_get_address(SignalMutPointerProtocolAddress *out, SignalUnwindSafeArgSignalFfiError err);
|
|
|
|
SignalFfiError *signal_error_get_invalid_protocol_address(const char **name_out, uint32_t *device_id_out, const SignalFfiError *err);
|
|
|
|
SignalFfiError *signal_error_get_message(const char **out, SignalUnwindSafeArgSignalFfiError err);
|
|
|
|
SignalFfiError *signal_error_get_our_fingerprint_version(uint32_t *out, SignalUnwindSafeArgSignalFfiError err);
|
|
|
|
SignalFfiError *signal_error_get_rate_limit_challenge(const char **out_token, SignalOwnedBuffer *out_options, const SignalFfiError *err);
|
|
|
|
SignalFfiError *signal_error_get_registration_error_not_deliverable(const char **out_reason, bool *out_permanent, const SignalFfiError *err);
|
|
|
|
SignalFfiError *signal_error_get_registration_lock(uint64_t *out_time_remaining_seconds, const char **out_svr2_username, const char **out_svr2_password, const SignalFfiError *err);
|
|
|
|
SignalFfiError *signal_error_get_retry_after_seconds(uint32_t *out, SignalUnwindSafeArgSignalFfiError err);
|
|
|
|
SignalFfiError *signal_error_get_their_fingerprint_version(uint32_t *out, SignalUnwindSafeArgSignalFfiError err);
|
|
|
|
SignalFfiError *signal_error_get_tries_remaining(uint32_t *out, SignalUnwindSafeArgSignalFfiError err);
|
|
|
|
uint32_t signal_error_get_type(const SignalFfiError *err);
|
|
|
|
SignalFfiError *signal_error_get_unknown_fields(SignalStringArray *out, SignalUnwindSafeArgSignalFfiError err);
|
|
|
|
SignalFfiError *signal_error_get_uuid(uint8_t (*out)[16], SignalUnwindSafeArgSignalFfiError err);
|
|
|
|
SignalFfiError *signal_expiring_profile_key_credential_check_valid_contents(SignalBorrowedBuffer buffer);
|
|
|
|
SignalFfiError *signal_expiring_profile_key_credential_get_expiration_time(uint64_t *out, const unsigned char (*credential)[SignalEXPIRING_PROFILE_KEY_CREDENTIAL_LEN]);
|
|
|
|
SignalFfiError *signal_expiring_profile_key_credential_response_check_valid_contents(SignalBorrowedBuffer buffer);
|
|
|
|
SignalFfiError *signal_fingerprint_clone(SignalMutPointerFingerprint *new_obj, SignalConstPointerFingerprint obj);
|
|
|
|
SignalFfiError *signal_fingerprint_compare(bool *out, SignalBorrowedBuffer fprint1, SignalBorrowedBuffer fprint2);
|
|
|
|
SignalFfiError *signal_fingerprint_destroy(SignalMutPointerFingerprint p);
|
|
|
|
SignalFfiError *signal_fingerprint_display_string(const char **out, SignalConstPointerFingerprint obj);
|
|
|
|
SignalFfiError *signal_fingerprint_new(SignalMutPointerFingerprint *out, uint32_t iterations, uint32_t version, SignalBorrowedBuffer local_identifier, SignalConstPointerPublicKey local_key, SignalBorrowedBuffer remote_identifier, SignalConstPointerPublicKey remote_key);
|
|
|
|
SignalFfiError *signal_fingerprint_scannable_encoding(SignalOwnedBuffer *out, SignalConstPointerFingerprint obj);
|
|
|
|
void signal_free_buffer(const unsigned char *buf, size_t buf_len);
|
|
|
|
void signal_free_bytestring_array(SignalBytestringArray array);
|
|
|
|
void signal_free_list_of_register_response_badges(SignalOwnedBufferOfFfiRegisterResponseBadge buffer);
|
|
|
|
void signal_free_list_of_strings(SignalOwnedBufferOfCStringPtr buffer);
|
|
|
|
void signal_free_lookup_response_entry_list(SignalOwnedBufferOfFfiCdsiLookupResponseEntry buffer);
|
|
|
|
void signal_free_string(const char *buf);
|
|
|
|
SignalFfiError *signal_generic_server_public_params_check_valid_contents(SignalBorrowedBuffer params_bytes);
|
|
|
|
SignalFfiError *signal_generic_server_secret_params_check_valid_contents(SignalBorrowedBuffer params_bytes);
|
|
|
|
SignalFfiError *signal_generic_server_secret_params_generate_deterministic(SignalOwnedBuffer *out, const uint8_t (*randomness)[SignalRANDOMNESS_LEN]);
|
|
|
|
SignalFfiError *signal_generic_server_secret_params_get_public_params(SignalOwnedBuffer *out, SignalBorrowedBuffer params_bytes);
|
|
|
|
SignalFfiError *signal_group_decrypt_message(SignalOwnedBuffer *out, SignalConstPointerProtocolAddress sender, SignalBorrowedBuffer message, SignalConstPointerFfiSenderKeyStoreStruct store);
|
|
|
|
SignalFfiError *signal_group_encrypt_message(SignalMutPointerCiphertextMessage *out, SignalConstPointerProtocolAddress sender, const uint8_t (*distribution_id)[16], SignalBorrowedBuffer message, SignalConstPointerFfiSenderKeyStoreStruct store);
|
|
|
|
SignalFfiError *signal_group_master_key_check_valid_contents(SignalBorrowedBuffer buffer);
|
|
|
|
SignalFfiError *signal_group_public_params_check_valid_contents(SignalBorrowedBuffer buffer);
|
|
|
|
SignalFfiError *signal_group_public_params_get_group_identifier(uint8_t (*out)[SignalGROUP_IDENTIFIER_LEN], const unsigned char (*group_public_params)[SignalGROUP_PUBLIC_PARAMS_LEN]);
|
|
|
|
SignalFfiError *signal_group_secret_params_check_valid_contents(SignalBorrowedBuffer buffer);
|
|
|
|
SignalFfiError *signal_group_secret_params_decrypt_blob_with_padding(SignalOwnedBuffer *out, const unsigned char (*params)[SignalGROUP_SECRET_PARAMS_LEN], SignalBorrowedBuffer ciphertext);
|
|
|
|
SignalFfiError *signal_group_secret_params_decrypt_profile_key(unsigned char (*out)[SignalPROFILE_KEY_LEN], const unsigned char (*params)[SignalGROUP_SECRET_PARAMS_LEN], const unsigned char (*profile_key)[SignalPROFILE_KEY_CIPHERTEXT_LEN], const SignalServiceIdFixedWidthBinaryBytes *user_id);
|
|
|
|
SignalFfiError *signal_group_secret_params_decrypt_service_id(SignalServiceIdFixedWidthBinaryBytes *out, const unsigned char (*params)[SignalGROUP_SECRET_PARAMS_LEN], const unsigned char (*ciphertext)[SignalUUID_CIPHERTEXT_LEN]);
|
|
|
|
SignalFfiError *signal_group_secret_params_derive_from_master_key(unsigned char (*out)[SignalGROUP_SECRET_PARAMS_LEN], const unsigned char (*master_key)[SignalGROUP_MASTER_KEY_LEN]);
|
|
|
|
SignalFfiError *signal_group_secret_params_encrypt_blob_with_padding_deterministic(SignalOwnedBuffer *out, const unsigned char (*params)[SignalGROUP_SECRET_PARAMS_LEN], const uint8_t (*randomness)[SignalRANDOMNESS_LEN], SignalBorrowedBuffer plaintext, uint32_t padding_len);
|
|
|
|
SignalFfiError *signal_group_secret_params_encrypt_profile_key(unsigned char (*out)[SignalPROFILE_KEY_CIPHERTEXT_LEN], const unsigned char (*params)[SignalGROUP_SECRET_PARAMS_LEN], const unsigned char (*profile_key)[SignalPROFILE_KEY_LEN], const SignalServiceIdFixedWidthBinaryBytes *user_id);
|
|
|
|
SignalFfiError *signal_group_secret_params_encrypt_service_id(unsigned char (*out)[SignalUUID_CIPHERTEXT_LEN], const unsigned char (*params)[SignalGROUP_SECRET_PARAMS_LEN], const SignalServiceIdFixedWidthBinaryBytes *service_id);
|
|
|
|
SignalFfiError *signal_group_secret_params_generate_deterministic(unsigned char (*out)[SignalGROUP_SECRET_PARAMS_LEN], const uint8_t (*randomness)[SignalRANDOMNESS_LEN]);
|
|
|
|
SignalFfiError *signal_group_secret_params_get_master_key(unsigned char (*out)[SignalGROUP_MASTER_KEY_LEN], const unsigned char (*params)[SignalGROUP_SECRET_PARAMS_LEN]);
|
|
|
|
SignalFfiError *signal_group_secret_params_get_public_params(unsigned char (*out)[SignalGROUP_PUBLIC_PARAMS_LEN], const unsigned char (*params)[SignalGROUP_SECRET_PARAMS_LEN]);
|
|
|
|
SignalFfiError *signal_group_send_derived_key_pair_check_valid_contents(SignalBorrowedBuffer bytes);
|
|
|
|
SignalFfiError *signal_group_send_derived_key_pair_for_expiration(SignalOwnedBuffer *out, uint64_t expiration, SignalConstPointerServerSecretParams server_params);
|
|
|
|
SignalFfiError *signal_group_send_endorsement_call_link_params_to_token(SignalOwnedBuffer *out, SignalBorrowedBuffer endorsement, SignalBorrowedBuffer call_link_secret_params_serialized);
|
|
|
|
SignalFfiError *signal_group_send_endorsement_check_valid_contents(SignalBorrowedBuffer bytes);
|
|
|
|
SignalFfiError *signal_group_send_endorsement_combine(SignalOwnedBuffer *out, SignalBorrowedSliceOfBuffers endorsements);
|
|
|
|
SignalFfiError *signal_group_send_endorsement_remove(SignalOwnedBuffer *out, SignalBorrowedBuffer endorsement, SignalBorrowedBuffer to_remove);
|
|
|
|
SignalFfiError *signal_group_send_endorsement_to_token(SignalOwnedBuffer *out, SignalBorrowedBuffer endorsement, const unsigned char (*group_params)[SignalGROUP_SECRET_PARAMS_LEN]);
|
|
|
|
SignalFfiError *signal_group_send_endorsements_response_check_valid_contents(SignalBorrowedBuffer bytes);
|
|
|
|
SignalFfiError *signal_group_send_endorsements_response_get_expiration(uint64_t *out, SignalBorrowedBuffer response_bytes);
|
|
|
|
SignalFfiError *signal_group_send_endorsements_response_issue_deterministic(SignalOwnedBuffer *out, SignalBorrowedBuffer concatenated_group_member_ciphertexts, SignalBorrowedBuffer key_pair, const uint8_t (*randomness)[SignalRANDOMNESS_LEN]);
|
|
|
|
SignalFfiError *signal_group_send_endorsements_response_receive_and_combine_with_ciphertexts(SignalBytestringArray *out, SignalBorrowedBuffer response_bytes, SignalBorrowedBuffer concatenated_group_member_ciphertexts, SignalBorrowedBuffer local_user_ciphertext, uint64_t now, SignalConstPointerServerPublicParams server_params);
|
|
|
|
SignalFfiError *signal_group_send_endorsements_response_receive_and_combine_with_service_ids(SignalBytestringArray *out, SignalBorrowedBuffer response_bytes, SignalBorrowedBuffer group_members, const SignalServiceIdFixedWidthBinaryBytes *local_user, uint64_t now, const unsigned char (*group_params)[SignalGROUP_SECRET_PARAMS_LEN], SignalConstPointerServerPublicParams server_params);
|
|
|
|
SignalFfiError *signal_group_send_full_token_check_valid_contents(SignalBorrowedBuffer bytes);
|
|
|
|
SignalFfiError *signal_group_send_full_token_get_expiration(uint64_t *out, SignalBorrowedBuffer token);
|
|
|
|
SignalFfiError *signal_group_send_full_token_verify(SignalBorrowedBuffer token, SignalBorrowedBuffer user_ids, uint64_t now, SignalBorrowedBuffer key_pair);
|
|
|
|
SignalFfiError *signal_group_send_token_check_valid_contents(SignalBorrowedBuffer bytes);
|
|
|
|
SignalFfiError *signal_group_send_token_to_full_token(SignalOwnedBuffer *out, SignalBorrowedBuffer token, uint64_t expiration);
|
|
|
|
SignalFfiError *signal_hex_encode(SignalBorrowedMutableBuffer output, SignalBorrowedBuffer input);
|
|
|
|
SignalFfiError *signal_hkdf_derive(SignalBorrowedMutableBuffer output, SignalBorrowedBuffer ikm, SignalBorrowedBuffer label, SignalBorrowedBuffer salt);
|
|
|
|
SignalFfiError *signal_hsm_enclave_client_complete_handshake(SignalMutPointerHsmEnclaveClient cli, SignalBorrowedBuffer handshake_received);
|
|
|
|
SignalFfiError *signal_hsm_enclave_client_destroy(SignalMutPointerHsmEnclaveClient p);
|
|
|
|
SignalFfiError *signal_hsm_enclave_client_established_recv(SignalOwnedBuffer *out, SignalMutPointerHsmEnclaveClient cli, SignalBorrowedBuffer received_ciphertext);
|
|
|
|
SignalFfiError *signal_hsm_enclave_client_established_send(SignalOwnedBuffer *out, SignalMutPointerHsmEnclaveClient cli, SignalBorrowedBuffer plaintext_to_send);
|
|
|
|
SignalFfiError *signal_hsm_enclave_client_initial_request(SignalOwnedBuffer *out, SignalConstPointerHsmEnclaveClient obj);
|
|
|
|
SignalFfiError *signal_hsm_enclave_client_new(SignalMutPointerHsmEnclaveClient *out, SignalBorrowedBuffer trusted_public_key, SignalBorrowedBuffer trusted_code_hashes);
|
|
|
|
SignalFfiError *signal_http_request_add_header(SignalConstPointerHttpRequest request, const char *name, const char *value);
|
|
|
|
SignalFfiError *signal_http_request_destroy(SignalMutPointerHttpRequest p);
|
|
|
|
SignalFfiError *signal_http_request_new_with_body(SignalMutPointerHttpRequest *out, const char *method, const char *path, SignalBorrowedBuffer body_as_slice);
|
|
|
|
SignalFfiError *signal_http_request_new_without_body(SignalMutPointerHttpRequest *out, const char *method, const char *path);
|
|
|
|
SignalFfiError *signal_identitykey_verify_alternate_identity(bool *out, SignalConstPointerPublicKey public_key, SignalConstPointerPublicKey other_identity, SignalBorrowedBuffer signature);
|
|
|
|
SignalFfiError *signal_identitykeypair_deserialize(SignalMutPointerPrivateKey *private_key, SignalMutPointerPublicKey *public_key, SignalBorrowedBuffer input);
|
|
|
|
SignalFfiError *signal_identitykeypair_serialize(SignalOwnedBuffer *out, SignalConstPointerPublicKey public_key, SignalConstPointerPrivateKey private_key);
|
|
|
|
SignalFfiError *signal_identitykeypair_sign_alternate_identity(SignalOwnedBuffer *out, SignalConstPointerPublicKey public_key, SignalConstPointerPrivateKey private_key, SignalConstPointerPublicKey other_identity);
|
|
|
|
SignalFfiError *signal_incremental_mac_calculate_chunk_size(uint32_t *out, uint32_t data_size);
|
|
|
|
SignalFfiError *signal_incremental_mac_destroy(SignalMutPointerIncrementalMac p);
|
|
|
|
SignalFfiError *signal_incremental_mac_finalize(SignalOwnedBuffer *out, SignalMutPointerIncrementalMac mac);
|
|
|
|
SignalFfiError *signal_incremental_mac_initialize(SignalMutPointerIncrementalMac *out, SignalBorrowedBuffer key, uint32_t chunk_size);
|
|
|
|
SignalFfiError *signal_incremental_mac_update(SignalOwnedBuffer *out, SignalMutPointerIncrementalMac mac, SignalBorrowedBuffer bytes, uint32_t offset, uint32_t length);
|
|
|
|
bool signal_init_logger(SignalLogLevel max_level, SignalFfiLogger logger);
|
|
|
|
SignalFfiError *signal_key_transparency_aci_search_key(SignalOwnedBuffer *out, const SignalServiceIdFixedWidthBinaryBytes *aci);
|
|
|
|
SignalFfiError *signal_key_transparency_distinguished(SignalCPromiseOwnedBufferOfc_uchar *promise, SignalConstPointerTokioAsyncContext async_runtime, uint8_t environment, SignalConstPointerUnauthenticatedChatConnection chat_connection, SignalOptionalBorrowedSliceOfc_uchar last_distinguished_tree_head);
|
|
|
|
SignalFfiError *signal_key_transparency_e164_search_key(SignalOwnedBuffer *out, const char *e164);
|
|
|
|
SignalFfiError *signal_key_transparency_monitor(SignalCPromiseOwnedBufferOfc_uchar *promise, SignalConstPointerTokioAsyncContext async_runtime, uint8_t environment, SignalConstPointerUnauthenticatedChatConnection chat_connection, const SignalServiceIdFixedWidthBinaryBytes *aci, SignalConstPointerPublicKey aci_identity_key, const char *e164, SignalOptionalBorrowedSliceOfc_uchar unidentified_access_key, SignalOptionalBorrowedSliceOfc_uchar username_hash, SignalOptionalBorrowedSliceOfc_uchar account_data, SignalBorrowedBuffer last_distinguished_tree_head, bool is_self_monitor);
|
|
|
|
SignalFfiError *signal_key_transparency_search(SignalCPromiseOwnedBufferOfc_uchar *promise, SignalConstPointerTokioAsyncContext async_runtime, uint8_t environment, SignalConstPointerUnauthenticatedChatConnection chat_connection, const SignalServiceIdFixedWidthBinaryBytes *aci, SignalConstPointerPublicKey aci_identity_key, const char *e164, SignalOptionalBorrowedSliceOfc_uchar unidentified_access_key, SignalOptionalBorrowedSliceOfc_uchar username_hash, SignalOptionalBorrowedSliceOfc_uchar account_data, SignalBorrowedBuffer last_distinguished_tree_head);
|
|
|
|
SignalFfiError *signal_key_transparency_username_hash_search_key(SignalOwnedBuffer *out, SignalBorrowedBuffer hash);
|
|
|
|
SignalFfiError *signal_kyber_key_pair_clone(SignalMutPointerKyberKeyPair *new_obj, SignalConstPointerKyberKeyPair obj);
|
|
|
|
SignalFfiError *signal_kyber_key_pair_destroy(SignalMutPointerKyberKeyPair p);
|
|
|
|
SignalFfiError *signal_kyber_key_pair_generate(SignalMutPointerKyberKeyPair *out);
|
|
|
|
SignalFfiError *signal_kyber_key_pair_get_public_key(SignalMutPointerKyberPublicKey *out, SignalConstPointerKyberKeyPair key_pair);
|
|
|
|
SignalFfiError *signal_kyber_key_pair_get_secret_key(SignalMutPointerKyberSecretKey *out, SignalConstPointerKyberKeyPair key_pair);
|
|
|
|
SignalFfiError *signal_kyber_pre_key_record_clone(SignalMutPointerKyberPreKeyRecord *new_obj, SignalConstPointerKyberPreKeyRecord obj);
|
|
|
|
SignalFfiError *signal_kyber_pre_key_record_deserialize(SignalMutPointerKyberPreKeyRecord *out, SignalBorrowedBuffer data);
|
|
|
|
SignalFfiError *signal_kyber_pre_key_record_destroy(SignalMutPointerKyberPreKeyRecord p);
|
|
|
|
SignalFfiError *signal_kyber_pre_key_record_get_id(uint32_t *out, SignalConstPointerKyberPreKeyRecord obj);
|
|
|
|
SignalFfiError *signal_kyber_pre_key_record_get_key_pair(SignalMutPointerKyberKeyPair *out, SignalConstPointerKyberPreKeyRecord obj);
|
|
|
|
SignalFfiError *signal_kyber_pre_key_record_get_public_key(SignalMutPointerKyberPublicKey *out, SignalConstPointerKyberPreKeyRecord obj);
|
|
|
|
SignalFfiError *signal_kyber_pre_key_record_get_secret_key(SignalMutPointerKyberSecretKey *out, SignalConstPointerKyberPreKeyRecord obj);
|
|
|
|
SignalFfiError *signal_kyber_pre_key_record_get_signature(SignalOwnedBuffer *out, SignalConstPointerKyberPreKeyRecord obj);
|
|
|
|
SignalFfiError *signal_kyber_pre_key_record_get_timestamp(uint64_t *out, SignalConstPointerKyberPreKeyRecord obj);
|
|
|
|
SignalFfiError *signal_kyber_pre_key_record_new(SignalMutPointerKyberPreKeyRecord *out, uint32_t id, uint64_t timestamp, SignalConstPointerKyberKeyPair key_pair, SignalBorrowedBuffer signature);
|
|
|
|
SignalFfiError *signal_kyber_pre_key_record_serialize(SignalOwnedBuffer *out, SignalConstPointerKyberPreKeyRecord obj);
|
|
|
|
SignalFfiError *signal_kyber_public_key_clone(SignalMutPointerKyberPublicKey *new_obj, SignalConstPointerKyberPublicKey obj);
|
|
|
|
SignalFfiError *signal_kyber_public_key_deserialize(SignalMutPointerKyberPublicKey *out, SignalBorrowedBuffer data);
|
|
|
|
SignalFfiError *signal_kyber_public_key_destroy(SignalMutPointerKyberPublicKey p);
|
|
|
|
SignalFfiError *signal_kyber_public_key_equals(bool *out, SignalConstPointerKyberPublicKey lhs, SignalConstPointerKyberPublicKey rhs);
|
|
|
|
SignalFfiError *signal_kyber_public_key_serialize(SignalOwnedBuffer *out, SignalConstPointerKyberPublicKey obj);
|
|
|
|
SignalFfiError *signal_kyber_secret_key_clone(SignalMutPointerKyberSecretKey *new_obj, SignalConstPointerKyberSecretKey obj);
|
|
|
|
SignalFfiError *signal_kyber_secret_key_deserialize(SignalMutPointerKyberSecretKey *out, SignalBorrowedBuffer data);
|
|
|
|
SignalFfiError *signal_kyber_secret_key_destroy(SignalMutPointerKyberSecretKey p);
|
|
|
|
SignalFfiError *signal_kyber_secret_key_serialize(SignalOwnedBuffer *out, SignalConstPointerKyberSecretKey obj);
|
|
|
|
SignalFfiError *signal_lookup_request_add_aci_and_access_key(SignalConstPointerLookupRequest request, const SignalServiceIdFixedWidthBinaryBytes *aci, SignalBorrowedBuffer access_key);
|
|
|
|
SignalFfiError *signal_lookup_request_add_e164(SignalConstPointerLookupRequest request, const char *e164);
|
|
|
|
SignalFfiError *signal_lookup_request_add_previous_e164(SignalConstPointerLookupRequest request, const char *e164);
|
|
|
|
SignalFfiError *signal_lookup_request_destroy(SignalMutPointerLookupRequest p);
|
|
|
|
SignalFfiError *signal_lookup_request_new(SignalMutPointerLookupRequest *out);
|
|
|
|
SignalFfiError *signal_lookup_request_set_token(SignalConstPointerLookupRequest request, SignalBorrowedBuffer token);
|
|
|
|
SignalFfiError *signal_message_backup_key_destroy(SignalMutPointerMessageBackupKey p);
|
|
|
|
SignalFfiError *signal_message_backup_key_from_account_entropy_pool(SignalMutPointerMessageBackupKey *out, const char *account_entropy, const SignalServiceIdFixedWidthBinaryBytes *aci, const uint8_t (*forward_secrecy_token)[SignalBACKUP_FORWARD_SECRECY_TOKEN_LEN]);
|
|
|
|
SignalFfiError *signal_message_backup_key_from_backup_key_and_backup_id(SignalMutPointerMessageBackupKey *out, const uint8_t (*backup_key)[32], const uint8_t (*backup_id)[16], const uint8_t (*forward_secrecy_token)[SignalBACKUP_FORWARD_SECRECY_TOKEN_LEN]);
|
|
|
|
SignalFfiError *signal_message_backup_key_get_aes_key(uint8_t (*out)[32], SignalConstPointerMessageBackupKey key);
|
|
|
|
SignalFfiError *signal_message_backup_key_get_hmac_key(uint8_t (*out)[32], SignalConstPointerMessageBackupKey key);
|
|
|
|
SignalFfiError *signal_message_backup_validation_outcome_destroy(SignalMutPointerMessageBackupValidationOutcome p);
|
|
|
|
SignalFfiError *signal_message_backup_validation_outcome_get_error_message(const char **out, SignalConstPointerMessageBackupValidationOutcome outcome);
|
|
|
|
SignalFfiError *signal_message_backup_validation_outcome_get_unknown_fields(SignalStringArray *out, SignalConstPointerMessageBackupValidationOutcome outcome);
|
|
|
|
SignalFfiError *signal_message_backup_validator_validate(SignalMutPointerMessageBackupValidationOutcome *out, SignalConstPointerMessageBackupKey key, SignalConstPointerFfiInputStreamStruct first_stream, SignalConstPointerFfiInputStreamStruct second_stream, uint64_t len, uint8_t purpose);
|
|
|
|
SignalFfiError *signal_message_clone(SignalMutPointerSignalMessage *new_obj, SignalConstPointerSignalMessage obj);
|
|
|
|
SignalFfiError *signal_message_deserialize(SignalMutPointerSignalMessage *out, SignalBorrowedBuffer data);
|
|
|
|
SignalFfiError *signal_message_destroy(SignalMutPointerSignalMessage p);
|
|
|
|
SignalFfiError *signal_message_get_body(SignalOwnedBuffer *out, SignalConstPointerSignalMessage obj);
|
|
|
|
SignalFfiError *signal_message_get_counter(uint32_t *out, SignalConstPointerSignalMessage obj);
|
|
|
|
SignalFfiError *signal_message_get_message_version(uint32_t *out, SignalConstPointerSignalMessage obj);
|
|
|
|
SignalFfiError *signal_message_get_pq_ratchet(SignalOwnedBuffer *out, SignalConstPointerSignalMessage msg);
|
|
|
|
SignalFfiError *signal_message_get_sender_ratchet_key(SignalMutPointerPublicKey *out, SignalConstPointerSignalMessage m);
|
|
|
|
SignalFfiError *signal_message_get_serialized(SignalOwnedBuffer *out, SignalConstPointerSignalMessage obj);
|
|
|
|
SignalFfiError *signal_message_new(SignalMutPointerSignalMessage *out, uint8_t message_version, SignalBorrowedBuffer mac_key, SignalConstPointerPublicKey sender_ratchet_key, uint32_t counter, uint32_t previous_counter, SignalBorrowedBuffer ciphertext, SignalConstPointerPublicKey sender_identity_key, SignalConstPointerPublicKey receiver_identity_key, SignalBorrowedBuffer pq_ratchet);
|
|
|
|
SignalFfiError *signal_message_verify_mac(bool *out, SignalConstPointerSignalMessage msg, SignalConstPointerPublicKey sender_identity_key, SignalConstPointerPublicKey receiver_identity_key, SignalBorrowedBuffer mac_key);
|
|
|
|
SignalFfiError *signal_mp4_sanitizer_sanitize(SignalMutPointerSanitizedMetadata *out, SignalConstPointerFfiInputStreamStruct input, uint64_t len);
|
|
|
|
SignalFfiError *signal_online_backup_validator_add_frame(SignalMutPointerOnlineBackupValidator backup, SignalBorrowedBuffer frame);
|
|
|
|
SignalFfiError *signal_online_backup_validator_destroy(SignalMutPointerOnlineBackupValidator p);
|
|
|
|
SignalFfiError *signal_online_backup_validator_finalize(SignalMutPointerOnlineBackupValidator backup);
|
|
|
|
SignalFfiError *signal_online_backup_validator_new(SignalMutPointerOnlineBackupValidator *out, SignalBorrowedBuffer backup_info_frame, uint8_t purpose);
|
|
|
|
SignalFfiError *signal_pin_hash_access_key(uint8_t (*out)[32], SignalConstPointerPinHash ph);
|
|
|
|
SignalFfiError *signal_pin_hash_clone(SignalMutPointerPinHash *new_obj, SignalConstPointerPinHash obj);
|
|
|
|
SignalFfiError *signal_pin_hash_destroy(SignalMutPointerPinHash p);
|
|
|
|
SignalFfiError *signal_pin_hash_encryption_key(uint8_t (*out)[32], SignalConstPointerPinHash ph);
|
|
|
|
SignalFfiError *signal_pin_hash_from_salt(SignalMutPointerPinHash *out, SignalBorrowedBuffer pin, const uint8_t (*salt)[32]);
|
|
|
|
SignalFfiError *signal_pin_hash_from_username_mrenclave(SignalMutPointerPinHash *out, SignalBorrowedBuffer pin, const char *username, SignalBorrowedBuffer mrenclave);
|
|
|
|
SignalFfiError *signal_pin_local_hash(const char **out, SignalBorrowedBuffer pin);
|
|
|
|
SignalFfiError *signal_pin_verify_local_hash(bool *out, const char *encoded_hash, SignalBorrowedBuffer pin);
|
|
|
|
SignalFfiError *signal_plaintext_content_clone(SignalMutPointerPlaintextContent *new_obj, SignalConstPointerPlaintextContent obj);
|
|
|
|
SignalFfiError *signal_plaintext_content_deserialize(SignalMutPointerPlaintextContent *out, SignalBorrowedBuffer data);
|
|
|
|
SignalFfiError *signal_plaintext_content_destroy(SignalMutPointerPlaintextContent p);
|
|
|
|
SignalFfiError *signal_plaintext_content_from_decryption_error_message(SignalMutPointerPlaintextContent *out, SignalConstPointerDecryptionErrorMessage m);
|
|
|
|
SignalFfiError *signal_plaintext_content_get_body(SignalOwnedBuffer *out, SignalConstPointerPlaintextContent obj);
|
|
|
|
SignalFfiError *signal_plaintext_content_serialize(SignalOwnedBuffer *out, SignalConstPointerPlaintextContent obj);
|
|
|
|
SignalFfiError *signal_pre_key_bundle_clone(SignalMutPointerPreKeyBundle *new_obj, SignalConstPointerPreKeyBundle obj);
|
|
|
|
SignalFfiError *signal_pre_key_bundle_destroy(SignalMutPointerPreKeyBundle p);
|
|
|
|
SignalFfiError *signal_pre_key_bundle_get_device_id(uint32_t *out, SignalConstPointerPreKeyBundle obj);
|
|
|
|
SignalFfiError *signal_pre_key_bundle_get_identity_key(SignalMutPointerPublicKey *out, SignalConstPointerPreKeyBundle p);
|
|
|
|
SignalFfiError *signal_pre_key_bundle_get_kyber_pre_key_id(uint32_t *out, SignalConstPointerPreKeyBundle obj);
|
|
|
|
SignalFfiError *signal_pre_key_bundle_get_kyber_pre_key_public(SignalMutPointerKyberPublicKey *out, SignalConstPointerPreKeyBundle bundle);
|
|
|
|
SignalFfiError *signal_pre_key_bundle_get_kyber_pre_key_signature(SignalOwnedBuffer *out, SignalConstPointerPreKeyBundle obj);
|
|
|
|
SignalFfiError *signal_pre_key_bundle_get_pre_key_id(uint32_t *out, SignalConstPointerPreKeyBundle obj);
|
|
|
|
SignalFfiError *signal_pre_key_bundle_get_pre_key_public(SignalMutPointerPublicKey *out, SignalConstPointerPreKeyBundle obj);
|
|
|
|
SignalFfiError *signal_pre_key_bundle_get_registration_id(uint32_t *out, SignalConstPointerPreKeyBundle obj);
|
|
|
|
SignalFfiError *signal_pre_key_bundle_get_signed_pre_key_id(uint32_t *out, SignalConstPointerPreKeyBundle obj);
|
|
|
|
SignalFfiError *signal_pre_key_bundle_get_signed_pre_key_public(SignalMutPointerPublicKey *out, SignalConstPointerPreKeyBundle obj);
|
|
|
|
SignalFfiError *signal_pre_key_bundle_get_signed_pre_key_signature(SignalOwnedBuffer *out, SignalConstPointerPreKeyBundle obj);
|
|
|
|
SignalFfiError *signal_pre_key_bundle_new(SignalMutPointerPreKeyBundle *out, uint32_t registration_id, uint32_t device_id, uint32_t prekey_id, SignalConstPointerPublicKey prekey, uint32_t signed_prekey_id, SignalConstPointerPublicKey signed_prekey, SignalBorrowedBuffer signed_prekey_signature, SignalConstPointerPublicKey identity_key, uint32_t kyber_prekey_id, SignalConstPointerKyberPublicKey kyber_prekey, SignalBorrowedBuffer kyber_prekey_signature);
|
|
|
|
SignalFfiError *signal_pre_key_record_clone(SignalMutPointerPreKeyRecord *new_obj, SignalConstPointerPreKeyRecord obj);
|
|
|
|
SignalFfiError *signal_pre_key_record_deserialize(SignalMutPointerPreKeyRecord *out, SignalBorrowedBuffer data);
|
|
|
|
SignalFfiError *signal_pre_key_record_destroy(SignalMutPointerPreKeyRecord p);
|
|
|
|
SignalFfiError *signal_pre_key_record_get_id(uint32_t *out, SignalConstPointerPreKeyRecord obj);
|
|
|
|
SignalFfiError *signal_pre_key_record_get_private_key(SignalMutPointerPrivateKey *out, SignalConstPointerPreKeyRecord obj);
|
|
|
|
SignalFfiError *signal_pre_key_record_get_public_key(SignalMutPointerPublicKey *out, SignalConstPointerPreKeyRecord obj);
|
|
|
|
SignalFfiError *signal_pre_key_record_new(SignalMutPointerPreKeyRecord *out, uint32_t id, SignalConstPointerPublicKey pub_key, SignalConstPointerPrivateKey priv_key);
|
|
|
|
SignalFfiError *signal_pre_key_record_serialize(SignalOwnedBuffer *out, SignalConstPointerPreKeyRecord obj);
|
|
|
|
SignalFfiError *signal_pre_key_signal_message_clone(SignalMutPointerPreKeySignalMessage *new_obj, SignalConstPointerPreKeySignalMessage obj);
|
|
|
|
SignalFfiError *signal_pre_key_signal_message_deserialize(SignalMutPointerPreKeySignalMessage *out, SignalBorrowedBuffer data);
|
|
|
|
SignalFfiError *signal_pre_key_signal_message_destroy(SignalMutPointerPreKeySignalMessage p);
|
|
|
|
SignalFfiError *signal_pre_key_signal_message_get_base_key(SignalMutPointerPublicKey *out, SignalConstPointerPreKeySignalMessage m);
|
|
|
|
SignalFfiError *signal_pre_key_signal_message_get_identity_key(SignalMutPointerPublicKey *out, SignalConstPointerPreKeySignalMessage m);
|
|
|
|
SignalFfiError *signal_pre_key_signal_message_get_pre_key_id(uint32_t *out, SignalConstPointerPreKeySignalMessage obj);
|
|
|
|
SignalFfiError *signal_pre_key_signal_message_get_registration_id(uint32_t *out, SignalConstPointerPreKeySignalMessage obj);
|
|
|
|
SignalFfiError *signal_pre_key_signal_message_get_signal_message(SignalMutPointerSignalMessage *out, SignalConstPointerPreKeySignalMessage m);
|
|
|
|
SignalFfiError *signal_pre_key_signal_message_get_signed_pre_key_id(uint32_t *out, SignalConstPointerPreKeySignalMessage obj);
|
|
|
|
SignalFfiError *signal_pre_key_signal_message_get_version(uint32_t *out, SignalConstPointerPreKeySignalMessage obj);
|
|
|
|
SignalFfiError *signal_pre_key_signal_message_new(SignalMutPointerPreKeySignalMessage *out, uint8_t message_version, uint32_t registration_id, uint32_t pre_key_id, uint32_t signed_pre_key_id, SignalConstPointerPublicKey base_key, SignalConstPointerPublicKey identity_key, SignalConstPointerSignalMessage signal_message);
|
|
|
|
SignalFfiError *signal_pre_key_signal_message_serialize(SignalOwnedBuffer *out, SignalConstPointerPreKeySignalMessage obj);
|
|
|
|
void signal_print_ptr(const void *p);
|
|
|
|
SignalFfiError *signal_privatekey_agree(SignalOwnedBuffer *out, SignalConstPointerPrivateKey private_key, SignalConstPointerPublicKey public_key);
|
|
|
|
SignalFfiError *signal_privatekey_clone(SignalMutPointerPrivateKey *new_obj, SignalConstPointerPrivateKey obj);
|
|
|
|
SignalFfiError *signal_privatekey_deserialize(SignalMutPointerPrivateKey *out, SignalBorrowedBuffer data);
|
|
|
|
SignalFfiError *signal_privatekey_destroy(SignalMutPointerPrivateKey p);
|
|
|
|
SignalFfiError *signal_privatekey_generate(SignalMutPointerPrivateKey *out);
|
|
|
|
SignalFfiError *signal_privatekey_get_public_key(SignalMutPointerPublicKey *out, SignalConstPointerPrivateKey k);
|
|
|
|
SignalFfiError *signal_privatekey_hpke_open(SignalOwnedBuffer *out, SignalConstPointerPrivateKey sk, SignalBorrowedBuffer ciphertext, SignalBorrowedBuffer info, SignalBorrowedBuffer associated_data);
|
|
|
|
SignalFfiError *signal_privatekey_serialize(SignalOwnedBuffer *out, SignalConstPointerPrivateKey obj);
|
|
|
|
SignalFfiError *signal_privatekey_sign(SignalOwnedBuffer *out, SignalConstPointerPrivateKey key, SignalBorrowedBuffer message);
|
|
|
|
SignalFfiError *signal_process_prekey_bundle(SignalConstPointerPreKeyBundle bundle, SignalConstPointerProtocolAddress protocol_address, SignalConstPointerFfiSessionStoreStruct session_store, SignalConstPointerFfiIdentityKeyStoreStruct identity_key_store, uint64_t now, bool use_pq_ratchet);
|
|
|
|
SignalFfiError *signal_process_sender_key_distribution_message(SignalConstPointerProtocolAddress sender, SignalConstPointerSenderKeyDistributionMessage sender_key_distribution_message, SignalConstPointerFfiSenderKeyStoreStruct store);
|
|
|
|
SignalFfiError *signal_profile_key_check_valid_contents(SignalBorrowedBuffer buffer);
|
|
|
|
SignalFfiError *signal_profile_key_ciphertext_check_valid_contents(SignalBorrowedBuffer buffer);
|
|
|
|
SignalFfiError *signal_profile_key_commitment_check_valid_contents(SignalBorrowedBuffer buffer);
|
|
|
|
SignalFfiError *signal_profile_key_credential_presentation_check_valid_contents(SignalBorrowedBuffer presentation_bytes);
|
|
|
|
SignalFfiError *signal_profile_key_credential_presentation_get_profile_key_ciphertext(unsigned char (*out)[SignalPROFILE_KEY_CIPHERTEXT_LEN], SignalBorrowedBuffer presentation_bytes);
|
|
|
|
SignalFfiError *signal_profile_key_credential_presentation_get_uuid_ciphertext(unsigned char (*out)[SignalUUID_CIPHERTEXT_LEN], SignalBorrowedBuffer presentation_bytes);
|
|
|
|
SignalFfiError *signal_profile_key_credential_request_check_valid_contents(SignalBorrowedBuffer buffer);
|
|
|
|
SignalFfiError *signal_profile_key_credential_request_context_check_valid_contents(SignalBorrowedBuffer buffer);
|
|
|
|
SignalFfiError *signal_profile_key_credential_request_context_get_request(unsigned char (*out)[SignalPROFILE_KEY_CREDENTIAL_REQUEST_LEN], const unsigned char (*context)[SignalPROFILE_KEY_CREDENTIAL_REQUEST_CONTEXT_LEN]);
|
|
|
|
SignalFfiError *signal_profile_key_derive_access_key(uint8_t (*out)[SignalACCESS_KEY_LEN], const unsigned char (*profile_key)[SignalPROFILE_KEY_LEN]);
|
|
|
|
SignalFfiError *signal_profile_key_get_commitment(unsigned char (*out)[SignalPROFILE_KEY_COMMITMENT_LEN], const unsigned char (*profile_key)[SignalPROFILE_KEY_LEN], const SignalServiceIdFixedWidthBinaryBytes *user_id);
|
|
|
|
SignalFfiError *signal_profile_key_get_profile_key_version(uint8_t (*out)[SignalPROFILE_KEY_VERSION_ENCODED_LEN], const unsigned char (*profile_key)[SignalPROFILE_KEY_LEN], const SignalServiceIdFixedWidthBinaryBytes *user_id);
|
|
|
|
SignalFfiError *signal_publickey_clone(SignalMutPointerPublicKey *new_obj, SignalConstPointerPublicKey obj);
|
|
|
|
SignalFfiError *signal_publickey_compare(int32_t *out, SignalConstPointerPublicKey key1, SignalConstPointerPublicKey key2);
|
|
|
|
SignalFfiError *signal_publickey_deserialize(SignalMutPointerPublicKey *out, SignalBorrowedBuffer data);
|
|
|
|
SignalFfiError *signal_publickey_destroy(SignalMutPointerPublicKey p);
|
|
|
|
SignalFfiError *signal_publickey_equals(bool *out, SignalConstPointerPublicKey lhs, SignalConstPointerPublicKey rhs);
|
|
|
|
SignalFfiError *signal_publickey_get_public_key_bytes(SignalOwnedBuffer *out, SignalConstPointerPublicKey obj);
|
|
|
|
SignalFfiError *signal_publickey_hpke_seal(SignalOwnedBuffer *out, SignalConstPointerPublicKey pk, SignalBorrowedBuffer plaintext, SignalBorrowedBuffer info, SignalBorrowedBuffer associated_data);
|
|
|
|
SignalFfiError *signal_publickey_serialize(SignalOwnedBuffer *out, SignalConstPointerPublicKey obj);
|
|
|
|
SignalFfiError *signal_publickey_verify(bool *out, SignalConstPointerPublicKey key, SignalBorrowedBuffer message, SignalBorrowedBuffer signature);
|
|
|
|
SignalFfiError *signal_receipt_credential_check_valid_contents(SignalBorrowedBuffer buffer);
|
|
|
|
SignalFfiError *signal_receipt_credential_get_receipt_expiration_time(uint64_t *out, const unsigned char (*receipt_credential)[SignalRECEIPT_CREDENTIAL_LEN]);
|
|
|
|
SignalFfiError *signal_receipt_credential_get_receipt_level(uint64_t *out, const unsigned char (*receipt_credential)[SignalRECEIPT_CREDENTIAL_LEN]);
|
|
|
|
SignalFfiError *signal_receipt_credential_presentation_check_valid_contents(SignalBorrowedBuffer buffer);
|
|
|
|
SignalFfiError *signal_receipt_credential_presentation_get_receipt_expiration_time(uint64_t *out, const unsigned char (*presentation)[SignalRECEIPT_CREDENTIAL_PRESENTATION_LEN]);
|
|
|
|
SignalFfiError *signal_receipt_credential_presentation_get_receipt_level(uint64_t *out, const unsigned char (*presentation)[SignalRECEIPT_CREDENTIAL_PRESENTATION_LEN]);
|
|
|
|
SignalFfiError *signal_receipt_credential_presentation_get_receipt_serial(uint8_t (*out)[SignalRECEIPT_SERIAL_LEN], const unsigned char (*presentation)[SignalRECEIPT_CREDENTIAL_PRESENTATION_LEN]);
|
|
|
|
SignalFfiError *signal_receipt_credential_request_check_valid_contents(SignalBorrowedBuffer buffer);
|
|
|
|
SignalFfiError *signal_receipt_credential_request_context_check_valid_contents(SignalBorrowedBuffer buffer);
|
|
|
|
SignalFfiError *signal_receipt_credential_request_context_get_request(unsigned char (*out)[SignalRECEIPT_CREDENTIAL_REQUEST_LEN], const unsigned char (*request_context)[SignalRECEIPT_CREDENTIAL_REQUEST_CONTEXT_LEN]);
|
|
|
|
SignalFfiError *signal_receipt_credential_response_check_valid_contents(SignalBorrowedBuffer buffer);
|
|
|
|
SignalFfiError *signal_register_account_request_create(SignalMutPointerRegisterAccountRequest *out);
|
|
|
|
SignalFfiError *signal_register_account_request_destroy(SignalMutPointerRegisterAccountRequest p);
|
|
|
|
SignalFfiError *signal_register_account_request_set_account_password(SignalConstPointerRegisterAccountRequest register_account, const char *account_password);
|
|
|
|
SignalFfiError *signal_register_account_request_set_apn_push_token(SignalConstPointerRegisterAccountRequest register_account, const char *apn_push_token);
|
|
|
|
SignalFfiError *signal_register_account_request_set_identity_pq_last_resort_pre_key(SignalConstPointerRegisterAccountRequest register_account, uint8_t identity_type, SignalFfiSignedPublicPreKey pq_last_resort_pre_key);
|
|
|
|
SignalFfiError *signal_register_account_request_set_identity_public_key(SignalConstPointerRegisterAccountRequest register_account, uint8_t identity_type, SignalConstPointerPublicKey identity_key);
|
|
|
|
SignalFfiError *signal_register_account_request_set_identity_signed_pre_key(SignalConstPointerRegisterAccountRequest register_account, uint8_t identity_type, SignalFfiSignedPublicPreKey signed_pre_key);
|
|
|
|
SignalFfiError *signal_register_account_request_set_skip_device_transfer(SignalConstPointerRegisterAccountRequest register_account);
|
|
|
|
SignalFfiError *signal_register_account_response_destroy(SignalMutPointerRegisterAccountResponse p);
|
|
|
|
SignalFfiError *signal_register_account_response_get_entitlement_backup_expiration_seconds(uint64_t *out, SignalConstPointerRegisterAccountResponse response);
|
|
|
|
SignalFfiError *signal_register_account_response_get_entitlement_backup_level(uint64_t *out, SignalConstPointerRegisterAccountResponse response);
|
|
|
|
SignalFfiError *signal_register_account_response_get_entitlement_badges(SignalOwnedBufferOfFfiRegisterResponseBadge *out, SignalConstPointerRegisterAccountResponse response);
|
|
|
|
SignalFfiError *signal_register_account_response_get_identity(SignalServiceIdFixedWidthBinaryBytes *out, SignalConstPointerRegisterAccountResponse response, uint8_t identity_type);
|
|
|
|
SignalFfiError *signal_register_account_response_get_number(const char **out, SignalConstPointerRegisterAccountResponse response);
|
|
|
|
SignalFfiError *signal_register_account_response_get_reregistration(bool *out, SignalConstPointerRegisterAccountResponse response);
|
|
|
|
SignalFfiError *signal_register_account_response_get_storage_capable(bool *out, SignalConstPointerRegisterAccountResponse response);
|
|
|
|
SignalFfiError *signal_register_account_response_get_username_hash(SignalOwnedBuffer *out, SignalConstPointerRegisterAccountResponse response);
|
|
|
|
SignalFfiError *signal_register_account_response_get_username_link_handle(SignalOptionalUuid *out, SignalConstPointerRegisterAccountResponse response);
|
|
|
|
SignalFfiError *signal_registration_account_attributes_create(SignalMutPointerRegistrationAccountAttributes *out, SignalBorrowedBuffer recovery_password, uint16_t aci_registration_id, uint16_t pni_registration_id, const char *registration_lock, const uint8_t (*unidentified_access_key)[16], bool unrestricted_unidentified_access, SignalBorrowedBytestringArray capabilities, bool discoverable_by_phone_number);
|
|
|
|
SignalFfiError *signal_registration_account_attributes_destroy(SignalMutPointerRegistrationAccountAttributes p);
|
|
|
|
SignalFfiError *signal_registration_service_check_svr2_credentials(SignalCPromiseFfiCheckSvr2CredentialsResponse *promise, SignalConstPointerTokioAsyncContext async_runtime, SignalConstPointerRegistrationService service, SignalBorrowedBytestringArray svr_tokens);
|
|
|
|
SignalFfiError *signal_registration_service_create_session(SignalCPromiseMutPointerRegistrationService *promise, SignalConstPointerTokioAsyncContext async_runtime, SignalFfiRegistrationCreateSessionRequest create_session, SignalConstPointerFfiConnectChatBridgeStruct connect_chat);
|
|
|
|
SignalFfiError *signal_registration_service_destroy(SignalMutPointerRegistrationService p);
|
|
|
|
SignalFfiError *signal_registration_service_register_account(SignalCPromiseMutPointerRegisterAccountResponse *promise, SignalConstPointerTokioAsyncContext async_runtime, SignalConstPointerRegistrationService service, SignalConstPointerRegisterAccountRequest register_account, SignalConstPointerRegistrationAccountAttributes account_attributes);
|
|
|
|
SignalFfiError *signal_registration_service_registration_session(SignalMutPointerRegistrationSession *out, SignalConstPointerRegistrationService service);
|
|
|
|
SignalFfiError *signal_registration_service_request_push_challenge(SignalCPromisebool *promise, SignalConstPointerTokioAsyncContext async_runtime, SignalConstPointerRegistrationService service, const char *push_token);
|
|
|
|
SignalFfiError *signal_registration_service_request_verification_code(SignalCPromisebool *promise, SignalConstPointerTokioAsyncContext async_runtime, SignalConstPointerRegistrationService service, const char *transport, const char *client, SignalBorrowedBytestringArray languages);
|
|
|
|
SignalFfiError *signal_registration_service_reregister_account(SignalCPromiseMutPointerRegisterAccountResponse *promise, SignalConstPointerTokioAsyncContext async_runtime, SignalConstPointerFfiConnectChatBridgeStruct connect_chat, const char *number, SignalConstPointerRegisterAccountRequest register_account, SignalConstPointerRegistrationAccountAttributes account_attributes);
|
|
|
|
SignalFfiError *signal_registration_service_resume_session(SignalCPromiseMutPointerRegistrationService *promise, SignalConstPointerTokioAsyncContext async_runtime, const char *session_id, const char *number, SignalConstPointerFfiConnectChatBridgeStruct connect_chat);
|
|
|
|
SignalFfiError *signal_registration_service_session_id(const char **out, SignalConstPointerRegistrationService service);
|
|
|
|
SignalFfiError *signal_registration_service_submit_captcha(SignalCPromisebool *promise, SignalConstPointerTokioAsyncContext async_runtime, SignalConstPointerRegistrationService service, const char *captcha_value);
|
|
|
|
SignalFfiError *signal_registration_service_submit_push_challenge(SignalCPromisebool *promise, SignalConstPointerTokioAsyncContext async_runtime, SignalConstPointerRegistrationService service, const char *push_challenge);
|
|
|
|
SignalFfiError *signal_registration_service_submit_verification_code(SignalCPromisebool *promise, SignalConstPointerTokioAsyncContext async_runtime, SignalConstPointerRegistrationService service, const char *code);
|
|
|
|
SignalFfiError *signal_registration_session_destroy(SignalMutPointerRegistrationSession p);
|
|
|
|
SignalFfiError *signal_registration_session_get_allowed_to_request_code(bool *out, SignalConstPointerRegistrationSession session);
|
|
|
|
SignalFfiError *signal_registration_session_get_next_call_seconds(uint32_t *out, SignalConstPointerRegistrationSession session);
|
|
|
|
SignalFfiError *signal_registration_session_get_next_sms_seconds(uint32_t *out, SignalConstPointerRegistrationSession session);
|
|
|
|
SignalFfiError *signal_registration_session_get_next_verification_attempt_seconds(uint32_t *out, SignalConstPointerRegistrationSession session);
|
|
|
|
SignalFfiError *signal_registration_session_get_requested_information(SignalOwnedBuffer *out, SignalConstPointerRegistrationSession session);
|
|
|
|
SignalFfiError *signal_registration_session_get_verified(bool *out, SignalConstPointerRegistrationSession session);
|
|
|
|
SignalFfiError *signal_sanitized_metadata_clone(SignalMutPointerSanitizedMetadata *new_obj, SignalConstPointerSanitizedMetadata obj);
|
|
|
|
SignalFfiError *signal_sanitized_metadata_destroy(SignalMutPointerSanitizedMetadata p);
|
|
|
|
SignalFfiError *signal_sanitized_metadata_get_data_len(uint64_t *out, SignalConstPointerSanitizedMetadata sanitized);
|
|
|
|
SignalFfiError *signal_sanitized_metadata_get_data_offset(uint64_t *out, SignalConstPointerSanitizedMetadata sanitized);
|
|
|
|
SignalFfiError *signal_sanitized_metadata_get_metadata(SignalOwnedBuffer *out, SignalConstPointerSanitizedMetadata sanitized);
|
|
|
|
SignalFfiError *signal_sealed_sender_multi_recipient_encrypt(SignalOwnedBuffer *out, SignalBorrowedSliceOfConstPointerProtocolAddress recipients, SignalBorrowedSliceOfConstPointerSessionRecord recipient_sessions, SignalBorrowedBuffer excluded_recipients, SignalConstPointerUnidentifiedSenderMessageContent content, SignalConstPointerFfiIdentityKeyStoreStruct identity_key_store);
|
|
|
|
SignalFfiError *signal_sealed_sender_multi_recipient_message_for_single_recipient(SignalOwnedBuffer *out, SignalBorrowedBuffer encoded_multi_recipient_message);
|
|
|
|
SignalFfiError *signal_sealed_session_cipher_decrypt_to_usmc(SignalMutPointerUnidentifiedSenderMessageContent *out, SignalBorrowedBuffer ctext, SignalConstPointerFfiIdentityKeyStoreStruct identity_store);
|
|
|
|
SignalFfiError *signal_sealed_session_cipher_encrypt(SignalOwnedBuffer *out, SignalConstPointerProtocolAddress destination, SignalConstPointerUnidentifiedSenderMessageContent content, SignalConstPointerFfiIdentityKeyStoreStruct identity_key_store);
|
|
|
|
SignalFfiError *signal_secure_value_recovery_for_backups_create_new_backup_chain(SignalOwnedBuffer *out, uint8_t environment, const SignalBackupKeyBytes *backup_key);
|
|
|
|
SignalFfiError *signal_secure_value_recovery_for_backups_remove_backup(SignalCPromisebool *promise, SignalConstPointerTokioAsyncContext async_runtime, SignalConstPointerConnectionManager connection_manager, const char *username, const char *password);
|
|
|
|
SignalFfiError *signal_secure_value_recovery_for_backups_restore_backup_from_server(SignalCPromiseMutPointerBackupRestoreResponse *promise, SignalConstPointerTokioAsyncContext async_runtime, const SignalBackupKeyBytes *backup_key, SignalBorrowedBuffer metadata, SignalConstPointerConnectionManager connection_manager, const char *username, const char *password);
|
|
|
|
SignalFfiError *signal_secure_value_recovery_for_backups_store_backup(SignalCPromiseMutPointerBackupStoreResponse *promise, SignalConstPointerTokioAsyncContext async_runtime, const SignalBackupKeyBytes *backup_key, SignalBorrowedBuffer previous_secret_data, SignalConstPointerConnectionManager connection_manager, const char *username, const char *password);
|
|
|
|
SignalFfiError *signal_sender_certificate_clone(SignalMutPointerSenderCertificate *new_obj, SignalConstPointerSenderCertificate obj);
|
|
|
|
SignalFfiError *signal_sender_certificate_deserialize(SignalMutPointerSenderCertificate *out, SignalBorrowedBuffer data);
|
|
|
|
SignalFfiError *signal_sender_certificate_destroy(SignalMutPointerSenderCertificate p);
|
|
|
|
SignalFfiError *signal_sender_certificate_get_certificate(SignalOwnedBuffer *out, SignalConstPointerSenderCertificate obj);
|
|
|
|
SignalFfiError *signal_sender_certificate_get_device_id(uint32_t *out, SignalConstPointerSenderCertificate obj);
|
|
|
|
SignalFfiError *signal_sender_certificate_get_expiration(uint64_t *out, SignalConstPointerSenderCertificate obj);
|
|
|
|
SignalFfiError *signal_sender_certificate_get_key(SignalMutPointerPublicKey *out, SignalConstPointerSenderCertificate obj);
|
|
|
|
SignalFfiError *signal_sender_certificate_get_sender_e164(const char **out, SignalConstPointerSenderCertificate obj);
|
|
|
|
SignalFfiError *signal_sender_certificate_get_sender_uuid(const char **out, SignalConstPointerSenderCertificate obj);
|
|
|
|
SignalFfiError *signal_sender_certificate_get_serialized(SignalOwnedBuffer *out, SignalConstPointerSenderCertificate obj);
|
|
|
|
SignalFfiError *signal_sender_certificate_get_server_certificate(SignalMutPointerServerCertificate *out, SignalConstPointerSenderCertificate cert);
|
|
|
|
SignalFfiError *signal_sender_certificate_get_signature(SignalOwnedBuffer *out, SignalConstPointerSenderCertificate obj);
|
|
|
|
SignalFfiError *signal_sender_certificate_new(SignalMutPointerSenderCertificate *out, const char *sender_uuid, const char *sender_e164, uint32_t sender_device_id, SignalConstPointerPublicKey sender_key, uint64_t expiration, SignalConstPointerServerCertificate signer_cert, SignalConstPointerPrivateKey signer_key);
|
|
|
|
SignalFfiError *signal_sender_certificate_validate(bool *out, SignalConstPointerSenderCertificate cert, SignalBorrowedSliceOfConstPointerPublicKey trust_roots, uint64_t time);
|
|
|
|
SignalFfiError *signal_sender_key_distribution_message_clone(SignalMutPointerSenderKeyDistributionMessage *new_obj, SignalConstPointerSenderKeyDistributionMessage obj);
|
|
|
|
SignalFfiError *signal_sender_key_distribution_message_create(SignalMutPointerSenderKeyDistributionMessage *out, SignalConstPointerProtocolAddress sender, const uint8_t (*distribution_id)[16], SignalConstPointerFfiSenderKeyStoreStruct store);
|
|
|
|
SignalFfiError *signal_sender_key_distribution_message_deserialize(SignalMutPointerSenderKeyDistributionMessage *out, SignalBorrowedBuffer data);
|
|
|
|
SignalFfiError *signal_sender_key_distribution_message_destroy(SignalMutPointerSenderKeyDistributionMessage p);
|
|
|
|
SignalFfiError *signal_sender_key_distribution_message_get_chain_id(uint32_t *out, SignalConstPointerSenderKeyDistributionMessage obj);
|
|
|
|
SignalFfiError *signal_sender_key_distribution_message_get_chain_key(SignalOwnedBuffer *out, SignalConstPointerSenderKeyDistributionMessage obj);
|
|
|
|
SignalFfiError *signal_sender_key_distribution_message_get_distribution_id(uint8_t (*out)[16], SignalConstPointerSenderKeyDistributionMessage obj);
|
|
|
|
SignalFfiError *signal_sender_key_distribution_message_get_iteration(uint32_t *out, SignalConstPointerSenderKeyDistributionMessage obj);
|
|
|
|
SignalFfiError *signal_sender_key_distribution_message_get_signature_key(SignalMutPointerPublicKey *out, SignalConstPointerSenderKeyDistributionMessage m);
|
|
|
|
SignalFfiError *signal_sender_key_distribution_message_new(SignalMutPointerSenderKeyDistributionMessage *out, uint8_t message_version, const uint8_t (*distribution_id)[16], uint32_t chain_id, uint32_t iteration, SignalBorrowedBuffer chainkey, SignalConstPointerPublicKey pk);
|
|
|
|
SignalFfiError *signal_sender_key_distribution_message_serialize(SignalOwnedBuffer *out, SignalConstPointerSenderKeyDistributionMessage obj);
|
|
|
|
SignalFfiError *signal_sender_key_message_clone(SignalMutPointerSenderKeyMessage *new_obj, SignalConstPointerSenderKeyMessage obj);
|
|
|
|
SignalFfiError *signal_sender_key_message_deserialize(SignalMutPointerSenderKeyMessage *out, SignalBorrowedBuffer data);
|
|
|
|
SignalFfiError *signal_sender_key_message_destroy(SignalMutPointerSenderKeyMessage p);
|
|
|
|
SignalFfiError *signal_sender_key_message_get_chain_id(uint32_t *out, SignalConstPointerSenderKeyMessage obj);
|
|
|
|
SignalFfiError *signal_sender_key_message_get_cipher_text(SignalOwnedBuffer *out, SignalConstPointerSenderKeyMessage obj);
|
|
|
|
SignalFfiError *signal_sender_key_message_get_distribution_id(uint8_t (*out)[16], SignalConstPointerSenderKeyMessage obj);
|
|
|
|
SignalFfiError *signal_sender_key_message_get_iteration(uint32_t *out, SignalConstPointerSenderKeyMessage obj);
|
|
|
|
SignalFfiError *signal_sender_key_message_new(SignalMutPointerSenderKeyMessage *out, uint8_t message_version, const uint8_t (*distribution_id)[16], uint32_t chain_id, uint32_t iteration, SignalBorrowedBuffer ciphertext, SignalConstPointerPrivateKey pk);
|
|
|
|
SignalFfiError *signal_sender_key_message_serialize(SignalOwnedBuffer *out, SignalConstPointerSenderKeyMessage obj);
|
|
|
|
SignalFfiError *signal_sender_key_message_verify_signature(bool *out, SignalConstPointerSenderKeyMessage skm, SignalConstPointerPublicKey pubkey);
|
|
|
|
SignalFfiError *signal_sender_key_record_clone(SignalMutPointerSenderKeyRecord *new_obj, SignalConstPointerSenderKeyRecord obj);
|
|
|
|
SignalFfiError *signal_sender_key_record_deserialize(SignalMutPointerSenderKeyRecord *out, SignalBorrowedBuffer data);
|
|
|
|
SignalFfiError *signal_sender_key_record_destroy(SignalMutPointerSenderKeyRecord p);
|
|
|
|
SignalFfiError *signal_sender_key_record_serialize(SignalOwnedBuffer *out, SignalConstPointerSenderKeyRecord obj);
|
|
|
|
SignalFfiError *signal_server_certificate_clone(SignalMutPointerServerCertificate *new_obj, SignalConstPointerServerCertificate obj);
|
|
|
|
SignalFfiError *signal_server_certificate_deserialize(SignalMutPointerServerCertificate *out, SignalBorrowedBuffer data);
|
|
|
|
SignalFfiError *signal_server_certificate_destroy(SignalMutPointerServerCertificate p);
|
|
|
|
SignalFfiError *signal_server_certificate_get_certificate(SignalOwnedBuffer *out, SignalConstPointerServerCertificate obj);
|
|
|
|
SignalFfiError *signal_server_certificate_get_key(SignalMutPointerPublicKey *out, SignalConstPointerServerCertificate obj);
|
|
|
|
SignalFfiError *signal_server_certificate_get_key_id(uint32_t *out, SignalConstPointerServerCertificate obj);
|
|
|
|
SignalFfiError *signal_server_certificate_get_serialized(SignalOwnedBuffer *out, SignalConstPointerServerCertificate obj);
|
|
|
|
SignalFfiError *signal_server_certificate_get_signature(SignalOwnedBuffer *out, SignalConstPointerServerCertificate obj);
|
|
|
|
SignalFfiError *signal_server_certificate_new(SignalMutPointerServerCertificate *out, uint32_t key_id, SignalConstPointerPublicKey server_key, SignalConstPointerPrivateKey trust_root);
|
|
|
|
SignalFfiError *signal_server_message_ack_destroy(SignalMutPointerServerMessageAck p);
|
|
|
|
SignalFfiError *signal_server_message_ack_send(SignalConstPointerServerMessageAck ack);
|
|
|
|
SignalFfiError *signal_server_public_params_create_auth_credential_with_pni_presentation_deterministic(SignalOwnedBuffer *out, SignalConstPointerServerPublicParams server_public_params, const uint8_t (*randomness)[SignalRANDOMNESS_LEN], const unsigned char (*group_secret_params)[SignalGROUP_SECRET_PARAMS_LEN], SignalBorrowedBuffer auth_credential_with_pni_bytes);
|
|
|
|
SignalFfiError *signal_server_public_params_create_expiring_profile_key_credential_presentation_deterministic(SignalOwnedBuffer *out, SignalConstPointerServerPublicParams server_public_params, const uint8_t (*randomness)[SignalRANDOMNESS_LEN], const unsigned char (*group_secret_params)[SignalGROUP_SECRET_PARAMS_LEN], const unsigned char (*profile_key_credential)[SignalEXPIRING_PROFILE_KEY_CREDENTIAL_LEN]);
|
|
|
|
SignalFfiError *signal_server_public_params_create_profile_key_credential_request_context_deterministic(unsigned char (*out)[SignalPROFILE_KEY_CREDENTIAL_REQUEST_CONTEXT_LEN], SignalConstPointerServerPublicParams server_public_params, const uint8_t (*randomness)[SignalRANDOMNESS_LEN], const SignalServiceIdFixedWidthBinaryBytes *user_id, const unsigned char (*profile_key)[SignalPROFILE_KEY_LEN]);
|
|
|
|
SignalFfiError *signal_server_public_params_create_receipt_credential_presentation_deterministic(unsigned char (*out)[SignalRECEIPT_CREDENTIAL_PRESENTATION_LEN], SignalConstPointerServerPublicParams server_public_params, const uint8_t (*randomness)[SignalRANDOMNESS_LEN], const unsigned char (*receipt_credential)[SignalRECEIPT_CREDENTIAL_LEN]);
|
|
|
|
SignalFfiError *signal_server_public_params_create_receipt_credential_request_context_deterministic(unsigned char (*out)[SignalRECEIPT_CREDENTIAL_REQUEST_CONTEXT_LEN], SignalConstPointerServerPublicParams server_public_params, const uint8_t (*randomness)[SignalRANDOMNESS_LEN], const uint8_t (*receipt_serial)[SignalRECEIPT_SERIAL_LEN]);
|
|
|
|
SignalFfiError *signal_server_public_params_deserialize(SignalMutPointerServerPublicParams *out, SignalBorrowedBuffer buffer);
|
|
|
|
SignalFfiError *signal_server_public_params_destroy(SignalMutPointerServerPublicParams p);
|
|
|
|
SignalFfiError *signal_server_public_params_get_endorsement_public_key(SignalOwnedBuffer *out, SignalConstPointerServerPublicParams params);
|
|
|
|
SignalFfiError *signal_server_public_params_receive_auth_credential_with_pni_as_service_id(SignalOwnedBuffer *out, SignalConstPointerServerPublicParams params, const SignalServiceIdFixedWidthBinaryBytes *aci, const SignalServiceIdFixedWidthBinaryBytes *pni, uint64_t redemption_time, SignalBorrowedBuffer auth_credential_with_pni_response_bytes);
|
|
|
|
SignalFfiError *signal_server_public_params_receive_expiring_profile_key_credential(unsigned char (*out)[SignalEXPIRING_PROFILE_KEY_CREDENTIAL_LEN], SignalConstPointerServerPublicParams server_public_params, const unsigned char (*request_context)[SignalPROFILE_KEY_CREDENTIAL_REQUEST_CONTEXT_LEN], const unsigned char (*response)[SignalEXPIRING_PROFILE_KEY_CREDENTIAL_RESPONSE_LEN], uint64_t current_time_in_seconds);
|
|
|
|
SignalFfiError *signal_server_public_params_receive_receipt_credential(unsigned char (*out)[SignalRECEIPT_CREDENTIAL_LEN], SignalConstPointerServerPublicParams server_public_params, const unsigned char (*request_context)[SignalRECEIPT_CREDENTIAL_REQUEST_CONTEXT_LEN], const unsigned char (*response)[SignalRECEIPT_CREDENTIAL_RESPONSE_LEN]);
|
|
|
|
SignalFfiError *signal_server_public_params_serialize(SignalOwnedBuffer *out, SignalConstPointerServerPublicParams handle);
|
|
|
|
SignalFfiError *signal_server_public_params_verify_signature(SignalConstPointerServerPublicParams server_public_params, SignalBorrowedBuffer message, const uint8_t (*notary_signature)[SignalSIGNATURE_LEN]);
|
|
|
|
SignalFfiError *signal_server_secret_params_deserialize(SignalMutPointerServerSecretParams *out, SignalBorrowedBuffer buffer);
|
|
|
|
SignalFfiError *signal_server_secret_params_destroy(SignalMutPointerServerSecretParams p);
|
|
|
|
SignalFfiError *signal_server_secret_params_generate_deterministic(SignalMutPointerServerSecretParams *out, const uint8_t (*randomness)[SignalRANDOMNESS_LEN]);
|
|
|
|
SignalFfiError *signal_server_secret_params_get_public_params(SignalMutPointerServerPublicParams *out, SignalConstPointerServerSecretParams params);
|
|
|
|
SignalFfiError *signal_server_secret_params_issue_auth_credential_with_pni_zkc_deterministic(SignalOwnedBuffer *out, SignalConstPointerServerSecretParams server_secret_params, const uint8_t (*randomness)[SignalRANDOMNESS_LEN], const SignalServiceIdFixedWidthBinaryBytes *aci, const SignalServiceIdFixedWidthBinaryBytes *pni, uint64_t redemption_time);
|
|
|
|
SignalFfiError *signal_server_secret_params_issue_expiring_profile_key_credential_deterministic(unsigned char (*out)[SignalEXPIRING_PROFILE_KEY_CREDENTIAL_RESPONSE_LEN], SignalConstPointerServerSecretParams server_secret_params, const uint8_t (*randomness)[SignalRANDOMNESS_LEN], const unsigned char (*request)[SignalPROFILE_KEY_CREDENTIAL_REQUEST_LEN], const SignalServiceIdFixedWidthBinaryBytes *user_id, const unsigned char (*commitment)[SignalPROFILE_KEY_COMMITMENT_LEN], uint64_t expiration_in_seconds);
|
|
|
|
SignalFfiError *signal_server_secret_params_issue_receipt_credential_deterministic(unsigned char (*out)[SignalRECEIPT_CREDENTIAL_RESPONSE_LEN], SignalConstPointerServerSecretParams server_secret_params, const uint8_t (*randomness)[SignalRANDOMNESS_LEN], const unsigned char (*request)[SignalRECEIPT_CREDENTIAL_REQUEST_LEN], uint64_t receipt_expiration_time, uint64_t receipt_level);
|
|
|
|
SignalFfiError *signal_server_secret_params_serialize(SignalOwnedBuffer *out, SignalConstPointerServerSecretParams handle);
|
|
|
|
SignalFfiError *signal_server_secret_params_sign_deterministic(uint8_t (*out)[SignalSIGNATURE_LEN], SignalConstPointerServerSecretParams params, const uint8_t (*randomness)[SignalRANDOMNESS_LEN], SignalBorrowedBuffer message);
|
|
|
|
SignalFfiError *signal_server_secret_params_verify_auth_credential_presentation(SignalConstPointerServerSecretParams server_secret_params, const unsigned char (*group_public_params)[SignalGROUP_PUBLIC_PARAMS_LEN], SignalBorrowedBuffer presentation_bytes, uint64_t current_time_in_seconds);
|
|
|
|
SignalFfiError *signal_server_secret_params_verify_profile_key_credential_presentation(SignalConstPointerServerSecretParams server_secret_params, const unsigned char (*group_public_params)[SignalGROUP_PUBLIC_PARAMS_LEN], SignalBorrowedBuffer presentation_bytes, uint64_t current_time_in_seconds);
|
|
|
|
SignalFfiError *signal_server_secret_params_verify_receipt_credential_presentation(SignalConstPointerServerSecretParams server_secret_params, const unsigned char (*presentation)[SignalRECEIPT_CREDENTIAL_PRESENTATION_LEN]);
|
|
|
|
SignalFfiError *signal_service_id_parse_from_service_id_binary(SignalServiceIdFixedWidthBinaryBytes *out, SignalBorrowedBuffer input);
|
|
|
|
SignalFfiError *signal_service_id_parse_from_service_id_string(SignalServiceIdFixedWidthBinaryBytes *out, const char *input);
|
|
|
|
SignalFfiError *signal_service_id_service_id_binary(SignalOwnedBuffer *out, const SignalServiceIdFixedWidthBinaryBytes *value);
|
|
|
|
SignalFfiError *signal_service_id_service_id_log(const char **out, const SignalServiceIdFixedWidthBinaryBytes *value);
|
|
|
|
SignalFfiError *signal_service_id_service_id_string(const char **out, const SignalServiceIdFixedWidthBinaryBytes *value);
|
|
|
|
SignalFfiError *signal_session_record_archive_current_state(SignalMutPointerSessionRecord session_record);
|
|
|
|
SignalFfiError *signal_session_record_clone(SignalMutPointerSessionRecord *new_obj, SignalConstPointerSessionRecord obj);
|
|
|
|
SignalFfiError *signal_session_record_current_ratchet_key_matches(bool *out, SignalConstPointerSessionRecord s, SignalConstPointerPublicKey key);
|
|
|
|
SignalFfiError *signal_session_record_deserialize(SignalMutPointerSessionRecord *out, SignalBorrowedBuffer data);
|
|
|
|
SignalFfiError *signal_session_record_destroy(SignalMutPointerSessionRecord p);
|
|
|
|
SignalFfiError *signal_session_record_get_local_registration_id(uint32_t *out, SignalConstPointerSessionRecord obj);
|
|
|
|
SignalFfiError *signal_session_record_get_remote_registration_id(uint32_t *out, SignalConstPointerSessionRecord obj);
|
|
|
|
SignalFfiError *signal_session_record_has_usable_sender_chain(bool *out, SignalConstPointerSessionRecord s, uint64_t now);
|
|
|
|
SignalFfiError *signal_session_record_serialize(SignalOwnedBuffer *out, SignalConstPointerSessionRecord obj);
|
|
|
|
SignalFfiError *signal_sgx_client_state_complete_handshake(SignalMutPointerSgxClientState cli, SignalBorrowedBuffer handshake_received);
|
|
|
|
SignalFfiError *signal_sgx_client_state_destroy(SignalMutPointerSgxClientState p);
|
|
|
|
SignalFfiError *signal_sgx_client_state_established_recv(SignalOwnedBuffer *out, SignalMutPointerSgxClientState cli, SignalBorrowedBuffer received_ciphertext);
|
|
|
|
SignalFfiError *signal_sgx_client_state_established_send(SignalOwnedBuffer *out, SignalMutPointerSgxClientState cli, SignalBorrowedBuffer plaintext_to_send);
|
|
|
|
SignalFfiError *signal_sgx_client_state_initial_request(SignalOwnedBuffer *out, SignalConstPointerSgxClientState obj);
|
|
|
|
SignalFfiError *signal_signal_media_check_available(void);
|
|
|
|
SignalFfiError *signal_signed_pre_key_record_clone(SignalMutPointerSignedPreKeyRecord *new_obj, SignalConstPointerSignedPreKeyRecord obj);
|
|
|
|
SignalFfiError *signal_signed_pre_key_record_deserialize(SignalMutPointerSignedPreKeyRecord *out, SignalBorrowedBuffer data);
|
|
|
|
SignalFfiError *signal_signed_pre_key_record_destroy(SignalMutPointerSignedPreKeyRecord p);
|
|
|
|
SignalFfiError *signal_signed_pre_key_record_get_id(uint32_t *out, SignalConstPointerSignedPreKeyRecord obj);
|
|
|
|
SignalFfiError *signal_signed_pre_key_record_get_private_key(SignalMutPointerPrivateKey *out, SignalConstPointerSignedPreKeyRecord obj);
|
|
|
|
SignalFfiError *signal_signed_pre_key_record_get_public_key(SignalMutPointerPublicKey *out, SignalConstPointerSignedPreKeyRecord obj);
|
|
|
|
SignalFfiError *signal_signed_pre_key_record_get_signature(SignalOwnedBuffer *out, SignalConstPointerSignedPreKeyRecord obj);
|
|
|
|
SignalFfiError *signal_signed_pre_key_record_get_timestamp(uint64_t *out, SignalConstPointerSignedPreKeyRecord obj);
|
|
|
|
SignalFfiError *signal_signed_pre_key_record_new(SignalMutPointerSignedPreKeyRecord *out, uint32_t id, uint64_t timestamp, SignalConstPointerPublicKey pub_key, SignalConstPointerPrivateKey priv_key, SignalBorrowedBuffer signature);
|
|
|
|
SignalFfiError *signal_signed_pre_key_record_serialize(SignalOwnedBuffer *out, SignalConstPointerSignedPreKeyRecord obj);
|
|
|
|
SignalFfiError *signal_svr2_client_new(SignalMutPointerSgxClientState *out, SignalBorrowedBuffer mrenclave, SignalBorrowedBuffer attestation_msg, uint64_t current_timestamp);
|
|
|
|
SignalFfiError *signal_tokio_async_context_cancel(SignalConstPointerTokioAsyncContext context, uint64_t raw_cancellation_id);
|
|
|
|
SignalFfiError *signal_tokio_async_context_destroy(SignalMutPointerTokioAsyncContext p);
|
|
|
|
SignalFfiError *signal_tokio_async_context_new(SignalMutPointerTokioAsyncContext *out);
|
|
|
|
SignalFfiError *signal_unauthenticated_chat_connection_connect(SignalCPromiseMutPointerUnauthenticatedChatConnection *promise, SignalConstPointerTokioAsyncContext async_runtime, SignalConstPointerConnectionManager connection_manager, SignalBorrowedBytestringArray languages);
|
|
|
|
SignalFfiError *signal_unauthenticated_chat_connection_destroy(SignalMutPointerUnauthenticatedChatConnection p);
|
|
|
|
SignalFfiError *signal_unauthenticated_chat_connection_disconnect(SignalCPromisebool *promise, SignalConstPointerTokioAsyncContext async_runtime, SignalConstPointerUnauthenticatedChatConnection chat);
|
|
|
|
SignalFfiError *signal_unauthenticated_chat_connection_info(SignalMutPointerChatConnectionInfo *out, SignalConstPointerUnauthenticatedChatConnection chat);
|
|
|
|
SignalFfiError *signal_unauthenticated_chat_connection_init_listener(SignalConstPointerUnauthenticatedChatConnection chat, SignalConstPointerFfiChatListenerStruct listener);
|
|
|
|
SignalFfiError *signal_unauthenticated_chat_connection_look_up_username_hash(SignalCPromiseOptionalUuid *promise, SignalConstPointerTokioAsyncContext async_runtime, SignalConstPointerUnauthenticatedChatConnection chat, SignalBorrowedBuffer hash);
|
|
|
|
SignalFfiError *signal_unauthenticated_chat_connection_send(SignalCPromiseFfiChatResponse *promise, SignalConstPointerTokioAsyncContext async_runtime, SignalConstPointerUnauthenticatedChatConnection chat, SignalConstPointerHttpRequest http_request, uint32_t timeout_millis);
|
|
|
|
SignalFfiError *signal_unidentified_sender_message_content_deserialize(SignalMutPointerUnidentifiedSenderMessageContent *out, SignalBorrowedBuffer data);
|
|
|
|
SignalFfiError *signal_unidentified_sender_message_content_destroy(SignalMutPointerUnidentifiedSenderMessageContent p);
|
|
|
|
SignalFfiError *signal_unidentified_sender_message_content_get_content_hint(uint32_t *out, SignalConstPointerUnidentifiedSenderMessageContent m);
|
|
|
|
SignalFfiError *signal_unidentified_sender_message_content_get_contents(SignalOwnedBuffer *out, SignalConstPointerUnidentifiedSenderMessageContent obj);
|
|
|
|
SignalFfiError *signal_unidentified_sender_message_content_get_group_id_or_empty(SignalOwnedBuffer *out, SignalConstPointerUnidentifiedSenderMessageContent m);
|
|
|
|
SignalFfiError *signal_unidentified_sender_message_content_get_msg_type(uint8_t *out, SignalConstPointerUnidentifiedSenderMessageContent m);
|
|
|
|
SignalFfiError *signal_unidentified_sender_message_content_get_sender_cert(SignalMutPointerSenderCertificate *out, SignalConstPointerUnidentifiedSenderMessageContent m);
|
|
|
|
SignalFfiError *signal_unidentified_sender_message_content_new(SignalMutPointerUnidentifiedSenderMessageContent *out, SignalConstPointerCiphertextMessage message, SignalConstPointerSenderCertificate sender, uint32_t content_hint, SignalBorrowedBuffer group_id);
|
|
|
|
SignalFfiError *signal_unidentified_sender_message_content_new_from_content_and_type(SignalMutPointerUnidentifiedSenderMessageContent *out, SignalBorrowedBuffer message_content, uint8_t message_type, SignalConstPointerSenderCertificate sender, uint32_t content_hint, SignalBorrowedBuffer group_id);
|
|
|
|
SignalFfiError *signal_unidentified_sender_message_content_serialize(SignalOwnedBuffer *out, SignalConstPointerUnidentifiedSenderMessageContent obj);
|
|
|
|
SignalFfiError *signal_username_candidates_from(SignalStringArray *out, const char *nickname, uint32_t min_len, uint32_t max_len);
|
|
|
|
SignalFfiError *signal_username_hash(uint8_t (*out)[32], const char *username);
|
|
|
|
SignalFfiError *signal_username_hash_from_parts(uint8_t (*out)[32], const char *nickname, const char *discriminator, uint32_t min_len, uint32_t max_len);
|
|
|
|
SignalFfiError *signal_username_link_create(SignalOwnedBuffer *out, const char *username, SignalBorrowedBuffer entropy);
|
|
|
|
SignalFfiError *signal_username_link_decrypt_username(const char **out, SignalBorrowedBuffer entropy, SignalBorrowedBuffer encrypted_username);
|
|
|
|
SignalFfiError *signal_username_proof(SignalOwnedBuffer *out, const char *username, const uint8_t (*randomness)[32]);
|
|
|
|
SignalFfiError *signal_username_verify(SignalBorrowedBuffer proof, SignalBorrowedBuffer hash);
|
|
|
|
SignalFfiError *signal_uuid_ciphertext_check_valid_contents(SignalBorrowedBuffer buffer);
|
|
|
|
SignalFfiError *signal_validating_mac_destroy(SignalMutPointerValidatingMac p);
|
|
|
|
SignalFfiError *signal_validating_mac_finalize(int32_t *out, SignalMutPointerValidatingMac mac);
|
|
|
|
SignalFfiError *signal_validating_mac_initialize(SignalMutPointerValidatingMac *out, SignalBorrowedBuffer key, uint32_t chunk_size, SignalBorrowedBuffer digests);
|
|
|
|
SignalFfiError *signal_validating_mac_update(int32_t *out, SignalMutPointerValidatingMac mac, SignalBorrowedBuffer bytes, uint32_t offset, uint32_t length);
|
|
|
|
SignalFfiError *signal_webp_sanitizer_sanitize(SignalConstPointerFfiSyncInputStreamStruct input);
|
|
|
|
#endif /* SIGNAL_FFI_H_ */
|