#import "TGDocumentEncryptedFileReference.h" #import "PSKeyValueCoder.h" @implementation TGDocumentEncryptedFileReference - (instancetype)initWithDatacenterId:(int32_t)datacenterId fileId:(int64_t)fileId accessHash:(int64_t)accessHash encryptedSize:(int32_t)encryptedSize decryptedSize:(int32_t)decryptedSize keyFingerprint:(int32_t)keyFingerprint key:(NSData *)key iv:(NSData *)iv { self = [super init]; if (self != nil) { _datacenterId = datacenterId; _fileId = fileId; _accessHash = accessHash; _encryptedSize = encryptedSize; _decryptedSize = decryptedSize; _keyFingerprint = keyFingerprint; _key = key; _iv = iv; } return self; } - (instancetype)initWithCoder:(NSCoder *)aDecoder { return [self initWithDatacenterId:[aDecoder decodeInt32ForKey:@"datacenterId"] fileId:[aDecoder decodeInt64ForKey:@"fileId"] accessHash:[aDecoder decodeInt64ForKey:@"accessHash"] encryptedSize:[aDecoder decodeInt32ForKey:@"encryptedSize"] decryptedSize:[aDecoder decodeInt32ForKey:@"decryptedSize"] keyFingerprint:[aDecoder decodeInt32ForKey:@"keyFingerprint"] key:[aDecoder decodeObjectForKey:@"key"] iv:[aDecoder decodeObjectForKey:@"iv"]]; } - (void)encodeWithCoder:(NSCoder *)aCoder { [aCoder encodeInt32:_datacenterId forKey:@"datacenterId"]; [aCoder encodeInt64:_fileId forKey:@"fileId"]; [aCoder encodeInt64:_accessHash forKey:@"accessHash"]; [aCoder encodeInt32:_encryptedSize forKey:@"encryptedSize"]; [aCoder encodeInt32:_decryptedSize forKey:@"decryptedSize"]; [aCoder encodeInt32:_keyFingerprint forKey:@"keyFingerprint"]; [aCoder encodeObject:_key forKey:@"key"]; [aCoder encodeObject:_iv forKey:@"iv"]; } - (instancetype)initWithKeyValueCoder:(PSKeyValueCoder *)coder { return [self initWithDatacenterId:[coder decodeInt32ForCKey:"datacenterId"] fileId:[coder decodeInt64ForCKey:"fileId"] accessHash:[coder decodeInt64ForCKey:"accessHash"] encryptedSize:[coder decodeInt32ForCKey:"encryptedSize"] decryptedSize:[coder decodeInt32ForCKey:"decryptedSize"] keyFingerprint:[coder decodeInt32ForCKey:"keyFingerprint"] key:[coder decodeDataCorCKey:"key"] iv:[coder decodeDataCorCKey:"iv"]]; } - (void)encodeWithKeyValueCoder:(PSKeyValueCoder *)coder { [coder encodeInt32:_datacenterId forCKey:"datacenterId"]; [coder encodeInt64:_fileId forCKey:"fileId"]; [coder encodeInt64:_accessHash forCKey:"accessHash"]; [coder encodeInt32:_encryptedSize forCKey:"encryptedSize"]; [coder encodeInt32:_decryptedSize forCKey:"decryptedSize"]; [coder encodeInt32:_keyFingerprint forCKey:"keyFingerprint"]; [coder encodeData:_key forCKey:"key"]; [coder encodeData:_iv forCKey:"iv"]; } @end