【问题标题】:OpenSSL Diffie Hellman DER Encoding in CC 中的 OpenSSL Diffie Hellman DER 编码
【发布时间】:2013-04-05 15:58:26
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: objective-c c openssl asn.1 diffie-hellman


    【解决方案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方法here

    【讨论】:

    • 我已经尝试过了,但结果太短了。 Java 文档稍微描述了该方法:Here 但我不知道该怎么做。
    • @Joulez:如果输出是Java代码的base64编码,那么你需要把它编码成Base64。
    • 是的,无论如何。但是 getEncoded() 方法在 java 中返回一个字节数组,并在单独的步骤中进行 base64 编码。
    • 我遇到了同样的问题。你能找到任何解决方案@doptimusprime 吗?
    • @NikhilJindal:不是同样的解决方案适合你吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多