# Type of request: This is a ...
[ ] bug report
[x] feature request

# Detailed description
As a Developer,
I want to be able to simulate BadDigest and InvalidDigest errors,
So that I can test the error handling logic

## Expected behavior
https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html
BadDigest: The Content-MD5 you specified did not match what we received.
InvalidDigest: The Content-MD5 you specified is not valid.

## Actual behavior
localstack returns InvalidDigest when MD5 does not match payload.


sys.stdout, sys.stderr, sys.__stdout__, sys.__stderr__ = (out, err, __out, __err)
    def _proxy(self, original_stream, type):
        def proxy():
            ident = self._ident()
            ctx = self.CONTEXTS_BY_THREAD.get(ident)
            if ctx:
                return ctx._stdout if type == 'stdout' else ctx._stderr
            return original_stream
        return proxy
    def _ident(self):
        return threading.currentThread().ident
    def stdout(self):
        return self._stream_value(self._stdout)
    def stderr(self):
        return self._stream_value(self._stderr)
    def _stream_value(self, stream):
        return stream.getvalue() if hasattr(stream, 'getvalue') else stream
def start_thread(method, *args, **kwargs):
    thread = FuncThread(method, *args, **kwargs)
    thread.start()
    TMP_THREADS.append(thread)
    return thread
def synchronized(lock=None):