Получите ключ с помощью 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, он скажет "Параметр неверен". Так что же происходит в коде выше, чтобы это исправить?
Заранее спасибо:)