You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
1.4 KiB
70 lines
1.4 KiB
#if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR) |
|
#pragma warning disable |
|
using System; |
|
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math; |
|
|
|
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Bcpg |
|
{ |
|
/// <remarks>Base class for an RSA public key.</remarks> |
|
public class RsaPublicBcpgKey |
|
: BcpgObject, IBcpgKey |
|
{ |
|
private readonly MPInteger n, e; |
|
|
|
/// <summary>Construct an RSA public key from the passed in stream.</summary> |
|
public RsaPublicBcpgKey( |
|
BcpgInputStream bcpgIn) |
|
{ |
|
this.n = new MPInteger(bcpgIn); |
|
this.e = new MPInteger(bcpgIn); |
|
} |
|
|
|
/// <param name="n">The modulus.</param> |
|
/// <param name="e">The public exponent.</param> |
|
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; } |
|
} |
|
|
|
/// <summary>The format, as a string, always "PGP".</summary> |
|
public string Format |
|
{ |
|
get { return "PGP"; } |
|
} |
|
|
|
/// <summary>Return the standard PGP encoding of the key.</summary> |
|
public override byte[] GetEncoded() |
|
{ |
|
try |
|
{ |
|
return base.GetEncoded(); |
|
} |
|
catch (Exception) |
|
{ |
|
return null; |
|
} |
|
} |
|
|
|
public override void Encode( |
|
BcpgOutputStream bcpgOut) |
|
{ |
|
bcpgOut.WriteObjects(n, e); |
|
} |
|
} |
|
} |
|
#pragma warning restore |
|
#endif
|
|
|