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
Public (Asymmetric) Key Cryptography
When public (or asymmetric) key encryption is used, a public key is used for encryption and a private key is used for decryption. The advantage of asymmetric keys is that they solve the problem of passing the shared key securely. The disadvantages are that these algorithms are vulnerable to 'known ciphertext' attacks and there is still a need for a method to trust the public key.
Algorithms supported by Intel® DAL
RSA (Rivest, Shamir & Adleman)
- Key generation
- Key sizes: 768, 1024, 2048
- Encryption/Decryption
- Key sizes: Between 96 and 512, divisible by 8
- Padding options: None/PKCS1/OAEP
- Digital Signing/Verification
- Key sizes in the range [96 -512] bytes, that are divisible by 8
- Padding options: PKCS1
Class documentation: com.intel.crypto.RsaAlg
ECC (Elliptic Curve Cryptography) - supported from API Level 7
- Key Generation
- Curves
- SECP256K1
- P256*
- P384*
- Encryption/Decryption
- ECIES algorithm
- Digital Signing/Verification
- ECDSA algorithm
Class documentation: com.intel.crypto.EccAlg
* Starting from API level 8
For more information, see RSA Specification.
Supported from API level 1