### 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_
if key.metadata["KeyUsage"] != "ENCRYPT_DECRYPT":
            raise InvalidKeyUsageException(
                "KeyUsage for encryption / decryption should be ENCRYPT_DECRYPT"
            )
    def _validate_key_for_sign_verify(self, key: KmsKey):
        if key.metadata["KeyUsage"] != "SIGN_VERIFY":
            raise InvalidKeyUsageException(
                "KeyUsage for signing / verification key should be SIGN_VERIFY"
            )
    def _validate_grant_request(self, data: Dict, store: KmsStore):
        if "KeyId" not in data or "GranteePrincipal" not in data or "Operations" not in data:
            raise ValidationError("Grant ID, key ID and grantee principal must be specified")
        for operation in data["Operations"]:
            if operation not in VALID_OPERATIONS:
                raise ValidationError(
                    f"Value {['Operations']} at 'operations' failed to satisfy constraint: Member must satisfy"
                    f" constraint: [Member must satisfy enum value set: {VALID_OPERATIONS}]"
                )
def set_key_managed(key_id: str, account_id: str, region: str) -> None:
    store = kms_stores[account_id][region]
    key = store.get_key(key_id)
    key.metadata["KeyManager"] = "AWS"