<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def getPlaintextLen(self, ciphertext):
 """Given a ``ciphertext`` with a valid header, returns the length of the plaintext payload. """


        completeCiphertextHeader = (len(ciphertext) >= 16)
        if completeCiphertextHeader is False:
            raise RecoverableDecryptionError('Incomplete ciphertext header.')

        ciphertext_header = ciphertext[:16]
        L = self._ecb_enc_K1.decrypt(ciphertext_header)

        padding_expected = '\x00\x00\x00\x00'
        padding_actual = L[-8:-4]
        validPadding = (padding_actual == padding_expected)
        if validPadding is False:
            raise UnrecoverableDecryptionError(
                'Invalid padding: ' + padding_actual)

        message_length = fte.bit_ops.bytes_to_long(L[-8:])

        msgLenNonNegative = (message_length >= 0)
        if msgLenNonNegative is False:
            raise UnrecoverableDecryptionError('Negative message length.')

        return message_length