mirror of https://github.com/oxen-io/session-ios
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
783 lines
27 KiB
Swift
783 lines
27 KiB
Swift
//
|
|
// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
// WARNING: This code is generated. Only edit within the markers.
|
|
|
|
public enum SMKProtoError: Error {
|
|
case invalidProtobuf(description: String)
|
|
}
|
|
|
|
// MARK: - SMKProtoServerCertificateCertificate
|
|
|
|
@objc public class SMKProtoServerCertificateCertificate: NSObject {
|
|
|
|
// MARK: - SMKProtoServerCertificateCertificateBuilder
|
|
|
|
@objc public class func builder(id: UInt32, key: Data) -> SMKProtoServerCertificateCertificateBuilder {
|
|
return SMKProtoServerCertificateCertificateBuilder(id: id, key: key)
|
|
}
|
|
|
|
// asBuilder() constructs a builder that reflects the proto's contents.
|
|
@objc public func asBuilder() -> SMKProtoServerCertificateCertificateBuilder {
|
|
let builder = SMKProtoServerCertificateCertificateBuilder(id: id, key: key)
|
|
return builder
|
|
}
|
|
|
|
@objc public class SMKProtoServerCertificateCertificateBuilder: NSObject {
|
|
|
|
private var proto = SMKProtos_ServerCertificate.Certificate()
|
|
|
|
@objc fileprivate override init() {}
|
|
|
|
@objc fileprivate init(id: UInt32, key: Data) {
|
|
super.init()
|
|
|
|
setId(id)
|
|
setKey(key)
|
|
}
|
|
|
|
@objc public func setId(_ valueParam: UInt32) {
|
|
proto.id = valueParam
|
|
}
|
|
|
|
@objc public func setKey(_ valueParam: Data) {
|
|
proto.key = valueParam
|
|
}
|
|
|
|
@objc public func build() throws -> SMKProtoServerCertificateCertificate {
|
|
return try SMKProtoServerCertificateCertificate.parseProto(proto)
|
|
}
|
|
|
|
@objc public func buildSerializedData() throws -> Data {
|
|
return try SMKProtoServerCertificateCertificate.parseProto(proto).serializedData()
|
|
}
|
|
}
|
|
|
|
fileprivate let proto: SMKProtos_ServerCertificate.Certificate
|
|
|
|
@objc public let id: UInt32
|
|
|
|
@objc public let key: Data
|
|
|
|
private init(proto: SMKProtos_ServerCertificate.Certificate,
|
|
id: UInt32,
|
|
key: Data) {
|
|
self.proto = proto
|
|
self.id = id
|
|
self.key = key
|
|
}
|
|
|
|
@objc
|
|
public func serializedData() throws -> Data {
|
|
return try self.proto.serializedData()
|
|
}
|
|
|
|
@objc public class func parseData(_ serializedData: Data) throws -> SMKProtoServerCertificateCertificate {
|
|
let proto = try SMKProtos_ServerCertificate.Certificate(serializedData: serializedData)
|
|
return try parseProto(proto)
|
|
}
|
|
|
|
fileprivate class func parseProto(_ proto: SMKProtos_ServerCertificate.Certificate) throws -> SMKProtoServerCertificateCertificate {
|
|
guard proto.hasID else {
|
|
throw SMKProtoError.invalidProtobuf(description: "\(logTag) missing required field: id")
|
|
}
|
|
let id = proto.id
|
|
|
|
guard proto.hasKey else {
|
|
throw SMKProtoError.invalidProtobuf(description: "\(logTag) missing required field: key")
|
|
}
|
|
let key = proto.key
|
|
|
|
// MARK: - Begin Validation Logic for SMKProtoServerCertificateCertificate -
|
|
|
|
// MARK: - End Validation Logic for SMKProtoServerCertificateCertificate -
|
|
|
|
let result = SMKProtoServerCertificateCertificate(proto: proto,
|
|
id: id,
|
|
key: key)
|
|
return result
|
|
}
|
|
|
|
@objc public override var debugDescription: String {
|
|
return "\(proto)"
|
|
}
|
|
}
|
|
|
|
#if DEBUG
|
|
|
|
extension SMKProtoServerCertificateCertificate {
|
|
@objc public func serializedDataIgnoringErrors() -> Data? {
|
|
return try! self.serializedData()
|
|
}
|
|
}
|
|
|
|
extension SMKProtoServerCertificateCertificate.SMKProtoServerCertificateCertificateBuilder {
|
|
@objc public func buildIgnoringErrors() -> SMKProtoServerCertificateCertificate? {
|
|
return try! self.build()
|
|
}
|
|
}
|
|
|
|
#endif
|
|
|
|
// MARK: - SMKProtoServerCertificate
|
|
|
|
@objc public class SMKProtoServerCertificate: NSObject {
|
|
|
|
// MARK: - SMKProtoServerCertificateBuilder
|
|
|
|
@objc public class func builder(certificate: Data, signature: Data) -> SMKProtoServerCertificateBuilder {
|
|
return SMKProtoServerCertificateBuilder(certificate: certificate, signature: signature)
|
|
}
|
|
|
|
// asBuilder() constructs a builder that reflects the proto's contents.
|
|
@objc public func asBuilder() -> SMKProtoServerCertificateBuilder {
|
|
let builder = SMKProtoServerCertificateBuilder(certificate: certificate, signature: signature)
|
|
return builder
|
|
}
|
|
|
|
@objc public class SMKProtoServerCertificateBuilder: NSObject {
|
|
|
|
private var proto = SMKProtos_ServerCertificate()
|
|
|
|
@objc fileprivate override init() {}
|
|
|
|
@objc fileprivate init(certificate: Data, signature: Data) {
|
|
super.init()
|
|
|
|
setCertificate(certificate)
|
|
setSignature(signature)
|
|
}
|
|
|
|
@objc public func setCertificate(_ valueParam: Data) {
|
|
proto.certificate = valueParam
|
|
}
|
|
|
|
@objc public func setSignature(_ valueParam: Data) {
|
|
proto.signature = valueParam
|
|
}
|
|
|
|
@objc public func build() throws -> SMKProtoServerCertificate {
|
|
return try SMKProtoServerCertificate.parseProto(proto)
|
|
}
|
|
|
|
@objc public func buildSerializedData() throws -> Data {
|
|
return try SMKProtoServerCertificate.parseProto(proto).serializedData()
|
|
}
|
|
}
|
|
|
|
fileprivate let proto: SMKProtos_ServerCertificate
|
|
|
|
@objc public let certificate: Data
|
|
|
|
@objc public let signature: Data
|
|
|
|
private init(proto: SMKProtos_ServerCertificate,
|
|
certificate: Data,
|
|
signature: Data) {
|
|
self.proto = proto
|
|
self.certificate = certificate
|
|
self.signature = signature
|
|
}
|
|
|
|
@objc
|
|
public func serializedData() throws -> Data {
|
|
return try self.proto.serializedData()
|
|
}
|
|
|
|
@objc public class func parseData(_ serializedData: Data) throws -> SMKProtoServerCertificate {
|
|
let proto = try SMKProtos_ServerCertificate(serializedData: serializedData)
|
|
return try parseProto(proto)
|
|
}
|
|
|
|
fileprivate class func parseProto(_ proto: SMKProtos_ServerCertificate) throws -> SMKProtoServerCertificate {
|
|
guard proto.hasCertificate else {
|
|
throw SMKProtoError.invalidProtobuf(description: "\(logTag) missing required field: certificate")
|
|
}
|
|
let certificate = proto.certificate
|
|
|
|
guard proto.hasSignature else {
|
|
throw SMKProtoError.invalidProtobuf(description: "\(logTag) missing required field: signature")
|
|
}
|
|
let signature = proto.signature
|
|
|
|
// MARK: - Begin Validation Logic for SMKProtoServerCertificate -
|
|
|
|
// MARK: - End Validation Logic for SMKProtoServerCertificate -
|
|
|
|
let result = SMKProtoServerCertificate(proto: proto,
|
|
certificate: certificate,
|
|
signature: signature)
|
|
return result
|
|
}
|
|
|
|
@objc public override var debugDescription: String {
|
|
return "\(proto)"
|
|
}
|
|
}
|
|
|
|
#if DEBUG
|
|
|
|
extension SMKProtoServerCertificate {
|
|
@objc public func serializedDataIgnoringErrors() -> Data? {
|
|
return try! self.serializedData()
|
|
}
|
|
}
|
|
|
|
extension SMKProtoServerCertificate.SMKProtoServerCertificateBuilder {
|
|
@objc public func buildIgnoringErrors() -> SMKProtoServerCertificate? {
|
|
return try! self.build()
|
|
}
|
|
}
|
|
|
|
#endif
|
|
|
|
// MARK: - SMKProtoSenderCertificateCertificate
|
|
|
|
@objc public class SMKProtoSenderCertificateCertificate: NSObject {
|
|
|
|
// MARK: - SMKProtoSenderCertificateCertificateBuilder
|
|
|
|
@objc public class func builder(sender: String, senderDevice: UInt32, expires: UInt64, identityKey: Data, signer: SMKProtoServerCertificate) -> SMKProtoSenderCertificateCertificateBuilder {
|
|
return SMKProtoSenderCertificateCertificateBuilder(sender: sender, senderDevice: senderDevice, expires: expires, identityKey: identityKey, signer: signer)
|
|
}
|
|
|
|
// asBuilder() constructs a builder that reflects the proto's contents.
|
|
@objc public func asBuilder() -> SMKProtoSenderCertificateCertificateBuilder {
|
|
let builder = SMKProtoSenderCertificateCertificateBuilder(sender: sender, senderDevice: senderDevice, expires: expires, identityKey: identityKey, signer: signer)
|
|
return builder
|
|
}
|
|
|
|
@objc public class SMKProtoSenderCertificateCertificateBuilder: NSObject {
|
|
|
|
private var proto = SMKProtos_SenderCertificate.Certificate()
|
|
|
|
@objc fileprivate override init() {}
|
|
|
|
@objc fileprivate init(sender: String, senderDevice: UInt32, expires: UInt64, identityKey: Data, signer: SMKProtoServerCertificate) {
|
|
super.init()
|
|
|
|
setSender(sender)
|
|
setSenderDevice(senderDevice)
|
|
setExpires(expires)
|
|
setIdentityKey(identityKey)
|
|
setSigner(signer)
|
|
}
|
|
|
|
@objc public func setSender(_ valueParam: String) {
|
|
proto.sender = valueParam
|
|
}
|
|
|
|
@objc public func setSenderDevice(_ valueParam: UInt32) {
|
|
proto.senderDevice = valueParam
|
|
}
|
|
|
|
@objc public func setExpires(_ valueParam: UInt64) {
|
|
proto.expires = valueParam
|
|
}
|
|
|
|
@objc public func setIdentityKey(_ valueParam: Data) {
|
|
proto.identityKey = valueParam
|
|
}
|
|
|
|
@objc public func setSigner(_ valueParam: SMKProtoServerCertificate) {
|
|
proto.signer = valueParam.proto
|
|
}
|
|
|
|
@objc public func build() throws -> SMKProtoSenderCertificateCertificate {
|
|
return try SMKProtoSenderCertificateCertificate.parseProto(proto)
|
|
}
|
|
|
|
@objc public func buildSerializedData() throws -> Data {
|
|
return try SMKProtoSenderCertificateCertificate.parseProto(proto).serializedData()
|
|
}
|
|
}
|
|
|
|
fileprivate let proto: SMKProtos_SenderCertificate.Certificate
|
|
|
|
@objc public let sender: String
|
|
|
|
@objc public let senderDevice: UInt32
|
|
|
|
@objc public let expires: UInt64
|
|
|
|
@objc public let identityKey: Data
|
|
|
|
@objc public let signer: SMKProtoServerCertificate
|
|
|
|
private init(proto: SMKProtos_SenderCertificate.Certificate,
|
|
sender: String,
|
|
senderDevice: UInt32,
|
|
expires: UInt64,
|
|
identityKey: Data,
|
|
signer: SMKProtoServerCertificate) {
|
|
self.proto = proto
|
|
self.sender = sender
|
|
self.senderDevice = senderDevice
|
|
self.expires = expires
|
|
self.identityKey = identityKey
|
|
self.signer = signer
|
|
}
|
|
|
|
@objc
|
|
public func serializedData() throws -> Data {
|
|
return try self.proto.serializedData()
|
|
}
|
|
|
|
@objc public class func parseData(_ serializedData: Data) throws -> SMKProtoSenderCertificateCertificate {
|
|
let proto = try SMKProtos_SenderCertificate.Certificate(serializedData: serializedData)
|
|
return try parseProto(proto)
|
|
}
|
|
|
|
fileprivate class func parseProto(_ proto: SMKProtos_SenderCertificate.Certificate) throws -> SMKProtoSenderCertificateCertificate {
|
|
guard proto.hasSender else {
|
|
throw SMKProtoError.invalidProtobuf(description: "\(logTag) missing required field: sender")
|
|
}
|
|
let sender = proto.sender
|
|
|
|
guard proto.hasSenderDevice else {
|
|
throw SMKProtoError.invalidProtobuf(description: "\(logTag) missing required field: senderDevice")
|
|
}
|
|
let senderDevice = proto.senderDevice
|
|
|
|
guard proto.hasExpires else {
|
|
throw SMKProtoError.invalidProtobuf(description: "\(logTag) missing required field: expires")
|
|
}
|
|
let expires = proto.expires
|
|
|
|
guard proto.hasIdentityKey else {
|
|
throw SMKProtoError.invalidProtobuf(description: "\(logTag) missing required field: identityKey")
|
|
}
|
|
let identityKey = proto.identityKey
|
|
|
|
guard proto.hasSigner else {
|
|
throw SMKProtoError.invalidProtobuf(description: "\(logTag) missing required field: signer")
|
|
}
|
|
let signer = try SMKProtoServerCertificate.parseProto(proto.signer)
|
|
|
|
// MARK: - Begin Validation Logic for SMKProtoSenderCertificateCertificate -
|
|
|
|
// MARK: - End Validation Logic for SMKProtoSenderCertificateCertificate -
|
|
|
|
let result = SMKProtoSenderCertificateCertificate(proto: proto,
|
|
sender: sender,
|
|
senderDevice: senderDevice,
|
|
expires: expires,
|
|
identityKey: identityKey,
|
|
signer: signer)
|
|
return result
|
|
}
|
|
|
|
@objc public override var debugDescription: String {
|
|
return "\(proto)"
|
|
}
|
|
}
|
|
|
|
#if DEBUG
|
|
|
|
extension SMKProtoSenderCertificateCertificate {
|
|
@objc public func serializedDataIgnoringErrors() -> Data? {
|
|
return try! self.serializedData()
|
|
}
|
|
}
|
|
|
|
extension SMKProtoSenderCertificateCertificate.SMKProtoSenderCertificateCertificateBuilder {
|
|
@objc public func buildIgnoringErrors() -> SMKProtoSenderCertificateCertificate? {
|
|
return try! self.build()
|
|
}
|
|
}
|
|
|
|
#endif
|
|
|
|
// MARK: - SMKProtoSenderCertificate
|
|
|
|
@objc public class SMKProtoSenderCertificate: NSObject {
|
|
|
|
// MARK: - SMKProtoSenderCertificateBuilder
|
|
|
|
@objc public class func builder(sender: String, senderDevice: UInt32) -> SMKProtoSenderCertificateBuilder {
|
|
return SMKProtoSenderCertificateBuilder(sender: sender, senderDevice: senderDevice)
|
|
}
|
|
|
|
// asBuilder() constructs a builder that reflects the proto's contents.
|
|
@objc public func asBuilder() -> SMKProtoSenderCertificateBuilder {
|
|
let builder = SMKProtoSenderCertificateBuilder(sender: sender, senderDevice: senderDevice)
|
|
return builder
|
|
}
|
|
|
|
@objc public class SMKProtoSenderCertificateBuilder: NSObject {
|
|
|
|
private var proto = SMKProtos_SenderCertificate()
|
|
|
|
@objc fileprivate override init() {}
|
|
|
|
@objc fileprivate init(sender: String, senderDevice: UInt32) {
|
|
super.init()
|
|
|
|
setSender(sender)
|
|
setSenderDevice(senderDevice)
|
|
}
|
|
|
|
@objc public func setSender(_ valueParam: String) {
|
|
proto.sender = valueParam
|
|
}
|
|
|
|
@objc public func setSenderDevice(_ valueParam: UInt32) {
|
|
proto.senderDevice = valueParam
|
|
}
|
|
|
|
@objc public func build() throws -> SMKProtoSenderCertificate {
|
|
return try SMKProtoSenderCertificate.parseProto(proto)
|
|
}
|
|
|
|
@objc public func buildSerializedData() throws -> Data {
|
|
return try SMKProtoSenderCertificate.parseProto(proto).serializedData()
|
|
}
|
|
}
|
|
|
|
fileprivate let proto: SMKProtos_SenderCertificate
|
|
|
|
@objc public let sender: String
|
|
|
|
@objc public let senderDevice: UInt32
|
|
|
|
private init(proto: SMKProtos_SenderCertificate,
|
|
sender: String,
|
|
senderDevice: UInt32) {
|
|
self.proto = proto
|
|
self.sender = sender
|
|
self.senderDevice = senderDevice
|
|
}
|
|
|
|
@objc
|
|
public func serializedData() throws -> Data {
|
|
return try self.proto.serializedData()
|
|
}
|
|
|
|
@objc public class func parseData(_ serializedData: Data) throws -> SMKProtoSenderCertificate {
|
|
let proto = try SMKProtos_SenderCertificate(serializedData: serializedData)
|
|
return try parseProto(proto)
|
|
}
|
|
|
|
fileprivate class func parseProto(_ proto: SMKProtos_SenderCertificate) throws -> SMKProtoSenderCertificate {
|
|
guard proto.hasSender else {
|
|
throw SMKProtoError.invalidProtobuf(description: "\(logTag) missing required field: sender")
|
|
}
|
|
let sender = proto.sender
|
|
|
|
guard proto.hasSenderDevice else {
|
|
throw SMKProtoError.invalidProtobuf(description: "\(logTag) missing required field: senderDevice")
|
|
}
|
|
let senderDevice = proto.senderDevice
|
|
|
|
// MARK: - Begin Validation Logic for SMKProtoSenderCertificate -
|
|
|
|
// MARK: - End Validation Logic for SMKProtoSenderCertificate -
|
|
|
|
let result = SMKProtoSenderCertificate(proto: proto,
|
|
sender: sender,
|
|
senderDevice: senderDevice)
|
|
return result
|
|
}
|
|
|
|
@objc public override var debugDescription: String {
|
|
return "\(proto)"
|
|
}
|
|
}
|
|
|
|
#if DEBUG
|
|
|
|
extension SMKProtoSenderCertificate {
|
|
@objc public func serializedDataIgnoringErrors() -> Data? {
|
|
return try! self.serializedData()
|
|
}
|
|
}
|
|
|
|
extension SMKProtoSenderCertificate.SMKProtoSenderCertificateBuilder {
|
|
@objc public func buildIgnoringErrors() -> SMKProtoSenderCertificate? {
|
|
return try! self.build()
|
|
}
|
|
}
|
|
|
|
#endif
|
|
|
|
// MARK: - SMKProtoUnidentifiedSenderMessageMessage
|
|
|
|
@objc public class SMKProtoUnidentifiedSenderMessageMessage: NSObject {
|
|
|
|
// MARK: - SMKProtoUnidentifiedSenderMessageMessageType
|
|
|
|
@objc public enum SMKProtoUnidentifiedSenderMessageMessageType: Int32 {
|
|
case prekeyMessage = 1
|
|
case message = 2
|
|
case fallbackMessage = 3
|
|
}
|
|
|
|
private class func SMKProtoUnidentifiedSenderMessageMessageTypeWrap(_ value: SMKProtos_UnidentifiedSenderMessage.Message.TypeEnum) -> SMKProtoUnidentifiedSenderMessageMessageType {
|
|
switch value {
|
|
case .prekeyMessage: return .prekeyMessage
|
|
case .message: return .message
|
|
case .fallbackMessage: return .fallbackMessage
|
|
}
|
|
}
|
|
|
|
private class func SMKProtoUnidentifiedSenderMessageMessageTypeUnwrap(_ value: SMKProtoUnidentifiedSenderMessageMessageType) -> SMKProtos_UnidentifiedSenderMessage.Message.TypeEnum {
|
|
switch value {
|
|
case .prekeyMessage: return .prekeyMessage
|
|
case .message: return .message
|
|
case .fallbackMessage: return .fallbackMessage
|
|
}
|
|
}
|
|
|
|
// MARK: - SMKProtoUnidentifiedSenderMessageMessageBuilder
|
|
|
|
@objc public class func builder(type: SMKProtoUnidentifiedSenderMessageMessageType, senderCertificate: SMKProtoSenderCertificate, content: Data) -> SMKProtoUnidentifiedSenderMessageMessageBuilder {
|
|
return SMKProtoUnidentifiedSenderMessageMessageBuilder(type: type, senderCertificate: senderCertificate, content: content)
|
|
}
|
|
|
|
// asBuilder() constructs a builder that reflects the proto's contents.
|
|
@objc public func asBuilder() -> SMKProtoUnidentifiedSenderMessageMessageBuilder {
|
|
let builder = SMKProtoUnidentifiedSenderMessageMessageBuilder(type: type, senderCertificate: senderCertificate, content: content)
|
|
return builder
|
|
}
|
|
|
|
@objc public class SMKProtoUnidentifiedSenderMessageMessageBuilder: NSObject {
|
|
|
|
private var proto = SMKProtos_UnidentifiedSenderMessage.Message()
|
|
|
|
@objc fileprivate override init() {}
|
|
|
|
@objc fileprivate init(type: SMKProtoUnidentifiedSenderMessageMessageType, senderCertificate: SMKProtoSenderCertificate, content: Data) {
|
|
super.init()
|
|
|
|
setType(type)
|
|
setSenderCertificate(senderCertificate)
|
|
setContent(content)
|
|
}
|
|
|
|
@objc public func setType(_ valueParam: SMKProtoUnidentifiedSenderMessageMessageType) {
|
|
proto.type = SMKProtoUnidentifiedSenderMessageMessageTypeUnwrap(valueParam)
|
|
}
|
|
|
|
@objc public func setSenderCertificate(_ valueParam: SMKProtoSenderCertificate) {
|
|
proto.senderCertificate = valueParam.proto
|
|
}
|
|
|
|
@objc public func setContent(_ valueParam: Data) {
|
|
proto.content = valueParam
|
|
}
|
|
|
|
@objc public func build() throws -> SMKProtoUnidentifiedSenderMessageMessage {
|
|
return try SMKProtoUnidentifiedSenderMessageMessage.parseProto(proto)
|
|
}
|
|
|
|
@objc public func buildSerializedData() throws -> Data {
|
|
return try SMKProtoUnidentifiedSenderMessageMessage.parseProto(proto).serializedData()
|
|
}
|
|
}
|
|
|
|
fileprivate let proto: SMKProtos_UnidentifiedSenderMessage.Message
|
|
|
|
@objc public let type: SMKProtoUnidentifiedSenderMessageMessageType
|
|
|
|
@objc public let senderCertificate: SMKProtoSenderCertificate
|
|
|
|
@objc public let content: Data
|
|
|
|
private init(proto: SMKProtos_UnidentifiedSenderMessage.Message,
|
|
type: SMKProtoUnidentifiedSenderMessageMessageType,
|
|
senderCertificate: SMKProtoSenderCertificate,
|
|
content: Data) {
|
|
self.proto = proto
|
|
self.type = type
|
|
self.senderCertificate = senderCertificate
|
|
self.content = content
|
|
}
|
|
|
|
@objc
|
|
public func serializedData() throws -> Data {
|
|
return try self.proto.serializedData()
|
|
}
|
|
|
|
@objc public class func parseData(_ serializedData: Data) throws -> SMKProtoUnidentifiedSenderMessageMessage {
|
|
let proto = try SMKProtos_UnidentifiedSenderMessage.Message(serializedData: serializedData)
|
|
return try parseProto(proto)
|
|
}
|
|
|
|
fileprivate class func parseProto(_ proto: SMKProtos_UnidentifiedSenderMessage.Message) throws -> SMKProtoUnidentifiedSenderMessageMessage {
|
|
guard proto.hasType else {
|
|
throw SMKProtoError.invalidProtobuf(description: "\(logTag) missing required field: type")
|
|
}
|
|
let type = SMKProtoUnidentifiedSenderMessageMessageTypeWrap(proto.type)
|
|
|
|
guard proto.hasSenderCertificate else {
|
|
throw SMKProtoError.invalidProtobuf(description: "\(logTag) missing required field: senderCertificate")
|
|
}
|
|
let senderCertificate = try SMKProtoSenderCertificate.parseProto(proto.senderCertificate)
|
|
|
|
guard proto.hasContent else {
|
|
throw SMKProtoError.invalidProtobuf(description: "\(logTag) missing required field: content")
|
|
}
|
|
let content = proto.content
|
|
|
|
// MARK: - Begin Validation Logic for SMKProtoUnidentifiedSenderMessageMessage -
|
|
|
|
// MARK: - End Validation Logic for SMKProtoUnidentifiedSenderMessageMessage -
|
|
|
|
let result = SMKProtoUnidentifiedSenderMessageMessage(proto: proto,
|
|
type: type,
|
|
senderCertificate: senderCertificate,
|
|
content: content)
|
|
return result
|
|
}
|
|
|
|
@objc public override var debugDescription: String {
|
|
return "\(proto)"
|
|
}
|
|
}
|
|
|
|
#if DEBUG
|
|
|
|
extension SMKProtoUnidentifiedSenderMessageMessage {
|
|
@objc public func serializedDataIgnoringErrors() -> Data? {
|
|
return try! self.serializedData()
|
|
}
|
|
}
|
|
|
|
extension SMKProtoUnidentifiedSenderMessageMessage.SMKProtoUnidentifiedSenderMessageMessageBuilder {
|
|
@objc public func buildIgnoringErrors() -> SMKProtoUnidentifiedSenderMessageMessage? {
|
|
return try! self.build()
|
|
}
|
|
}
|
|
|
|
#endif
|
|
|
|
// MARK: - SMKProtoUnidentifiedSenderMessage
|
|
|
|
@objc public class SMKProtoUnidentifiedSenderMessage: NSObject {
|
|
|
|
// MARK: - SMKProtoUnidentifiedSenderMessageBuilder
|
|
|
|
@objc public class func builder(ephemeralPublic: Data, encryptedStatic: Data, encryptedMessage: Data) -> SMKProtoUnidentifiedSenderMessageBuilder {
|
|
return SMKProtoUnidentifiedSenderMessageBuilder(ephemeralPublic: ephemeralPublic, encryptedStatic: encryptedStatic, encryptedMessage: encryptedMessage)
|
|
}
|
|
|
|
// asBuilder() constructs a builder that reflects the proto's contents.
|
|
@objc public func asBuilder() -> SMKProtoUnidentifiedSenderMessageBuilder {
|
|
let builder = SMKProtoUnidentifiedSenderMessageBuilder(ephemeralPublic: ephemeralPublic, encryptedStatic: encryptedStatic, encryptedMessage: encryptedMessage)
|
|
return builder
|
|
}
|
|
|
|
@objc public class SMKProtoUnidentifiedSenderMessageBuilder: NSObject {
|
|
|
|
private var proto = SMKProtos_UnidentifiedSenderMessage()
|
|
|
|
@objc fileprivate override init() {}
|
|
|
|
@objc fileprivate init(ephemeralPublic: Data, encryptedStatic: Data, encryptedMessage: Data) {
|
|
super.init()
|
|
|
|
setEphemeralPublic(ephemeralPublic)
|
|
setEncryptedStatic(encryptedStatic)
|
|
setEncryptedMessage(encryptedMessage)
|
|
}
|
|
|
|
@objc public func setEphemeralPublic(_ valueParam: Data) {
|
|
proto.ephemeralPublic = valueParam
|
|
}
|
|
|
|
@objc public func setEncryptedStatic(_ valueParam: Data) {
|
|
proto.encryptedStatic = valueParam
|
|
}
|
|
|
|
@objc public func setEncryptedMessage(_ valueParam: Data) {
|
|
proto.encryptedMessage = valueParam
|
|
}
|
|
|
|
@objc public func build() throws -> SMKProtoUnidentifiedSenderMessage {
|
|
return try SMKProtoUnidentifiedSenderMessage.parseProto(proto)
|
|
}
|
|
|
|
@objc public func buildSerializedData() throws -> Data {
|
|
return try SMKProtoUnidentifiedSenderMessage.parseProto(proto).serializedData()
|
|
}
|
|
}
|
|
|
|
fileprivate let proto: SMKProtos_UnidentifiedSenderMessage
|
|
|
|
@objc public let ephemeralPublic: Data
|
|
|
|
@objc public let encryptedStatic: Data
|
|
|
|
@objc public let encryptedMessage: Data
|
|
|
|
private init(proto: SMKProtos_UnidentifiedSenderMessage,
|
|
ephemeralPublic: Data,
|
|
encryptedStatic: Data,
|
|
encryptedMessage: Data) {
|
|
self.proto = proto
|
|
self.ephemeralPublic = ephemeralPublic
|
|
self.encryptedStatic = encryptedStatic
|
|
self.encryptedMessage = encryptedMessage
|
|
}
|
|
|
|
@objc
|
|
public func serializedData() throws -> Data {
|
|
return try self.proto.serializedData()
|
|
}
|
|
|
|
@objc public class func parseData(_ serializedData: Data) throws -> SMKProtoUnidentifiedSenderMessage {
|
|
let proto = try SMKProtos_UnidentifiedSenderMessage(serializedData: serializedData)
|
|
return try parseProto(proto)
|
|
}
|
|
|
|
fileprivate class func parseProto(_ proto: SMKProtos_UnidentifiedSenderMessage) throws -> SMKProtoUnidentifiedSenderMessage {
|
|
guard proto.hasEphemeralPublic else {
|
|
throw SMKProtoError.invalidProtobuf(description: "\(logTag) missing required field: ephemeralPublic")
|
|
}
|
|
let ephemeralPublic = proto.ephemeralPublic
|
|
|
|
guard proto.hasEncryptedStatic else {
|
|
throw SMKProtoError.invalidProtobuf(description: "\(logTag) missing required field: encryptedStatic")
|
|
}
|
|
let encryptedStatic = proto.encryptedStatic
|
|
|
|
guard proto.hasEncryptedMessage else {
|
|
throw SMKProtoError.invalidProtobuf(description: "\(logTag) missing required field: encryptedMessage")
|
|
}
|
|
let encryptedMessage = proto.encryptedMessage
|
|
|
|
// MARK: - Begin Validation Logic for SMKProtoUnidentifiedSenderMessage -
|
|
|
|
// MARK: - End Validation Logic for SMKProtoUnidentifiedSenderMessage -
|
|
|
|
let result = SMKProtoUnidentifiedSenderMessage(proto: proto,
|
|
ephemeralPublic: ephemeralPublic,
|
|
encryptedStatic: encryptedStatic,
|
|
encryptedMessage: encryptedMessage)
|
|
return result
|
|
}
|
|
|
|
@objc public override var debugDescription: String {
|
|
return "\(proto)"
|
|
}
|
|
}
|
|
|
|
#if DEBUG
|
|
|
|
extension SMKProtoUnidentifiedSenderMessage {
|
|
@objc public func serializedDataIgnoringErrors() -> Data? {
|
|
return try! self.serializedData()
|
|
}
|
|
}
|
|
|
|
extension SMKProtoUnidentifiedSenderMessage.SMKProtoUnidentifiedSenderMessageBuilder {
|
|
@objc public func buildIgnoringErrors() -> SMKProtoUnidentifiedSenderMessage? {
|
|
return try! self.build()
|
|
}
|
|
}
|
|
|
|
#endif
|