Represents a signature checked by an IOpenPgp implementation.
Inheritance: IKeyIDContainer
Exemplo n.º 1
0
        protected bool Equals(OpenPgpSignature other)
        {
            #region Sanity checks
            if (other == null) throw new ArgumentNullException(nameof(other));
            #endregion

            return KeyID == other.KeyID;
        }
        public void TestGetSignatures()
        {
            var openPgpMock = CreateMock<IOpenPgp>();
            var result = new OpenPgpSignature[] {OpenPgpUtilsTest.TestSignature};
            openPgpMock.Setup(x => x.Verify(_feedBytes, _signatureBytes)).Returns(result);

            string input = FeedText + FeedUtils.SignatureBlockStart + _signatureBase64 + FeedUtils.SignatureBlockEnd;
            FeedUtils.GetSignatures(openPgpMock.Object, Encoding.UTF8.GetBytes(input)).Should().Equal(result);
        }
Exemplo n.º 3
0
        public void TestGetSignatures()
        {
            var openPgpMock = MockRepository.Create<IOpenPgp>();
            var result = new OpenPgpSignature[] {new ValidSignature("fingerprint", new DateTime(2000, 1, 1))};
            openPgpMock.Setup(x => x.Verify(_feedBytes, _signatureBytes)).Returns(result);

            string input = FeedText + FeedUtils.SignatureBlockStart + _signatureBase64 + FeedUtils.SignatureBlockEnd;
            CollectionAssert.AreEqual(result, FeedUtils.GetSignatures(openPgpMock.Object, Encoding.UTF8.GetBytes(input)));
        }
Exemplo n.º 4
0
        protected bool Equals(OpenPgpSignature other)
        {
            #region Sanity checks
            if (other == null)
            {
                throw new ArgumentNullException(nameof(other));
            }
            #endregion

            return(KeyID == other.KeyID);
        }
Exemplo n.º 5
0
        /// <inheritdoc/>
        public IEnumerable <OpenPgpSignature> Verify(byte[] data, byte[] signature)
        {
            #region Sanity checks
            if (data == null)
            {
                throw new ArgumentNullException("data");
            }
            if (signature == null)
            {
                throw new ArgumentNullException("signature");
            }
            #endregion

            string result;
            using (var signatureFile = new TemporaryFile("0install-sig"))
            {
                File.WriteAllBytes(signatureFile, signature);
                result = Execute("--batch --no-secmem-warning --status-fd 1 --verify " + signatureFile.Path.EscapeArgument() + " -",
                                 inputCallback: writer =>
                {
                    writer.BaseStream.Write(data, 0, data.Length);
                    writer.Close();
                });
            }
            string[] lines = result.SplitMultilineText();

            // Each signature is represented by one line of encoded information
            var signatures = new List <OpenPgpSignature>(lines.Length);
            foreach (var line in lines)
            {
                try
                {
                    var parsedSignature = OpenPgpSignature.Parse(line);
                    if (parsedSignature != null)
                    {
                        signatures.Add(parsedSignature);
                    }
                }
                #region Error handling
                catch (FormatException ex)
                {
                    // Wrap exception since only certain exception types are allowed
                    throw new IOException(ex.Message, ex);
                }
                #endregion
            }

            return(signatures);
        }
Exemplo n.º 6
0
        /// <inheritdoc/>
        public IEnumerable <OpenPgpSignature> Verify(byte[] data, byte[] signature)
        {
            #region Sanity checks
            if (data == null)
            {
                throw new ArgumentNullException(nameof(data));
            }
            if (signature == null)
            {
                throw new ArgumentNullException(nameof(signature));
            }
            #endregion

            var signatureList = ParseObject <PgpSignatureList>(new MemoryStream(signature));

            var result = new OpenPgpSignature[signatureList.Count];
            for (int i = 0; i < result.Length; i++)
            {
                result[i] = Verify(data, signatureList[i]);
            }
            return(result);
        }
        public void TestGetSignautes()
        {
            var result = new OpenPgpSignature[0];

            // Expect pass-through
            _backingCacheMock.Setup(x => x.GetSignatures(FeedTest.Test1Uri)).Returns(result);
            var signatures = _cache.GetSignatures(FeedTest.Test1Uri);

            CollectionAssert.AreEqual(signatures, result);
        }
 protected bool Equals(OpenPgpSignature other)
 => KeyID == other.KeyID;
Exemplo n.º 9
0
        public void TestGetSignatures()
        {
            var result = new OpenPgpSignature[0];

            var signatures = _cache.GetSignatures(FeedTest.Test1Uri);

            CollectionAssert.AreEqual(signatures, result);
        }