2018-08-01 17:28:52 +02:00
|
|
|
//
|
|
|
|
// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
|
|
|
|
//
|
|
|
|
|
|
|
|
import Foundation
|
|
|
|
|
|
|
|
// WARNING: This code is generated. Only edit within the markers.
|
|
|
|
|
|
|
|
public enum ProvisioningProtoError: Error {
|
|
|
|
case invalidProtobuf(description: String)
|
|
|
|
}
|
|
|
|
|
|
|
|
// MARK: - ProvisioningProtoProvisionEnvelope
|
|
|
|
|
|
|
|
@objc public class ProvisioningProtoProvisionEnvelope: NSObject {
|
|
|
|
|
2018-08-02 20:28:13 +02:00
|
|
|
// MARK: - ProvisioningProtoProvisionEnvelopeBuilder
|
2018-08-01 17:44:29 +02:00
|
|
|
|
2018-08-02 20:28:13 +02:00
|
|
|
@objc public class ProvisioningProtoProvisionEnvelopeBuilder: NSObject {
|
|
|
|
|
|
|
|
private var proto = ProvisioningProtos_ProvisionEnvelope()
|
|
|
|
|
|
|
|
@objc public override init() {}
|
|
|
|
|
|
|
|
@objc public func setPublicKey(_ valueParam: Data) {
|
|
|
|
proto.publicKey = valueParam
|
|
|
|
}
|
|
|
|
|
|
|
|
@objc public func setBody(_ valueParam: Data) {
|
|
|
|
proto.body = valueParam
|
|
|
|
}
|
|
|
|
|
|
|
|
@objc public func build() throws -> ProvisioningProtoProvisionEnvelope {
|
|
|
|
let wrapper = try ProvisioningProtoProvisionEnvelope.parseProto(proto)
|
|
|
|
return wrapper
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
fileprivate let proto: ProvisioningProtos_ProvisionEnvelope
|
|
|
|
|
2018-08-03 20:03:02 +02:00
|
|
|
@objc public let publicKey: Data
|
|
|
|
@objc public let body: Data
|
2018-08-02 20:28:13 +02:00
|
|
|
|
2018-08-03 20:03:02 +02:00
|
|
|
private init(proto: ProvisioningProtos_ProvisionEnvelope,
|
|
|
|
publicKey: Data,
|
|
|
|
body: Data) {
|
2018-08-02 20:28:13 +02:00
|
|
|
self.proto = proto
|
2018-08-03 20:03:02 +02:00
|
|
|
self.publicKey = publicKey
|
|
|
|
self.body = body
|
2018-08-01 17:44:29 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
@objc
|
|
|
|
public func serializedData() throws -> Data {
|
2018-08-02 20:28:13 +02:00
|
|
|
return try self.proto.serializedData()
|
2018-08-01 17:44:29 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
@objc public class func parseData(_ serializedData: Data) throws -> ProvisioningProtoProvisionEnvelope {
|
|
|
|
let proto = try ProvisioningProtos_ProvisionEnvelope(serializedData: serializedData)
|
|
|
|
return try parseProto(proto)
|
|
|
|
}
|
|
|
|
|
|
|
|
fileprivate class func parseProto(_ proto: ProvisioningProtos_ProvisionEnvelope) throws -> ProvisioningProtoProvisionEnvelope {
|
2018-08-03 20:03:02 +02:00
|
|
|
guard proto.hasPublicKey else {
|
|
|
|
throw ProvisioningProtoError.invalidProtobuf(description: "\(logTag) missing required field: publicKey")
|
|
|
|
}
|
|
|
|
let publicKey = proto.publicKey
|
|
|
|
|
|
|
|
guard proto.hasBody else {
|
|
|
|
throw ProvisioningProtoError.invalidProtobuf(description: "\(logTag) missing required field: body")
|
|
|
|
}
|
|
|
|
let body = proto.body
|
|
|
|
|
2018-08-01 17:44:29 +02:00
|
|
|
// MARK: - Begin Validation Logic for ProvisioningProtoProvisionEnvelope -
|
|
|
|
|
|
|
|
// MARK: - End Validation Logic for ProvisioningProtoProvisionEnvelope -
|
|
|
|
|
2018-08-03 20:03:02 +02:00
|
|
|
let result = ProvisioningProtoProvisionEnvelope(proto: proto,
|
|
|
|
publicKey: publicKey,
|
|
|
|
body: body)
|
2018-08-01 17:44:29 +02:00
|
|
|
return result
|
|
|
|
}
|
2018-08-01 17:28:52 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
// MARK: - ProvisioningProtoProvisionMessage
|
|
|
|
|
|
|
|
@objc public class ProvisioningProtoProvisionMessage: NSObject {
|
|
|
|
|
2018-08-02 20:28:13 +02:00
|
|
|
// MARK: - ProvisioningProtoProvisionMessageBuilder
|
2018-08-01 17:44:29 +02:00
|
|
|
|
2018-08-02 20:28:13 +02:00
|
|
|
@objc public class ProvisioningProtoProvisionMessageBuilder: NSObject {
|
2018-08-01 17:44:29 +02:00
|
|
|
|
2018-08-02 20:28:13 +02:00
|
|
|
private var proto = ProvisioningProtos_ProvisionMessage()
|
2018-08-01 17:44:29 +02:00
|
|
|
|
2018-08-02 20:28:13 +02:00
|
|
|
@objc public override init() {}
|
|
|
|
|
|
|
|
@objc public func setIdentityKeyPublic(_ valueParam: Data) {
|
|
|
|
proto.identityKeyPublic = valueParam
|
2018-08-01 17:44:29 +02:00
|
|
|
}
|
|
|
|
|
2018-08-02 20:28:13 +02:00
|
|
|
@objc public func setIdentityKeyPrivate(_ valueParam: Data) {
|
|
|
|
proto.identityKeyPrivate = valueParam
|
2018-08-01 17:44:29 +02:00
|
|
|
}
|
|
|
|
|
2018-08-02 20:28:13 +02:00
|
|
|
@objc public func setNumber(_ valueParam: String) {
|
|
|
|
proto.number = valueParam
|
2018-08-01 17:44:29 +02:00
|
|
|
}
|
|
|
|
|
2018-08-02 20:28:13 +02:00
|
|
|
@objc public func setProvisioningCode(_ valueParam: String) {
|
|
|
|
proto.provisioningCode = valueParam
|
2018-08-01 17:44:29 +02:00
|
|
|
}
|
|
|
|
|
2018-08-02 20:28:13 +02:00
|
|
|
@objc public func setUserAgent(_ valueParam: String) {
|
|
|
|
proto.userAgent = valueParam
|
2018-08-01 17:44:29 +02:00
|
|
|
}
|
|
|
|
|
2018-08-02 20:28:13 +02:00
|
|
|
@objc public func setProfileKey(_ valueParam: Data) {
|
|
|
|
proto.profileKey = valueParam
|
2018-08-01 17:44:29 +02:00
|
|
|
}
|
|
|
|
|
2018-08-02 20:28:13 +02:00
|
|
|
@objc public func setReadReceipts(_ valueParam: Bool) {
|
|
|
|
proto.readReceipts = valueParam
|
2018-08-01 17:44:29 +02:00
|
|
|
}
|
|
|
|
|
2018-08-02 20:28:13 +02:00
|
|
|
@objc public func build() throws -> ProvisioningProtoProvisionMessage {
|
|
|
|
let wrapper = try ProvisioningProtoProvisionMessage.parseProto(proto)
|
|
|
|
return wrapper
|
|
|
|
}
|
|
|
|
}
|
2018-08-01 17:44:29 +02:00
|
|
|
|
2018-08-02 20:28:13 +02:00
|
|
|
fileprivate let proto: ProvisioningProtos_ProvisionMessage
|
2018-08-01 17:44:29 +02:00
|
|
|
|
2018-08-03 20:03:02 +02:00
|
|
|
@objc public let identityKeyPublic: Data
|
|
|
|
@objc public let identityKeyPrivate: Data
|
|
|
|
@objc public let number: String
|
|
|
|
@objc public let provisioningCode: String
|
|
|
|
@objc public let userAgent: String
|
|
|
|
@objc public let profileKey: Data
|
|
|
|
@objc public let readReceipts: Bool
|
|
|
|
|
|
|
|
private init(proto: ProvisioningProtos_ProvisionMessage,
|
|
|
|
identityKeyPublic: Data,
|
|
|
|
identityKeyPrivate: Data,
|
|
|
|
number: String,
|
|
|
|
provisioningCode: String,
|
|
|
|
userAgent: String,
|
|
|
|
profileKey: Data,
|
|
|
|
readReceipts: Bool) {
|
|
|
|
self.proto = proto
|
|
|
|
self.identityKeyPublic = identityKeyPublic
|
|
|
|
self.identityKeyPrivate = identityKeyPrivate
|
|
|
|
self.number = number
|
|
|
|
self.provisioningCode = provisioningCode
|
|
|
|
self.userAgent = userAgent
|
|
|
|
self.profileKey = profileKey
|
|
|
|
self.readReceipts = readReceipts
|
|
|
|
}
|
|
|
|
|
|
|
|
@objc
|
|
|
|
public func serializedData() throws -> Data {
|
|
|
|
return try self.proto.serializedData()
|
2018-08-02 20:28:13 +02:00
|
|
|
}
|
2018-08-03 20:03:02 +02:00
|
|
|
|
|
|
|
@objc public class func parseData(_ serializedData: Data) throws -> ProvisioningProtoProvisionMessage {
|
|
|
|
let proto = try ProvisioningProtos_ProvisionMessage(serializedData: serializedData)
|
|
|
|
return try parseProto(proto)
|
2018-08-01 17:44:29 +02:00
|
|
|
}
|
|
|
|
|
2018-08-03 20:03:02 +02:00
|
|
|
fileprivate class func parseProto(_ proto: ProvisioningProtos_ProvisionMessage) throws -> ProvisioningProtoProvisionMessage {
|
|
|
|
guard proto.hasIdentityKeyPublic else {
|
|
|
|
throw ProvisioningProtoError.invalidProtobuf(description: "\(logTag) missing required field: identityKeyPublic")
|
|
|
|
}
|
|
|
|
let identityKeyPublic = proto.identityKeyPublic
|
|
|
|
|
2018-08-02 20:28:13 +02:00
|
|
|
guard proto.hasIdentityKeyPrivate else {
|
2018-08-03 20:03:02 +02:00
|
|
|
throw ProvisioningProtoError.invalidProtobuf(description: "\(logTag) missing required field: identityKeyPrivate")
|
2018-08-02 20:28:13 +02:00
|
|
|
}
|
2018-08-03 20:03:02 +02:00
|
|
|
let identityKeyPrivate = proto.identityKeyPrivate
|
2018-08-01 17:44:29 +02:00
|
|
|
|
2018-08-02 20:28:13 +02:00
|
|
|
guard proto.hasNumber else {
|
2018-08-03 20:03:02 +02:00
|
|
|
throw ProvisioningProtoError.invalidProtobuf(description: "\(logTag) missing required field: number")
|
2018-08-02 20:28:13 +02:00
|
|
|
}
|
2018-08-03 20:03:02 +02:00
|
|
|
let number = proto.number
|
2018-08-01 17:44:29 +02:00
|
|
|
|
2018-08-02 20:28:13 +02:00
|
|
|
guard proto.hasProvisioningCode else {
|
2018-08-03 20:03:02 +02:00
|
|
|
throw ProvisioningProtoError.invalidProtobuf(description: "\(logTag) missing required field: provisioningCode")
|
2018-08-02 20:28:13 +02:00
|
|
|
}
|
2018-08-03 20:03:02 +02:00
|
|
|
let provisioningCode = proto.provisioningCode
|
2018-08-01 17:44:29 +02:00
|
|
|
|
2018-08-02 20:28:13 +02:00
|
|
|
guard proto.hasUserAgent else {
|
2018-08-03 20:03:02 +02:00
|
|
|
throw ProvisioningProtoError.invalidProtobuf(description: "\(logTag) missing required field: userAgent")
|
2018-08-02 20:28:13 +02:00
|
|
|
}
|
2018-08-03 20:03:02 +02:00
|
|
|
let userAgent = proto.userAgent
|
2018-08-01 17:44:29 +02:00
|
|
|
|
2018-08-02 20:28:13 +02:00
|
|
|
guard proto.hasProfileKey else {
|
2018-08-03 20:03:02 +02:00
|
|
|
throw ProvisioningProtoError.invalidProtobuf(description: "\(logTag) missing required field: profileKey")
|
2018-08-02 20:28:13 +02:00
|
|
|
}
|
2018-08-03 20:03:02 +02:00
|
|
|
let profileKey = proto.profileKey
|
2018-08-01 17:44:29 +02:00
|
|
|
|
2018-08-03 20:03:02 +02:00
|
|
|
guard proto.hasReadReceipts else {
|
|
|
|
throw ProvisioningProtoError.invalidProtobuf(description: "\(logTag) missing required field: readReceipts")
|
|
|
|
}
|
|
|
|
let readReceipts = proto.readReceipts
|
2018-08-02 20:28:13 +02:00
|
|
|
|
|
|
|
// MARK: - Begin Validation Logic for ProvisioningProtoProvisionMessage -
|
|
|
|
|
|
|
|
// MARK: - End Validation Logic for ProvisioningProtoProvisionMessage -
|
|
|
|
|
2018-08-03 20:03:02 +02:00
|
|
|
let result = ProvisioningProtoProvisionMessage(proto: proto,
|
|
|
|
identityKeyPublic: identityKeyPublic,
|
|
|
|
identityKeyPrivate: identityKeyPrivate,
|
|
|
|
number: number,
|
|
|
|
provisioningCode: provisioningCode,
|
|
|
|
userAgent: userAgent,
|
|
|
|
profileKey: profileKey,
|
|
|
|
readReceipts: readReceipts)
|
2018-08-02 20:28:13 +02:00
|
|
|
return result
|
2018-08-01 17:44:29 +02:00
|
|
|
}
|
2018-08-01 17:28:52 +02:00
|
|
|
}
|