Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java(Android):根据JWA(RFC 7518)的Diffie-Hellman密钥交换过程_Java_Jwe_Jose4j_Ecdh_Jose - Fatal编程技术网

Java(Android):根据JWA(RFC 7518)的Diffie-Hellman密钥交换过程

Java(Android):根据JWA(RFC 7518)的Diffie-Hellman密钥交换过程,java,jwe,jose4j,ecdh,jose,Java,Jwe,Jose4j,Ecdh,Jose,我需要使用ECDH密钥交换过程来加密/解密客户端和服务器之间的消息。 我使用库来实现加密功能 我有本地密钥对(privatedC和publicQC),我有远程公钥QT,我有transactionID和referenceNumber 现在,我需要根据所有这些细节生成一个内容加密密钥(CEK),并使用它对从服务器接收到的消息进行解密,以及对发送到服务器的消息进行加密 我不知道该怎么做 规范: 根据JWA(RFC 7518)在直接密钥协商模式下的Diffie-Hellman密钥交换过程,使用曲线p-2

我需要使用ECDH密钥交换过程来加密/解密客户端和服务器之间的消息。
我使用库来实现加密功能

我有本地密钥对(private
dC
和public
QC
),我有远程公钥
QT
,我有
transactionID
referenceNumber

现在,我需要根据所有这些细节生成一个内容加密密钥(CEK),并使用它对从服务器接收到的消息进行解密,以及对发送到服务器的消息进行加密

我不知道该怎么做

规范:

根据JWA(RFC 7518)在直接密钥协商模式下的Diffie-Hellman密钥交换过程,使用曲线p-256、
dC
QT
生成一对 CEK(每个方向一个),标识为
事务ID
。为了从包含的Concat KDF函数中获得256位的键控材料,假设ECDH-ES+A256KW的“enc”参数,并假设KDF的算法ID为空(注意,这仅用于密钥推导)。本规范版本中支持的参数值为:

  • “alg”:ECDH-ES
  • “apv”:
    referenceNumber
  • “epk”:
    Q怓
  • {“kty”:“EC”“crv”:“P-256”}
  • 所有其他参数:不存在
  • CEK:“kty”:oct-256位提取为:
    • CEK(a->s):256位
    • CEK(s->a):256位
谢谢大家!