mirror of
https://github.com/oxen-io/session-ios.git
synced 2023-12-13 21:30:14 +01:00
74 lines
2.3 KiB
Objective-C
74 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
|