Esempio n. 1
0
        public IdentifierItem GetDomainIdentifierItemFromIdentifierInfo(ACMESharp.Vault.Model.IdentifierInfo identifier)
        {
            if (identifier == null)
            {
                return(null);
            }

            var i = new IdentifierItem
            {
                Id     = identifier.Id.ToString(),
                Alias  = identifier.Alias,
                Name   = identifier.Dns,
                Dns    = identifier.Dns,
                Status = identifier.Authorization?.Status
            };

            if (identifier.Authorization != null)
            {
                i.AuthorizationExpiry    = identifier.Authorization.Expires;
                i.IsAuthorizationPending = identifier.Authorization.IsPending();

                if (identifier.Authorization.Status == "invalid")
                {
                    var failedChallenge = identifier.Authorization.Challenges?.FirstOrDefault(c => c.ChallengePart?.Error != null);
                    if (failedChallenge != null)
                    {
                        i.ValidationError     = String.Join("\r\n", failedChallenge.ChallengePart.Error);
                        i.ValidationErrorType = failedChallenge.ChallengePart.Error["type"];
                    }
                }
            }
            return(i);
        }
Esempio n. 2
0
        public IdentifierItem GetDomainIdentifierItemFromIdentifierInfo(ACMESharp.Vault.Model.IdentifierInfo identifier)
        {
            var i = new IdentifierItem
            {
                Id     = identifier.Id.ToString(),
                Alias  = identifier.Alias,
                Name   = identifier.Dns,
                Dns    = identifier.Dns,
                Status = identifier.Authorization?.Status,
            };

            if (identifier.Authorization != null)
            {
                i.AuthorizationExpiry    = identifier.Authorization.Expires;
                i.IsAuthorizationPending = identifier.Authorization.IsPending();
            }

            return(i);
        }
Esempio n. 3
0
        protected override void ProcessRecord()
        {
            using (var vlt = Util.VaultHelper.GetVault(VaultProfile))
            {
                vlt.OpenStorage();
                var v = vlt.LoadVault();

                if (v.Registrations == null || v.Registrations.Count < 1)
                    throw new InvalidOperationException("No registrations found");

                var ri = v.Registrations[0];
                var r = ri.Registration;

                AuthorizationState authzState = null;
                var ii = new IdentifierInfo
                {
                    Id = EntityHelper.NewId(),
                    Alias = Alias,
                    Label = Label,
                    Memo = Memo,
                    RegistrationRef = ri.Id,
                    Dns = Dns,
                };

                try
                {
                    using (var c = ClientHelper.GetClient(v, ri))
                    {
                        c.Init();
                        c.GetDirectory(true);

                        authzState = c.AuthorizeIdentifier(Dns);
                        ii.Authorization = authzState;

                        if (v.Identifiers == null)
                            v.Identifiers = new EntityDictionary<IdentifierInfo>();

                        v.Identifiers.Add(ii);
                    }
                }
                catch (AcmeClient.AcmeWebException ex)
                {
                    ThrowTerminatingError(PoshHelper.CreateErrorRecord(ex, ii));
                    return;
                }

                vlt.SaveVault(v);

                WriteObject(authzState);
            }
        }