using System; using Org.BouncyCastle.Math; namespace Org.BouncyCastle.Bcpg { /// Base class for an RSA public key. public class RsaPublicBcpgKey : BcpgObject, IBcpgKey { private readonly MPInteger n, e; /// Construct an RSA public key from the passed in stream. public RsaPublicBcpgKey( BcpgInputStream bcpgIn) { this.n = new MPInteger(bcpgIn); this.e = new MPInteger(bcpgIn); } /// The modulus. /// The public exponent. public RsaPublicBcpgKey( BigInteger n, BigInteger e) { this.n = new MPInteger(n); this.e = new MPInteger(e); } public BigInteger PublicExponent { get { return e.Value; } } public BigInteger Modulus { get { return n.Value; } } /// The format, as a string, always "PGP". public string Format { get { return "PGP"; } } /// Return the standard PGP encoding of the key. public override byte[] GetEncoded() { try { return base.GetEncoded(); } catch (Exception) { return null; } } public override void Encode( BcpgOutputStream bcpgOut) { bcpgOut.WriteObjects(n, e); } } }