protected override string ComputeSignatureCore(string key, string data)
        {
            Debug.Assert(!string.IsNullOrEmpty(data));

            using (var algorithm = KeyedHash.Create(SignatureMethod.ToUpperInvariant()))
            {
                algorithm.Key = Encoding.GetBytes(key.ToCharArray());
                return(Convert.ToBase64String(
                           algorithm.ComputeHash(Encoding.GetBytes(data.ToCharArray()))));
            }
        }