Skip to content
  • David Howells's avatar
    KEYS: Add payload preparsing opportunity prior to key instantiate or update · cf7f601c
    David Howells authored
    Give the key type the opportunity to preparse the payload prior to the
    instantiation and update routines being called.  This is done with the
    provision of two new key type operations:
    
    	int (*preparse)(struct key_preparsed_payload *prep);
    	void (*free_preparse)(struct key_preparsed_payload *prep);
    
    If the first operation is present, then it is called before key creation (in
    the add/update case) or before the key semaphore is taken (in the update and
    instantiate cases).  The second operation is called to clean up if the first
    was called.
    
    preparse() is given the opportunity to fill in the following structure:
    
    	struct key_preparsed_payload {
    		char		*description;
    		void		*type_data[2];
    		void		*payload;
    		const void	*data;
    		size_t		datalen;
    		size_t		quotalen;
    	};
    
    Before the preparser is called, the first three fields will have been cleared,
    the payload pointer and size will be stored in data and datalen and the default
    quota siz...
    cf7f601c