小编Nou*_*MRI的帖子

在Java中实现Diffie-Hellman密钥交换

我正在尝试用Java实现Diffie-Hellman密钥交换,但我很难理解规范:

根据JWA(RFC 7518)在直接密钥协商模式下使用曲线P-256,dT和QC完成Diffie-Hellman密钥交换过程作为本地机制,以生成一对CEK(每个方向一个),这些CEK由Transaction标识ID.此版本规范支持的参数值为:

  • "alg":ECDH-ES
  • "apv":SDK参考编号
  • "epk":QC,采用JSON Web Key(JWK)格式
  • {"kty":"EC""crv":"P-256"}
  • 所有其他参数:不存在
  • CEK:"kty":oct - 256位

创建以下数据的JSON对象作为要签名的JWS有效内容:

{"MyPublicKey":"QT","SDKPublicKey":"QC"}

使用JWS Compact Serialization根据JWS(RFC 7515)生成完整JSON对象的数字签名.此版本规范支持的参数值为:

  • "alg":PS256或ES256
  • "x5c":X.5C v3:Cert(MyPb)以及可选的链接证书

根据我的理解,ECDH将生成一个密钥.在共享我的短暂公钥(QT)之后,SDK生成相同的密钥,因此我们以后可以交换使用相同密钥加密的JWE消息.

JSON {"MyPublicKey":"QT","SDKPublicKey":"QC"}将被签名并发送,但我不明白我将如何使用apvepk,因为这些标题参数在JWE中使用而不是在第一个JWS将被共享.

在相同的规范中,他们谈论这些JWE消息,但他们没有这些apv和epk参数.

根据JWE(RFC 7516)使用SDK使用的相同"enc"算法加密JSON对象,获得的CEK由"kid"和JWE Compact Serialization识别.此版本规范支持的参数值为:

  • "alg":dir
  • "enc":A128CBC-HS256或A128GCM
  • "kid":交易ID
  • 所有其他参数:不存在

我还阅读了RFC 7518中的示例,其中我可以看到标题params apv和epk正在使用但是我不确定哪个标题参数,JWE或JWS?

关于如何使用nimbus-jose-jwt或任何其他java库实现这一点的任何想法都会非常有用.谢谢

java cryptography jwe ecdh

17
推荐指数
1
解决办法
2058
查看次数

在Android市场中滑动标签栏

有没有人知道如何在Android市场中实现该栏(分类,特色,顶级付费...)我也在新版SuperUser中看到它,所以我知道它可以做到.谢谢您的反馈!

java android slide android-activity google-play

6
推荐指数
1
解决办法
1万
查看次数

在光标更改时重新加载ListView动画

我有一个带动画的ListView.首次加载ListView时,动画播放效果很好.我希望在更改光标时重放动画.

<ListView
    android:id="@android:id/list"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:cacheColorHint="@android:color/transparent"
    android:divider="@drawable/gradienthorizontal"
    android:dividerHeight="1px"
    android:layoutAnimation="@anim/layout_cascade"
    android:listSelector="@drawable/selector" >
</ListView>
Run Code Online (Sandbox Code Playgroud)

我在这里更改光标:

private void majCurseurListe(long id, boolean choixvente) {
    Cursor curseurPtVente = null;

    if (choixvente) {
        curseurPtVente = mDbHelper
                .listePtsVentes(DBhelper.TYPE_PTVENTE, id);
    } else {
        curseurPtVente = mDbHelper.listePtsVentes(DBhelper.TYPE_PTSERVICE,
                id);
    }

    // Android s'occupe du cycle de vie du curseur
    startManagingCursor(curseurPtVente);
    ((CursorAdapter) getListAdapter()).changeCursor(curseurPtVente);
}
Run Code Online (Sandbox Code Playgroud)

java animation android listview cursor

3
推荐指数
1
解决办法
916
查看次数