Шифроване на файлове с NSFileManager

Опитвам се да криптирам файл на моя iPad с помощта на NSFileManager. Това е кодът:

NSString* encryptedFilePath = [dirPath stringByAppendingPathComponent:@"encryptedDummyData.txt"];

[[NSFileManager defaultManager] createFileAtPath:encryptedFilePath
                                        contents:[@"blah blah blah blah blah" dataUsingEncoding:NSUTF8StringEncoding]
                                        attributes:[NSDictionary dictionaryWithObject:NSFileProtectionComplete
                                                             forKey:NSFileProtectionKey]];

Файлът е генериран на устройството, но не е шифрован.

Уверих се, че „Защита на данните“ е активирана под „Навигатор на проекти / Възможности“.

Опитах също NSFileProjectionCompleteUnlessOpen и NSFileProtectionCompleteUntilFirstUserAuthentication без успех.

Единственият „напредък“, който постигнах, беше, че ако заключих устройството след стартиране на приложението, нямаше да мога да осъществя достъп до файла с iExplorer. Въпреки това, в момента, в който отключих устройството, успях да отворя файла и той беше некриптиран.

И така, NSFileManager криптира ли изобщо файл? Или блокира достъпа на потребителя до файла само когато устройството е заключено?

Ако може да криптира файла, тогава какво пропускам?


person TATN    schedule 07.05.2014    source източник
comment
възможен дубликат на Активиране на iOS On-Disk Encryption   -  person staticVoidMan    schedule 22.05.2014


Отговори (1)


„В момента обаче, в който отключих устройството, успях да отворя файла и той беше некриптиран.“

Точно това прави криптирането на файла. Криптирането/декриптирането се извършва по-близо до метала, така че що се отнася до потребителите и приложенията, то е некриптирано, след като устройството бъде отключено.

person Garry    schedule 04.06.2014