public void GetTargetSecret() { var responseContent = new StringBuilder(); responseContent.AppendLine("<html>"); responseContent.AppendLine("<body>"); responseContent.AppendLine("<div class=\"panel-heading\"> MySecret </div>"); responseContent.AppendLine("<div class=\"panel-body\"> TEST1234 </div>"); responseContent.AppendLine("</body>"); responseContent.AppendLine("</html>"); var response = new HttpClientProxyResponse { StatusCode = HttpStatusCode.OK, Contents = responseContent.ToString() }; var client = new Mock <IHttpClientProxy>(); client.Setup(x => x.SendAsync(It.IsAny <HttpClientProxyRequest>())) .Returns(Task.FromResult(response)); var sut = new SecretShare(client.Object, 1); var result = sut.GetTargetSecret("MySecret"); Assert.Equal("TEST1234", result); }
private static void Combine() { if (!Arguments.QuietMode) { Console.WriteLine("Enter {0} shares separated by newlines:", Arguments.Threshold); } int polynomialDegree = -1; var totalShares = new List <string>(); for (int i = 0; i < Arguments.Threshold; i++) { if (!Arguments.QuietMode) { Console.Write("Share [{0}/{1}]: ", i + 1, Arguments.Threshold); } string currentShare = String.Empty; try { currentShare = Console.ReadLine(); } catch { Fatal("I/O error while reading shares"); } SecretShare share; if (!SecretShare.TryParse(currentShare, out share)) { Fatal("invalid syntax"); } if (polynomialDegree < 0) { polynomialDegree = share.Point.Y.PrimePolynomial.Degree; if (!IrreduciblePolynomial.IsValidDegree(polynomialDegree)) { Fatal("share has illegal length"); } } else if (polynomialDegree != share.Point.Y.PrimePolynomial.Degree) { Fatal("shares have different security levels"); } totalShares.Add(currentShare); } Diffuser diffuser = new NullDiffuser(); if (Arguments.EnableDiffusion) { if (polynomialDegree >= 64) { diffuser = new XteaDiffuser(); } else { Warning("security level too small for the diffusion layer"); } } var recoveredSecret = SecretCombiner.Combine(totalShares, diffuser); if (!Arguments.QuietMode) { Console.Error.Write("Resulting secret: "); } Console.Error.WriteLine(Arguments.HexMode ? recoveredSecret.RecoveredHexString : recoveredSecret.RecoveredTextString); }