wolfSSLはこの度、ストリーミングシナリオにおいて、不定長エンコーディングをより適切に処理するためにPKCS7機能を拡張しました。
不定長検証にはこれまでも対応していましたが、最近の更新により、マルチパート・不定長のコンテンツをストリーミング方式でより効率的に処理できるよう、wc_PKCS7_VerifySignedData()
APIを改良しました。
主な変更
- ストリーミング検証
wc_PKCS7_VerifySignedData()
関数は、コンテンツ全体をメモリにバッファリングすることなく、不定長のPKCS7データを検証できるようになりました。 - デコーディング
不定長のBERエンコードされたPKCS7構造のデコード処理を改善しました。
使用例
ストリーミングコンテキストでPKCS7署名データを検証するには、次のように実装します。
PKCS7 pkcs7;
byte buffer[BUFFER_SIZE];
int ret;
// PKCS7構造体を初期化
wc_PKCS7_Init(&pkcs7, NULL, INVALID_DEVID);
// 証明書と鍵を設定
pkcs7.cert = cert;
pkcs7.certSz = certSz;
pkcs7.privateKey = key;
pkcs7.privateKeySz = keySz;
// ストリーミング検証を開始
ret = wc_PKCS7_VerifySignedData(&pkcs7, buffer, bufferSz);
if (ret != 0) {
// エラー処理
}
// 必要に応じて処理を続行
wolfssl-examplesリポジトリにて、これらの拡張機能を活用したより詳しい実装例も提供しています。
このアプローチにより、アプリケーションはコンテンツ全体をメモリにロードする必要なく、非常に大きなデータやストリーミング形式で提供されるデータを効率的に処理できます。
利点
- 効率の向上:データをチャンクで処理することにより、メモリ使用量を削減します。
- 柔軟性の強化:不定長のものを含む、より幅広いPKCS7エンコーディングシナリオをサポートします。
- 標準への準拠:PKCS7構造のBERエンコーディング標準に適合します。
これらの拡張により、セキュアでリアルタイムなデータ処理を必要とするアプリケーションにおいて、wolfSSLがより使いやすくなりました。
ご質問がございましたら、ぜひ info@wolfssl.jp までお問い合わせください。
原文:https://www.wolfssl.com/wolfssl-enhances-pkcs7-streaming-support-with-indefinite-length-handling