About Deployable Archives
When MATLAB® Compiler™ or MATLAB Compiler SDK™ creates an application or shared library, it bundles the content into a deployable archive, which is a CTF file that contains all the MATLAB based content (MATLAB files, MEX-files, and so on) included in the application.
All MATLAB files (.m
and .p
files) included in the
deployable archive are encrypted using the Advanced Encryption Standard (AES) cryptosystem.
By default, the names of files and the directory structure are not obscured and other file
types, including MEX files, MAT files, FIG files, Java JAR or class files, are not
encrypted. Every other type of file is copied, unchanged, into the archive. When the
deployable application runs, the files in the CTF archive are extracted onto the disk, and
any files that were encrypted in the archive remain encrypted on the disk. If you choose to
extract the deployable archive as a separate file, the files also remain encrypted.
Caution
Do not extract the files within the .ctf
file and place them
individually under version control. Since the .ctf
file contains
interdependent MATLAB functions and data, the files within it must be accessed only by
accessing the .ctf
file. For best results, place the entire
.ctf
file under version control.
There are several packaging options to increase the security of a packaged application. For details, see Protect Code and Data in Deployable Archive.
Additional Details
Multiple deployable archives, such as those generated with COM components, .NET assemblies, or Excel® add-ins, can coexist in the same user application. You cannot, however, mix and match the MATLAB files they contain. You cannot combine encrypted and compressed MATLAB files from multiple deployable archives into another deployable archive and distribute them.
All the MATLAB files from a given deployable archive associate with a unique cryptographic key. MATLAB files with different keys, placed in the same deployable archive, do not execute. If you want to generate another application with a different mix of MATLAB files, recompile these MATLAB files into a new deployable archive.
The compiler deletes the deployable archive and generated binary following a failed
compilation, but only if these files did not exist before compilation initiates. Run
help mcc -K
for more information.
Caution
Release Engineers and Software Configuration Managers: Do not use build procedures or processes that strip shared libraries on deployable archives. If you do, you can possibly strip the deployable archive from the binary, resulting in run time errors for the driver application.