1

openssl 操作を実行するための NodeJS/V8 ブリッジを構築しようとしています。

その 1 つは、PKCS#7 エンベロープの内容を抽出することです。私が欲しいのは、この cmd と同等です:

openssl smime -verify -inform DER -noverify

これは、PKCS#7 エンベロープ内のプレーン コンテンツを出力するだけです。

CMS_* 操作を見ていましたが、CMS_verify は int のみを返すようになっているようです ( http://www.openssl.org/docs/crypto/CMS_verify.htmlを参照)。string/ を探しています。検証が成功した場合はバイナリ コンテンツ。

これが私がこれまでに得たものです。それを達成するためのコードがあなたにとって些細なことである場合...opensslドキュメントがひどいので、それは本当に素晴らしいでしょう.Web全体にCMSに関する単一のCコードはないようです...そして最後に、それは人生で初めてC++をやります!

PS: ボーナスについての質問ですがDecodeWrite、これが何をするのか知っていますか??

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);
4

0 に答える 0