// // Copyright (c) 2019 Open Whisper Systems. All rights reserved. // #import 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 *)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 *)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