INNER CODE UNIT · C#
finalBlockLength
sdrapkin/SecurityDriven.Inferno · EtM_CBC.cs:31
int finalBlockLength = plaintext.Count - (plaintext.Count & (-Cipher.AesConstants.AES_BLOCK_SIZE));
int paddingLength = AES_IV_LENGTH - finalBlockLength;
return CONTEXT_BUFFER_LENGTH + plaintext.Count + paddingLength + MAC_LENGTH;
}
static void ValidateAes(Aes aes) // detect & fix any Mode/Padding deviation
{
if (aes.Mode == CipherMode.CBC && aes.Padding == PaddingMode.PKCS7) return;
aes.Mode = CipherMode.CBC;
aes.Padding = PaddingMode.PKCS7;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
static void ClearKeyMaterial()
{
Array.Clear(_encKey.Value, 0, ENC_KEY_LENGTH);
Array.Clear(_macKey.Value, 0, MAC_KEY_LENGTH);
Array.Clear(_sessionKey.Value, 0, HMAC_LENGTH);