首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Silver隧道异常: org.bouncycastle.asn1.ASN1InputStream.readObject()Lorg/bouncycastle/asn1/DERObject;:java.lang.NoSuchMethodError

Silver隧道异常: org.bouncycastle.asn1.ASN1InputStream.readObject()Lorg/bouncycastle/asn1/DERObject;:java.lang.NoSuchMethodError
EN

Stack Overflow用户
提问于 2016-01-17 15:52:10
回答 2查看 2.4K关注 0票数 1

我试图使用Silver隧道netlib连接到tor隐藏服务,但我仍然得到了相同的异常:

线程"org.silvertunnel.netlib.layer.tor.directory.DirectoryManagerThread“java.lang.NoSuchMethodError: org.bouncycastle.asn1.ASN1InputStream.readObject()Lorg/bouncycastle/asn1/DERObject;中的异常在org.bouncycastle.openssl.PEMReader.readRSAPublicKey(PEMReader.java:193) at org.bouncycastle.openssl.PEMReader.readObject(PEMReader.java:110) at org.silvertunnel.netlib.layer.tor.util.Encryption.extractPublicRSAKey(Encryption.java:342) at org.silvertunnel.netlib.layer.tor.directory.AuthorityKeyCertificate.(AuthorityKeyCertificate.java:104) at org.silvertunnel.netlib.layer.tor.directory.AuthorityKeyCertificates.(AuthorityKeyCertificates.java:100) atorg.silvertunnel.netlib.layer.tor.directory.AuthorityKeyCertificates.(AuthorityKeyCertificates.java:80) at org.silvertunnel.netlib.layer.tor.directory.Directory.getAuthorityKeyCertificates(Directory.java:492) at org.silvertunnel.netlib.layer.tor.directory.Directory.updateNetworkStatusNew(Directory.java:324) at org.silvertunnel.netlib.layer.tor.directory.Directory.refreshListOfServers(Directory.java:287) at org.silvertunnel.netlib.layer.tor.directory.DirectoryManagerThread.updateDirectory(DirectoryManagerThreadorg.silvertunnel.netlib.layer.tor.directory.DirectoryManagerThread.run(DirectoryManagerThread.java:76) ( .java:60)

我试过不同版本的赏金城堡,但我就是不能让它发挥作用。有人知道问题出在哪里吗?

这是我的密码:

代码语言:javascript
复制
String host = "some_site.onion";
    int port = 7878;
    TcpipNetAddress remoteAddress = new TcpipNetAddress(host, port);
    NetLayer netLayer = NetFactory.getInstance().getNetLayerById(NetLayerIDs.TOR);
    netLayer.waitUntilReady();
    NetSocket netSocket = netLayer.createNetSocket(null, null, remoteAddress);
    BufferedReader br = new BufferedReader(new InputStreamReader(netSocket.getInputStream()));
    System.out.println(br.readLine());
    br.close();
    netSocket.close();
EN

回答 2

Stack Overflow用户

发布于 2016-01-19 02:02:27

您的java安装中可能有一个bouncy城堡的版本,而导致此错误的原因是一个版本试图调用另一个版本。检查您的JAVA_HOME/jre/lib/ext/JAVA_HOME/lib目录,查找其名称以"bcprov“开头的文件。

好吧,既然你说这不管用,我仍然认为你的类路径上有多种版本的赏金城堡。具体地说,我认为您有一个不同版本的bcprovbcpkix jars。因此,让我们编写一个简短的java程序来找到它们:

代码语言:javascript
复制
import java.net.URL;
import java.util.Enumeration;

public class FindBouncy {
    static void printResources(String n) throws Exception {
        Enumeration<URL> e = FindBouncy.class.getClassLoader().getResources(n);
        if (!e.hasMoreElements()) {
            System.out.println(n + " not found!");
        } else {
            System.out.println(n + " found as:");
            while(e.hasMoreElements()) {
                System.out.println("    " + e.nextElement());
            }
        }
    }
    public static void main(String argv[]) throws Exception {
        printResources("org/bouncycastle/openssl/PEMReader.class");
        printResources("org/bouncycastle/asn1/ASN1InputStream.class");
    }
}

在eclipse中运行它,并查找"PEMReader“类(在bcpkix的旧版本中的旧类)和"ASN1InputStream”类(应该在旧的和更新的bcprov jars中的类)来自何处。使用那些相互匹配的罐子的版本。

票数 0
EN

Stack Overflow用户

发布于 2016-03-12 22:58:24

Silver隧道已经过时了,您应该使用银隧道-NG。Silver隧道-NG正在使用海绵城堡,所以它也是兼容Android的。

您也可以在github上找到Silver隧道-NG。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34840297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档