我正在将nodejs代码移植到.Net,并且我被困在需要生成公钥和私钥的这一部分。dh.getPublicKey(); 我用.Net C#尝试了同样的方法 var ecdh = new ECDiffieHellmanCng(CngKey.Create(CngAlgorithm.ECDiffieHellmanP256当我将生成的byte[]数组作为常量从nodejs复制到.Net C#代码中时,它可以正常工作。很明显,生成的密钥不能满足服务器的<
我正在尝试使用C# BouncyCastle进行ECDH密钥交换。我已经成功地创建了必要的AsymmetricCipherKeyPair对象,我还能够生成另一方的公钥的共享密钥。然而,要真正交换公钥,我需要它作为一个byte[]或者至少可以转换成原始数据的任何东西,因为我用来在各方之间传输密钥的协议不会接受任何BouncyCastle对象。ecPars.GetSeed());
IAsymmetricCipherKeyPairGenerator ge
据我理解,EdDSA使用了Curve25519的一个细微的变体(通常用于ECDH),称为Ed25519。给定相同的私钥,这两种算法之间的差异是否足以使X25519和Ed25519之间产生的公钥有所不同?换句话说,如果我编写代码来生成私钥/公钥对,那么是否需要为EdDSA/ to 25519和ECDH/X 25519分别实现?澄清:我意识到EdDSA要求使用ECD