Beispiel #1
0
        public void HasRepositoryCountersignature_WithNullPrimarySignature_Throws()
        {
            var exception = Assert.Throws <ArgumentNullException>(
                () => SignatureUtility.HasRepositoryCountersignature(primarySignature: null));

            Assert.Equal("primarySignature", exception.ParamName);
        }
Beispiel #2
0
        public async Task HasRepositoryCountersignature_WithSignatureWithoutRepositoryCountersignature_ReturnsFalseAsync()
        {
            using (var certificate = _fixture.GetDefaultCertificate())
            {
                var packageContext        = new SimpleTestPackageContext();
                var unsignedPackageStream = packageContext.CreateAsStream();

                var signature = await SignedArchiveTestUtility.CreateAuthorSignatureForPackageAsync(
                    certificate,
                    unsignedPackageStream);

                var hasRepoCountersignature = SignatureUtility.HasRepositoryCountersignature(signature);

                Assert.False(hasRepoCountersignature);
            }
        }
        public static async Task <bool> IsRepositoryCountersignedAsync(Stream package)
        {
            using (var reader = new PackageArchiveReader(package, leaveStreamOpen: true))
            {
                var primarySignature = await reader.GetPrimarySignatureAsync(CancellationToken.None);

                if (primarySignature != null)
                {
#if IS_DESKTOP
                    return(SignatureUtility.HasRepositoryCountersignature(primarySignature));
#endif
                }

                return(false);
            }
        }
Beispiel #4
0
        public async Task HasRepositoryCountersignature_WithSignatureWithRepositoryCountersignature_ReturnsTrueAsync()
        {
            using (var certificate = _fixture.GetDefaultCertificate())
                using (var repositoryCertificate = _fixture.GetDefaultCertificate())
                {
                    var packageContext        = new SimpleTestPackageContext();
                    var unsignedPackageStream = packageContext.CreateAsStream();

                    var signature = await SignedArchiveTestUtility.CreatePrimarySignatureForPackageAsync(
                        certificate,
                        unsignedPackageStream);

                    var reposignedSignature = await SignedArchiveTestUtility.RepositoryCountersignPrimarySignatureAsync(repositoryCertificate, signature);

                    var hasRepoCountersignature = SignatureUtility.HasRepositoryCountersignature(reposignedSignature);

                    Assert.True(hasRepoCountersignature);
                }
        }
Beispiel #5
0
        public async Task HasRepositoryCountersignature_WithSignatureWithRepositoryCountersignature_ReturnsTrueAsync()
        {
            using (var certificate = _fixture.GetDefaultCertificate())
                using (var repositoryCertificate = _fixture.GetDefaultCertificate())
                {
                    var packageContext        = new SimpleTestPackageContext();
                    var unsignedPackageStream = packageContext.CreateAsStream();

                    var signature = await SignedArchiveTestUtility.CreateAuthorSignatureForPackageAsync(
                        certificate,
                        unsignedPackageStream);

                    var hashAlgorithm     = Common.HashAlgorithmName.SHA256;
                    var v3ServiceIndexUri = new Uri("https://v3serviceIndex.test/api/index.json");
                    using (var request = new RepositorySignPackageRequest(repositoryCertificate, hashAlgorithm, hashAlgorithm, v3ServiceIndexUri, null))
                    {
                        var reposignedSignature = await SignedArchiveTestUtility.RepositoryCountersignPrimarySignatureAsync(signature, request);

                        var hasRepoCountersignature = SignatureUtility.HasRepositoryCountersignature(reposignedSignature);

                        Assert.True(hasRepoCountersignature);
                    }
                }
        }