static public TokenPassport CreateTokenPassport(string account, string consumerKey, string consumerSecret, string tokenId, string tokenSecret) { RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider(); byte[] data = new byte[20]; rng.GetBytes(data); int value = Math.Abs(BitConverter.ToInt32(data, 0)); string nonce = value.ToString(); long timestamp = ((long)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds); string baseString = account + "&" + consumerKey + "&" + tokenId + "&" + nonce + "&" + timestamp; string key = consumerSecret + "&" + tokenSecret; string signature = ""; var encoding = new System.Text.ASCIIEncoding(); byte[] keyBytes = encoding.GetBytes(key); byte[] baseStringBytes = encoding.GetBytes(baseString); using (var hmacSha1 = new HMACSHA1(keyBytes)) { byte[] hashBaseString = hmacSha1.ComputeHash(baseStringBytes); signature = Convert.ToBase64String(hashBaseString); } return new TokenPassport() { account = account, consumerKey = consumerKey, token = tokenId, nonce = nonce, timestamp = timestamp, signature = new TokenPassportSignature { algorithm = "HMAC-SHA1", Value = signature } }; }