Skip to content
Snippets Groups Projects
Select Git revision
  • ee0b31a25a010116f44fca6c96f4516d417793dd
  • add-vdpu381-and-383-to-rkvdec-v2
  • add-vdpu381-and-383-to-rkvdec
  • prepare-add-vdpu381-and-383-to-rkvdec
  • add-rkvdec2-driver-vdpu383-hevc
  • add-rkvdec2-driver-vdpu383
  • add-rkvdec2-driver-hevc
  • rkvdec-mov-to-structs
  • av1-fix-postproc-leak
  • add-rkvdec2-driver-iommu-422-10bits
  • patch-queue/jamba/trixie
  • hdmi-fix-1080p-rock4d-6.11
  • upstreaming/rk3576-rock4d-spi-v1
  • upstreaming/rk3576-rock4d-support-v5
  • upstreaming/rk3588-hdmi-audio-6
  • upstreaming/rk3576-rock4d-support-v3
  • upstreaming/rk3576-rock4d-support-v1
  • upstreaming/rk3576-rock4d-support
  • add-rkvdec2-driver-iommu
  • upstream/rk3576-rock-4d
  • rk3588-hdmi-audio-2
  • v6.3
  • v6.3-rc1
  • v6.2-rc1
  • v6.0-rc1
  • v5.19-rc3
  • v5.19-rc2
  • v5.19-rc1
  • v5.18
  • v5.18-rc7
  • v5.18-rc6
  • v5.18-rc5
  • v5.18-rc4
  • v5.18-rc3
  • v5.18-rc2
  • v5.18-rc1
  • v5.17
  • v5.17-rc8
  • v5.17-rc7
  • v5.17-rc6
  • v5.17-rc5
41 results

masterkey_trusted.c

Blame
  • Forked from hardware-enablement / Rockchip upstream enablement efforts / linux
    Source project has a limited visibility.
    masterkey_trusted.c 1.35 KiB
    /*
     * Copyright (C) 2010 IBM Corporation
     * Copyright (C) 2010 Politecnico di Torino, Italy
     *                    TORSEC group -- http://security.polito.it
     *
     * Authors:
     * Mimi Zohar <zohar@us.ibm.com>
     * Roberto Sassu <roberto.sassu@polito.it>
     *
     * This program is free software; you can redistribute it and/or modify
     * it under the terms of the GNU General Public License as published by
     * the Free Software Foundation, version 2 of the License.
     *
     * See Documentation/security/keys-trusted-encrypted.txt
     */
    
    #include <linux/uaccess.h>
    #include <linux/module.h>
    #include <linux/err.h>
    #include <keys/trusted-type.h>
    #include <keys/encrypted-type.h>
    #include "encrypted.h"
    
    /*
     * request_trusted_key - request the trusted key
     *
     * Trusted keys are sealed to PCRs and other metadata. Although userspace
     * manages both trusted/encrypted key-types, like the encrypted key type
     * data, trusted key type data is not visible decrypted from userspace.
     */
    struct key *request_trusted_key(const char *trusted_desc,
    				u8 **master_key, size_t *master_keylen)
    {
    	struct trusted_key_payload *tpayload;
    	struct key *tkey;
    
    	tkey = request_key(&key_type_trusted, trusted_desc, NULL);
    	if (IS_ERR(tkey))
    		goto error;
    
    	down_read(&tkey->sem);
    	tpayload = rcu_dereference(tkey->payload.data);
    	*master_key = tpayload->key;
    	*master_keylen = tpayload->key_len;
    error:
    	return tkey;
    }