public static RepositoryCountersignature GetRepositoryCountersignature(PrimarySignature primarySignature) { if (primarySignature == null) { throw new ArgumentNullException(nameof(primarySignature)); } if (primarySignature.Type == SignatureType.Repository) { throw new SignatureException(NuGetLogCode.NU3033, Strings.Error_RepositorySignatureShouldNotHaveARepositoryCountersignature); } var countersignatures = primarySignature.SignerInfo.CounterSignerInfos; RepositoryCountersignature repositoryCountersignature = null; // Only look for repository countersignatures. foreach (var countersignature in countersignatures) { var countersignatureType = AttributeUtility.GetSignatureType(countersignature.SignedAttributes); if (countersignatureType == SignatureType.Repository) { if (repositoryCountersignature != null) { throw new SignatureException(NuGetLogCode.NU3032, Strings.Error_NotOneRepositoryCounterSignature); } var v3ServiceIndexUrl = AttributeUtility.GetNuGetV3ServiceIndexUrl(countersignature.SignedAttributes); var packageOwners = AttributeUtility.GetNuGetPackageOwners(countersignature.SignedAttributes); repositoryCountersignature = new RepositoryCountersignature( primarySignature, countersignature, v3ServiceIndexUrl, packageOwners); } } return(repositoryCountersignature); }
public RepositoryPrimarySignature(SignedCms signedCms) : base(signedCms, SignatureType.Repository) { V3ServiceIndexUrl = AttributeUtility.GetNuGetV3ServiceIndexUrl(SignerInfo.SignedAttributes); PackageOwners = AttributeUtility.GetNuGetPackageOwners(SignerInfo.SignedAttributes); }