public async Task <bool> VerifySignedRequestAsync(HttpRequest request)
        {
            _ = request ?? throw new ArgumentNullException(nameof(request));

            _logger.LogDebug($"Verifying sign request: {request.Path}");

            var reqSignature = RequestSignature.ParseFromHeaderVal(request.Headers["Authorization"].FirstOrDefault());

            var hash = GetHash(reqSignature, request);
            var data = Convert.FromBase64String(reqSignature.Signature);

            var publicKeyProvider = await GetRSAProviderFromCertAsync(reqSignature).ConfigureAwait(false);

            if (publicKeyProvider != null)
            {
                return(publicKeyProvider.VerifyData(hash, data, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1));
            }
            else
            {
                return(false);
            }
        }