session-ios/SignalUtilitiesKit/OWSRequestFactory.h
2020-11-11 10:58:56 +11:00

118 lines
4.5 KiB
Objective-C

//
// Copyright (c) 2019 Open Whisper Systems. All rights reserved.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@class ECKeyPair;
@class OWSDevice;
@class PreKeyRecord;
@class SMKUDAccessKey;
@class SignedPreKeyRecord;
@class TSRequest;
typedef NS_ENUM(NSUInteger, TSVerificationTransport) { TSVerificationTransportVoice = 1, TSVerificationTransportSMS };
@interface OWSRequestFactory : NSObject
- (instancetype)init NS_UNAVAILABLE;
+ (TSRequest *)enable2FARequestWithPin:(NSString *)pin;
+ (TSRequest *)disable2FARequest;
+ (TSRequest *)acknowledgeMessageDeliveryRequestWithSource:(NSString *)source timestamp:(UInt64)timestamp;
+ (TSRequest *)acknowledgeMessageDeliveryRequestWithServerGuid:(NSString *)serverGuid;
+ (TSRequest *)deleteDeviceRequestWithDevice:(OWSDevice *)device;
+ (TSRequest *)deviceProvisioningCodeRequest;
+ (TSRequest *)deviceProvisioningRequestWithMessageBody:(NSData *)messageBody ephemeralDeviceId:(NSString *)deviceId;
+ (TSRequest *)getDevicesRequest;
+ (TSRequest *)getMessagesRequest;
+ (TSRequest *)getProfileRequestWithRecipientId:(NSString *)recipientId
udAccessKey:(nullable SMKUDAccessKey *)udAccessKey
NS_SWIFT_NAME(getProfileRequest(recipientId:udAccessKey:));
+ (TSRequest *)turnServerInfoRequest;
+ (TSRequest *)allocAttachmentRequest;
+ (TSRequest *)attachmentRequestWithAttachmentId:(UInt64)attachmentId;
+ (TSRequest *)contactsIntersectionRequestWithHashesArray:(NSArray<NSString *> *)hashes;
+ (TSRequest *)profileAvatarUploadFormRequest;
+ (TSRequest *)registerForPushRequestWithPushIdentifier:(NSString *)identifier voipIdentifier:(NSString *)voipId;
+ (TSRequest *)updateAttributesRequest;
+ (TSRequest *)unregisterAccountRequest;
+ (TSRequest *)requestVerificationCodeRequestWithPhoneNumber:(NSString *)phoneNumber
captchaToken:(nullable NSString *)captchaToken
transport:(TSVerificationTransport)transport;
+ (TSRequest *)submitMessageRequestWithRecipient:(NSString *)recipientId
messages:(NSArray *)messages
timeStamp:(uint64_t)timeStamp
udAccessKey:(nullable SMKUDAccessKey *)udAccessKey;
+ (TSRequest *)verifyCodeRequestWithVerificationCode:(NSString *)verificationCode
forNumber:(NSString *)phoneNumber
pin:(nullable NSString *)pin
authKey:(NSString *)authKey;
#pragma mark - Prekeys
+ (TSRequest *)availablePreKeysCountRequest;
+ (TSRequest *)currentSignedPreKeyRequest;
+ (TSRequest *)recipientPrekeyRequestWithRecipient:(NSString *)recipientNumber
deviceId:(NSString *)deviceId
udAccessKey:(nullable SMKUDAccessKey *)udAccessKey;
+ (TSRequest *)registerSignedPrekeyRequestWithSignedPreKeyRecord:(SignedPreKeyRecord *)signedPreKey;
+ (TSRequest *)registerPrekeysRequestWithPrekeyArray:(NSArray *)prekeys
identityKey:(NSData *)identityKeyPublic
signedPreKey:(SignedPreKeyRecord *)signedPreKey;
#pragma mark - CDS
+ (TSRequest *)remoteAttestationRequest:(ECKeyPair *)keyPair
enclaveId:(NSString *)enclaveId
authUsername:(NSString *)authUsername
authPassword:(NSString *)authPassword;
+ (TSRequest *)enclaveContactDiscoveryRequestWithId:(NSData *)requestId
addressCount:(NSUInteger)addressCount
encryptedAddressData:(NSData *)encryptedAddressData
cryptIv:(NSData *)cryptIv
cryptMac:(NSData *)cryptMac
enclaveId:(NSString *)enclaveId
authUsername:(NSString *)authUsername
authPassword:(NSString *)authPassword
cookies:(NSArray<NSHTTPCookie *> *)cookies;
+ (TSRequest *)remoteAttestationAuthRequest;
+ (TSRequest *)cdsFeedbackRequestWithStatus:(NSString *)status
reason:(nullable NSString *)reason NS_SWIFT_NAME(cdsFeedbackRequest(status:reason:));
#pragma mark - UD
+ (TSRequest *)udSenderCertificateRequest;
@end
NS_ASSUME_NONNULL_END