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.
		
		
		
		
		
			
		
			
	
	
		
			72 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Swift
		
	
		
		
			
		
	
	
			72 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Swift
		
	
| 
											5 years ago
										 | 
 | ||
|  | @objc | ||
|  | public enum UnidentifiedAccessMode: Int { | ||
|  |     case unknown | ||
|  |     case enabled | ||
|  |     case disabled | ||
|  |     case unrestricted | ||
|  | } | ||
|  | 
 | ||
|  | @objc | ||
|  | public class OWSUDAccess: NSObject { | ||
|  |     @objc | ||
|  |     public let udAccessKey: SMKUDAccessKey | ||
|  | 
 | ||
|  |     @objc | ||
|  |     public let udAccessMode: UnidentifiedAccessMode | ||
|  | 
 | ||
|  |     @objc | ||
|  |     public let isRandomKey: Bool | ||
|  | 
 | ||
|  |     @objc | ||
|  |     public required init(udAccessKey: SMKUDAccessKey, | ||
|  |                          udAccessMode: UnidentifiedAccessMode, | ||
|  |                          isRandomKey: Bool) { | ||
|  |         self.udAccessKey = udAccessKey | ||
|  |         self.udAccessMode = udAccessMode | ||
|  |         self.isRandomKey = isRandomKey | ||
|  |     } | ||
|  | } | ||
|  | 
 | ||
|  | @objc public protocol OWSUDManager: class { | ||
|  | 
 | ||
|  |     @objc func setup() | ||
|  | 
 | ||
|  |     @objc func trustRoot() -> ECPublicKey | ||
|  | 
 | ||
|  |     @objc func isUDVerboseLoggingEnabled() -> Bool | ||
|  | 
 | ||
|  |     // MARK: - Recipient State | ||
|  | 
 | ||
|  |     @objc | ||
|  |     func setUnidentifiedAccessMode(_ mode: UnidentifiedAccessMode, recipientId: String) | ||
|  | 
 | ||
|  |     @objc | ||
|  |     func unidentifiedAccessMode(forRecipientId recipientId: String) -> UnidentifiedAccessMode | ||
|  | 
 | ||
|  |     @objc | ||
|  |     func udAccessKey(forRecipientId recipientId: String) -> SMKUDAccessKey? | ||
|  | 
 | ||
|  |     @objc | ||
|  |     func udAccess(forRecipientId recipientId: String, | ||
|  |                   requireSyncAccess: Bool) -> OWSUDAccess? | ||
|  | 
 | ||
|  |     // MARK: Sender Certificate | ||
|  | 
 | ||
|  |     // We use completion handlers instead of a promise so that message sending | ||
|  |     // logic can access the strongly typed certificate data. | ||
|  |     @objc | ||
|  |     func ensureSenderCertificate(success:@escaping (SMKSenderCertificate) -> Void, | ||
|  |                                  failure:@escaping (Error) -> Void) | ||
|  | 
 | ||
|  |     // MARK: Unrestricted Access | ||
|  | 
 | ||
|  |     @objc | ||
|  |     func shouldAllowUnrestrictedAccessLocal() -> Bool | ||
|  |     @objc | ||
|  |     func setShouldAllowUnrestrictedAccessLocal(_ value: Bool) | ||
|  | 
 | ||
|  |     @objc | ||
|  |     func getSenderCertificate() -> SMKSenderCertificate? | ||
|  | } |