SDK_UnityMoney/Assets/Plugins/iOS/ThinkingSDK/Source/Encrypt/TDSecretKey.m

81 lines
2.4 KiB
Objective-C

//
// TDSecretKey.m
// ThinkingSDK
//
// Created by wwango on 2022/1/21.
//
#import "TDSecretKey.h"
@interface TDSecretKey ()
@property (nonatomic, assign) NSUInteger version;
@property (nonatomic, copy) NSString *publicKey;
@property (nonatomic, copy) NSString *symmetricEncryption;
@property (nonatomic, copy) NSString *asymmetricEncryption;
@end
@implementation TDSecretKey
- (instancetype)initWithVersion:(NSUInteger)version
publicKey:(NSString *)publicKey {
return [[TDSecretKey alloc] initWithVersion:version
publicKey:publicKey
asymmetricEncryption:@"RSA"
symmetricEncryption:@"AES"];
}
- (instancetype)initWithVersion:(NSUInteger)version
publicKey:(NSString *)publicKey
asymmetricEncryption:(NSString *)asymmetricEncryption
symmetricEncryption:(NSString *)symmetricEncryption {
self = [super init];
if (self) {
self.version = version;
self.publicKey = publicKey;
self.asymmetricEncryption = asymmetricEncryption;
self.symmetricEncryption = symmetricEncryption;
}
return self;
}
- (void)encodeWithCoder:(NSCoder *)coder {
[coder encodeInteger:self.version forKey:@"version"];
[coder encodeObject:self.publicKey forKey:@"publicKey"];
[coder encodeObject:self.symmetricEncryption forKey:@"symmetricEncrypt"];
[coder encodeObject:self.asymmetricEncryption forKey:@"asymmetricEncrypt"];
}
- (instancetype)initWithCoder:(NSCoder *)coder {
self = [super init];
if (self) {
self.version = [coder decodeIntegerForKey:@"version"];
self.publicKey = [coder decodeObjectForKey:@"publicKey"];
self.symmetricEncryption = [coder decodeObjectForKey:@"symmetricEncrypt"];
self.asymmetricEncryption = [coder decodeObjectForKey:@"asymmetricEncrypt"];
}
return self;
}
- (BOOL)isValid {
if (self.publicKey.length && self.symmetricEncryption.length && self.asymmetricEncryption.length) {
return YES;
}
return NO;
}
- (id)copyWithZone:(NSZone *)zone {
TDSecretKey *secretKey = [[[self class] allocWithZone:zone] init];
secretKey.version = self.version;
secretKey.publicKey = [self.publicKey copy];
secretKey.symmetricEncryption = [self.symmetricEncryption copy];
secretKey.asymmetricEncryption = [self.asymmetricEncryption copy];
return secretKey;
}
@end