public void ValidTestRun() { var client = new SigningClient(new SigningClientConfiguration { SigningServer = "localhost:4711" }); client.SignFile(Path.Combine(ExecutionDirectory, "IntegrationTestFiles/unsigned")); Assert.AreEqual(0, Directory.GetFiles("WorkingDirectory").Length, "Server Side file cleanup failed"); var signedFiles = Directory.GetFiles(Path.Combine(ExecutionDirectory, "IntegrationTestFiles")); var signingTools = _service.SigningServer.SigningToolProvider; foreach (var signedFile in signedFiles) { var tool = signingTools.GetSigningTool(signedFile); Assert.IsNotNull(tool, "Could not find signing tool for file {0}", signedFile); Assert.IsTrue(tool.IsFileSigned(signedFile), "File {0} was not signed", signedFile); } }
public async Task GivenIdentityEntry_WhenSigned_WillVerify() { const string issuer = "*****@*****.**"; IdentityClient client = TestApplication.GetIdentityClient(); SigningClient signClient = TestApplication.GetSigningClient(); var documentId = new DocumentId("identity:test/unit-tests-identity/identity1"); var query = new QueryParameter() { Filter = "test/unit-tests-identity", Recursive = false, }; IReadOnlyList <DatalakePathItem> search = (await client.Search(query).ReadNext()).Records; bool isInsearch = search.Any(x => x.Name == documentId.Path); bool deleted = await client.Delete(documentId); (isInsearch == deleted).Should().BeTrue(); var request = new IdentityEntryRequest { DirectoryId = (string)documentId, Issuer = issuer }; bool success = await client.Create(request); success.Should().BeTrue(); var signRequest = new SignRequest { PrincipleDigests = new[] { new PrincipleDigest { PrincipleId = (string)documentId, Digest = Guid.NewGuid().ToString() } } }; SignRequestResponse signedJwt = await signClient.Sign(signRequest); signedJwt.Should().NotBeNull(); (signedJwt.Errors == null || signedJwt.Errors.Count == 0).Should().BeTrue(); signedJwt.PrincipleDigests.Count.Should().Be(1); var validateRequest = new ValidateRequest { PrincipleDigests = new[] { new PrincipleDigest { PrincipleId = (string)documentId, Digest = signRequest.PrincipleDigests[0].Digest, JwtSignature = signedJwt.PrincipleDigests.First().JwtSignature, } } }; bool jwtValidated = await signClient.Validate(validateRequest); jwtValidated.Should().BeTrue(); await client.Delete(documentId); search = (await client.Search(query).ReadNext()).Records; search.Any(x => x.Name == (string)documentId).Should().BeFalse(); }
public ContractService(ArtifactClient artifactClient, SigningClient signingClient) { _artifactClient = artifactClient; _signingClient = signingClient; }