CNS // Phase 5: + MD5 check of the CSV data file.

This commit is contained in:
ShikiSuen 2022-01-22 23:28:11 +08:00
parent bd5289eaf6
commit 2a0c088fcd
2 changed files with 18 additions and 0 deletions

View File

@ -19,6 +19,7 @@ NS_ASSUME_NONNULL_BEGIN
+ (void)loadDataModels;
+ (void)deployZipDataFile:(NSString *)filenameWithoutExtension;
+ (void)loadCNSData;
+ (BOOL)checkIfCNSDataExistAndHashMatched;
+ (void)loadUserPhrases;
+ (void)loadUserPhraseReplacement;
+ (BOOL)checkIfUserLanguageModelFilesExist;

View File

@ -64,6 +64,23 @@ static void LTLoadLanguageModelFile(NSString *filenameWithoutExtension, vChewing
glanguageModelCoreCHS.loadCNSData([[self cnsDataPath] UTF8String]);
}
+ (BOOL)checkIfCNSDataExistAndHashMatched
{
if (![self checkIfUserDataFolderExists]) {
NSLog(@"User Data Folder N/A.");
return NO;
}
if (![self checkIfFileExist:[self cnsDataPath]]) {
NSLog(@"Extracted CNS Data Not Found.");
return NO;
}
if ([AWFileHash md5HashOfFileAtPath:[self cnsDataPath]] != [[NSUserDefaults standardUserDefaults] objectForKey:kMD5HashCNSData]) {
NSLog(@"Existing CNS CSV Data fingerprint mismatch, must be tampered since it gets extracted.");
return NO;
}
return YES;
}
+ (void)loadUserPhrases
{
glanguageModelCoreCHT.loadUserPhrases([[self userPhrasesDataPath:kBopomofoModeIdentifierCHT] UTF8String], [[self excludedPhrasesDataPath:kBopomofoModeIdentifierCHT] UTF8String]);