Beispiel #1
0
        private static PrimarySignature CreatePrimarySignature(SignPackageRequest request, SignatureContent signatureContent, ILogger logger)
        {
            var cmsSigner = SigningUtility.CreateCmsSigner(request, logger);

            if (request.PrivateKey != null)
            {
                return(CreatePrimarySignature(cmsSigner, signatureContent.GetBytes(), request.PrivateKey));
            }

            return(CreatePrimarySignature(cmsSigner, request, signatureContent.GetBytes()));
        }
Beispiel #2
0
        private Signature CreateSignature(SignPackageRequest request, SignatureContent signatureContent)
        {
            var cmsSigner = CreateCmsSigner(request);

            if (request.PrivateKey != null)
            {
                return(CreateSignature(cmsSigner, signatureContent, request.PrivateKey));
            }

            var contentInfo = new ContentInfo(signatureContent.GetBytes());
            var cms         = new SignedCms(contentInfo);

            try
            {
                cms.ComputeSignature(cmsSigner);
            }
            catch (CryptographicException ex) when(ex.HResult == INVALID_PROVIDER_TYPE_HRESULT)
            {
                var exceptionBuilder = new StringBuilder();

                exceptionBuilder.AppendLine(Strings.SignFailureCertificateInvalidProviderType);
                exceptionBuilder.AppendLine(CertificateUtility.X509Certificate2ToString(request.Certificate));

                throw new SignatureException(NuGetLogCode.NU3016, exceptionBuilder.ToString());
            }

            return(Signature.Load(cms));
        }
Beispiel #3
0
        private Signature CreateSignature(CmsSigner cmsSigner, SignatureContent signatureContent, CngKey privateKey)
        {
            var cms = NativeUtilities.NativeSign(cmsSigner, signatureContent.GetBytes(), privateKey);

            return(Signature.Load(cms));
        }