Information about app APIs that are intercepted for encryption
and decryption.
Intercepted APIs
Unless otherwise indicated,
these APIs are both encrypted and decrypted in the wrapper.
C
APIs cannot be considered for interception. If the files handled by
C APIs must be encrypted, switch to alternative Objective-C APIs.
NSData
| Class |
Method |
| NSData |
- initWithContentsOfFile: |
| |
- initWithContentsOfFile:options:error: |
| |
- writeToFile:atomically: |
| |
- writeToFile:options:error: |
| |
+ dataWithContentsOfFile: |
| |
+ dataWithContentsOfURL: |
| |
- writeToURL:atomically: |
NSString
| Class |
Method |
| NSString |
- initWithContentsOfFile:encoding:error: |
| |
- initWithContentsOfFile:usedEncoding:error: |
| |
- writeToFile:atomically:encoding:error: |
| |
- writeToURL:atomically:encoding:error: |
NSFileHandle
| Class |
Method |
| NSFileHandle |
+ fileHandleForReadingAtPath: |
| |
+ fileHandleForReadingFromURL:error: |
| |
+ fileHandleForWritingAtPath: |
| |
+ fileHandleForWritingToURL:error: |
| |
+ fileHandleForUpdatingAtPath: |
| |
+ fileHandleForUpdatingURL:error: |
| |
- initWithFileDescriptor: |
| |
- initWithFileDescriptor:closeOnDealloc: |
| |
- readDataOfLength: |
| |
- writeData: |
| |
- closeFile |
| |
- readDataToEndOfFile |
NSOutputStream (Encryption
only)
| Class |
Method |
| NSOutputStream |
- initWithURL:append: |
| |
- write:maxLength: |
| |
- close |
NSFileManager
| Class |
Method |
| NSFileManager |
- createFileAtPath:contents:attributes: |
| |
- removeItemAtPath:error: |
| |
- copyItemAtPath:toPath:error: |
| |
- moveItemAtPath:toPath:error: |
NSUserDefaults
| Class |
Method |
| NSUserDefaults |
- objectForKey: |
| |
- setObject:forKey: |
| |
- boolForKey: |
| |
- integerForKey: |
| |
- stringForKey: |
| |
- persistentDomainForName: |
AVPlayer (Decryption
only)
| Class |
Method |
| AVPlayer |
- initWithPlayerItem: |
MPMoviePlayerController (Decryption
only. Deprecated in iOS 9.0)
| Class |
Method |
| MPMoviePlayerController |
- initWithContentURL: |
NSPersistentStoreCoordinator
| Class |
Method |
| NSPersistentStoreCoordinator |
- addPersistentStoreWithType:configuration:URL:options:error: |
NSDictionary (Decryption
only)
| Class |
Method |
| NSDictionary |
+ dictionaryWithContentsOfFile: |
NSKeyedArchiver (Encryption
only)
| Class |
Method |
| NSKeyedArchiver |
+ archiveRootObject:toFile: |
NSKeyedUnarchiver
| Class |
Method |
| NSKeyedUnarchiver |
+ archiveRootObject:toFile: |
(Decryption only)
UIImage (Decryption only)
| Class |
Method |
| UIImage |
+ imageWithContentsOfFile: |
| |
+ imageNamed: |
AVURLAsset
| Class |
Method |
| AVURLAsset |
- initWithURL:options: |
| |
|
(Decryption only)
sqlite3.c
| Class |
Method |
| sqlite3.c |
sqlite3_open |
Special Case - Support for Core Graphics PDF
To
decrypt PDF files dynamically, you must use an Objective-C interface
to intercept. MaaS360® provides
an Objective-C wrapper for the C function that is used to create PDF
references.
thePDFDocRef = [MaaS360AppWrapUtility CGPDFDocumentCreateWithURL:theURL]; You
must download two files from MaaS360 Developer
Support and include those files in your source code:
- MaaS360AppWrapUtility.m
- MaaS360AppWrapUtility.h
Include the new Objective-C class file in your source code
to the target. The header of this file must be included in the files
where the changes are needed.
Non-iOS APIs intercepted
Third-party
APIs
| Class |
Method |
Use |
| MaaS360AppWrapUtility |
+ CGPDFDocumentCreateWithURL: |
Decryption |
| MFDocumentManager |
- initWithFileUrl: |
Decryption |
| ReaderDocument |
+ isPDF: |
Decryption |
| SSZipArchive |
+ unzipFileAtPath:toDestination: |
Decryption/Encryption |
| ZipArchive |
- addFileToZip:newName: |
Decryption/Encryption |