public async Task CanDiscoverAccountByKey() { var dirUri = await GetAcmeUriV2(); var ctx = new AcmeContext(dirUri, GetKeyV2(), GetAcmeHttpClient(dirUri)); var acct = await ctx.Account(); Assert.NotNull(acct.Location); var res = await acct.Resource(); }
public async Task Account() { var acmeDir = await IntegrationHelper.GetAcmeUriV2(); var accountKey = Helper.GetKeyV2(KeyAlgorithm.RS256); var httpClient = IntegrationHelper.GetAcmeHttpClient(acmeDir); var acme = new AcmeContext(acmeDir, accountKey, httpClient); var account = await acme.Account(); var order = await acme.NewOrder(new[] { "www.certes-ci.dymetis.com" }); var authz = (await order.Authorizations()).First(); var httpChallenge = await authz.Http(); var token = httpChallenge.Token; var keyAuthz = httpChallenge.KeyAuthz; var orderUri = order.Location; await httpChallenge.Validate(); var res = await authz.Resource(); while (res.Status != AuthorizationStatus.Valid && res.Status != AuthorizationStatus.Invalid) { res = await authz.Resource(); } acme = new AcmeContext(acmeDir, accountKey, httpClient); order = acme.Order(orderUri); var privateKey = KeyFactory.NewKey(KeyAlgorithm.ES256); var cert = await order.Generate(new CsrInfo { CountryName = "CA", State = "Ontario", Locality = "Toronto", Organization = "Certes", OrganizationUnit = "Dev", CommonName = "www.certes-ci.dymetis.com", }, privateKey, null); var pfxBuilder = cert.ToPfx(privateKey); pfxBuilder.AddTestCerts(); var pfx = pfxBuilder.Build("my-cert", "abcd1234"); }
public async Task CanChangeAccountKey() { var dirUri = await GetAcmeUriV2(); var ctx = new AcmeContext(dirUri, http: GetAcmeHttpClient(dirUri)); var account = await ctx.NewAccount( new[] { $"mailto:certes-{DateTime.UtcNow.Ticks}@example.com" }, true); var location = await ctx.Account().Location(); var newKey = KeyFactory.NewKey(KeyAlgorithm.ES256); await ctx.ChangeKey(newKey); var ctxWithNewKey = new AcmeContext(dirUri, newKey, http: GetAcmeHttpClient(dirUri)); var locationWithNewKey = await ctxWithNewKey.Account().Location(); Assert.Equal(location, locationWithNewKey); }