Signal-iOS/SignalServiceKit/Storage/AxolotlStore/Model/LegacyMessageKeys.m
2024-03-27 12:27:06 -05:00

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