小编luk*_*ger的帖子

没有以前的互联网连接,无法验证Android自签名证书

使用SSL基础架构:

我们有一个有效的客户端/服务器设置,其中Android版本4.2和4.4的手机充当客户端,必须通过其自签名SSL证书验证服务器.

问题:

只要设备在尝试连接之前至少有一次Internet访问权限,服务器证书验证就会起作用.但是,如果执行恢复出厂设置且设备直接连接到没有Internet连接的专用网络,则证书验证将失败.

重现行为:

  1. 出厂重置手机
  2. 重新启动而不选择连接到具有Internet访问权限的WiFi
  3. 尝试验证自签名SSL证书 - > FAILS
  4. 连接到可上网的WiFi
  5. 重新连接到原始专用网络
  6. 尝试验证自签名SSL证书 - > WORKS

从技术上讲,设备不应该需要Internet访问来验证自签名证书.在进行任何SSL服务器验证之前,是否存在某种必须加载的黑名单?我可以阻止这种行为吗?

创建SSL上下文:

    //Using a client certificate
    String password = "clientpass";
    KeyStore keyStore = KeyStore.getInstance("PKCS12");
    InputStream is = context.getResources().openRawResource(R.raw.client);
    keyStore.load(is, password.toCharArray());
    is.close();
    KeyManagerFactory kmf = KeyManagerFactory.getInstance("X509");
    kmf.init(keyStore, password.toCharArray());
    KeyManager[] keyManagers = kmf.getKeyManagers();


    // Using self signed certificate
    CertificateFactory cf = CertificateFactory.getInstance("X.509");
    is = context.getResources().openRawResource(R.raw.cacert);
    InputStream caInput = new BufferedInputStream(is);
    Certificate ca;
    try {
        ca = cf.generateCertificate(caInput);
        Log.i("CA","ca=" + ((X509Certificate) ca).getSubjectDN());
    } finally {
        caInput.close(); …
Run Code Online (Sandbox Code Playgroud)

ssl https android certificate self-signed

7
推荐指数
1
解决办法
8151
查看次数

三次隐士样条插值python

我想计算一个三次多项式,它由指定点的函数值和导数定义。

https://en.wikipedia.org/wiki/Cubic_Hermite_spline

我知道 scipy 的插值方法。具体来说

splprep内插 N 维样条和 splev评估其导数。

是否有一个 python 例程,它采用函数值f(x)和对应于值x 的导数f'(x)并计算适合给定数据的样条表示。

举个例子:
我在空间中有两个物体位置,由坐标x,y,z 定义,我知道物体在这些位置的速度x',y',z'。我现在可以在时间 t 内插入对象在两点之间的路径吗?考虑所有给定的参数。

python interpolation spline scipy hermite

3
推荐指数
2
解决办法
4177
查看次数