• Linus Torvalds's avatar
    Merge branch 'next-tpm' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security · 5af7f115
    Linus Torvalds authored
    Pull tpm updates from James Morris:
    
     - Clean up the transmission flow
    
       Cleaned up the whole transmission flow. Locking of the chip is now
       done in the level of tpm_try_get_ops() and tpm_put_ops() instead
       taking the chip lock inside tpm_transmit(). The nested calls inside
       tpm_transmit(), used with the resource manager, have been refactored
       out.
    
       Should make easier to perform more complex transactions with the TPM
       without making the subsystem a bigger mess (e.g. encrypted channel
       patches by James Bottomley).
    
     - PPI 1.3 support
    
       TPM PPI 1.3 introduces an additional optional command parameter that
       may be needed for some commands. Display the parameter if the command
       requires such a parameter. Only command 23 (SetPCRBanks) needs one.
    
       The PPI request file will show output like this then:
    
          # echo "23 16" > request
          # cat request
          23 16
    
          # echo "5" > request
          # cat request
          5
    
     - Extend all PCR banks in IMA
    
       Instead of static PCR banks array, the array of available PCR banks
       is now allocated dynamically. The digests sizes are determined
       dynamically using a probe PCR read without relying crypto's static
       list of hash algorithms.
    
       This should finally make sealing of measurements in IMA safe and
       secure.
    
     - TPM 2.0 selftests
    
       Added a test suite to tools/testing/selftests/tpm2 previously outside
       of the kernel tree: https://github.com/jsakkine-intel/tpm2-scripts
    
    * 'next-tpm' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: (37 commits)
      tpm/ppi: Enable submission of optional command parameter for PPI 1.3
      tpm/ppi: Possibly show command parameter if TPM PPI 1.3 is used
      tpm/ppi: Display up to 101 operations as define for version 1.3
      tpm/ppi: rename TPM_PPI_REVISION_ID to TPM_PPI_REVISION_ID_1
      tpm/ppi: pass function revision ID to tpm_eval_dsm()
      tpm: pass an array of tpm_extend_digest structures to tpm_pcr_extend()
      KEYS: trusted: explicitly use tpm_chip structure from tpm_default_chip()
      tpm: move tpm_chip definition to include/linux/tpm.h
      tpm: retrieve digest size of unknown algorithms with PCR read
      tpm: rename and export tpm2_digest and tpm2_algorithms
      tpm: dynamically allocate the allocated_banks array
      tpm: remove @flags from tpm_transmit()
      tpm: take TPM chip power gating out of tpm_transmit()
      tpm: introduce tpm_chip_start() and tpm_chip_stop()
      tpm: remove TPM_TRANSMIT_UNLOCKED flag
      tpm: use tpm_try_get_ops() in tpm-sysfs.c.
      tpm: remove @space from tpm_transmit()
      tpm: move TPM space code out of tpm_transmit()
      tpm: move tpm_validate_commmand() to tpm2-space.c
      tpm: clean up tpm_try_transmit() error handling flow
      ...
    5af7f115
ima.h 9.47 KB