下面是Microsoft TPM库( https://github.com/microsoft/TSS.MSR/blob/master/TSS.NET/Samples/Signing/Program.cs )的示例。尝试创建将用于对消息进行签名的主键失败,并显示Error {BadAuth} was returned for command CreatePrimary
我在Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TPM\WMI\Admin的注册表中查找OwnerAuthFull的值,假设该值为"foo/bar=“。当我在命令行上运行Get-Tpm时,也会显示此信息。
Tpm2Device tpmDevice = new TbsDevice();
tpmDevice.Connect();
var tpm = new Tpm2( tpmDevice );
var authValueRegistry = Encoding.ASCII.GetBytes( "foo/bar=" );
var ownerAuth = new AuthValue( authValueRegistry );
var keyTemplate = new TpmPublic( TpmAlgId.Sha1, // Name algorithm
ObjectAttr.UserWithAuth | ObjectAttr.Sign | // Signing key
ObjectAttr.FixedParent | ObjectAttr.FixedTPM | // Non-migratable
ObjectAttr.SensitiveDataOrigin,
null, // No policy
new RsaParms( new SymDefObject(),
new SchemeRsassa( TpmAlgId.Sha1 ), 2048, 0 ),
new Tpm2bPublicKeyRsa() );
Console.WriteLine( "Made template" );
var keyAuth = new byte[] { 1, 2, 3 };
TpmPublic keyPublic;
CreationData creationData;
TkCreation creationTicket;
byte[] creationHash;
Console.WriteLine( "try create key" );
var keyHandle = tpm[ownerAuth].CreatePrimary(
TpmRh.Owner, // In the owner-hierarchy
new SensitiveCreate( keyAuth, null ), // With this auth-value
keyTemplate, // Describes key
null, // Extra data for creation ticket
new PcrSelection[ 0 ], // Non-PCR-bound
out keyPublic, // PubKey and attributes
out creationData, out creationHash, out creationTicket ); // Not used here我希望创建一个键并继续运行,但是CreatePrimary()抛出了一个异常,消息为Error {BadAuth} was returned for command CreatePrimary
发布于 2019-09-23 16:18:18
忘记ownerAuth,这样做:
var keyHandle = tpm.CreatePrimary(
TpmRh.Owner, // In the owner-hierarchy
new SensitiveCreate( keyAuth, null ), // With this auth-value
keyTemplate, // Describes key
null, // Extra data for creation ticket
new PcrSelection[ 0 ], // Non-PCR-bound
out keyPublic, // PubKey and attributes
out creationData, out creationHash, out creationTicket ); 你可以从这个github问题中推断出:https://github.com/microsoft/TSS.MSR/issues/43#event-2651641565
https://stackoverflow.com/questions/58026668
复制相似问题