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.
		
		
		
		
		
			
		
			
				
	
	
		
			54 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Swift
		
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Swift
		
	
| //
 | |
| //  Copyright (c) 2018 Open Whisper Systems. All rights reserved.
 | |
| //
 | |
| 
 | |
| import Foundation
 | |
| 
 | |
| // See:
 | |
| // https://github.com/signalapp/libsignal-metadata-java/blob/cac0dde9de416a192e64a8940503982820870090/java/src/main/java/org/signal/libsignal/metadata/certificate/SenderCertificate.java
 | |
| @objc public class SMKSenderCertificate: NSObject {
 | |
| 
 | |
|     @objc public let senderDeviceId: UInt32
 | |
|     @objc public let senderRecipientId: String
 | |
| 
 | |
|     @objc public init(senderDeviceId: UInt32, senderRecipientId: String) {
 | |
|         self.senderDeviceId = senderDeviceId
 | |
|         self.senderRecipientId = senderRecipientId
 | |
|     }
 | |
| 
 | |
|     @objc public class func parse(data: Data) throws -> SMKSenderCertificate {
 | |
|         let proto = try SMKProtoSenderCertificate.parseData(data)
 | |
|         return try parse(proto: proto)
 | |
|     }
 | |
| 
 | |
|     @objc public class func parse(proto: SMKProtoSenderCertificate) throws -> SMKSenderCertificate {
 | |
| 
 | |
|         let sender = proto.sender
 | |
|         let senderDevice = proto.senderDevice
 | |
| 
 | |
|         return SMKSenderCertificate(senderDeviceId: senderDevice, senderRecipientId: sender)
 | |
|     }
 | |
| 
 | |
|     @objc public func toProto() throws -> SMKProtoSenderCertificate {
 | |
|         let builder =
 | |
|             SMKProtoSenderCertificate.builder(sender: senderRecipientId, senderDevice: senderDeviceId)
 | |
|         return try builder.build()
 | |
|     }
 | |
| 
 | |
|     @objc public func serialized() throws -> Data {
 | |
|         return try toProto().serializedData()
 | |
|     }
 | |
| 
 | |
|     open override func isEqual(_ other: Any?) -> Bool {
 | |
|         if let other = other as? SMKSenderCertificate {
 | |
|             return (senderDeviceId == other.senderDeviceId && senderRecipientId == other.senderRecipientId)
 | |
|         } else {
 | |
|             return false
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     public override var hash: Int {
 | |
|         return senderDeviceId.hashValue ^ senderRecipientId.hashValue
 | |
|     }
 | |
| }
 |