session-ios/SessionProtocolKit/Signal/Ratchet/MessageKeys.m

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