|
|
@@ -27,25 +27,22 @@ Managing templates with these structures is very simple. To support
|
|
|
a new data type, developers define the field identifier and implement
|
|
|
two functions, init() and show(), respectively to generate and display
|
|
|
measurement entries. Defining a new template descriptor requires
|
|
|
-specifying the template format, a string of field identifiers separated
|
|
|
-by the '|' character. While in the current implementation it is possible
|
|
|
-to define new template descriptors only by adding their definition in the
|
|
|
-template specific code (ima_template.c), in a future version it will be
|
|
|
-possible to register a new template on a running kernel by supplying to IMA
|
|
|
-the desired format string. In this version, IMA initializes at boot time
|
|
|
-all defined template descriptors by translating the format into an array
|
|
|
-of template fields structures taken from the set of the supported ones.
|
|
|
+specifying the template format (a string of field identifiers separated
|
|
|
+by the '|' character) through the 'ima_template_fmt' kernel command line
|
|
|
+parameter. At boot time, IMA initializes the chosen template descriptor
|
|
|
+by translating the format into an array of template fields structures taken
|
|
|
+from the set of the supported ones.
|
|
|
|
|
|
After the initialization step, IMA will call ima_alloc_init_template()
|
|
|
(new function defined within the patches for the new template management
|
|
|
mechanism) to generate a new measurement entry by using the template
|
|
|
descriptor chosen through the kernel configuration or through the newly
|
|
|
-introduced 'ima_template=' kernel command line parameter. It is during this
|
|
|
-phase that the advantages of the new architecture are clearly shown:
|
|
|
-the latter function will not contain specific code to handle a given template
|
|
|
-but, instead, it simply calls the init() method of the template fields
|
|
|
-associated to the chosen template descriptor and store the result (pointer
|
|
|
-to allocated data and data length) in the measurement entry structure.
|
|
|
+introduced 'ima_template' and 'ima_template_fmt' kernel command line parameters.
|
|
|
+It is during this phase that the advantages of the new architecture are
|
|
|
+clearly shown: the latter function will not contain specific code to handle
|
|
|
+a given template but, instead, it simply calls the init() method of the template
|
|
|
+fields associated to the chosen template descriptor and store the result
|
|
|
+(pointer to allocated data and data length) in the measurement entry structure.
|
|
|
|
|
|
The same mechanism is employed to display measurements entries.
|
|
|
The functions ima[_ascii]_measurements_show() retrieve, for each entry,
|
|
|
@@ -86,4 +83,6 @@ currently the following methods are supported:
|
|
|
- select a template descriptor among those supported in the kernel
|
|
|
configuration ('ima-ng' is the default choice);
|
|
|
- specify a template descriptor name from the kernel command line through
|
|
|
- the 'ima_template=' parameter.
|
|
|
+ the 'ima_template=' parameter;
|
|
|
+ - register a new template descriptor with custom format through the kernel
|
|
|
+ command line parameter 'ima_template_fmt='.
|