簡體   English   中英

在Java卡上編碼publicKey

[英]Encode publicKey on Java Card

如何在Java卡上編碼ECDSA公鑰,以便在其他平台上對其進行解碼之后(例如,在響應APDU中發送編碼后的密鑰並在標准Java應用程序中對其進行處理)? keyPair.getPublic().getEncoded()可以使用PKCS#8編碼來解決問題,但據我所知,Java Card平台上沒有getEncoded()

您可以這樣實現此功能:

卡面:

  • 1 KeyPair.getPublicKey()-> publicKey;
  • 2 publicKey.getW()-> W;
  • 3將W發送到外面;

標准Java應用程序端:

  • 1個獲得W個數據字節;
  • 2 W數據字節-> ECPoint;
  • 3使用第2步中生成的ECPoint構建PublicKey,使用類ECPublicKeySpec;
  • 4在您的應用程序中使用公鑰;

getEncoded()方法以其主要編碼格式返回鍵;如果鍵不支持編碼,則返回null。 因此,您無需將其用於目標。 您只需使用下ECPublicKeyECPublicKey

ECPublicKey pubKey = (ECPublicKey) keyPair.getPublic()

pubKey中的pubKey與Java應用程序中的getEncoded()方法的輸出相等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM