首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试使用Tpm2Lib创建主键时的BadAuth响应

尝试使用Tpm2Lib创建主键时的BadAuth响应
EN

Stack Overflow用户
提问于 2019-09-20 18:33:59
回答 1查看 142关注 0票数 0

下面是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时,也会显示此信息。

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

发布于 2019-09-23 16:18:18

忘记ownerAuth,这样做:

代码语言:javascript
复制
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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58026668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档