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