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
		
	
| 
 | |
| @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?
 | |
| }
 |