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.
63 lines
1.9 KiB
Objective-C
63 lines
1.9 KiB
Objective-C
//
|
|
// TSMessageKeys.m
|
|
// AxolotlKit
|
|
//
|
|
// Created by Frederic Jacobs on 09/03/14.
|
|
// Copyright (c) 2014 Open Whisper Systems. All rights reserved.
|
|
//
|
|
|
|
#import "MessageKeys.h"
|
|
#import <SignalCoreKit/OWSAsserts.h>
|
|
|
|
static NSString* const kCoderMessageKeysCipherKey = @"kCoderMessageKeysCipherKey";
|
|
static NSString* const kCoderMessageKeysMacKey = @"kCoderMessageKeysMacKey";
|
|
static NSString* const kCoderMessageKeysIVKey = @"kCoderMessageKeysIVKey";
|
|
static NSString* const kCoderMessageKeysIndex = @"kCoderMessageKeysIndex";
|
|
|
|
|
|
@implementation MessageKeys
|
|
|
|
+ (BOOL)supportsSecureCoding{
|
|
return YES;
|
|
}
|
|
|
|
- (id)initWithCoder:(NSCoder *)aDecoder{
|
|
self = [self initWithCipherKey:[aDecoder decodeObjectOfClass:[NSData class] forKey:kCoderMessageKeysCipherKey]
|
|
macKey:[aDecoder decodeObjectOfClass:[NSData class] forKey:kCoderMessageKeysMacKey]
|
|
iv:[aDecoder decodeObjectOfClass:[NSData class] forKey:kCoderMessageKeysIVKey]
|
|
index:[aDecoder decodeIntForKey:kCoderMessageKeysIndex]];
|
|
return self;
|
|
}
|
|
|
|
- (void)encodeWithCoder:(NSCoder *)aCoder{
|
|
[aCoder encodeObject:self.cipherKey forKey:kCoderMessageKeysCipherKey];
|
|
[aCoder encodeObject:self.macKey forKey:kCoderMessageKeysMacKey];
|
|
[aCoder encodeObject:self.iv forKey:kCoderMessageKeysIVKey];
|
|
[aCoder encodeInt:self.index forKey:kCoderMessageKeysIndex];
|
|
}
|
|
|
|
|
|
- (instancetype)initWithCipherKey:(NSData*)cipherKey macKey:(NSData*)macKey iv:(NSData *)data index:(int)index{
|
|
|
|
OWSAssert(cipherKey);
|
|
OWSAssert(macKey);
|
|
OWSAssert(data);
|
|
|
|
self = [super init];
|
|
|
|
if (self) {
|
|
_cipherKey = cipherKey;
|
|
_macKey = macKey;
|
|
_iv = data;
|
|
_index = index;
|
|
}
|
|
|
|
return self;
|
|
}
|
|
|
|
-(NSString*) debugDescription {
|
|
return [NSString stringWithFormat:@"cipherKey: %@\n macKey %@\n",self.cipherKey,self.macKey];
|
|
}
|
|
|
|
@end
|