Openssl ECDHE Curve25519密钥交换签名和密钥值字段

Openssl ECDHE Curve25519密钥交换签名和密钥值字段,openssl,pyopenssl,diffie-hellman,ecdhe,Openssl,Pyopenssl,Diffie Hellman,Ecdhe,我有一个API,我需要传递“关键材料”,根据API文档,该材料用于: Contains the cryptographic parameters that are required to perform End-to-End encryption for sharing the information between the producer and the consumer in a secure manner. 下面是他们分享的例子 "KeyMaterial": { "cryptoAl

我有一个API,我需要传递“关键材料”,根据API文档,该材料用于:

Contains the cryptographic parameters that are required to perform End-to-End encryption for sharing the information between the producer and the consumer in a secure manner.
下面是他们分享的例子

"KeyMaterial": {
  "cryptoAlg": "ECDHE",
  "curve": "Curve25519",
  "params": "string",
  "DHPublicKey": {
    "expiry": "2018-12-23T11:39:57.153Z",
    "Parameters": "string",
    "KeyValue": "683938505ec529a700fcceab66273d1aa78d494208a4769930f0818872159265"
  },
  "Nonce": "R4s6vNI7I/JfdeA3/6dMMQ==",
  "Signature": "jFJcYCOTVV6iiLPlM7qY+Zz+3PF8oUPFg1byb1GNr+k="
}
他们还提到

“签名”字段:更多信息参考签名标准:

“KeyValue”:包含临时公钥的值


然而,我不知道应该如何准确地填写这些参数。我找不到ECDHE+Curve25519的任何参考实现。有人能解释一下我如何准确填写这些参数吗?如何生成签名字段?“DHPublicKey”中的KeyValue字段可以这样生成

  • 生成X25519私钥:32字节随机

  • 私钥*生成器点=公钥

  • Nonce必须是转换为base64编码的随机字节

    关于签名,我不知道是什么样的签名