def METHOD_NAME(self):
    key_len_256 = (
        self.read_reg(self.EFUSE_XTS_KEY_LENGTH_256_REG)
        & self.EFUSE_XTS_KEY_LENGTH_256
    )
    word0 = self.read_reg(self.EFUSE_RD_DIS_REG) & self.EFUSE_RD_DIS
    rd_disable = word0 == 3 if key_len_256 else word0 == 1
    # reading of BLOCK3 is NOT ALLOWED so we assume valid key is programmed
    if rd_disable:
        return True
    else:
        # reading of BLOCK3 is ALLOWED so we will read and verify for non-zero.
        # When chip has not generated AES/encryption key in BLOCK3,
        # the contents will be readable and 0.
        # If the flash encryption is enabled it is expected to have a valid
        # non-zero key. We break out on first occurance of non-zero value
        key_word = [0] * 7 if key_len_256 else [0] * 3
        for i in range(len(key_word)):
            key_word[i] = self.read_reg(self.EFUSE_BLOCK_KEY0_REG + i * 4)
            # key is non-zero so break & return
            if key_word[i] != 0:
                return True
        return False