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.
		
		
		
		
		
			
		
			
				
	
	
		
			75 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Objective-C
		
	
			
		
		
	
	
			75 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Objective-C
		
	
| //
 | |
| //  Copyright (c) 2018 Open Whisper Systems. All rights reserved.
 | |
| //
 | |
| 
 | |
| #import <Curve25519Kit/Curve25519.h>
 | |
| #import <YapDatabase/YapDatabase.h>
 | |
| 
 | |
| @class OWSPrimaryStorage;
 | |
| 
 | |
| NS_ASSUME_NONNULL_BEGIN
 | |
| 
 | |
| extern NSString *const OWSPrimaryStorageIdentityKeyStoreIdentityKey;
 | |
| extern NSString *const LKSeedKey;
 | |
| extern NSString *const LKED25519SecretKey;
 | |
| extern NSString *const LKED25519PublicKey;
 | |
| extern NSString *const OWSPrimaryStorageIdentityKeyStoreCollection;
 | |
| 
 | |
| extern NSString *const OWSPrimaryStorageTrustedKeysCollection;
 | |
| 
 | |
| // This notification will be fired whenever identities are created
 | |
| // or their verification state changes.
 | |
| extern NSString *const kNSNotificationName_IdentityStateDidChange;
 | |
| 
 | |
| // number of bytes in a signal identity key, excluding the key-type byte.
 | |
| extern const NSUInteger kIdentityKeyLength;
 | |
| 
 | |
| #ifdef DEBUG
 | |
| extern const NSUInteger kStoredIdentityKeyLength;
 | |
| #endif
 | |
| 
 | |
| @class OWSRecipientIdentity;
 | |
| @class OWSStorage;
 | |
| @class SNProtoVerified;
 | |
| @class YapDatabaseReadWriteTransaction;
 | |
| 
 | |
| // This class can be safely accessed and used from any thread.
 | |
| @interface OWSIdentityManager : NSObject
 | |
| 
 | |
| @property (nonatomic, readonly) YapDatabaseConnection *dbConnection;
 | |
| 
 | |
| - (instancetype)init NS_UNAVAILABLE;
 | |
| - (instancetype)initWithPrimaryStorage:(OWSPrimaryStorage *)primaryStorage NS_DESIGNATED_INITIALIZER;
 | |
| 
 | |
| + (instancetype)sharedManager;
 | |
| 
 | |
| - (void)generateNewIdentityKeyPair;
 | |
| - (void)clearIdentityKey;
 | |
| 
 | |
| - (nullable OWSRecipientIdentity *)recipientIdentityForRecipientId:(NSString *)recipientId;
 | |
| 
 | |
| /**
 | |
|  * @param   recipientId unique stable identifier for the recipient, e.g. e164 phone number
 | |
|  * @returns nil if the recipient does not exist, or is trusted for sending
 | |
|  *          else returns the untrusted recipient.
 | |
|  */
 | |
| - (nullable OWSRecipientIdentity *)untrustedIdentityForSendingToRecipientId:(NSString *)recipientId;
 | |
| 
 | |
| - (BOOL)saveRemoteIdentity:(NSData *)identityKey recipientId:(NSString *)recipientId;
 | |
| 
 | |
| - (nullable ECKeyPair *)identityKeyPair;
 | |
| 
 | |
| #pragma mark - Debug
 | |
| 
 | |
| #if DEBUG
 | |
| // Clears everything except the local identity key.
 | |
| - (void)clearIdentityState:(YapDatabaseReadWriteTransaction *)transaction;
 | |
| 
 | |
| - (void)snapshotIdentityState:(YapDatabaseReadWriteTransaction *)transaction;
 | |
| - (void)restoreIdentityState:(YapDatabaseReadWriteTransaction *)transaction;
 | |
| #endif
 | |
| 
 | |
| @end
 | |
| 
 | |
| NS_ASSUME_NONNULL_END
 |