This commit is contained in:
Niels Andriesse 2019-09-24 16:03:31 +10:00
parent 97caa6629c
commit 3f07396f94
11 changed files with 111 additions and 115 deletions

View File

@ -91,7 +91,7 @@
#import <SignalServiceKit/OWSDispatch.h>
#import <SignalServiceKit/OWSEndSessionMessage.h>
#import <SignalServiceKit/LKEphemeralMessage.h>
#import <SignalServiceKit/LKDeviceLinkingMessage.h>
#import <SignalServiceKit/LKDeviceLinkMessage.h>
#import <SignalServiceKit/OWSError.h>
#import <SignalServiceKit/OWSFileSystem.h>
#import <SignalServiceKit/LKFriendRequestMessage.h>

View File

@ -4,7 +4,7 @@
NS_ASSUME_NONNULL_BEGIN
@class LKDeviceLinkingMessage;
@class LKDeviceLinkMessage;
@class OWSBlockingManager;
@class OWSContact;
@class OWSContactsManager;
@ -46,7 +46,7 @@ NS_ASSUME_NONNULL_BEGIN
#pragma mark - Durable Message Enqueue
+ (TSOutgoingMessage *)enqueueFriendRequestAcceptanceMessageInThread:(TSThread *)thread;
+ (void)enqueueDeviceLinkingMessage:(LKDeviceLinkingMessage *)message;
+ (void)enqueueDeviceLinkMessage:(LKDeviceLinkMessage *)message;
+ (TSOutgoingMessage *)enqueueMessageWithText:(NSString *)fullMessageText
inThread:(TSThread *)thread

View File

