Node.js 使用openssl库提取带有v8的PKCS#7消息的内容?

Node.js 使用openssl库提取带有v8的PKCS#7消息的内容?,node.js,openssl,v8,Node.js,Openssl,V8,我正在尝试构建一个NodeJS/V8桥来执行openssl操作 其中之一是提取PKCS#7信封的内容。我想要的是与此命令等效的命令: openssl smime -verify -inform DER -noverify 它只输出PKCS#7信封中的普通内容 我在看CMS_*操作,但看起来CMS_*验证只应该返回一个int(请参阅)。如果验证成功,我在寻找字符串/二进制内容 这是我到目前为止得到的。如果实现这一点的代码对任何人来说都微不足道。。。这真是太棒了,因为openssl文档糟透了,看起

我正在尝试构建一个NodeJS/V8桥来执行openssl操作

其中之一是提取PKCS#7信封的内容。我想要的是与此命令等效的命令:

openssl smime -verify -inform DER -noverify
它只输出PKCS#7信封中的普通内容

我在看CMS_*操作,但看起来CMS_*验证只应该返回一个int(请参阅)。如果验证成功,我在寻找字符串/二进制内容

这是我到目前为止得到的。如果实现这一点的代码对任何人来说都微不足道。。。这真是太棒了,因为openssl文档糟透了,看起来整个web上没有一个关于CMS的C代码。。。最后,这是我第一次做任何C++,我的整个生命。p> 附:关于
解码写
东西的额外问题,你知道这有什么用吗

static Handle<Value> Verify(const Arguments& args) {
    HandleScope scope;

    ASSERT_IS_BUFFER(args[0]);
    ssize_t klen = Buffer::Length(args[0].As<Object>());

    if (klen < 0) {
        return ThrowException(Exception::TypeError(String::New("Bad argument")));
    }

    // No clue of what these three lines do !
    char* kbuf = new char[klen];
    ssize_t kwritten = DecodeWrite(kbuf, klen, args[0], BINARY);
    assert(kwritten == klen);

    Handle<Object> options = args[1]->ToObject();
    options->Get(String::New("inform"))

    //@todo!
    //int CMS_verify(CMS_ContentInfo *cms, STACK_OF(X509) *certs, X509_STORE *store, BIO *indata, BIO *out, unsigned int flags);
静态句柄验证(常量参数和参数){
手镜镜;
断言_是_缓冲区(args[0]);
ssize_t klen=Buffer::Length(args[0].As());
if(klen<0){
返回ThrowException(Exception::TypeError(String::New(“错误参数”));
}
//不知道这三条线是干什么的!
char*kbuf=新字符[klen];
ssize_t kwrited=解码写入(kbuf,klen,args[0],二进制);
断言(kwrited==klen);
Handle options=args[1]->ToObject();
选项->获取(字符串::新建(“通知”))
//@托多!
//int CMS_验证(CMS_内容信息*CMS,堆栈(X509)*证书,X509_存储*存储,BIO*indata,BIO*out,未签名的int标志);

我没有亲自做过,但是看直的C API,我想你需要创建一个并把它作为“OUT”参数传递给它。我不知道它如何转化为C++。