Main Content

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.

Diagram of a generated component, which consists of target-specific binary code and the deployable archive, which contains encrypted MATLAB data, data files, and MEX-files.

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.

Related Topics