/// <summary>
        /// Imports a public pgp keyring.
        /// </summary>
        /// <remarks>
        /// Imports a public pgp keyring.
        /// </remarks>
        /// <param name="keyring">The pgp keyring.</param>
        /// <exception cref="System.ArgumentNullException">
        /// <paramref name="keyring"/> is <c>null</c>.
        /// </exception>
        public virtual void Import(PgpPublicKeyRing keyring)
        {
            if (keyring == null)
            {
                throw new ArgumentNullException(nameof(keyring));
            }

            PublicKeyRingBundle = PgpPublicKeyRingBundle.AddPublicKeyRing(PublicKeyRingBundle, keyring);
            SavePublicKeyRingBundle();
        }
    /// <inheritdoc/>
    public void ImportKey(ArraySegment <byte> data)
    {
        var ring = ParseObject <PgpPublicKeyRing>(PgpUtilities.GetDecoderStream(data.ToStream()));

        try
        {
            PublicBundle = PgpPublicKeyRingBundle.AddPublicKeyRing(PublicBundle, ring);
        }
        catch (ArgumentException)
        {
            // Bundle already contains key
        }
    }
        /// <summary>
        /// Imports a public pgp keyring bundle.
        /// </summary>
        /// <remarks>
        /// Imports a public pgp keyring bundle.
        /// </remarks>
        /// <param name="bundle">The pgp keyring bundle.</param>
        /// <exception cref="System.ArgumentNullException">
        /// <paramref name="bundle"/> is <c>null</c>.
        /// </exception>
        public override void Import(PgpPublicKeyRingBundle bundle)
        {
            if (bundle == null)
            {
                throw new ArgumentNullException(nameof(bundle));
            }

            int publicKeysAdded = 0;

            foreach (PgpPublicKeyRing pubring in bundle.GetKeyRings())
            {
                PublicKeyRingBundle = PgpPublicKeyRingBundle.AddPublicKeyRing(PublicKeyRingBundle, pubring);
                publicKeysAdded++;
            }

            if (publicKeysAdded > 0)
            {
                SavePublicKeyRingBundle();
            }
        }
Exemple #4
0
        /// <inheritdoc/>
        public void ImportKey(byte[] data)
        {
            #region Sanity checks
            if (data == null)
            {
                throw new ArgumentNullException(nameof(data));
            }
            #endregion

            var stream = PgpUtilities.GetDecoderStream(new MemoryStream(data));
            var ring   = ParseObject <PgpPublicKeyRing>(stream);
            try
            {
                PublicBundle = PgpPublicKeyRingBundle.AddPublicKeyRing(PublicBundle, ring);
            }
            catch (ArgumentException)
            {
                // Bundle already contains key
            }
        }