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.
79 lines
2.5 KiB
Objective-C
79 lines
2.5 KiB
Objective-C
//
|
|
// Copyright (c) 2017 Open Whisper Systems. All rights reserved.
|
|
//
|
|
|
|
#import "SignedPrekeyRecord.h"
|
|
#import <SessionProtocolKit/OWSAsserts.h>
|
|
|
|
static NSString* const kCoderPreKeyId = @"kCoderPreKeyId";
|
|
static NSString* const kCoderPreKeyPair = @"kCoderPreKeyPair";
|
|
static NSString* const kCoderPreKeyDate = @"kCoderPreKeyDate";
|
|
static NSString* const kCoderPreKeySignature = @"kCoderPreKeySignature";
|
|
static NSString *const kCoderPreKeyWasAcceptedByService = @"kCoderPreKeyWasAcceptedByService";
|
|
|
|
@implementation SignedPreKeyRecord
|
|
|
|
+ (BOOL)supportsSecureCoding{
|
|
return YES;
|
|
}
|
|
|
|
- (instancetype)initWithId:(int)identifier
|
|
keyPair:(ECKeyPair *)keyPair
|
|
signature:(NSData *)signature
|
|
generatedAt:(NSDate *)generatedAt
|
|
wasAcceptedByService:(BOOL)wasAcceptedByService
|
|
{
|
|
OWSAssert(keyPair);
|
|
OWSAssert(signature);
|
|
OWSAssert(generatedAt);
|
|
|
|
self = [super initWithId:identifier keyPair:keyPair];
|
|
|
|
if (self) {
|
|
_signature = signature;
|
|
_generatedAt = generatedAt;
|
|
_wasAcceptedByService = wasAcceptedByService;
|
|
}
|
|
|
|
return self;
|
|
}
|
|
|
|
- (instancetype)initWithId:(int)identifier keyPair:(ECKeyPair *)keyPair signature:(NSData*)signature generatedAt:(NSDate *)generatedAt{
|
|
self = [super initWithId:identifier keyPair:keyPair];
|
|
|
|
if (self) {
|
|
_signature = signature;
|
|
_generatedAt = generatedAt;
|
|
}
|
|
|
|
return self;
|
|
}
|
|
|
|
- (id)initWithCoder:(NSCoder *)aDecoder{
|
|
return [self initWithId:[aDecoder decodeIntForKey:kCoderPreKeyId]
|
|
keyPair:[aDecoder decodeObjectOfClass:[ECKeyPair class] forKey:kCoderPreKeyPair]
|
|
signature:[aDecoder decodeObjectOfClass:[NSData class] forKey:kCoderPreKeySignature]
|
|
generatedAt:[aDecoder decodeObjectOfClass:[NSDate class] forKey:kCoderPreKeyDate]
|
|
wasAcceptedByService:[aDecoder decodeBoolForKey:kCoderPreKeyWasAcceptedByService]];
|
|
}
|
|
|
|
- (void)encodeWithCoder:(NSCoder *)aCoder{
|
|
[aCoder encodeInt:self.Id forKey:kCoderPreKeyId];
|
|
[aCoder encodeObject:self.keyPair forKey:kCoderPreKeyPair];
|
|
[aCoder encodeObject:self.signature forKey:kCoderPreKeySignature];
|
|
[aCoder encodeObject:self.generatedAt forKey:kCoderPreKeyDate];
|
|
[aCoder encodeBool:self.wasAcceptedByService forKey:kCoderPreKeyWasAcceptedByService];
|
|
}
|
|
|
|
- (instancetype)initWithId:(int)identifier keyPair:(ECKeyPair*)keyPair{
|
|
OWSAbstractMethod();
|
|
return nil;
|
|
}
|
|
|
|
- (void)markAsAcceptedByService
|
|
{
|
|
_wasAcceptedByService = YES;
|
|
}
|
|
|
|
@end
|