/// <summary>Constructor for a sub-key.</summary>
        internal PgpPublicKey(IPublicKeyPacket publicPk, ITrustPacket trustPk, IList <IPgpSignature> sigs)
        {
            _publicPk = publicPk;
            _trustPk  = trustPk;
            _subSigs  = sigs;

            Init();
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="PgpSignature"/> class.
        /// </summary>
        /// <param name="sigPacket">The sig packet.</param>
        /// <param name="trustPacket">The trust packet.</param>
        /// <exception cref="System.ArgumentNullException">sigPacket</exception>
        internal PgpSignature(SignaturePacket sigPacket, ITrustPacket trustPacket)
        {
            if (sigPacket == null)
                throw new ArgumentNullException("sigPacket");

            _sigPck = sigPacket;
            _signatureType = _sigPck.SignatureType;
            _trustPck = trustPacket;
        }
        internal PgpPublicKey(IPgpPublicKey key, ITrustPacket trust, IList <IPgpSignature> subSigs)
        {
            _publicPk = key.PublicKeyPacket;
            _trustPk  = trust;
            _subSigs  = subSigs;

            _fingerprint = key.GetFingerprint();
            KeyId        = key.KeyId;
            BitStrength  = key.BitStrength;
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="PgpSignature"/> class.
        /// </summary>
        /// <param name="sigPacket">The sig packet.</param>
        /// <param name="trustPacket">The trust packet.</param>
        /// <exception cref="System.ArgumentNullException">sigPacket</exception>
        internal PgpSignature(SignaturePacket sigPacket, ITrustPacket trustPacket)
        {
            if (sigPacket == null)
            {
                throw new ArgumentNullException("sigPacket");
            }

            _sigPck        = sigPacket;
            _signatureType = _sigPck.SignatureType;
            _trustPck      = trustPacket;
        }
        internal PgpPublicKey(IPublicKeyPacket publicPk, ITrustPacket trustPk, IList <IPgpSignature> keySigs, IList ids, IList <ITrustPacket> idTrusts, IList <IList <IPgpSignature> > idSigs)
        {
            _publicPk = publicPk;
            _trustPk  = trustPk;
            _keySigs  = keySigs;
            _ids      = ids;
            _idTrusts = idTrusts;
            _idSigs   = idSigs;

            Init();
        }
        internal PgpPublicKey(IPublicKeyPacket publicPk, ITrustPacket trustPk, IList<IPgpSignature> keySigs, IList ids, IList<ITrustPacket> idTrusts, IList<IList<IPgpSignature>> idSigs)
        {
            _publicPk = publicPk;
            _trustPk = trustPk;
            _keySigs = keySigs;
            _ids = ids;
            _idTrusts = idTrusts;
            _idSigs = idSigs;

            Init();
        }
        internal PgpPublicKey(IPgpPublicKey key, ITrustPacket trust, IList<IPgpSignature> subSigs)
        {
            _publicPk = key.PublicKeyPacket;
            _trustPk = trust;
            _subSigs = subSigs;

            _fingerprint = key.GetFingerprint();
            KeyId = key.KeyId;
            BitStrength = key.BitStrength;
        }
        /// <summary>Constructor for a sub-key.</summary>
        internal PgpPublicKey(IPublicKeyPacket publicPk, ITrustPacket trustPk, IList<IPgpSignature> sigs)
        {
            _publicPk = publicPk;
            _trustPk = trustPk;
            _subSigs = sigs;

            Init();
        }