64 lines
1.8 KiB
Objective-C
64 lines
1.8 KiB
Objective-C
//
|
|
// Copyright 2021 Signal Messenger, LLC
|
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
//
|
|
|
|
#import "LegacyMessageKeys.h"
|
|
|
|
static NSString *const kCoderMessageKeysCipherKey = @"kCoderMessageKeysCipherKey";
|
|
static NSString *const kCoderMessageKeysMacKey = @"kCoderMessageKeysMacKey";
|
|
static NSString *const kCoderMessageKeysIVKey = @"kCoderMessageKeysIVKey";
|
|
static NSString *const kCoderMessageKeysIndex = @"kCoderMessageKeysIndex";
|
|
|
|
|
|
@implementation LegacyMessageKeys
|
|
|
|
+ (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
|