Требуется общий секретный ключ между данным 64-байтовым открытым ключом (их) и 32-байтовым закрытым ключом (нашим).
У меня есть ключи, которые создаются сторонним поставщиком (код ECC P-256),Открытые ключи - 64 байта, а закрытые ключи - 32 байта.
Я не могу понять, как заставить BouncyCastle импортировать эти ключи.Кажется, он ожидает ключи с кодировкой DER, но это не то, с чем мне приходится работать.
public static byte[] GetSharedSecret(byte[] their_public, byte[] our_private)
{
// their_public: 64 byte public key
// our_private: 32 byte private key
var pri = PrivateKeyFactory.CreateKey(our_private); // this fails
var pub = PublicKeyFactory.CreateKey(their_public); // this fails
// Expected to produce a 32 byte shared secret:
return ??SomeBouncyCastleCode??.GetSharedSecret();
}
Я ожидаю, что код шифрования / ключа работает с 32- и 64-байтовыми массивами для ключей.При работе со встроенными устройствами и другими областями, где кодовое пространство ограничено, невозможно иметь дело с закодированными ключами / ключами DER / xyz.Они сокращены до фактических значений ключа, и это все, с чем мне нужно работать.
Я не могу понять, как заставить это работать с BouncyCastle.