Ejemplo n.º 1
0
        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)));
        }
Ejemplo n.º 2
0
        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)));
        }