一部のデータを復号化するために AES-GCM を使用しています。追加の認証データ (AAD)、認証タグ、および実際の暗号化データがあります。
私ができる必要があるのは、実際に復号化する前に、AAD と暗号化されたデータを認証することです。
データが認証に失敗した場合、 OpenSSL の関数が 0 を返すことは知っていますEVP_DecryptFinal_ex
が、実際にデータを復号化せずにデータを検証する方法はないようです。
これを行う必要があるのは、暗号化されたデータが非常に大きくなる可能性があるためEVP_DecryptUpdate
です。ただし、これを行うと、本物かどうかわからないデータが提供されます。
私ができる必要があるのは、すべての AAD と暗号化されたデータを認証し、それを使用EVP_DecryptUpdate
して一度に部分的に復号化することです。すべてのデータを一度に復号化して認証することもできますが、これにより、回避したいアプリケーションに追加の計算時間が追加されます。