• Roberto Sassu's avatar
    ima: restore the original behavior for sending data with ima template · c019e307
    Roberto Sassu authored
    With the new template mechanism introduced in IMA since kernel 3.13,
    the format of data sent through the binary_runtime_measurements interface
    is slightly changed. Now, for a generic measurement, the format of
    template data (after the template name) is:
    
    template_len | field1_len | field1 | ... | fieldN_len | fieldN
    
    In addition, fields containing a string now include the '\0' termination
    character.
    
    Instead, the format for the 'ima' template should be:
    
    SHA1 digest | event name length | event name
    
    It must be noted that while in the IMA 3.13 code 'event name length' is
    'IMA_EVENT_NAME_LEN_MAX + 1' (256 bytes), so that the template digest
    is calculated correctly, and 'event name' contains '\0', in the pre 3.13
    code 'event name length' is exactly the string length and 'event name'
    does not contain the termination character.
    
    The patch restores the behavior of the IMA code pre 3.13 for the 'ima'
    template so that legacy userspace tools obtain a consistent behavior
    when receiving data from the binary_runtime_measurements interface
    regardless of which kernel version is used.
    Signed-off-by: default avatarRoberto Sassu <roberto.sassu@polito.it>
    Cc: <stable@vger.kernel.org> # 3.3.13: 3ce1217 ima: define template fields library
    Signed-off-by: default avatarMimi Zohar <zohar@linux.vnet.ibm.com>
    c019e307
ima.h 7.69 KB