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
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C
		
	
		
		
			
		
	
	
			72 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C
		
	
| 
								 
											5 years ago
										 
									 | 
							
								//
							 | 
						||
| 
								 | 
							
								//  Copyright (c) 2017 Open Whisper Systems. All rights reserved.
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#import <Foundation/Foundation.h>
							 | 
						||
| 
								 | 
							
								@class ECKeyPair;
							 | 
						||
| 
								 | 
							
								#import "RKCK.h"
							 | 
						||
| 
								 | 
							
								#import "MessageKeys.h"
							 | 
						||
| 
								 | 
							
								#import "Chain.h"
							 | 
						||
| 
								 | 
							
								#import "RootKey.h"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 *  Pending PreKeys
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@interface PendingPreKey : NSObject <NSSecureCoding>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@property (readonly) int preKeyId;
							 | 
						||
| 
								 | 
							
								@property (readonly) int signedPreKeyId;
							 | 
						||
| 
								 | 
							
								@property (readonly) NSData *baseKey;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								-(instancetype)initWithBaseKey:(NSData*)baseKey preKeyId:(int)preKeyId signedPreKeyId:(int)signedPrekeyId;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@interface SessionState : NSObject <NSSecureCoding>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 *  AxolotlSessions are either retreived from the database or initiated on new discussions. They are serialized before being stored to make storing abstractions significantly simpler. Because we propose no abstraction for a contact and TextSecure has multi-device (multiple sessions with same identity key) support, the identityKeys need to be added manually.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@property(nonatomic) int  version;
							 | 
						||
| 
								 | 
							
								@property(nonatomic, copy) NSData *aliceBaseKey;
							 | 
						||
| 
								 | 
							
								@property(nonatomic) NSData *remoteIdentityKey;
							 | 
						||
| 
								 | 
							
								@property(nonatomic) NSData *localIdentityKey;
							 | 
						||
| 
								 | 
							
								@property(nonatomic) int previousCounter;
							 | 
						||
| 
								 | 
							
								@property(nonatomic) RootKey *rootKey;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@property(nonatomic)int remoteRegistrationId;
							 | 
						||
| 
								 | 
							
								@property(nonatomic)int localRegistrationId;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- (NSData*)senderRatchetKey;
							 | 
						||
| 
								 | 
							
								- (ECKeyPair*)senderRatchetKeyPair;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- (BOOL)hasReceiverChain:(NSData *)senderEphemeral;
							 | 
						||
| 
								 | 
							
								- (BOOL)hasSenderChain;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- (ChainKey *)receiverChainKey:(NSData *)senderEphemeral;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- (void)setReceiverChainKey:(NSData*)senderEphemeral chainKey:(ChainKey*)chainKey;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- (void)addReceiverChain:(NSData*)senderRatchetKey chainKey:(ChainKey*)chainKey;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- (void)setSenderChain:(ECKeyPair*)senderRatcherKeyPair chainKey:(ChainKey*)chainKey;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- (ChainKey*)senderChainKey;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- (void)setSenderChainKey:(ChainKey*)nextChainKey;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- (BOOL)hasMessageKeys:(NSData*)senderRatchetKey counter:(int)counter;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- (MessageKeys*)removeMessageKeys:(NSData*)senderRatcherKey counter:(int)counter;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- (void)setMessageKeys:(NSData*)senderRatchetKey messageKeys:(MessageKeys*)messageKeys;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- (void)setUnacknowledgedPreKeyMessage:(int)preKeyId signedPreKey:(int)signedPreKeyId baseKey:(NSData*)baseKey;
							 | 
						||
| 
								 | 
							
								- (BOOL)hasUnacknowledgedPreKeyMessage;
							 | 
						||
| 
								 | 
							
								- (PendingPreKey*)unacknowledgedPreKeyMessageItems;
							 | 
						||
| 
								 | 
							
								- (void)clearUnacknowledgedPreKeyMessage;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@end
							 |