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)loadDataModels;
+ (void)deployZipDataFile:(NSString *)filenameWithoutExtension; + (void)deployZipDataFile:(NSString *)filenameWithoutExtension;
+ (void)loadCNSData; + (void)loadCNSData;
+ (BOOL)checkIfCNSDataExistAndHashMatched;
+ (void)loadUserPhrases; + (void)loadUserPhrases;
+ (void)loadUserPhraseReplacement; + (void)loadUserPhraseReplacement;
+ (BOOL)checkIfUserLanguageModelFilesExist; + (BOOL)checkIfUserLanguageModelFilesExist;

View File

@ -64,6 +64,23 @@ static void LTLoadLanguageModelFile(NSString *filenameWithoutExtension, vChewing
glanguageModelCoreCHS.loadCNSData([[self cnsDataPath] UTF8String]); 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 + (void)loadUserPhrases
{ {
glanguageModelCoreCHT.loadUserPhrases([[self userPhrasesDataPath:kBopomofoModeIdentifierCHT] UTF8String], [[self excludedPhrasesDataPath:kBopomofoModeIdentifierCHT] UTF8String]); glanguageModelCoreCHT.loadUserPhrases([[self userPhrasesDataPath:kBopomofoModeIdentifierCHT] UTF8String], [[self excludedPhrasesDataPath:kBopomofoModeIdentifierCHT] UTF8String]);