public static async Task <Client> Login(string mail, Func <HttpClient> httpClientGenerator, string dnsimpleToken, Account?account = null, bool production = true) { var acmeHttpClient = new AcmeHttpClient(GetServer(production), httpClientGenerator()); AcmeContext acme; if (account == null) { acme = new AcmeContext(GetServer(production), null, acmeHttpClient); await acme.NewAccount(mail, true); account = new Account(acme.AccountKey); } else { acme = new AcmeContext(GetServer(production), account.Key, acmeHttpClient); } var client = new DNSimple.Client(httpClientGenerator()); client.UseToken(dnsimpleToken); var dnsimple = await client.GetAccount(mail); return(new Client(acme, dnsimple, account)); }
protected virtual void Dispose(bool disposing) { if (disposing) { client = null; context = null; } }
public AutoAcmeContext(Uri serverAddress) { if (serverAddress == null) { throw new ArgumentNullException(nameof(serverAddress)); } if (serverAddress == WellKnownServers.LetsEncrypt) { serverAddress = WellKnownServers.LetsEncryptV2; } else if (serverAddress == WellKnownServers.LetsEncryptStaging) { serverAddress = WellKnownServers.LetsEncryptStagingV2; } Log.WriteVerboseLine($"Using server {serverAddress}"); this.serverAddress = serverAddress; client = new AcmeHttpClient(serverAddress); }
/// <summary> /// setup the basic settings before we init the acme context /// </summary> /// <param name="acmeDirectoryUrl"></param> private void PreInitAcmeContext() { _lastInitDateTime = DateTime.Now; _loggingHandler = new LoggingHandler(new HttpClientHandler(), _log); var customHttpClient = new System.Net.Http.HttpClient(_loggingHandler); if (customHttpClient.DefaultRequestHeaders.Contains("User-Agent")) { customHttpClient.DefaultRequestHeaders.Remove("User-Agent"); } customHttpClient.DefaultRequestHeaders.Add("User-Agent", _userAgentName); #if DEBUG customHttpClient.Timeout = TimeSpan.FromSeconds(10); #endif _httpClient = new AcmeHttpClient(_serviceUri, customHttpClient); }
/// <summary> /// Initialise provider settings, loading current account key if present /// </summary> public async Task <bool> InitProvider(ILog log = null) { if (log != null) { _log = log; } _lastInitDateTime = DateTime.Now; _loggingHandler = new LoggingHandler(new HttpClientHandler(), _log); var customHttpClient = new System.Net.Http.HttpClient(_loggingHandler); customHttpClient.DefaultRequestHeaders.Add("User-Agent", _userAgentName); _httpClient = new AcmeHttpClient(_serviceUri, customHttpClient); LoadSettings(); if (!string.IsNullOrEmpty(_settings.AccountKey)) { if (System.IO.File.Exists(_settingsFolder + "\\c-acc.key")) { //remove legacy key info System.IO.File.Delete(_settingsFolder + "\\c-acc.key"); } SetAcmeContextAccountKey(_settings.AccountKey); } else { // no account key in settings, check .key (legacy key file) if (System.IO.File.Exists(_settingsFolder + "\\c-acc.key")) { string pem = System.IO.File.ReadAllText(_settingsFolder + "\\c-acc.key"); SetAcmeContextAccountKey(pem); } } _currentOrders = new Dictionary <string, IOrderContext>(); return(await Task.FromResult(true)); }