• Harald Freudenberger's avatar
    s390/pkey: Add support for key blob with clear key value · 888edbc4
    Harald Freudenberger authored
    This patch adds support for a new key blob format to the
    pkey kernel module. The new key blob comprises a clear
    key value together with key type information.
    
    The implementation tries to derive an protected key
    from the blob with the clear key value inside with
    1) the PCKMO instruction. This may fail as the LPAR
       profile may disable this way.
    2) Generate an CCA AES secure data key with exact the
       clear key value. This requires to have a working
       crypto card in CCA Coprocessor mode. Then derive
       an protected key from the CCA AES secure key again
       with the help of a working crypto card in CCA mode.
    If both way fail, the transformation of the clear key
    blob into a protected key will fail. For the PAES cipher
    this would result in a failure at setkey() invocation.
    
    A clear key value exposed in main memory is a security
    risk. The intention of this new 'clear key blob' support
    for pkey is to provide self-tests for the PAES cipher key
    implementation. These known answer tests obviously need
    to be run with well known key values. So with the clear
    key blob format there is a way to provide knwon answer
    tests together with an pkey clear key blob for the
    in-kernel self tests done at cipher registration.
    Signed-off-by: default avatarHarald Freudenberger <freude@linux.ibm.com>
    Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
    888edbc4
zcrypt_ccamisc.h 7.66 KB