tpm2-software.github.io icon indicating copy to clipboard operation
tpm2-software.github.io copied to clipboard

Info about tpm2-software

This is the source for the community website of the tpm2-software namespace on GitHub. It uses github pages (with Jekyl).

Building (locally)

Note that github.io will automatically build this page, but you should probably test it locally first.

Prerequisits

Ubuntu

$ sudo apt-get -y install ruby ruby-dev build-essential libz-dev

Fedora

$ sudo dnf -y install ruby ruby-devel zlib-devel gcc g++ make redhat-rpm-config

Install bundler, which is used to install the dependencies specifically for building this repo.

$ gem install bundler

You may need to add the place gem's puts binaries to your PATH.

$ export PATH="${HOME}/bin:${PATH}"

Make sure you're in the top level directory of this repo when you run the next command.

$ bundle install

Build

$ bundle exec jekyll serve --incremental

TPM2 Software Stack Diagram

graph BT

tss[TSS: tpm2-tss]
tcti-mssim[Mssim TCTI: tpm2-tss: tcti-mssim]
tcti-device[Device TCTI: tpm2-tss: tcti-device]

simulator[TPM 2.0 Simulator]
hardware[TPM 2.0 Hardware]

uefi[UEFI]
tcti-uefi[UEFI TCTI: tpm2-tcti-uefi]

linux[Linux]
tpm0[Kernel Driver: /dev/tpm0]
tpmrm0[Kernel Resource Manager: /dev/tpmrm0]

abrmd[Userspace Resource Manager: tpm2-abrmd]
tcti-tabrmd[Userspace Resource Manager TCTI: tpm2-abrmd: tcti-tabrmd]

engine[OpenSSL Engine: tpm2-tss-engine]
totp[Device to Human attestation: tpm2-totp]
pkcs11[PKCS#11 Interface: tpm2-pkcs11]
tools[Command Line Tools: tpm2-tools]
swig[SWIG Interfaces: tpm2-swig]
pytss[TSS Python Bindings: tpm2-pytss]

subgraph Legend
legend-TPM[TPM]
legend-OS[Ring 0]
legend-RM[Resource Manager]
legend-TCTI[TCTI]
legend-Library[Library]
legend-Module[.so]
legend-EndUser[End User]
end

classDef TPM fill:#5ff,stroke:#333;
classDef OS fill:#f9f,stroke:#333;
classDef RM fill:#f85,stroke:#333;
classDef TCTI fill:#af6,stroke:#333;
classDef Library fill:#7da,stroke:#333;
classDef Module fill:#def,stroke:#333;
classDef EndUser fill:#ffa,stroke:#333;

class legend-TPM,simulator,hardware TPM;
class legend-OS,uefi,linux,tpm0 OS;
class legend-RM,tpmrm0,abrmd RM;
class legend-TCTI,tcti-uefi,tcti-mssim,tcti-device,tcti-tabrmd TCTI;
class legend-Library,tss,pytss Library;
class legend-Module,engine,pkcs11 Module;
class legend-EndUser,totp,tools EndUser;

simulator --> tcti-mssim
hardware --> uefi
hardware --> linux
linux --> tpm0
linux --> tpmrm0

uefi --> tcti-uefi
tpm0 --> tcti-device
tpmrm0 --> tcti-device

tcti-device--> abrmd
abrmd --> tcti-tabrmd

tcti-uefi --> tss
tcti-mssim --> tss
tcti-device --> tss
tcti-tabrmd --> tss

tss --> engine
tss --> totp
tss --> pkcs11
tss --> tools
tss --> swig
swig--> pytss
pytss --> pkcs11

Edit in Live editor: https://mermaidjs.github.io/mermaid-live-editor/

LICENSE

All content of this repository is licensed under CC-BY 4.0

CONTIBUTING

All changes should be introduced via github pull requests. This allows anyone to comment and provide feedback in lieu of having a mailing list. For pull requests opened by non-maintainers, any maintainer may review and merge that pull request. For maintainers, they either must have their pull request reviewed by another maintainer if possible, or leave the PR open for at least 24 hours, we consider this the window for comments.

  • All commits should adhere to the git commit message guidelines described here: https://chris.beams.io/posts/git-commit/ with the following exceptions.
  • We allow commit subject lines up to 80 characters.
  • All contributions must adhere to the Developers Certificate of Origin. The full text of the DCO is here: https://developercertificate.org/. Contributors must add a 'Signed-off-by' line to their commits. This indicates the submitters acceptance of the DCO.
  • Changes must be merged with the "rebase" option on github to avoid merge commits. This provides for a clear linear history.