Как воссоздать TpmPubli c экземпляр из результата TpmPubli c .GetTpm2BRepresentation () - PullRequest
0 голосов
/ 19 марта 2020

Я могу сохранить ключ подтверждения от доверенного платформенного модуля в байтовом массиве, используя следующий код (ссылающийся на TSS. NET):

TpmPublic ekPub = GetEndorsementKey();

byte[] ek = ekPub.GetTpm2BRepresentation();

Я пробовал это, но я не знать, как перейти от Tpm2bPublicKeyRsa к экземпляру TpmPublic:

Tpm2bPublicKeyRsa temp = new Tpm2bPublicKeyRsa(ek)

Примечания:

  • Я хочу передать ключ подтверждения в виде байтового массива потому что удобно Base64 кодировать массив для копирования / вставки.
  • Я хочу вернуться к экземпляру TpmPublic, чтобы я мог преобразовать этот ключ (например, this ) в нечто Я могу использовать его на стороне сервера. NET (без TPM).

1 Ответ

0 голосов
/ 07 апреля 2020

Я решил использовать метод GetTpmRepresentation:

TpmPublic ekPub = GetEndorsementKey();

byte[] ekPubBytes = ekPub.GetTpmRepresentation();

, который позволяет легко вернуть экземпляр TpmPublic с помощью маршаллера:

var mashaller = new Marshaller(ekPubBytes);

TpmPublic ekPub = m.Get<TpmPublic>();
...