0

MSDNは、TransformBlockについて次のように述べています。

public int TransformBlock(
  byte[] inputBuffer,
  int inputOffset,
  int inputCount,
  byte[] outputBuffer,
  int outputOffset
)

戻り値:書き込まれたバイト数。

出力バッファは十分なサイズであると想定しています。通常、入力バッファは出力バッファとして使用され、両方ともオフセット0であるため、これは問題ではありません。

戻り値がinputCountと等しくなくなる可能性のある条件はありますか?

4

1 に答える 1

2

.net実装がmono実装と同等であると仮定すると、答えは次のようになります。例外をスローするか、を返しますinputCount

この奇妙なメソッドは、を実装しているために存在しますICryptoTransformICryptoTransformブロック暗号でも使用され、入力サイズと出力サイズの違いが実際に発生する可能性があります。

IMOこれは悪いクラスの設計です。インターフェイスの実装は明示的である必要があり、ユーザーには、の拡張ポイントであるHashCoreとに似たクリーンなインターフェイスが与えられている必要があります。HashFinalHashAlgorithm

于 2012-04-23T19:45:06.307 に答える