我正在尝试对我的 IoT 中心使用基于 TPM 的注册。我们已经有几个设备在现场(运行 windows iot ent),所以我编写了一个基本的 PS 脚本来获取他们的 TPM 公共 EK 并在我们的 DPS 中手动注册它们。该脚本生成 ASN.1 编码公钥的 base64 字符串。当我在背书密钥字段中使用该值时,我收到错误请求错误消息:“背书密钥无效,或与注册不匹配。”
我是否使用错误的格式来编码公钥?是否有另一种简单的方法来访问格式为 base64 字符串的 TPM 公共 EK?如果有帮助,这是我的脚本
$tpm = Get-TpmEndorsementKeyInfo -HashAlgorithm sha256
$hexPub = $tpm.PublicKey.Format($true).Replace(' ', '')
$pubBytes = New-Object byte[] -ArgumentList ($hexPub.Length / 2)
for ($i = 0; $i -lt $hexPub.Length; $i += 2) { $pubBytes[$i/2] = [System.Convert]::ToByte($hexPub.Substring($i, 2), 16) }
$pubString = [System.Convert]::ToBase64String($pubBytes)
非常感谢