linux/include/keys/trusted-type.h
<<
>>
Prefs
   1/*
   2 * Copyright (C) 2010 IBM Corporation
   3 * Author: David Safford <safford@us.ibm.com>
   4 *
   5 * This program is free software; you can redistribute it and/or modify
   6 * it under the terms of the GNU General Public License as published by
   7 * the Free Software Foundation, version 2 of the License.
   8 */
   9
  10#ifndef _KEYS_TRUSTED_TYPE_H
  11#define _KEYS_TRUSTED_TYPE_H
  12
  13#include <linux/key.h>
  14#include <linux/rcupdate.h>
  15#include <linux/tpm.h>
  16
  17#define MIN_KEY_SIZE                    32
  18#define MAX_KEY_SIZE                    128
  19#define MAX_BLOB_SIZE                   512
  20#define MAX_PCRINFO_SIZE                64
  21#define MAX_DIGEST_SIZE                 64
  22
  23struct trusted_key_payload {
  24        struct rcu_head rcu;
  25        unsigned int key_len;
  26        unsigned int blob_len;
  27        unsigned char migratable;
  28        unsigned char key[MAX_KEY_SIZE + 1];
  29        unsigned char blob[MAX_BLOB_SIZE];
  30};
  31
  32struct trusted_key_options {
  33        uint16_t keytype;
  34        uint32_t keyhandle;
  35        unsigned char keyauth[TPM_DIGEST_SIZE];
  36        unsigned char blobauth[TPM_DIGEST_SIZE];
  37        uint32_t pcrinfo_len;
  38        unsigned char pcrinfo[MAX_PCRINFO_SIZE];
  39        int pcrlock;
  40        uint32_t hash;
  41        uint32_t policydigest_len;
  42        unsigned char policydigest[MAX_DIGEST_SIZE];
  43        uint32_t policyhandle;
  44};
  45
  46extern struct key_type key_type_trusted;
  47
  48#endif /* _KEYS_TRUSTED_TYPE_H */
  49