Skip to content
This repository has been archived by the owner on Mar 5, 2021. It is now read-only.

Commit

Permalink
modify sender certificate
Browse files Browse the repository at this point in the history
  • Loading branch information
RyanRory committed Jan 29, 2020
1 parent 8a4786d commit aae090d
Show file tree
Hide file tree
Showing 8 changed files with 156 additions and 118 deletions.
5 changes: 3 additions & 2 deletions AxolotlKit/AxolotlKit/Classes/CipherMessage/CipherMessage.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,9 @@
#import <Foundation/Foundation.h>

typedef NS_ENUM(NSUInteger, CipherMessageType) {
CipherMessageType_Prekey = 0,
CipherMessageType_Whisper,
CipherMessageType_Prekey = 3,
CipherMessageType_Whisper = 1,
CipherMessageType_LokiFriendREquest = 101,
};

@protocol CipherMessage <NSObject>
Expand Down
16 changes: 16 additions & 0 deletions Pods.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -939,6 +939,10 @@
7B4BC195EA1F01AFAACFDA1E46462DF2 /* Google_Protobuf_Wrappers+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37FDB090722B49D0728C605B50666B7E /* Google_Protobuf_Wrappers+Extensions.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
7B9968DA504DDEF410CF6C7A61ED63D6 /* TSInvalidIdentityKeySendingErrorMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 83490240E3369FFAB4451EE971C77D49 /* TSInvalidIdentityKeySendingErrorMessage.h */; settings = {ATTRIBUTES = (Public, ); }; };
7BC75B419A0F57A6AE74E71C32C8AB11 /* OWSOutgoingSyncMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 01F349C2A1DF8CAB0626493509DEBA88 /* OWSOutgoingSyncMessage.h */; settings = {ATTRIBUTES = (Public, ); }; };
7BD4836B23E0FD7B0007F1BA /* LKGroupUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 7BD4836923E0FD7A0007F1BA /* LKGroupUtilities.m */; };
7BD4836C23E0FD7B0007F1BA /* LKGroupUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BD4836A23E0FD7A0007F1BA /* LKGroupUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; };
7BD4836F23E0FECA0007F1BA /* LKSessionRequestMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 7BD4836D23E0FECA0007F1BA /* LKSessionRequestMessage.m */; };
7BD4837023E0FECA0007F1BA /* LKSessionRequestMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BD4836E23E0FECA0007F1BA /* LKSessionRequestMessage.h */; };
7BD8BD67ED5976F0C8C0C856803426F8 /* YapDatabaseLogging.h in Headers */ = {isa = PBXBuildFile; fileRef = FFEDAA84C1E8D2AE4B3BCCE5560B45C8 /* YapDatabaseLogging.h */; settings = {ATTRIBUTES = (Private, ); }; };
7BFA00E0925B9DD2825A6DD4B17B4054 /* YapDatabaseSecondaryIndexConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A90CF0E33F7005E4018B5D407E34F67 /* YapDatabaseSecondaryIndexConnection.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
7C249A262E7B59862776D6D691D852AE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B6A3B5F625D05D1A8083E728A75AB1F4 /* Foundation.framework */; };
Expand Down Expand Up @@ -4029,6 +4033,10 @@
7B78468425550A60EE166E6B8AEE0B11 /* YapDatabaseViewChange.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewChange.h; path = YapDatabase/Extensions/View/Utilities/YapDatabaseViewChange.h; sourceTree = "<group>"; };
7B8E856EC2F9A34AFABA6856E8478B19 /* NVActivityIndicatorAnimationBallRotateChase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NVActivityIndicatorAnimationBallRotateChase.swift; path = Source/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationBallRotateChase.swift; sourceTree = "<group>"; };
7BC2D0573F3D2FFBF57D032AB589649D /* SyndicationNamespace.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SyndicationNamespace.swift; path = Sources/FeedKit/Models/Namespaces/Syndication/SyndicationNamespace.swift; sourceTree = "<group>"; };
7BD4836923E0FD7A0007F1BA /* LKGroupUtilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LKGroupUtilities.m; sourceTree = "<group>"; };
7BD4836A23E0FD7A0007F1BA /* LKGroupUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LKGroupUtilities.h; sourceTree = "<group>"; };
7BD4836D23E0FECA0007F1BA /* LKSessionRequestMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LKSessionRequestMessage.m; sourceTree = "<group>"; };
7BD4836E23E0FECA0007F1BA /* LKSessionRequestMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LKSessionRequestMessage.h; sourceTree = "<group>"; };
7BDC536E8C3A0398A5B80E40B44D7D60 /* OWSAttachmentDownloads.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = OWSAttachmentDownloads.h; sourceTree = "<group>"; };
7BE55430C152C3ADF41767DA9AB14673 /* Pods-Signal.app store release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Signal.app store release.xcconfig"; sourceTree = "<group>"; };
7BF03B4D763F3B38B29ABE708B92F9CE /* crypto_int64.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_int64.h; path = Sources/ed25519/nacl_includes/crypto_int64.h; sourceTree = "<group>"; };
Expand Down Expand Up @@ -6885,6 +6893,8 @@
802C36E4FA217375694F86F17DF73906 /* Utilities */ = {
isa = PBXGroup;
children = (
7BD4836A23E0FD7A0007F1BA /* LKGroupUtilities.h */,
7BD4836923E0FD7A0007F1BA /* LKGroupUtilities.m */,
054DF4656589C4A910113887F947739D /* Analytics.swift */,
EAA4BC192E94555E9C6052010862AC05 /* AnyPromise+Conversion.swift */,
BBDE26F203538540E34A1F0EDA65A045 /* BuildConfiguration.swift */,
Expand Down Expand Up @@ -8781,6 +8791,8 @@
F524083750F13B9C6214706599F98045 /* Messaging */ = {
isa = PBXGroup;
children = (
7BD4836E23E0FECA0007F1BA /* LKSessionRequestMessage.h */,
7BD4836D23E0FECA0007F1BA /* LKSessionRequestMessage.m */,
B8D92A95237A2F610024119B /* ContactParser.swift */,
BBD1652892E287CA62F0C79C090E318C /* FriendRequestExpirationJob.swift */,
85EC3435C861717279A6142988132FD3 /* FriendRequestExpirationMessageFinder.swift */,
Expand Down Expand Up @@ -9260,6 +9272,7 @@
buildActionMask = 2147483647;
files = (
3CFA746848B110F47E98DF9ECBE0F865 /* AppContext.h in Headers */,
7BD4837023E0FECA0007F1BA /* LKSessionRequestMessage.h in Headers */,
ADB395D602D57725297B03B227868811 /* AppReadiness.h in Headers */,
CCF80FD728B05B7ACDDCF95A169EDE51 /* AppVersion.h in Headers */,
B5A56E318D0D4A05BCECBE27D4A38E09 /* ByteParser.h in Headers */,
Expand Down Expand Up @@ -9434,6 +9447,7 @@
0E970EE8CCE5BAD637B454F4E9E88193 /* TSThread.h in Headers */,
D7535A497AB5BD715CB0DA661DC7FB11 /* TSYapDatabaseObject.h in Headers */,
798F032AC1D1899F9A44C24AEBCE43C1 /* UIImage+OWS.h in Headers */,
7BD4836C23E0FD7B0007F1BA /* LKGroupUtilities.h in Headers */,
4A6A7AF4BADCEAB96927CAAF2D30C3EF /* YapDatabaseConnection+OWS.h in Headers */,
A4EB77E2B93A56BD09404BC6838C3A4C /* YapDatabaseTransaction+OWS.h in Headers */,
);
Expand Down Expand Up @@ -11477,6 +11491,7 @@
B836BFCF23DA944F002C86A0 /* LokiHTTPClient.swift in Sources */,
1476960A681A73B48F1F720660194B28 /* OWSPrimaryStorage+keyFromIntLong.m in Sources */,
74BB7743FEED15A6BF9E7170CEE5BC85 /* OWSPrimaryStorage+Loki.m in Sources */,
7BD4836F23E0FECA0007F1BA /* LKSessionRequestMessage.m in Sources */,
8407481CF5AADD3BB74FD69F648A8B05 /* OWSPrimaryStorage+Loki.swift in Sources */,
7A4AF9958CE5DEE0890B293E798DB530 /* OWSPrimaryStorage+PreKeyStore.m in Sources */,
BF0F4FEAA4E302C5D7207224073D2628 /* OWSPrimaryStorage+SessionStore.m in Sources */,
Expand All @@ -11501,6 +11516,7 @@
050A26C196DF4BDF04091FF4029251DF /* OWSSyncConfigurationMessage.m in Sources */,
8F20B6BC2DEEC9A4E08602729107AA4E /* OWSSyncContactsMessage.m in Sources */,
97D381A3DD030994638C1AB450A9138B /* OWSSyncGroupsMessage.m in Sources */,
7BD4836B23E0FD7B0007F1BA /* LKGroupUtilities.m in Sources */,
8AE1E9C64E779D53353D4BF6D7F616A1 /* OWSSyncGroupsRequestMessage.m in Sources */,
007CA7457B96A82EBFB6FA2475FB740B /* OWSThumbnailService.swift in Sources */,
24BD2603234D5F040008EB0A /* LokiPublicChatPoller.swift in Sources */,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,25 +98,45 @@ struct SMKProtos_SenderCertificate {
// `Message` and `Message+*Additions` files in the SwiftProtobuf library for
// methods supported on all messages.

// /// @required
// var certificate: Data {
// get {return _certificate ?? SwiftProtobuf.Internal.emptyData}
// set {_certificate = newValue}
// }
// /// Returns true if `certificate` has been explicitly set.
// var hasCertificate: Bool {return self._certificate != nil}
// /// Clears the value of `certificate`. Subsequent reads from it will return its default value.
// mutating func clearCertificate() {self._certificate = nil}
//
// /// @required
// var signature: Data {
// get {return _signature ?? SwiftProtobuf.Internal.emptyData}
// set {_signature = newValue}
// }
// /// Returns true if `signature` has been explicitly set.
// var hasSignature: Bool {return self._signature != nil}
// /// Clears the value of `signature`. Subsequent reads from it will return its default value.
// mutating func clearSignature() {self._signature = nil}
/// @required
var certificate: Data {
get {return _certificate ?? SwiftProtobuf.Internal.emptyData}
set {_certificate = newValue}
}
/// Returns true if `certificate` has been explicitly set.
var hasCertificate: Bool {return self._certificate != nil}
/// Clears the value of `certificate`. Subsequent reads from it will return its default value.
mutating func clearCertificate() {self._certificate = nil}

/// @required
var signature: Data {
get {return _signature ?? SwiftProtobuf.Internal.emptyData}
set {_signature = newValue}
}
/// Returns true if `signature` has been explicitly set.
var hasSignature: Bool {return self._signature != nil}
/// Clears the value of `signature`. Subsequent reads from it will return its default value.
mutating func clearSignature() {self._signature = nil}
var sender: String {
get {return _sender ?? String()}
set {_sender = newValue}
}

/// Returns true if `sender` has been explicitly set.
var hasSender: Bool {return self._sender != nil}
/// Clears the value of `sender`. Subsequent reads from it will return its default value.
mutating func clearSender() {self._sender = nil}

var senderDevice: UInt32 {
get {return _senderDevice ?? 0}
set {_senderDevice = newValue}
}

/// Returns true if `sender` has been explicitly set.
var hasSenderDevice: Bool {return self._senderDevice != nil}
/// Clears the value of `sender`. Subsequent reads from it will return its default value.
mutating func clearSenderDevice() {self._senderDevice = nil}

var unknownFields = SwiftProtobuf.UnknownStorage()

Expand Down Expand Up @@ -183,9 +203,12 @@ struct SMKProtos_SenderCertificate {
}

init() {}

fileprivate var _sender: String? = nil
fileprivate var _senderDevice: UInt32? = nil

fileprivate var _certificate: Data? = nil
fileprivate var _signature: Data? = nil
// fileprivate var _certificate: Data? = nil
// fileprivate var _signature: Data? = nil
}

struct SMKProtos_UnidentifiedSenderMessage {
Expand Down Expand Up @@ -377,33 +400,35 @@ extension SMKProtos_ServerCertificate.Certificate: SwiftProtobuf.Message, SwiftP
extension SMKProtos_SenderCertificate: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
static let protoMessageName: String = _protobuf_package + ".SenderCertificate"
static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
1: .same(proto: "certificate"),
2: .same(proto: "signature"),
// 1: .same(proto: "certificate"),
// 2: .same(proto: "signature"),
1: .same(proto: "sender"),
2: .same(proto: "senderDevice"),
]

mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
while let fieldNumber = try decoder.nextFieldNumber() {
switch fieldNumber {
case 1: try decoder.decodeSingularBytesField(value: &self._certificate)
case 2: try decoder.decodeSingularBytesField(value: &self._signature)
case 1: try decoder.decodeSingularStringField(value: &self._sender)
case 2: try decoder.decodeSingularUInt32Field(value: &self._senderDevice)
default: break
}
}
}

func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
if let v = self._certificate {
try visitor.visitSingularBytesField(value: v, fieldNumber: 1)
if let v = self._sender {
try visitor.visitSingularStringField(value: v, fieldNumber: 1)
}
if let v = self._signature {
try visitor.visitSingularBytesField(value: v, fieldNumber: 2)
if let v = self._senderDevice {
try visitor.visitSingularUInt32Field(value: v, fieldNumber: 2)
}
try unknownFields.traverse(visitor: &visitor)
}

func _protobuf_generated_isEqualTo(other: SMKProtos_SenderCertificate) -> Bool {
if self._certificate != other._certificate {return false}
if self._signature != other._signature {return false}
if self._sender != other._sender {return false}
if self._senderDevice != other._senderDevice {return false}
if unknownFields != other.unknownFields {return false}
return true
}
Expand Down
64 changes: 41 additions & 23 deletions SignalMetadataKit/SignalMetadataKit/src/Generated/SMKProto.swift
Original file line number Diff line number Diff line change
Expand Up @@ -367,8 +367,8 @@ extension SMKProtoSenderCertificateCertificate.SMKProtoSenderCertificateCertific

// MARK: - SMKProtoSenderCertificateBuilder

@objc public class func builder(certificate: Data, signature: Data) -> SMKProtoSenderCertificateBuilder {
return SMKProtoSenderCertificateBuilder(certificate: certificate, signature: signature)
@objc public class func builder(sender: String, senderDevice: UInt32) -> SMKProtoSenderCertificateBuilder {
return SMKProtoSenderCertificateBuilder(sender: sender, senderDevice: senderDevice)
}

@objc public class SMKProtoSenderCertificateBuilder: NSObject {
Expand All @@ -377,19 +377,27 @@ extension SMKProtoSenderCertificateCertificate.SMKProtoSenderCertificateCertific

@objc fileprivate override init() {}

@objc fileprivate init(certificate: Data, signature: Data) {
@objc fileprivate init(sender: String, senderDevice: UInt32) {
super.init()

setCertificate(certificate)
setSignature(signature)
setSender(sender)
setSenderDevice(senderDevice)
}

@objc public func setCertificate(_ valueParam: Data) {
proto.certificate = valueParam
// @objc public func setCertificate(_ valueParam: Data) {
// proto.certificate = valueParam
// }
//
// @objc public func setSignature(_ valueParam: Data) {
// proto.signature = valueParam
// }

@objc public func setSender(_ valueParam: String) {
proto.sender = valueParam
}

@objc public func setSignature(_ valueParam: Data) {
proto.signature = valueParam
@objc public func setSenderDevice(_ valueParam: UInt32) {
proto.senderDevice = valueParam
}

@objc public func build() throws -> SMKProtoSenderCertificate {
Expand All @@ -403,16 +411,16 @@ extension SMKProtoSenderCertificateCertificate.SMKProtoSenderCertificateCertific

fileprivate let proto: SMKProtos_SenderCertificate

@objc public let certificate: Data
@objc public let sender: String

@objc public let signature: Data
@objc public let senderDevice: UInt32

private init(proto: SMKProtos_SenderCertificate,
certificate: Data,
signature: Data) {
sender: String,
senderDevice: UInt32) {
self.proto = proto
self.certificate = certificate
self.signature = signature
self.sender = sender
self.senderDevice = senderDevice
}

@objc
Expand All @@ -426,23 +434,33 @@ extension SMKProtoSenderCertificateCertificate.SMKProtoSenderCertificateCertific
}

fileprivate class func parseProto(_ proto: SMKProtos_SenderCertificate) throws -> SMKProtoSenderCertificate {
guard proto.hasCertificate else {
throw SMKProtoError.invalidProtobuf(description: "\(logTag) missing required field: certificate")
// 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
//
guard proto.hasSender else {
throw SMKProtoError.invalidProtobuf(description: "\(logTag) missing required field: sender")
}
let certificate = proto.certificate
let sender = proto.sender

guard proto.hasSignature else {
throw SMKProtoError.invalidProtobuf(description: "\(logTag) missing required field: signature")
guard proto.hasSenderDevice else {
throw SMKProtoError.invalidProtobuf(description: "\(logTag) missing required field: sender device")
}
let signature = proto.signature
let senderDevice = proto.senderDevice

// MARK: - Begin Validation Logic for SMKProtoSenderCertificate -

// MARK: - End Validation Logic for SMKProtoSenderCertificate -

let result = SMKProtoSenderCertificate(proto: proto,
certificate: certificate,
signature: signature)
sender: sender,
senderDevice: senderDevice)
return result
}
}
Expand Down
Loading

0 comments on commit aae090d

Please sign in to comment.