Intel® Dynamic Application Loader (Intel® DAL) Developer Guide
                    
                        ID
                        773482
                    
                
                
                    Date
                    3/24/2023
                
                
                    Public
                
            
                                                                        
                                                                        
                                                                            
                                                                            
                                                                                For API Level 1 - Intel® ME 7.x - Sandy Bridge
                                                                            
                                                                            
                                                                        
                                                                            
                                                                            
                                                                                For API Level 1.1 - Intel® ME 8.x lite - Sandy Bridge
                                                                            
                                                                            
                                                                        
                                                                            
                                                                            
                                                                                For API Level 2 - Intel® ME 8.0 - Ivy Bridge
                                                                            
                                                                            
                                                                        
                                                                            
                                                                            
                                                                                For API Level 3 - Intel® ME 8.1 - Ivy Bridge
                                                                            
                                                                            
                                                                        
                                                                            
                                                                            
                                                                                For API Level 3 - SEC1.0, SEC1.1, SEC1.2, SEC2.0
                                                                            
                                                                            
                                                                        
                                                                            
                                                                            
                                                                                For API Level 4 - Intel® ME 9.5, Intel ME 9.5.55 - Haswell
                                                                            
                                                                            
                                                                        
                                                                            
                                                                            
                                                                                For API Level 4 - Intel® ME 9.1, Intel ME 9.1.35 - Haswell
                                                                            
                                                                            
                                                                        
                                                                            
                                                                            
                                                                                For API Level 5 - Intel® ME 10.0.0 - Haswell
                                                                            
                                                                            
                                                                        
                                                                            
                                                                            
                                                                                For API Level 6 - Intel® ME 10.0.20 - Broadwell
                                                                            
                                                                            
                                                                        
                                                                            
                                                                            
                                                                                For API Level 7 - ME 11.0 - Skylake_LP and Skylake_H
                                                                            
                                                                            
                                                                        
                                                                            
                                                                            
                                                                                For API Level 8 - TXE3.0 - Broxton, ME 11.5/11.8 - Kabylake_LP, Kabylake_H
                                                                            
                                                                            
                                                                        
                                                                            
                                                                            
                                                                                For API Level 9 - Intel® ME 12.0 - Cannon Lake
                                                                            
                                                                            
                                                                        
                                                                    
                                                                
                                                
                                                
                                                    
                                                    
                                                        Trusted Application Validation Guidelines
                                                    
                                                    
                                                
                                                    
                                                    
                                                        Validating the Manifest
                                                    
                                                    
                                                
                                                    
                                                    
                                                        Memory and Performance
                                                    
                                                    
                                                
                                                    
                                                    
                                                        Error Handling and Recovery
                                                    
                                                    
                                                
                                                    
                                                    
                                                        Functional Validation and Multi-Instance Support
                                                    
                                                    
                                                
                                                    
                                                    
                                                        Pack and DALP Generation and Validation
                                                    
                                                    
                                                
                                                    
                                                    
                                                        Host-Side Software Validation Guidelines
                                                    
                                                    
                                                
                                                    
                                                    
                                                        Trusted Application Management Flows
                                                    
                                                    
                                                
                                                    
                                                    
                                                        Error Handling and Recovery Flows
                                                    
                                                    
                                                
                                                    
                                                    
                                                        Multi-Instance and Interoperability Testing of Trusted Application Management
                                                    
                                                    
                                                
                                                    
                                                    
                                                        General and Platform-Related Events
                                                    
                                                    
                                                
                                                    
                                                    
                                                        End-to-End and Setup Validation Guidelines
                                                    
                                                    
                                                
                                                    
                                                    
                                                        Cross Trusted Application Interoperability Functional Testing
                                                    
                                                    
                                                
                                            
                                        
                                    
                                    
                                        
                                        
                                            Creating a New Project
                                        
                                        
                                    
                                        
                                        
                                            Importing an Existing Project
                                        
                                        
                                    
                                        
                                        
                                            Converting an Existing Project
                                        
                                        
                                    
                                        
                                        
                                            Building and Packaging Your Project and Running in Emulated Environment
                                        
                                        
                                    
                                        
                                        
                                            Running Your Project
                                        
                                        
                                    
                                        
                                        
                                            Running and Testing on Emulation and on Silicon
                                        
                                        
                                    
                                        
                                        
                                            Debugging Trusted Applications
                                        
                                        
                                    
                                        
                                        
                                            Preparing and Submitting Your Project for Signing
                                        
                                        
                                    
                                        
                                        
                                            Signing an Applet
                                        
                                        
                                    
                                        
                                        
                                            Signing New Versions
                                        
                                        
                                    
                                
                            Linux* Host Application Sample
This is a simple Linux* host application that:
- Loads a trusted application into the Intel® DAL virtual machine (DAL VM).
 - Communicates with the trusted application.
 
It uses the legacy Intel DAL Java* Host Interface APIs and runs over the user space.
This application performs this flow:
- Initializes a connection with the Intel DAL Host Interface Daemon.
 - Installs a trusted application.
 - Opens a session to the trusted application.
 - Use the trusted application's SendAndRecv function to send command and receive data.
 - Closes the session.
 - Uninstalls the trusted application.
 - Ends the connection with Intel DAL Host Interface Daemon.
 
This sample attempts to load a default trusted application called echo.dalp that should be located under /tmp/dal. You can find this .dalp file under the Include folder. Copy it to /tmp/dal to run this sample.
The sample includes the source code and an executable file that was compiled on Linux Yocto* distribution 64-bit OS.
In order to rebuild the sample code, you will need to:
- Install CMake
 - Run inside /DALHostApplication/
cmake . make
 
The output folder is DALHostApplication/bin.
For running the resulting executable, make sure that the Intel DAL Host Interface Daemon is up and running, and run inside DALHostApplication/bin/:
./DALHostApplication