Получите ключ с помощью ECDiffieHellmanP256 - Подробнее

Я работаю над Web Push Api, следуя этому руководству Google для разработчиков. Я работаю в C#. Когда я попал в раздел об использовании ECDH для вычисления секрета с помощью ключа p256dh, я застрял.

Ответ на этот вопрос работал для меня. Это помогло мне получить сообщение об ошибке CngKey.Import, но мне интересно, что происходит в эти первые несколько строк.

var key1 = Convert.FromBase64String("BOAiqZO6ucAzDlZKKhF1aLjNpU8+R2Pfsz4bQzNpV145D+agNxvLqyu5Q2tLalK2w31RpoDHE8Sipo0m2jiX4WA=").ToList();
var keyType = new byte[] { 0x45, 0x43, 0x4B, 0x31 };    // What is this?
var keyLength = new byte[] { 0x20, 0x00, 0x00, 0x00 };  // What is this too?
key1.RemoveAt(0);                                       // What is happening here?
key1 = keyType.Concat(keyLength).Concat(key1).ToList(); // And here?

Если вы просто вставите байты из key1 без выполнения манипуляций с keyType и keyLength и попытаетесь выполнить CngKey.Import, он скажет "Параметр неверен". Так что же происходит в коде выше, чтобы это исправить?

Заранее спасибо:)

0 ответов

Другие вопросы по тегам