我正在尝试使用OpenSSL库对pdf文档进行数字签名。现在,我想从pdf文档内容中获取摘要。我只找到了从ASN1_ITEM创建摘要的方法。但我拥有的是ASN1_OCTET_STRING对象,如果需要,我可以将其转换为ASN1_TYPE。我认为应该有某种方法可以将ASN1_TYPE或ASN1_OCTET_STRING转换为ASN1_ITEM。但是我不明白ASN1_TYPE和ASN1_TYPE有什么关系。
附言:如果有人能分享一些OpenSSL的适当文档,我将不胜感激。我能找到的大部分都是源文件,没有适当的解释。
发布于 2018-11-29 13:48:13
由于您写的是"what I have is ASN1_OCTET_STRING object",因此在documentation of the ASN1_STRING utilities的注释部分中找到的以下代码片段似乎很有用:
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_TYPE和ASN1_ITEM是如何相关的”的回答,但它似乎涵盖了你所描述的问题。如果不是,请澄清。
https://stackoverflow.com/questions/53497844
复制相似问题