File: Signing\Signatures\PrimarySignatureFactory.cs
Web Access
Project: src\src\nuget-client\src\NuGet.Core\NuGet.Packaging\NuGet.Packaging.csproj (NuGet.Packaging)
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.

using System.Security.Cryptography.Pkcs;

namespace NuGet.Packaging.Signing
{
    public static class PrimarySignatureFactory
    {
        public static PrimarySignature CreateSignature(SignedCms signedCms)
        {
            var signatureType = AttributeUtility.GetSignatureType(signedCms.SignerInfos[0].SignedAttributes);

            switch (signatureType)
            {
                case SignatureType.Author:
                    return new AuthorPrimarySignature(signedCms);
                case SignatureType.Repository:
                    return new RepositoryPrimarySignature(signedCms);
                default:
                    return new UnknownPrimarySignature(signedCms);
            }
        }
    }
}