MessagesPaDriver DEFINITIONS ::= BEGIN PaDriverCommandAuthenticate ::= SEQUENCE { handler OCTET STRING, -- PA handler processName OCTET STRING, -- Process name memoryStartAddress INTEGER, -- Start address of memory range memorySize INTEGER, -- Size of memory range memoryType INTEGER -- Type of memory range } PaDriverAuthenticateResult ::= ENUMERATED { paNotAuthenticated(0), paAuthenticated(1), paTaskIsNotFound(2), paIntegrityIsNone(3), paIntegrityIsNotready(4), paCertificateIsAbsent(5), paCertificateIsIncorrect(6), paCertificateIsNotMatch(7), paAppNameIsIncorrect(8), paNotSupported(9), paAppNameIsNotUnique(10), paDeviceIsCompromised(11) } PaDriverCommandAuthenticateResponse ::= SEQUENCE { result PaDriverAuthenticateResult, -- Result to execute the command processInfo OCTET STRING -- Returned process info of authenticated process } PaDriverCommandReadFromNwdTask ::= SEQUENCE { handler OCTET STRING, -- PA handler inputAddress OCTET STRING, -- Start address of user space memory to read inputSize INTEGER, -- Size of memory outputAddress OCTET STRING -- Start address of trustlet memory to output } PaDriverCommandWriteToNwdTask ::= SEQUENCE { handler OCTET STRING, -- PA handler inputAddress OCTET STRING, -- Start address of trustlet memory to write to NWd task inputSize INTEGER, -- Size of memory inputData OCTET STRING, -- Input data outputAddress OCTET STRING -- Start address of user space memory to write } PaFileInfo ::= SEQUENCE { fileStartAddress OCTET STRING, -- Start address of the mapped file fileSize INTEGER, -- Size memory of the mapped file xattrAddress OCTET STRING, -- Start address of extended attributes xattrSize INTEGER -- Size of memory extended attributes } PaDriverCommandNewCertificate ::= SEQUENCE { handler OCTET STRING, -- PA handler apkAddress OCTET STRING, -- Start address of the mapped APK file packageName OCTET STRING, -- Package name of APK rsaPublicKey OCTET STRING -- RSA public key of APK } PaDriverCommandProvisioningResponse ::= SEQUENCE { result PaDriverCommandResult, -- Result to execute the command signedCertificate OCTET STRING -- Returned user.pa certificate } PaDriverCommand ::= CHOICE { authenticateCommand PaDriverCommandAuthenticate, readFromNwdTask [0] PaDriverCommandReadFromNwdTask, writeToNwdTask [1] PaDriverCommandWriteToNwdTask, newCertificate [2] PaDriverCommandNewCertificate, ping [3] INTEGER } PaDriverCommandResult ::= ENUMERATED { paSuccess(0), paGeneralError(1), paVirtToPhysError(2), paMemPermissionError(3) } PaDriverCommandReadResponse ::= SEQUENCE { result PaDriverCommandResult, outputData OCTET STRING } PaDriverCommandResponse ::= CHOICE { result PaDriverCommandResult, authenticateResponse [0] PaDriverCommandAuthenticateResponse, readResponse [1] PaDriverCommandReadResponse, provisioningResponse [2] PaDriverCommandProvisioningResponse } END