public void KnownSTUNBindingRequestIntegrityCheckUnitTest() { logger.LogDebug("--> " + System.Reflection.MethodBase.GetCurrentMethod().Name); logger.BeginScope(System.Reflection.MethodBase.GetCurrentMethod().Name); string icePassword = "******"; byte[] buffer = TypeExtensions.ParseHexStr( "0001003C2112A4424A5655444B44544753454455000600095A4C45423A4554454F00000000240" + "008CC3A28000000000000080014B295EDA4BC88A0BC885D745644D36E51FE3CBD1880280004EDF60FF7"); STUNMessage stunRequest = STUNMessage.ParseSTUNMessage(buffer, buffer.Length); Assert.True(stunRequest.isFingerprintValid); Assert.True(stunRequest.CheckIntegrity(System.Text.Encoding.UTF8.GetBytes(icePassword))); }
public void IntegrityCheckUnitTest() { logger.LogDebug("--> " + System.Reflection.MethodBase.GetCurrentMethod().Name); logger.BeginScope(System.Reflection.MethodBase.GetCurrentMethod().Name); string icePassword = "******"; STUNMessage stunRequest = new STUNMessage(STUNMessageTypesEnum.BindingRequest); stunRequest.Header.TransactionId = Encoding.ASCII.GetBytes(Crypto.GetRandomString(STUNHeader.TRANSACTION_ID_LENGTH)); stunRequest.AddUsernameAttribute("xxxx:yyyy"); stunRequest.Attributes.Add(new STUNAttribute(STUNAttributeTypesEnum.Priority, BitConverter.GetBytes(1))); var buffer = stunRequest.ToByteBufferStringKey(icePassword, true); //logger.LogDebug($"HMAC: {buffer.Skip(buffer.Length - ).Take(20).ToArray().HexStr()}."); //logger.LogDebug($"Fingerprint: {buffer.Skip(buffer.Length -4).ToArray().HexStr()}."); STUNMessage rndTripReq = STUNMessage.ParseSTUNMessage(buffer, buffer.Length); Assert.True(rndTripReq.isFingerprintValid); Assert.True(rndTripReq.CheckIntegrity(System.Text.Encoding.UTF8.GetBytes(icePassword))); }