### 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_
import json
from datetime import datetime
from random import getrandbits
import pytest
from botocore.config import Config
from botocore.exceptions import ClientError
from cryptography.hazmat.primitives.asymmetric.padding import PKCS1v15
from cryptography.hazmat.primitives.serialization import load_der_public_key
from localstack.aws.accounts import get_aws_account_id
from localstack.testing.pytest.fixtures import _client
from localstack.utils.strings import short_uid
@pytest.fixture(scope="class")
def kms_client_for_region():
    def _kms_client(
        region_name: str = None,
    ):
        return _client("kms", region_name=region_name)
    return _kms_client
def _get_all_key_ids(kms_client):