Exemplo n.º 1
0
        /// <inheritdoc/>
        public string ExportKey(IKeyIDContainer keyIDContainer)
        {
            #region Sanity checks
            if (keyIDContainer == null)
            {
                throw new ArgumentNullException(nameof(keyIDContainer));
            }
            #endregion

            var publicKey = SecretBundle.GetSecretKey(keyIDContainer.KeyID)?.PublicKey ?? PublicBundle.GetPublicKey(keyIDContainer.KeyID);
            if (publicKey == null)
            {
                throw new KeyNotFoundException("Specified OpenPGP key not found on system");
            }

            var output = new MemoryStream();
            using (var armored = new ArmoredOutputStream(output))
                publicKey.Encode(armored);
            return(output.ReadToString(Encoding.ASCII).Replace(Environment.NewLine, "\n"));
        }