如何在android中使用Netcipher with Retrofit?

时间:2015-01-15 14:37:19

标签: android encryption retrofit

Netcipher是一个Android库项目,提供多种方法来改善移动应用程序中的网络安全性。 “洋葱”这个名称不仅指Tor使用的洋葱路由概念(提供匿名性和对交通监控的抵抗),还指任何应用应该使用的多层安全性的概念。

更具体地说,这个库提供:

1. Stronger Sockets: Through support for the right cipher suites, pinning and more, we ensure your encrypted connections are as strong as possible.
2. Proxied Connection Support: HTTP and SOCKS proxy connection support for HTTP and HTTP/S traffic through specific configuration of the Apache HTTPClient library

https://guardianproject.info/code/netcipher/

3 个答案:

答案 0 :(得分:4)

您需要实现自己的Client,它将在Netcipher http客户端上执行Retrofit请求。

  1. Request翻译为适当的Netcipher请求(复制http方法,标题,正文)
  2. 在Netcipher http客户端
  3. 上执行已翻译的请求
  4. 获取响应并将其翻译为改造Response(复制http状态代码,响应,标题)
  5. 将要反序列化的响应返回到类型。
  6. Client传递给RestAdapter.Builder

    完成。

    public class NetcipherClient implements Client{
      private Context mContext;
      public NetcipherClient(Context context){
          mContext = context;
          //As far as I could see from the sample, Netcipher seems to be dependant on application `Context`.
    
      }
      @Override
        public retrofit.client.Response execute(retrofit.client.Request request) throws IOException {
            //Set up configuration for Netcipher (proxy, timeout etc)
            // Translate Request to Netcipher request 
            // Execute and obtain the response
            // Build Response from response
            return response;
        }
    
    
    }
    

答案 1 :(得分:3)

我们最近在NetCipher中实现了对OkHTTP的支持,因此通过OkHTTP将Tor支持添加到Retrofit应该很容易。以下是:

  StrongOkHttpClientBuilder
    .forMaxSecurity(this)
    .withTorValidation()
    .build(this);

这个的核心就是运行设置方法:

var f_date = new Date();

请参阅包含的sample-okhttp3项目以获取完整示例,该示例是git repo的一部分https://github.com/guardianproject/NetCipher

答案 2 :(得分:2)

除了类似Tor的路由OkHttp之外,还具有证书锁定能力&代理支持。它与开箱即用的Retrofit配合使用!因此,如果类似Tor的功能对您来说不那么重要,我建议使用OkHttp的超棒程。否则,@ NikolaDespotoski的回答是您的完美选择。