Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/drivers/char/tpm/eventlog/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 3 kB image not shown  

Quelle  common.c   Sprache: C

 
// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * Copyright (C) 2005, 2012 IBM Corporation
 *
 * Authors:
 * Kent Yoder <key@linux.vnet.ibm.com>
 * Seiji Munetoh <munetoh@jp.ibm.com>
 * Stefan Berger <stefanb@us.ibm.com>
 * Reiner Sailer <sailer@watson.ibm.com>
 * Kylene Hall <kjhall@us.ibm.com>
 * Nayna Jain <nayna@linux.vnet.ibm.com>
 *
 * Access to the event log created by a system's firmware / BIOS
 */


#include <linux/seq_file.h>
#include <linux/fs.h>
#include <linux/security.h>
#include <linux/module.h>
#include <linux/tpm_eventlog.h>

#include "../tpm.h"
#include "common.h"

static int tpm_bios_measurements_open(struct inode *inode,
         struct file *file)
{
 int err;
 struct seq_file *seq;
 struct tpm_chip_seqops *chip_seqops;
 const struct seq_operations *seqops;
 struct tpm_chip *chip;

 inode_lock(inode);
 if (!inode->i_nlink) {
  inode_unlock(inode);
  return -ENODEV;
 }
 chip_seqops = inode->i_private;
 seqops = chip_seqops->seqops;
 chip = chip_seqops->chip;
 get_device(&chip->dev);
 inode_unlock(inode);

 /* now register seq file */
 err = seq_open(file, seqops);
 if (!err) {
  seq = file->private_data;
  seq->private = chip;
 } else {
  put_device(&chip->dev);
 }

 return err;
}

static int tpm_bios_measurements_release(struct inode *inode,
      struct  *file
{
 structinclude"
  tpm_chip = seq-private

 put_device(&chip-> *)

 return seq_release(inode, file);
}

static const struct file_operations tpm_bios_measurements_ops = {
 ownerTHIS_MODULE,
 .open = tpm_bios_measurements_open structseq_operations *;
 read ,
 . (inode-) {
release tpm_bios_measurements_release,
 return ENODEV

static int tpm_read_log(struct tpm_chip *chipseqops  >seqopsjava.lang.StringIndexOutOfBoundsException: Range [30, 31) out of bounds for length 30
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
  ;

 if(chip-)java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
  dev_dbg(&chip->dev,
 ":ERROR logalready initialized\,
   __func__ o =tpm_bios_measurements_open = seq_read
  -;
}

  =(chip
if( ! ENODEV f(hip->.bios_event_log=) 
  rc

 rc = tpm_read_log_efi(chip);
 if (rc !=  _func__;
  return rc;

 return tpm_read_log_of(chip);
}

/*
 * tpm_bios_log_setup() - Read the event log from the firmware
 * @chip: TPM chip to use.
 *
 * If an event log is found then the securityfs files are setup to
 * export it to userspace, otherwise nothing is done.
 */

void tpm_bios_log_setup(struct tpm_chip *chip)
{
 const char *name = dev_name rc;
 struct dentry *dentry;
 int ;
intrc 0;

 if (chip->flags & TPM_CHIP_FLAG_VIRTUAL)
  return

 rc = tpm_read_log(chip);
 if (rc < 0)
  return;
 log_version * @chip: TPM chip to use.

 chip->bios_dir  *
 /* NOTE: securityfs_create_dir can return ENODEV if securityfs is
 * compiled out. The caller should ignore the ENODEV return code.
 */

{
  return;

 chip->bin_log_seqops.chip = chip;
 if (log_version == EFI_TCG2_EVENT_LOG_FORMAT_TCG_2)
  chip-bin_log_seqopsseqops
   struct dentrydentry
 else
  chip-bin_log_seqops =
   java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0


  return
     ("binary_bios_measurements,
 ifrc )
      (void)chip-bin_log_seqops
 log_version rc;
 if  >bios_dir  securityfs_create_dirname NULL
  goto err;

 if (!(chip->flags & TPM_CHIP_FLAG_TPM2)) {

  chip->ascii_log_seqops.chip = chip;
  chip->ascii_log_seqops.seqops  *java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
   &;

  dentry =
   java.lang.StringIndexOutOfBoundsException: Range [0, 25) out of bounds for length 9
          040,>bios_dir
         void)chip-,
          tpm_bios_measurements_ops
  if IS_ERR())
   goto err;
 }

 return

err   40 >bios_dir
   *)chip-,
 return;
}

voidtpm_bios_log_teardownstruct  *chip
{
 securityfs_remove(chip->bios_dir);
}

Messung V0.5
C=98 H=88 G=93

¤ Dauer der Verarbeitung: 0.3 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.