public VerificationAllowListEntry(VerificationTarget target, SignaturePlacement placement) { if (target == VerificationTarget.Author && placement.HasFlag(SignaturePlacement.Countersignature)) { throw new ArgumentException(Strings.ErrorAuthorTargetCannotBeACountersignature); } Target = target; Placement = placement; }
public CertificateHashAllowListEntry(VerificationTarget target, SignaturePlacement placement, string fingerprint, HashAlgorithmName algorithm) : base(target, placement) { if (!Enum.IsDefined(typeof(SignaturePlacement), placement)) { throw new ArgumentException( string.Format( CultureInfo.CurrentCulture, Strings.UnrecognizedEnumValue, placement), nameof(placement)); } if (!Enum.IsDefined(typeof(HashAlgorithmName), algorithm)) { throw new ArgumentException( string.Format( CultureInfo.CurrentCulture, Strings.UnrecognizedEnumValue, algorithm), nameof(algorithm)); } if ((placement.HasFlag(SignaturePlacement.Countersignature) && !target.HasFlag(VerificationTarget.Repository)) || (placement == SignaturePlacement.Countersignature && target != VerificationTarget.Repository)) { throw new ArgumentException( string.Format( CultureInfo.CurrentCulture, Strings.InvalidArgumentCombination, nameof(target), nameof(placement)), nameof(placement)); } Fingerprint = fingerprint ?? throw new ArgumentNullException(nameof(fingerprint)); FingerprintAlgorithm = algorithm; }
public SignedPackageVerifierSettings( bool allowUnsigned, bool allowIllegal, bool allowUntrusted, bool allowIgnoreTimestamp, bool allowMultipleTimestamps, bool allowNoTimestamp, bool allowUnknownRevocation, bool reportUnknownRevocation, VerificationTarget verificationTarget, SignaturePlacement signaturePlacement, SignatureVerificationBehavior repositoryCountersignatureVerificationBehavior, RevocationMode revocationMode) { if (!Enum.IsDefined(typeof(VerificationTarget), verificationTarget)) { throw new ArgumentException( string.Format( CultureInfo.CurrentCulture, Strings.UnrecognizedEnumValue, verificationTarget), nameof(verificationTarget)); } if (!Enum.IsDefined(typeof(SignaturePlacement), signaturePlacement)) { throw new ArgumentException( string.Format( CultureInfo.CurrentCulture, Strings.UnrecognizedEnumValue, signaturePlacement), nameof(signaturePlacement)); } if (!Enum.IsDefined(typeof(SignatureVerificationBehavior), repositoryCountersignatureVerificationBehavior)) { throw new ArgumentException( string.Format( CultureInfo.CurrentCulture, Strings.UnrecognizedEnumValue, repositoryCountersignatureVerificationBehavior), nameof(repositoryCountersignatureVerificationBehavior)); } if ((signaturePlacement.HasFlag(SignaturePlacement.Countersignature) && !verificationTarget.HasFlag(VerificationTarget.Repository)) || (signaturePlacement == SignaturePlacement.Countersignature && verificationTarget != VerificationTarget.Repository)) { throw new ArgumentException( string.Format( CultureInfo.CurrentCulture, Strings.InvalidArgumentCombination, nameof(verificationTarget), nameof(signaturePlacement)), nameof(signaturePlacement)); } if ((repositoryCountersignatureVerificationBehavior == SignatureVerificationBehavior.Never) == signaturePlacement.HasFlag(SignaturePlacement.Countersignature) || ((repositoryCountersignatureVerificationBehavior == SignatureVerificationBehavior.Always) && !signaturePlacement.HasFlag(SignaturePlacement.Countersignature))) { throw new ArgumentException( string.Format( CultureInfo.CurrentCulture, Strings.InvalidArgumentCombination, nameof(signaturePlacement), nameof(repositoryCountersignatureVerificationBehavior)), nameof(repositoryCountersignatureVerificationBehavior)); } AllowUnsigned = allowUnsigned; AllowIllegal = allowIllegal; AllowUntrusted = allowUntrusted; AllowIgnoreTimestamp = allowIgnoreTimestamp; AllowMultipleTimestamps = allowMultipleTimestamps; AllowNoTimestamp = allowNoTimestamp; AllowUnknownRevocation = allowUnknownRevocation; ReportUnknownRevocation = reportUnknownRevocation; VerificationTarget = verificationTarget; SignaturePlacement = signaturePlacement; RepositoryCountersignatureVerificationBehavior = repositoryCountersignatureVerificationBehavior; RevocationMode = revocationMode; }