[英]Public Key blob length using Elliptic curve cryptography (P521 curve) in c#
我正在实现客户端和服务器之间的密钥交换机制。 客户端使用C#编写,服务器使用Java。
在客户端上,我使用以下代码生成我的公钥
aliceKey = CngKey.Create(CngAlgorithm.ECDiffieHellmanP521);
alicePubKeyBlob = aliceKey.Export(CngKeyBlobFormat.EccPublicBlob);
alicePubKeyBlob
的大小为140个字节。 但是在服务器端,密钥大小为P-521curve
66个字节(使用充气城堡)
如果我尝试在客户端中导入服务器密钥, "Parameter is incorrect"
消息"Parameter is incorrect"
有什么我想念的吗?
我发现了问题。
参考: http : //msdn.microsoft.com/zh-cn/library/windows/desktop/aa375520(v=vs.85).aspx
140字节归因于以下公共密钥格式。 4个字节:ECDHPublicP521的幻数= 0x354B4345 4个字节:X和Y的长度= 42 00 00 00(42 = 66字节长度)接下来的66个字节是X,接下来的66个字节是Y。
服务器生成X和Y每个66字节。 如果长度小于66个字节,请确保为X&Y都添加填充0x00。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.