OpenSSL ASN1_TYPE和ASN1_ITEM之间的关系

时间:2018-11-27 10:42:07

标签: c openssl asn1

我正在尝试使用OpenSSL库对pdf文档进行数字签名。现在,我想从pdf文档内容中获取摘要。我只找到了从ASN1_ITEM创建摘要的方法。但是我拥有的是ASN1_OCTET_STRING对象,可以根据需要将其转换为ASN1_TYPE。我想应该有某种方法可以将ASN1_TYPEASN1_OCTET_STRING转换为ASN1_ITEM。但是我不了解ASN1_TYPEASN1_TYPE之间的关系。

P.S。如果有人共享某种适当的OpenSSL文档,将不胜感激。我可以找到的大多数都是没有适当说明的源文件。

1 个答案:

答案 0 :(得分:2)

由于您写了“我所拥有的ASN1_OCTET_STRING对象”,因此在documentation of the ASN1_STRING utilities的NOTES部分下找到的以下代码段似乎很有用:

  

OpenSSL中几乎所有ASN1类型都表示为ASN1_STRING   结构体。其他类型,例如ASN1_OCTET_STRING只是   类型定义为ASN1_STRING,函数调用ASN1_STRING   等价物。

(您可以验证这种情况是否发生在ossl_typ.h中,它实际上不是typedef而是#define

同一文档页面提供了一个函数ASN1_STRING_to_UTF8(),您可以使用该函数以unsigned char *的形式获取数据及其长度。有了它之后,就可以calculate a digest to your liking

这不是您的问题“ ASN1_TYPEASN1_ITEM之间的关系”的答案,但它似乎涵盖了您所描述的问题。如果不是这种情况,请澄清。