### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

It seems that Sign operation ignores MessageType. 
As per AWS documentation the MessageType can be "DIGEST", that means the digest is already computed and just needs to be signed. 
https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html

Localstack ignores this parameter:
https://github.com/localstack/localstack/blob/5fafd1b68f31f5948ec88b00a85966319c2ce8c3/localstack/services/kms/provider.py#L332

In GoLang the `Sign` interface takes the digest, not the raw message.
`Sign(rand io.Reader, digest []byte, opts crypto.SignerOpts)`
Therefore Sign/Verify operations in Go fail by using localstack.


### Expected Behavior

Use `MessageType` parameter and do not compute the digest when MessageType==`DIGEST`

### How are you starting LocalStack?

With a docker-compose file

### Steps To Reproduce

Use Sign/Verify in GoLang

### Environment

```markdown
- OS: ubuntu
- LocalStack: latest
- GoLang 1.19
```


### Anything else?

_No response_
@pytest.mark.aws_validated
    def test_list_aliases_of_key(self, kms_client, kms_create_key, kms_create_alias):
        aliased_key_id = kms_create_key()["KeyId"]
        comparison_key_id = kms_create_key()["KeyId"]
        alias_name = f"alias/{short_uid()}"
        kms_create_alias(AliasName=alias_name, TargetKeyId=aliased_key_id)
        assert _get_alias(kms_client, alias_name, aliased_key_id) is not None
        assert _get_alias(kms_client, alias_name, comparison_key_id) is None
    @pytest.mark.aws_validated
    def test_all_types_of_key_id_can_be_used_for_encryption(
        self, kms_client, kms_create_key, kms_create_alias
    ):
        def get_alias_arn_by_alias_name(kms_client, alias_name):
            for response in kms_client.get_paginator("list_aliases").paginate(KeyId=key_id):
                for alias_list_entry in response["Aliases"]:
                    if alias_list_entry["AliasName"] == alias_name:
                        return alias_list_entry["AliasArn"]
            return None
        key_metadata = kms_create_key()
        key_arn = key_metadata["Arn"]
        key_id = key_metadata["KeyId"]
        alias_name = kms_create_alias(TargetKeyId=key_id)
        alias_arn = get_alias_arn_by_alias_name(kms_client, alias_name)
        assert alias_arn
        kms_client.encrypt(KeyId=key_arn, Plaintext="encrypt-me")
        kms_client.encrypt(KeyId=key_id, Plaintext="encrypt-me")
        kms_client.encrypt(KeyId=alias_arn, Plaintext="encrypt-me")
        kms_client.encrypt(KeyId=alias_name, Plaintext="encrypt-me")
    @pytest.mark.aws_validated
    def test_create_multi_region_key(self, kms_create_key):