3

我有一个问题,过去两天一直在寻找答案。

我在 C 中使用 OpenSSL 生成了一个 DH 对象(更具体的 Objective-C,但我认为没有类似的东西),现在可以访问 Bignums 的 p、q 和 publickey 值。我需要将这些值作为 ASN.1 DER 编码作为一个 base64 字符串发送到服务器。

在 Android 客户端上,重要的步骤是.getPublic().getEncoded() 后跟 base64 编码。(是有密钥协议的东西)

我如何在 c 或 Objective-c 上做到这一点?代码示例会非常非常棒。

4

1 回答 1

1

对于 DER 编码,您可以 i2d_DHParams 可以解决您的目的。

假设你在dh中有DH参数,那么你可以调用

  int len;
  len  = i2d_DHParams (dh, &buf);
  //It should write encoded dh to buf and len should be number of bytes written.

您可以在此处查看 DH 方法。

于 2013-04-06T14:03:46.977 回答