public void TestPairingKeyResponse() { // We don't have secrets to start with. Secrets secrets = null; // We've just received a message from the server var incomingMessageJsonStr = incomingKeyRequestJson(); // Let's parse it var incomingMessage = Message.FromJson(incomingMessageJsonStr, secrets); Assert.Equal("key_request", incomingMessage.EventName); // Incoming Message is a key_request. var keyRequest = new KeyRequest(incomingMessage); // Let's generate the Secrets and the KeyResponse var result = PairingHelper.GenerateSecretsAndKeyResponse(keyRequest); secrets = result.Secrets; // Save These. They are precious! // Let's Assert KeyResponse values var keyResponse = result.KeyResponse; Assert.NotEmpty(keyResponse.Benc); Assert.NotEmpty(keyResponse.Bhmac); Assert.Equal("62", keyResponse.RequestId); // Let's now prepare to send the key_response back to the server. var msgToSend = keyResponse.ToMessage(); Assert.Equal("62", msgToSend.Id); Assert.NotEmpty((string)msgToSend.Data["enc"]["B"]); Assert.NotEmpty((string)msgToSend.Data["hmac"]["B"]); }
public void NewPairequest_OnValidRequest_IsSet() { // act var pairRequest = PairingHelper.NewPairequest(); // assert Assert.Equal(pairRequest.ToMessage().EventName, "pair_request"); }
public void TestSecretConversion2() { var dhSecretBI = BigInteger.Parse("17574532284595554228770542578145458081719781058045063175688772743423924399411406200223997425795977226735712284391179978852253613"); var expectedSecret = "238A19795053605B1995E678C7785FB1E2137E6F49F13CCAFFAC0CB9773AF3B1"; var calculatedSecret = PairingHelper.DHSecretToSPISecret(dhSecretBI); Assert.Equal(expectedSecret, calculatedSecret); }
public void TestSecretConversion() { var dhSecretBI = BigInteger.Parse("17574532284595554228770542578145458081719781058045063175688772743423924399411406200223997425795977226735712284391179978852253613346926080761628802664085045531796220784085311215093471160914442692274980632286568900367895454304533334450617380428362254473222831478193415222881689923861172428575632214297967550826460508634891791127942687630353829719246724903147169063379750256523005309264102997944008112551383251560153285483075803832550164760264165682355751637761390244202226339540318827287797180863284173748514677579269180126947721499144727772986832223499738071139796968492815538042908414723947769999062186130240163854083"); var expectedSecret = "7D3895D92143692B46AEB66C66D7023C008093F2D8E272954898918DF12AAAD7"; var calculatedSecret = PairingHelper.DHSecretToSPISecret(dhSecretBI); Assert.Equal(expectedSecret, calculatedSecret); }
public void SpiAHexStringToBigInteger_OnValidResult_WithLongChars() { // This is a typical A value coming from the server, 509 chars long var incomingA = "CA8A33B81963BAC7068FF4FA21193FD54445C47EE5D6EAC14B97C1DBD0AE21D683CB5BC355B16BE969B567536985177FCF446DD95B4A0B45A4D3FD497C6FEADB0126CD2383C0DA475B482007D4B941641EC82E177321292103B842660B1A9690E892A4E8D0664A4A50102B01F6562EBD480DC3B16D8BE5EE5ED076099CABB44330BA8124582669BEA1A3990754B9D9FB41F470539558B54C398628553B366ADDD5055C7EE784F916E44FFA8188E96C635F2314181BE662EE3125F0D119490132DD3F6C778199A11D80E182565C1CA05582988824ACF4E1CE84ECCE1F17FBE8BF9BB86D8C059A1E2114F96F163E0C45E6DEDA41DD27187A7CB696BD7F7032E"; var expectedBigInt = BigInteger.Parse("6242257705828984036656266600403397573397224990025429675853955473612201444359563013179842155682812885831396293418099698228546742104443715887407249098046261687995142454490054830537910056555738078918996622954400366037842515342200987294449506875517728947106125309850920720564574130849595667906600652966151947593406017393637289292641140821958942411236880001806160003295142004163227450419959475352141829824638220928883338755038418821169677357987142679463603775052047306995489677114235996408400789487599802214581742956123668820445766837730477438131320464040402782216170369457291283600982299724185897733491544121861931822"); var calculatedBigInt = PairingHelper.SpiAHexStringToBigInteger(incomingA); Assert.Equal(expectedBigInt, calculatedBigInt); }
public void GetAll2ItemCombinations_ReturnsSingleItem_With2ItemInput() { // Arrange var doubleItemArray = _fixture.CreateMany <int>(2); // Act var result = PairingHelper.GetAll2ItemCombinations(doubleItemArray); // Assert Assert.Single(result); }
public void GetAll2ItemCombinations_ReturnsBlank_WithSingleInput() { // Arrange var singleItemArray = _fixture.CreateMany <int>(1); // Act var result = PairingHelper.GetAll2ItemCombinations(singleItemArray); // Assert Assert.Empty(result); }
public void TestSpiAHexStringToBigInteger() { // This is a typical A value coming from the server, that could be wrongly interpreted as a negative value. var incomingA = "DE42490C8F4F6D4D94C6EF91FE14C88CC81EAF1E67B8F1F40AF0E7F820E9DA3C0A94B9ACC6A624BD119C3270910D925D351F097C859356A048E0FE9154C1AAB7CC69C125B55455C1E5B0A3790D2AA65A5AA3E2BB60CCF0F140E32ADEB5931245BECD361DE6070436EB54329972C86C01141EBCDB190B24789F05372D95219693DFC484F4FA04BDA808911835344145B5EC1AC277103FCC042DFFA19B081745C2A286ED378068165C289BCE4E66C25D959416F5CD493B37CD051D09505FC4166DB1B77253693F7671B5019945DF1DA561AB3514AAA2F665A6F80610ADC6B7E8B149FDC62E6A289A2E91708ECD68C98AC34A5138869CE387C0813B72DFC4013DCC"; var expectedBigInt = BigInteger.Parse( "28057590225756641307990478575115942434087786432814243319932776727076438406521076596140114483936714752816261267076418421365582967840892369393410969737840494345407097935234656169358022904124610557991122629465181790672063793938502648166037000156854900527078271865860807536279471604640419277958287835405482406786942622132480633555138157731306330505014921731704281742225329497728638630895408406470042417047793985972099848310146938210045502000965935203871114530585068895834412190170964682990662520608415632041868324548288922663465883289142775376591626822575267795629370129550324552253761158326240672561176761746423986339276"); var calculatedBigInt = PairingHelper.SpiAHexStringToBigInteger(incomingA); Assert.Equal(expectedBigInt, calculatedBigInt); }
public void GetAll2ItemCombinations_2ItemArray_ReturnsExpectedCombinations() { // Arrange var inputArray = new int[] { 1, 2 }; var expectedOutputs = new List <int[]> { new int[] { 1, 2 } }; // Act var result = PairingHelper.GetAll2ItemCombinations(inputArray); // Assert Assert.Equal(expectedOutputs, result); }
private async void UnpairDeviceButton_Click(object sender, RoutedEventArgs e) { var selectedItem = (WatcherDevice)pairedListView.SelectedItem; if (selectedItem != null) { var result = await PairingHelper.UnpairDeviceAsync(selectedItem.Id); MessageBox.Show(result.Status); } else { MessageBox.Show("Must select an paired device"); } }
public void GetAll2ItemCombinations_ReturnsCorrectNumberOfItems() { // Arrange // The nCr equation used to calculate the number of combinations // where n = the population size and r = the subset size. int nCr(int n, int r) => Factorial(n) / (Factorial(r) * Factorial(n - r)); var inputArraySize = CreateFactorialisableInt(); var inputArray = _fixture.CreateMany <int>(inputArraySize); var expectedOutputSize = nCr(inputArraySize, 2); // Act var result = PairingHelper.GetAll2ItemCombinations(inputArray); // Assert Assert.Equal(expectedOutputSize, result.Count); }