public ISignatureValidator Create(TokenHeader header, JwsAlgorithm algorithm) { switch (algorithm) { case JwsAlgorithm.RS256: case JwsAlgorithm.RS384: case JwsAlgorithm.RS512: return(new Rsa(header, algorithm, GetLogger <Rsa>())); case JwsAlgorithm.HS256: case JwsAlgorithm.HS384: case JwsAlgorithm.HS512: return(new Hmac(header, algorithm, GetLogger <Hmac>())); case JwsAlgorithm.ES256: case JwsAlgorithm.ES384: case JwsAlgorithm.ES512: return(new Ecdsa(header, algorithm, GetLogger <Ecdsa>())); case JwsAlgorithm.PS256: case JwsAlgorithm.PS384: case JwsAlgorithm.PS512: throw Logger.Exception($"The JWS signature algorithm {algorithm} is not supported yet"); default: throw Logger.Exception("Invalid JWS Algorithm"); } }
public void UpdateHeader(Action <TokenHeader> updateAction) { var header = ParsedHeader; updateAction(header); ParsedHeader = header; }
public static string GenerateLoginToken(int playerID, DateTime tokenTTL) { //Setup Header TokenHeader header = new TokenHeader(); string jwtHeader = JsonSerializer.Serialize(header); byte[] headerBytes = Encoding.UTF8.GetBytes(jwtHeader); string encodedHeader = Base64UrlEncoder.Encode(headerBytes); //Setup data body TokenBody body = new TokenBody(playerID, tokenTTL); string jwtBody = JsonSerializer.Serialize(body); byte[] bodyBytes = Encoding.UTF8.GetBytes(jwtBody); string encodedBody = Base64UrlEncoder.Encode(bodyBytes); string jwtToken = $"{encodedHeader}.{encodedBody}"; string jwtSignature = GetTokenSignature(jwtToken); string encodedSignature = Base64UrlEncoder.Encode(jwtSignature); string signedJWTToken = $"{jwtToken}.{encodedSignature}"; return(signedJWTToken); }
public void GetCustomeModule_Test() { var head = new TokenHeader() { GameSourceSysNo = 10001, RegionSourceSysNo = 10002, SiteSourceSysNo = 10002, Token = "", UserSysNo = 24 }; m_client.GetCustomeModule(head); //var msg = new StringBuilder(); ////var result = m_client.GetCustomeModule(head); //var lastestLottery = m_Dal.GetCurrentLottery(head.SiteSourceSysNo,GetTableName(head.RegionSourceSysNo)); //var a = m_Dal.QueryNextLotteryWithSameNumber(lastestLottery.RetNum, head.SiteSourceSysNo, // GetTableName(head.RegionSourceSysNo)); //msg.AppendFormat("大={0},小={1},和={2}\n", a.BigP, a.SmallP, a.BigP + a.SmallP); //msg.AppendFormat("中={0},边={1},和={2}\n",a.CenterP,a.SideP,a.CenterP+ a.SideP); //msg.AppendFormat("单={0},双={1},和={2}\n",a.OddP,a.EvenP,a.OddP+ a.EvenP); //msg.Append("华丽的分隔符===============================\n"); //var b = m_Dal.QueryLotteryByHourStep(lastestLottery.RetTime.AddMinutes(5), head.SiteSourceSysNo, // GetTableName(head.RegionSourceSysNo)); //msg.AppendFormat("大={0},小={1},和={2}\n",b.BigP,b.SmallP,b.BigP + b.SmallP); //msg.AppendFormat("中={0},边={1},和={2}\n",b.CenterP,b.SideP,b.CenterP + b.SideP); //msg.AppendFormat("单={0},双={1},和={2}\n",b.OddP,b.EvenP,b.OddP + b.EvenP); //Console.WriteLine(msg); }
public RegOnlineAPIFixture() : base(ConfigReader.WebServiceEnum.Default) { RequiresBrowser = true; this.service = new RegOnlineAPISoapClient( CurrentWebServiceConfig.EndpointConfigName, RemoteAddressUri.ToString()); header = new TokenHeader(); }
private async Task <Result <byte[]> > CreateTokenAsync(IDictionary <string, object> claims) { var headerPayload = new TokenHeader("RSA256", "JWT"); var headerData = await SerializeAsync(headerPayload); var header = new byte[Base64.GetMaxEncodedToUtf8Length(headerData.Length)]; Base64.EncodeToUtf8(headerData, header, out _, out _); var payload = await SerializeAsync(claims); var length = header.Length + 1 + Base64.GetMaxEncodedToUtf8Length(payload.Length); var keySize = await _hasher.GetPublicKeySizeAsync(); var token = new byte[length + 1 + Base64.GetMaxEncodedToUtf8Length(keySize)]; Buffer.BlockCopy(header, 0, token, 0, header.Length); var idx = header.Length; token[idx] = (byte)'.'; idx++; Encode(payload, token, idx); var digest = SHA256.Create(); var digestSum = digest.ComputeHash(token, 0, length); var(signSuccess, _, signature, signError) = await _hasher.SignAsync(digestSum); if (!signSuccess) { return(Result.Failure <byte[]>(signError)); } idx = length; token[idx] = (byte)'.'; Encode(signature, token, idx + 1); return(token);
public TokenBuilder(string alg) { Header = new TokenHeader(alg, "JWT"); Claims = new Dictionary <string, object>(); }
protected SignatureValidator(TokenHeader header, JwsAlgorithm algorithm, ILogger <T> logger) { Header = header; Algorithm = algorithm; Logger = logger; }
public ResultsOfListOfRegistration FetchRegistration(string userName, string password, int registrationId) { TokenHeader header = new TokenHeader(); header.APIToken = this.LoginToGetAPIToken(userName, password); return this.service.GetRegistration(header, registrationId); }
public ResultsOfListOfEvent FetchEvent(string userName, string password, int eventId) { TokenHeader header = new TokenHeader(); header.APIToken = this.LoginToGetAPIToken(userName, password); return this.service.GetEvent(header, eventId); }
public void Test_ChangePsw() { var h = new TokenHeader(); h.UserSysNo = 5; var result= m_client.ChangePsw(h, "12345678", "123456", "你的出生地?", "abc", "", ""); Console.WriteLine(result.Message); //Console.WriteLine(m_Dal.ChangePsw(5, "jeanma", "12345678", "你的出生地?", "abc", "", "")); //var a = m_Dal.ChangePsw(9,"115922","12345678","你的出生地?","abc","",""); }
public void QueryTrend_Test() { //client var head = new TokenHeader() { GameSourceSysNo = 10001, RegionSourceSysNo = 10001, SiteSourceSysNo = 10001, Token = "", UserSysNo = 1 }; var result = m_client.QueryTrend(head,1); var head2 = new TokenHeader() { GameSourceSysNo = 10001, RegionSourceSysNo = 10001, SiteSourceSysNo = 10002, Token = "", UserSysNo = 1 }; var result2 = m_client.QueryTrend(head2,1); for (var i = 0;i < 5;i++) { Console.WriteLine(string.Format("{0},{1},{2}",result.Data.DataList[i].PeriodNum,result.Data.DataList[i].RetNum,result.Data.DataList[i].RetTime.ToString())); Console.WriteLine(string.Format("{0},{1},{2}",result2.Data.DataList[i].PeriodNum,result2.Data.DataList[i].RetNum,result2.Data.DataList[i].RetTime.ToString())); Console.WriteLine("============="); } }
public void QuerySupperTrend_Test() { var head = new TokenHeader() { GameSourceSysNo = 10001, RegionSourceSysNo = 10002, SiteSourceSysNo = 10001, Token = "", UserSysNo = 1 }; var pageIndex = 1; var pageSize = 20; var result = m_Dal.QuerySupperTrend(head.SiteSourceSysNo, pageIndex, pageSize, 5000, "2013-7-23", "", "", GetTableName(head.RegionSourceSysNo)); //var result = m_client.QuerySupperTrend(head,1,10,"","",""); Console.WriteLine("名称\t总数"); foreach (var t in result.LotteryTimeses) { Console.WriteLine(string.Format("{0}\t{1}",t.Name,t.Total)); } Console.WriteLine("===================================="); Console.WriteLine(string.Format("页数:{0},当前数量:{1},{2}",result.PageCount,result.DataList.Count,result.PageIndex)); Console.WriteLine("期号\t号码\t日期"); foreach (var item in result.DataList) { Console.WriteLine(string.Format("{0}\t{1}\t{2}",item.PeriodNum,item.RetNum,item.RetTime.ToString())); } }
public void QueryOmissionTest() { var head = new TokenHeader() { GameSourceSysNo = 10001, RegionSourceSysNo = 10001, SiteSourceSysNo = 10001, Token = "", UserSysNo = 1 }; var result = m_client.QueryOmission(head); }
public Hmac(TokenHeader header, JwsAlgorithm algorithm, ILogger <Hmac> logger) : base(header, algorithm, logger) { }
public Rsa(TokenHeader header, JwsAlgorithm algorithm, ILogger <Rsa> logger) : base(header, algorithm, logger) { }