@ -94,7 +94,7 @@ typedef void (^BuildOutgoingMessageCompletionBlock)(TSOutgoingMessage *savedMess
return message;
}
+ (void)enqueueDeviceLinkingMessage:(LKDeviceLinkingMessage *)message
+ (void)enqueueDeviceLinkMessage:(LKDeviceLinkMessage *)message
{
[self.dbConnection asyncReadWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
[self.messageSenderJobQueue addMessage:message transaction:transaction];

View File

@ -66,7 +66,7 @@ message Content {
optional TypingMessage typingMessage = 6;
optional PrekeyBundleMessage prekeyBundleMessage = 101; // Loki
optional LokiAddressMessage lokiAddressMessage = 102; // Loki
optional LokiDeviceLinkingMessage lokiDeviceLinkingMessage = 103; // Loki
optional LokiDeviceLinkMessage lokiDeviceLinkMessage = 103; // Loki
}
message PrekeyBundleMessage { // Loki
@ -86,11 +86,11 @@ message LokiAddressMessage { // Loki
optional uint32 ptpPort = 2;
}
message LokiDeviceLinkingMessage { // Loki
message LokiDeviceLinkMessage { // Loki
enum Type {
REQUEST = 1;
GRANT = 2;
REVOKE = 3;
AUTHORIZATION = 2;
REVOCATION = 3;
}
optional string masterHexEncodedPublicKey = 1;
optional string slaveHexEncodedPublicKey = 2;

View File

@ -4,21 +4,21 @@ public enum DeviceLinkingUtilities {
// When requesting a device link, the slave device signs the master device's public key. When authorizing
// a device link, the master device signs the slave device's public key.
public static func getLinkingRequestMessage(for masterHexEncodedPublicKey: String) -> DeviceLinkingMessage {
public static func getLinkingRequestMessage(for masterHexEncodedPublicKey: String) -> DeviceLinkMessage {
let slaveKeyPair = OWSIdentityManager.shared().identityKeyPair()!
let slaveHexEncodedPublicKey = slaveKeyPair.hexEncodedPublicKey
let slaveSignature = try! Ed25519.sign(Data(hex: masterHexEncodedPublicKey), with: slaveKeyPair)
let thread = TSContactThread.getOrCreateThread(contactId: masterHexEncodedPublicKey)
return DeviceLinkingMessage(in: thread, masterHexEncodedPublicKey: masterHexEncodedPublicKey, slaveHexEncodedPublicKey: slaveHexEncodedPublicKey, masterSignature: nil, slaveSignature: slaveSignature)
return DeviceLinkMessage(in: thread, masterHexEncodedPublicKey: masterHexEncodedPublicKey, slaveHexEncodedPublicKey: slaveHexEncodedPublicKey, masterSignature: nil, slaveSignature: slaveSignature)
}
public static func getLinkingAuthorizationMessage(for deviceLink: DeviceLink) -> DeviceLinkingMessage {
public static func getLinkingAuthorizationMessage(for deviceLink: DeviceLink) -> DeviceLinkMessage {
let masterKeyPair = OWSIdentityManager.shared().identityKeyPair()!
let masterHexEncodedPublicKey = masterKeyPair.hexEncodedPublicKey
let slaveHexEncodedPublicKey = deviceLink.slave.hexEncodedPublicKey
let masterSignature = try! Ed25519.sign(Data(hex: slaveHexEncodedPublicKey), with: masterKeyPair)
let slaveSignature = deviceLink.slave.signature!
let thread = TSContactThread.getOrCreateThread(contactId: slaveHexEncodedPublicKey)
return DeviceLinkingMessage(in: thread, masterHexEncodedPublicKey: masterHexEncodedPublicKey, slaveHexEncodedPublicKey: slaveHexEncodedPublicKey, masterSignature: masterSignature, slaveSignature: slaveSignature)
return DeviceLinkMessage(in: thread, masterHexEncodedPublicKey: masterHexEncodedPublicKey, slaveHexEncodedPublicKey: slaveHexEncodedPublicKey, masterSignature: masterSignature, slaveSignature: slaveSignature)
}
}

View File

@ -1,4 +0,0 @@
public extension Notification.Name {
public static let linkingRequestAuthorized = Notification.Name("linkingRequestAuthorized")
}

View File

@ -1,7 +1,7 @@
#import "TSOutgoingMessage.h"
NS_SWIFT_NAME(DeviceLinkingMessage)
@interface LKDeviceLinkingMessage : TSOutgoingMessage
NS_SWIFT_NAME(DeviceLinkMessage)
@interface LKDeviceLinkMessage : TSOutgoingMessage
@property (nonatomic, readonly) NSString *masterHexEncodedPublicKey;
@property (nonatomic, readonly) NSString *slaveHexEncodedPublicKey;

View File

@ -1,11 +1,11 @@
#import "LKDeviceLinkingMessage.h"
#import "LKDeviceLinkMessage.h"
#import "OWSIdentityManager.h"
#import "SignalRecipient.h"
#import <SignalCoreKit/NSData+OWS.h>
#import <SignalCoreKit/NSDate+OWS.h>
#import <SignalServiceKit/SignalServiceKit-Swift.h>
@implementation LKDeviceLinkingMessage
@implementation LKDeviceLinkMessage
- (instancetype)initInThread:(TSThread *)thread masterHexEncodedPublicKey:(NSString *)masterHexEncodedPublicKey slaveHexEncodedPublicKey:(NSString *)slaveHexEncodedPublicKey masterSignature:(NSData *)masterSignature slaveSignature:(NSData *)slaveSignature {
self = [self initOutgoingMessageWithTimestamp:NSDate.ows_millisecondTimeStamp inThread:thread messageBody:@"" attachmentIds:[NSMutableArray<NSString *> new]
@ -20,18 +20,18 @@
}
- (SSKProtoContentBuilder *)contentBuilder:(SignalRecipient *)recipient {
SSKProtoLokiDeviceLinkingMessageBuilder *deviceLinkingMessageBuilder = [SSKProtoLokiDeviceLinkingMessage builder];
[deviceLinkingMessageBuilder setMasterHexEncodedPublicKey:self.masterHexEncodedPublicKey];
[deviceLinkingMessageBuilder setSlaveHexEncodedPublicKey:self.slaveHexEncodedPublicKey];
if (self.masterSignature != nil) { [deviceLinkingMessageBuilder setMasterSignature:self.masterSignature]; }
[deviceLinkingMessageBuilder setSlaveSignature:self.slaveSignature];
SSKProtoLokiDeviceLinkMessageBuilder *deviceLinkMessageBuilder = [SSKProtoLokiDeviceLinkMessage builder];
[deviceLinkMessageBuilder setMasterHexEncodedPublicKey:self.masterHexEncodedPublicKey];
[deviceLinkMessageBuilder setSlaveHexEncodedPublicKey:self.slaveHexEncodedPublicKey];
if (self.masterSignature != nil) { [deviceLinkMessageBuilder setMasterSignature:self.masterSignature]; }
[deviceLinkMessageBuilder setSlaveSignature:self.slaveSignature];
NSError *error;
SSKProtoLokiDeviceLinkingMessage *deviceLinkingMessage = [deviceLinkingMessageBuilder buildAndReturnError:&error];
if (error || deviceLinkingMessage == nil) {
SSKProtoLokiDeviceLinkMessage *deviceLinkMessage = [deviceLinkMessageBuilder buildAndReturnError:&error];
if (error || deviceLinkMessage == nil) {
OWSFailDebug(@"Failed to build device linking message for: %@ due to error: %@", self.masterHexEncodedPublicKey, error);
}
SSKProtoContentBuilder *contentBuilder = [super contentBuilder:recipient];
[contentBuilder setLokiDeviceLinkingMessage:deviceLinkingMessage];
[contentBuilder setLokiDeviceLinkMessage:deviceLinkMessage];
return contentBuilder;
}

View File

@ -20,7 +20,7 @@
#import "OWSDisappearingMessagesConfiguration.h"
#import "OWSDisappearingMessagesJob.h"
#import "LKEphemeralMessage.h"
#import "LKDeviceLinkingMessage.h"
#import "LKDeviceLinkMessage.h"
#import "OWSIdentityManager.h"
#import "OWSIncomingMessageFinder.h"
#import "OWSIncomingSentMessageTranscript.h"
@ -429,20 +429,20 @@ NS_ASSUME_NONNULL_BEGIN
OWSLogInfo(@"handling content: <Content: %@>", [self descriptionForContent:contentProto]);
// Loki: Handle device linking message
if (contentProto.lokiDeviceLinkingMessage != nil) {
NSString *masterHexEncodedPublicKey = contentProto.lokiDeviceLinkingMessage.masterHexEncodedPublicKey;
NSString *slaveHexEncodedPublicKey = contentProto.lokiDeviceLinkingMessage.slaveHexEncodedPublicKey;
NSData *slaveSignature = contentProto.lokiDeviceLinkingMessage.slaveSignature;
switch (contentProto.lokiDeviceLinkingMessage.type) {
case SSKProtoLokiDeviceLinkingMessageTypeRequest: {
if (contentProto.lokiDeviceLinkMessage != nil) {
NSString *masterHexEncodedPublicKey = contentProto.lokiDeviceLinkMessage.masterHexEncodedPublicKey;
NSString *slaveHexEncodedPublicKey = contentProto.lokiDeviceLinkMessage.slaveHexEncodedPublicKey;
NSData *slaveSignature = contentProto.lokiDeviceLinkMessage.slaveSignature;
switch (contentProto.lokiDeviceLinkMessage.type) {
case SSKProtoLokiDeviceLinkMessageTypeRequest: {
OWSLogInfo(@"[Loki] Received a device linking request from: %@", envelope.source); // Not slaveHexEncodedPublicKey
if (slaveSignature == nil) { OWSFailDebug(@"Received a device linking request from: %@ without a slave signature.", envelope.source); }
[LKDeviceLinkingSession.current processLinkingRequestFrom:slaveHexEncodedPublicKey to:masterHexEncodedPublicKey with:slaveSignature];
break;
}
case SSKProtoLokiDeviceLinkingMessageTypeGrant: {
case SSKProtoLokiDeviceLinkMessageTypeAuthorization: {
OWSLogInfo(@"[Loki] Received a device linking authorization from: %@", envelope.source); // Not slaveHexEncodedPublicKey
NSData *masterSignature = contentProto.lokiDeviceLinkingMessage.masterSignature;
NSData *masterSignature = contentProto.lokiDeviceLinkMessage.masterSignature;
if (masterSignature == nil) { OWSFailDebug(@"Received a device linking authorization from: %@ without a master signature.", envelope.source); }
if (slaveSignature == nil) { OWSFailDebug(@"Received a device linking authorization from: %@ without a slave signature.", envelope.source); }
[LKDeviceLinkingSession.current processLinkingAuthorizationFrom:masterHexEncodedPublicKey for:slaveHexEncodedPublicKey masterSignature:masterSignature slaveSignature:slaveSignature];
@ -1597,7 +1597,7 @@ NS_ASSUME_NONNULL_BEGIN
}
}
- (void)handleDeviceLinkingMessageIfNeeded:(TSIncomingMessage *)message transaction:(YapDatabaseReadWriteTransaction *)transaction {
- (void)handleDeviceLinkMessageIfNeeded:(TSIncomingMessage *)message transaction:(YapDatabaseReadWriteTransaction *)transaction {
}

View File

@ -472,8 +472,8 @@ extension SSKProtoTypingMessage.SSKProtoTypingMessageBuilder {
if let _value = lokiAddressMessage {
builder.setLokiAddressMessage(_value)
}
if let _value = lokiDeviceLinkingMessage {
builder.setLokiDeviceLinkingMessage(_value)
if let _value = lokiDeviceLinkMessage {
builder.setLokiDeviceLinkMessage(_value)
}
return builder
}
@ -516,8 +516,8 @@ extension SSKProtoTypingMessage.SSKProtoTypingMessageBuilder {
proto.lokiAddressMessage = valueParam.proto
}
@objc public func setLokiDeviceLinkingMessage(_ valueParam: SSKProtoLokiDeviceLinkingMessage) {
proto.lokiDeviceLinkingMessage = valueParam.proto
@objc public func setLokiDeviceLinkMessage(_ valueParam: SSKProtoLokiDeviceLinkMessage) {
proto.lokiDeviceLinkMessage = valueParam.proto
}
@objc public func build() throws -> SSKProtoContent {
@ -547,7 +547,7 @@ extension SSKProtoTypingMessage.SSKProtoTypingMessageBuilder {
@objc public let lokiAddressMessage: SSKProtoLokiAddressMessage?
@objc public let lokiDeviceLinkingMessage: SSKProtoLokiDeviceLinkingMessage?
@objc public let lokiDeviceLinkMessage: SSKProtoLokiDeviceLinkMessage?
private init(proto: SignalServiceProtos_Content,
dataMessage: SSKProtoDataMessage?,
@ -558,7 +558,7 @@ extension SSKProtoTypingMessage.SSKProtoTypingMessageBuilder {
typingMessage: SSKProtoTypingMessage?,
prekeyBundleMessage: SSKProtoPrekeyBundleMessage?,
lokiAddressMessage: SSKProtoLokiAddressMessage?,
lokiDeviceLinkingMessage: SSKProtoLokiDeviceLinkingMessage?) {
lokiDeviceLinkMessage: SSKProtoLokiDeviceLinkMessage?) {
self.proto = proto
self.dataMessage = dataMessage
self.syncMessage = syncMessage
@ -568,7 +568,7 @@ extension SSKProtoTypingMessage.SSKProtoTypingMessageBuilder {
self.typingMessage = typingMessage
self.prekeyBundleMessage = prekeyBundleMessage
self.lokiAddressMessage = lokiAddressMessage
self.lokiDeviceLinkingMessage = lokiDeviceLinkingMessage
self.lokiDeviceLinkMessage = lokiDeviceLinkMessage
}
@objc
@ -622,9 +622,9 @@ extension SSKProtoTypingMessage.SSKProtoTypingMessageBuilder {
lokiAddressMessage = try SSKProtoLokiAddressMessage.parseProto(proto.lokiAddressMessage)
}
var lokiDeviceLinkingMessage: SSKProtoLokiDeviceLinkingMessage? = nil
if proto.hasLokiDeviceLinkingMessage {
lokiDeviceLinkingMessage = try SSKProtoLokiDeviceLinkingMessage.parseProto(proto.lokiDeviceLinkingMessage)
var lokiDeviceLinkMessage: SSKProtoLokiDeviceLinkMessage? = nil
if proto.hasLokiDeviceLinkMessage {
lokiDeviceLinkMessage = try SSKProtoLokiDeviceLinkMessage.parseProto(proto.lokiDeviceLinkMessage)
}
// MARK: - Begin Validation Logic for SSKProtoContent -
@ -640,7 +640,7 @@ extension SSKProtoTypingMessage.SSKProtoTypingMessageBuilder {
typingMessage: typingMessage,
prekeyBundleMessage: prekeyBundleMessage,
lokiAddressMessage: lokiAddressMessage,
lokiDeviceLinkingMessage: lokiDeviceLinkingMessage)
lokiDeviceLinkMessage: lokiDeviceLinkMessage)
return result
}
@ -960,43 +960,43 @@ extension SSKProtoLokiAddressMessage.SSKProtoLokiAddressMessageBuilder {
#endif
// MARK: - SSKProtoLokiDeviceLinkingMessage
// MARK: - SSKProtoLokiDeviceLinkMessage
@objc public class SSKProtoLokiDeviceLinkingMessage: NSObject {
@objc public class SSKProtoLokiDeviceLinkMessage: NSObject {
// MARK: - SSKProtoLokiDeviceLinkingMessageType
// MARK: - SSKProtoLokiDeviceLinkMessageType
@objc public enum SSKProtoLokiDeviceLinkingMessageType: Int32 {
@objc public enum SSKProtoLokiDeviceLinkMessageType: Int32 {
case request = 1
case grant = 2
case revoke = 3
case authorization = 2
case revocation = 3
}
private class func SSKProtoLokiDeviceLinkingMessageTypeWrap(_ value: SignalServiceProtos_LokiDeviceLinkingMessage.TypeEnum) -> SSKProtoLokiDeviceLinkingMessageType {
private class func SSKProtoLokiDeviceLinkMessageTypeWrap(_ value: SignalServiceProtos_LokiDeviceLinkMessage.TypeEnum) -> SSKProtoLokiDeviceLinkMessageType {
switch value {
case .request: return .request
case .grant: return .grant
case .revoke: return .revoke
case .authorization: return .authorization
case .revocation: return .revocation
}
}
private class func SSKProtoLokiDeviceLinkingMessageTypeUnwrap(_ value: SSKProtoLokiDeviceLinkingMessageType) -> SignalServiceProtos_LokiDeviceLinkingMessage.TypeEnum {
private class func SSKProtoLokiDeviceLinkMessageTypeUnwrap(_ value: SSKProtoLokiDeviceLinkMessageType) -> SignalServiceProtos_LokiDeviceLinkMessage.TypeEnum {
switch value {
case .request: return .request
case .grant: return .grant
case .revoke: return .revoke
case .authorization: return .authorization
case .revocation: return .revocation
}
}
// MARK: - SSKProtoLokiDeviceLinkingMessageBuilder
// MARK: - SSKProtoLokiDeviceLinkMessageBuilder
@objc public class func builder() -> SSKProtoLokiDeviceLinkingMessageBuilder {
return SSKProtoLokiDeviceLinkingMessageBuilder()
@objc public class func builder() -> SSKProtoLokiDeviceLinkMessageBuilder {
return SSKProtoLokiDeviceLinkMessageBuilder()
}
// asBuilder() constructs a builder that reflects the proto's contents.
@objc public func asBuilder() -> SSKProtoLokiDeviceLinkingMessageBuilder {
let builder = SSKProtoLokiDeviceLinkingMessageBuilder()
@objc public func asBuilder() -> SSKProtoLokiDeviceLinkMessageBuilder {
let builder = SSKProtoLokiDeviceLinkMessageBuilder()
if let _value = masterHexEncodedPublicKey {
builder.setMasterHexEncodedPublicKey(_value)
}
@ -1015,9 +1015,9 @@ extension SSKProtoLokiAddressMessage.SSKProtoLokiAddressMessageBuilder {
return builder
}
@objc public class SSKProtoLokiDeviceLinkingMessageBuilder: NSObject {
@objc public class SSKProtoLokiDeviceLinkMessageBuilder: NSObject {
private var proto = SignalServiceProtos_LokiDeviceLinkingMessage()
private var proto = SignalServiceProtos_LokiDeviceLinkMessage()
@objc fileprivate override init() {}
@ -1037,20 +1037,20 @@ extension SSKProtoLokiAddressMessage.SSKProtoLokiAddressMessageBuilder {
proto.slaveSignature = valueParam
}
@objc public func setType(_ valueParam: SSKProtoLokiDeviceLinkingMessageType) {
proto.type = SSKProtoLokiDeviceLinkingMessageTypeUnwrap(valueParam)
@objc public func setType(_ valueParam: SSKProtoLokiDeviceLinkMessageType) {
proto.type = SSKProtoLokiDeviceLinkMessageTypeUnwrap(valueParam)
}
@objc public func build() throws -> SSKProtoLokiDeviceLinkingMessage {
return try SSKProtoLokiDeviceLinkingMessage.parseProto(proto)
@objc public func build() throws -> SSKProtoLokiDeviceLinkMessage {
return try SSKProtoLokiDeviceLinkMessage.parseProto(proto)
}
@objc public func buildSerializedData() throws -> Data {
return try SSKProtoLokiDeviceLinkingMessage.parseProto(proto).serializedData()
return try SSKProtoLokiDeviceLinkMessage.parseProto(proto).serializedData()
}
}
fileprivate let proto: SignalServiceProtos_LokiDeviceLinkingMessage
fileprivate let proto: SignalServiceProtos_LokiDeviceLinkMessage
@objc public var masterHexEncodedPublicKey: String? {
guard proto.hasMasterHexEncodedPublicKey else {
@ -1092,14 +1092,14 @@ extension SSKProtoLokiAddressMessage.SSKProtoLokiAddressMessageBuilder {
return proto.hasSlaveSignature
}
@objc public var type: SSKProtoLokiDeviceLinkingMessageType {
return SSKProtoLokiDeviceLinkingMessage.SSKProtoLokiDeviceLinkingMessageTypeWrap(proto.type)
@objc public var type: SSKProtoLokiDeviceLinkMessageType {
return SSKProtoLokiDeviceLinkMessage.SSKProtoLokiDeviceLinkMessageTypeWrap(proto.type)
}
@objc public var hasType: Bool {
return proto.hasType
}
private init(proto: SignalServiceProtos_LokiDeviceLinkingMessage) {
private init(proto: SignalServiceProtos_LokiDeviceLinkMessage) {
self.proto = proto
}
@ -1108,17 +1108,17 @@ extension SSKProtoLokiAddressMessage.SSKProtoLokiAddressMessageBuilder {
return try self.proto.serializedData()
}
@objc public class func parseData(_ serializedData: Data) throws -> SSKProtoLokiDeviceLinkingMessage {
let proto = try SignalServiceProtos_LokiDeviceLinkingMessage(serializedData: serializedData)
@objc public class func parseData(_ serializedData: Data) throws -> SSKProtoLokiDeviceLinkMessage {
let proto = try SignalServiceProtos_LokiDeviceLinkMessage(serializedData: serializedData)
return try parseProto(proto)
}
fileprivate class func parseProto(_ proto: SignalServiceProtos_LokiDeviceLinkingMessage) throws -> SSKProtoLokiDeviceLinkingMessage {
// MARK: - Begin Validation Logic for SSKProtoLokiDeviceLinkingMessage -
fileprivate class func parseProto(_ proto: SignalServiceProtos_LokiDeviceLinkMessage) throws -> SSKProtoLokiDeviceLinkMessage {
// MARK: - Begin Validation Logic for SSKProtoLokiDeviceLinkMessage -
// MARK: - End Validation Logic for SSKProtoLokiDeviceLinkingMessage -
// MARK: - End Validation Logic for SSKProtoLokiDeviceLinkMessage -
let result = SSKProtoLokiDeviceLinkingMessage(proto: proto)
let result = SSKProtoLokiDeviceLinkMessage(proto: proto)
return result
}
@ -1129,14 +1129,14 @@ extension SSKProtoLokiAddressMessage.SSKProtoLokiAddressMessageBuilder {
#if DEBUG
extension SSKProtoLokiDeviceLinkingMessage {
extension SSKProtoLokiDeviceLinkMessage {
@objc public func serializedDataIgnoringErrors() -> Data? {
return try! self.serializedData()
}
}
extension SSKProtoLokiDeviceLinkingMessage.SSKProtoLokiDeviceLinkingMessageBuilder {
@objc public func buildIgnoringErrors() -> SSKProtoLokiDeviceLinkingMessage? {
extension SSKProtoLokiDeviceLinkMessage.SSKProtoLokiDeviceLinkMessageBuilder {
@objc public func buildIgnoringErrors() -> SSKProtoLokiDeviceLinkMessage? {
return try! self.build()
}
}

View File

@ -354,14 +354,14 @@ struct SignalServiceProtos_Content {
mutating func clearLokiAddressMessage() {_uniqueStorage()._lokiAddressMessage = nil}
/// Loki
var lokiDeviceLinkingMessage: SignalServiceProtos_LokiDeviceLinkingMessage {
get {return _storage._lokiDeviceLinkingMessage ?? SignalServiceProtos_LokiDeviceLinkingMessage()}
set {_uniqueStorage()._lokiDeviceLinkingMessage = newValue}
var lokiDeviceLinkMessage: SignalServiceProtos_LokiDeviceLinkMessage {
get {return _storage._lokiDeviceLinkMessage ?? SignalServiceProtos_LokiDeviceLinkMessage()}
set {_uniqueStorage()._lokiDeviceLinkMessage = newValue}
}
/// Returns true if `lokiDeviceLinkingMessage` has been explicitly set.
var hasLokiDeviceLinkingMessage: Bool {return _storage._lokiDeviceLinkingMessage != nil}
/// Clears the value of `lokiDeviceLinkingMessage`. Subsequent reads from it will return its default value.
mutating func clearLokiDeviceLinkingMessage() {_uniqueStorage()._lokiDeviceLinkingMessage = nil}
/// Returns true if `lokiDeviceLinkMessage` has been explicitly set.
var hasLokiDeviceLinkMessage: Bool {return _storage._lokiDeviceLinkMessage != nil}
/// Clears the value of `lokiDeviceLinkMessage`. Subsequent reads from it will return its default value.
mutating func clearLokiDeviceLinkMessage() {_uniqueStorage()._lokiDeviceLinkMessage = nil}
var unknownFields = SwiftProtobuf.UnknownStorage()
@ -487,7 +487,7 @@ struct SignalServiceProtos_LokiAddressMessage {
}
/// Loki
struct SignalServiceProtos_LokiDeviceLinkingMessage {
struct SignalServiceProtos_LokiDeviceLinkMessage {
// SwiftProtobuf.Message conformance is added in an extension below. See the
// `Message` and `Message+*Additions` files in the SwiftProtobuf library for
// methods supported on all messages.
@ -528,7 +528,7 @@ struct SignalServiceProtos_LokiDeviceLinkingMessage {
/// Clears the value of `slaveSignature`. Subsequent reads from it will return its default value.
mutating func clearSlaveSignature() {self._slaveSignature = nil}
var type: SignalServiceProtos_LokiDeviceLinkingMessage.TypeEnum {
var type: SignalServiceProtos_LokiDeviceLinkMessage.TypeEnum {
get {return _type ?? .request}
set {_type = newValue}
}
@ -542,8 +542,8 @@ struct SignalServiceProtos_LokiDeviceLinkingMessage {
enum TypeEnum: SwiftProtobuf.Enum {
typealias RawValue = Int
case request // = 1
case grant // = 2
case revoke // = 3
case authorization // = 2
case revocation // = 3
init() {
self = .request
@ -552,8 +552,8 @@ struct SignalServiceProtos_LokiDeviceLinkingMessage {
init?(rawValue: Int) {
switch rawValue {
case 1: self = .request
case 2: self = .grant
case 3: self = .revoke
case 2: self = .authorization
case 3: self = .revocation
default: return nil
}
}
@ -561,8 +561,8 @@ struct SignalServiceProtos_LokiDeviceLinkingMessage {
var rawValue: Int {
switch self {
case .request: return 1
case .grant: return 2
case .revoke: return 3
case .authorization: return 2
case .revocation: return 3
}
}
@ -574,12 +574,12 @@ struct SignalServiceProtos_LokiDeviceLinkingMessage {
fileprivate var _slaveHexEncodedPublicKey: String? = nil
fileprivate var _masterSignature: Data? = nil
fileprivate var _slaveSignature: Data? = nil
fileprivate var _type: SignalServiceProtos_LokiDeviceLinkingMessage.TypeEnum? = nil
fileprivate var _type: SignalServiceProtos_LokiDeviceLinkMessage.TypeEnum? = nil
}
#if swift(>=4.2)
extension SignalServiceProtos_LokiDeviceLinkingMessage.TypeEnum: CaseIterable {
extension SignalServiceProtos_LokiDeviceLinkMessage.TypeEnum: CaseIterable {
// Support synthesized by the compiler.
}
@ -2811,7 +2811,7 @@ extension SignalServiceProtos_Content: SwiftProtobuf.Message, SwiftProtobuf._Mes
6: .same(proto: "typingMessage"),
101: .same(proto: "prekeyBundleMessage"),
102: .same(proto: "lokiAddressMessage"),
103: .same(proto: "lokiDeviceLinkingMessage"),
103: .same(proto: "lokiDeviceLinkMessage"),
]
fileprivate class _StorageClass {
@ -2823,7 +2823,7 @@ extension SignalServiceProtos_Content: SwiftProtobuf.Message, SwiftProtobuf._Mes
var _typingMessage: SignalServiceProtos_TypingMessage? = nil
var _prekeyBundleMessage: SignalServiceProtos_PrekeyBundleMessage? = nil
var _lokiAddressMessage: SignalServiceProtos_LokiAddressMessage? = nil
var _lokiDeviceLinkingMessage: SignalServiceProtos_LokiDeviceLinkingMessage? = nil
var _lokiDeviceLinkMessage: SignalServiceProtos_LokiDeviceLinkMessage? = nil
static let defaultInstance = _StorageClass()
@ -2838,7 +2838,7 @@ extension SignalServiceProtos_Content: SwiftProtobuf.Message, SwiftProtobuf._Mes
_typingMessage = source._typingMessage
_prekeyBundleMessage = source._prekeyBundleMessage
_lokiAddressMessage = source._lokiAddressMessage
_lokiDeviceLinkingMessage = source._lokiDeviceLinkingMessage
_lokiDeviceLinkMessage = source._lokiDeviceLinkMessage
}
}
@ -2862,7 +2862,7 @@ extension SignalServiceProtos_Content: SwiftProtobuf.Message, SwiftProtobuf._Mes
case 6: try decoder.decodeSingularMessageField(value: &_storage._typingMessage)
case 101: try decoder.decodeSingularMessageField(value: &_storage._prekeyBundleMessage)
case 102: try decoder.decodeSingularMessageField(value: &_storage._lokiAddressMessage)
case 103: try decoder.decodeSingularMessageField(value: &_storage._lokiDeviceLinkingMessage)
case 103: try decoder.decodeSingularMessageField(value: &_storage._lokiDeviceLinkMessage)
default: break
}
}
@ -2895,7 +2895,7 @@ extension SignalServiceProtos_Content: SwiftProtobuf.Message, SwiftProtobuf._Mes
if let v = _storage._lokiAddressMessage {
try visitor.visitSingularMessageField(value: v, fieldNumber: 102)
}
if let v = _storage._lokiDeviceLinkingMessage {
if let v = _storage._lokiDeviceLinkMessage {
try visitor.visitSingularMessageField(value: v, fieldNumber: 103)
}
}
@ -2915,7 +2915,7 @@ extension SignalServiceProtos_Content: SwiftProtobuf.Message, SwiftProtobuf._Mes
if _storage._typingMessage != rhs_storage._typingMessage {return false}
if _storage._prekeyBundleMessage != rhs_storage._prekeyBundleMessage {return false}
if _storage._lokiAddressMessage != rhs_storage._lokiAddressMessage {return false}
if _storage._lokiDeviceLinkingMessage != rhs_storage._lokiDeviceLinkingMessage {return false}
if _storage._lokiDeviceLinkMessage != rhs_storage._lokiDeviceLinkMessage {return false}
return true
}
if !storagesAreEqual {return false}
@ -3025,8 +3025,8 @@ extension SignalServiceProtos_LokiAddressMessage: SwiftProtobuf.Message, SwiftPr
}
}
extension SignalServiceProtos_LokiDeviceLinkingMessage: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
static let protoMessageName: String = _protobuf_package + ".LokiDeviceLinkingMessage"
extension SignalServiceProtos_LokiDeviceLinkMessage: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
static let protoMessageName: String = _protobuf_package + ".LokiDeviceLinkMessage"
static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
1: .same(proto: "masterHexEncodedPublicKey"),
2: .same(proto: "slaveHexEncodedPublicKey"),
@ -3067,7 +3067,7 @@ extension SignalServiceProtos_LokiDeviceLinkingMessage: SwiftProtobuf.Message, S
try unknownFields.traverse(visitor: &visitor)
}
static func ==(lhs: SignalServiceProtos_LokiDeviceLinkingMessage, rhs: SignalServiceProtos_LokiDeviceLinkingMessage) -> Bool {
static func ==(lhs: SignalServiceProtos_LokiDeviceLinkMessage, rhs: SignalServiceProtos_LokiDeviceLinkMessage) -> Bool {
if lhs._masterHexEncodedPublicKey != rhs._masterHexEncodedPublicKey {return false}
if lhs._slaveHexEncodedPublicKey != rhs._slaveHexEncodedPublicKey {return false}
if lhs._masterSignature != rhs._masterSignature {return false}
@ -3078,11 +3078,11 @@ extension SignalServiceProtos_LokiDeviceLinkingMessage: SwiftProtobuf.Message, S
}
}
extension SignalServiceProtos_LokiDeviceLinkingMessage.TypeEnum: SwiftProtobuf._ProtoNameProviding {
extension SignalServiceProtos_LokiDeviceLinkMessage.TypeEnum: SwiftProtobuf._ProtoNameProviding {
static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
1: .same(proto: "REQUEST"),
2: .same(proto: "GRANT"),
3: .same(proto: "REVOKE"),
2: .same(proto: "AUTHORIZATION"),
3: .same(proto: "REVOCATION"),
]
}