| 107 | |
| 108 | == Generate Random Number |
| 109 | |
| 110 | See example below |
| 111 | {{{ |
| 112 | tpm2_getrandom --hex 8 |
| 113 | }}} |
| 114 | |
| 115 | == TPM Key Flow |
| 116 | |
| 117 | A general flow for loading a key into the TPM: (arguments needed for below commands specific to each application ) |
| 118 | {{{ |
| 119 | #!bash |
| 120 | tpm2_createpolicy # Create PCR Policy |
| 121 | |
| 122 | tpm2_createprimary # Create primary TPM object |
| 123 | |
| 124 | tpm2_create # Create TPM Object with Secret |
| 125 | |
| 126 | tpm2_load # Load object into the TPM |
| 127 | |
| 128 | tpm2_evictcontrol # Make TPM Object Persistant |
| 129 | |
| 130 | rm files #remove your working files |
| 131 | |
| 132 | }}} |
| 133 | == Resources |
| 134 | |
| 135 | * Gateworks Venice Secure Boot Wiki: https://trac.gateworks.com/wiki/venice/secure_boot |
| 136 | * Security Considerations for Embedded Designs: https://www.gateworks.com/security-considerations-for-embedded-designs-single-board-computers/ |
| 137 | * TPM Specification: https://trustedcomputinggroup.org/resource/pc-client-platform-tpm-profile-ptp-specification/ |
| 138 | * Microchip TPM Product Page: https://www.microchip.com/en-us/product/attpm20p |
| 139 | * The Web - A lot of examples and information about TPMs are available by searching the web |