簡體   English   中英

如何使JSCh / JCE與Java 1.4一起使用?

[英]How to get JSCh/JCE to work with Java 1.4?

根據http://www.jcraft.com/jsch/,JSch JSch is in pure Java, but it depends on Java Cryptography Extension (JCE). JSch has been known to work with J2SE 1.4.0 or later (no additional libraries required). JSch is in pure Java, but it depends on Java Cryptography Extension (JCE). JSch has been known to work with J2SE 1.4.0 or later (no additional libraries required).

在任何人建議我進行升級之前(這確實會使我的生活更輕松),這不是一個選擇:我必須使它在Java 1.4.2下工作。

因此,我下載了JSch 0.1.54源代碼(和JZLib 1.1.3源代碼),並在那里修正了一些小問題。 剩下的絆腳石是JCE。 沒有它,以下類(從Java 1.5開始的java.security.interfaces下找到)將丟失:

Error:(40, 3) java: cannot find symbol
  symbol:   class ECFieldFp
  symbol:   class ECGenParameterSpec
  symbol:   class ECParameterSpec
  symbol:   class ECPoint
  symbol:   class ECPrivateKey
  symbol:   class ECPrivateKeySpec
  symbol:   class ECPublicKey
  symbol:   class ECPublicKeySpec
  symbol:   class EllipticCurve

滿足此需求的JCE源或jar在哪里? Bouncy Castle頁面( https://www.bouncycastle.org/latest_releases.html )似乎是解決方案的一部分,但是Java 1.4的下載選項令人困惑。 我嘗試了lcrypto-jdk14-157但是與上面的列表相對不完整:它僅提供ECPointECPrivateKey

根據更改日志 ,從0.1.52版本開始添加了支持。 com/jcraft/jsch/jce/KeyPairGenECDSA.javaKeyPairECDSA.javaECDH.havaSignatureECDSA.java和其他新文件中使用這些類來支持ECDSA密鑰。

如果您不必連接僅支持ECDSA密鑰的服務器。 一種解決方案是從sourceforge.net下載源代碼,並使用JDK 1.4.2構建jar文件。 有一個兼容的問題:

jsch-0.1.51/src/main/java/com/jcraft/jsch/Util.java:490: replace(char,char) in java.
lang.String cannot be applied to (java.lang.String,java.lang.String)
    str = str.replace("~", System.getProperty("user.home"));

您所要做的就是修復此錯誤。

暫無
暫無

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

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