wolfSSL PKCS7ストリーミングサポートを強化

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