[英]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.