Я пытаюсь сделать обмен ключами ECDH с помощью C# BouncyCastle. Мне удалось создать необходимые объекты AsymmetricCipherKeyPair, и я также могу сгенерировать общий ключ другого открытого ключа partys.AsymmetricKeyParameter as byte []
Однако, чтобы обменять открытый ключ, мне нужно это как байт [] или, по крайней мере, все, что я могу превратить в необработанные данные, поскольку протокол, который я использую для переноса ключей между сторонами, не принимает никакого BouncyCastle объект.
X9ECParameters ecPars = NistNamedCurves.GetByName("P-521");
ECDomainParameters ecDomPars = new ECDomainParameters(ecPars.Curve, ecPars.G, ecPars.N, ecPars.H, ecPars.GetSeed());
IAsymmetricCipherKeyPairGenerator gen = GeneratorUtilities.GetKeyPairGenerator("ECDH");
gen.Init(new ECKeyGenerationParameters(ecDomPars, new SecureRandom()));
AsymmetricCipherKeyPair keyPair = gen.GenerateKeyPair();
IBasicAgreement keyAgreement = AgreementUtilities.GetBasicAgreement("ECDH");
keyAgreement.Init(keyPair.Private);
Так что я нуждаясь здесь является ключевым значением keyPair.Public как байт [].
Надеюсь, вы поймете, куда я направляюсь и могу помочь.
Благодарим вас за ответ. Не волнуйтесь, что часть сертификата находится в процессе, это был всего лишь первый шаг, чтобы попробовать некоторые обмены ключами. Аутентификация - это незавершенная работа, благодарю вас за намек. –