private DsaKey(string publicKey, string privateKey, int size, AsymmetricKeyMode mode) { PublicKey = publicKey; PrivateKey = privateKey; Size = size; Mode = mode; }
private RsaKey(string publicKey, string privateKey, RsaKeySize size, AsymmetricKeyMode mode) { PublicKey = publicKey; PrivateKey = privateKey; Size = (int)size; Mode = mode; }
public static Sm2Key Generate(AsymmetricKeyMode mode) { return(mode switch { AsymmetricKeyMode.PublicKey => GeneratePublicKey(), AsymmetricKeyMode.PrivateKey => GeneratePrivateKey(), _ => GenerateKeyInternal() });
/// <summary> /// Generate RSA key. /// </summary> /// <param name="mode"></param> /// <param name="keySize"></param> /// <param name="keyFormat"></param> /// <param name="keepingFormat"></param> /// <returns></returns> public static RsaKey Generate(AsymmetricKeyMode mode, int keySize, RsaKeyFormat keyFormat = RsaKeyFormat.XML, bool keepingFormat = false) { return(keyFormat switch { RsaKeyFormat.XML => GenerateInXml(mode, keySize), RsaKeyFormat.JSON => GenerateInJson(mode, keySize), RsaKeyFormat.Pkcs1 => GenerateInPkcs1(mode, keySize, keepingFormat), RsaKeyFormat.Pkcs8 => GenerateInPkcs8(mode, keySize, keepingFormat), _ => GenerateInXml(mode, keySize) });
public static DsaKey CreateKey(AsymmetricKeyMode mode, int keySize = 1024) { using var provider = new DSACryptoServiceProvider(keySize); switch (mode) { case AsymmetricKeyMode.PublicKey: return(DsaKey.CreateFromPublicKey(provider.ToXmlString(false), provider.KeySize)); case AsymmetricKeyMode.PrivateKey: return(DsaKey.CreateFromPrivateKey(provider.ToXmlString(true), provider.KeySize)); case AsymmetricKeyMode.Both: return(DsaKey.Create( provider.ToXmlString(true), provider.ToXmlString(false), provider.KeySize)); default: throw new ArgumentOutOfRangeException(nameof(mode), mode, null); } }
/// <summary> /// Generate XML Format RSA Key. /// </summary> /// <param name="mode"></param> /// <param name="keySize">Key Size.Unit: bits</param> /// <returns></returns> public static RsaKey GenerateKeyInXml(AsymmetricKeyMode mode, int keySize) => Factory.GenerateKeyInXml(mode, keySize);
/// <summary> /// Generate XML Format RSA Key. /// </summary> /// <param name="mode"></param> /// <param name="keySize"></param> /// <returns></returns> public static RsaKey GenerateKeyInXml(AsymmetricKeyMode mode, RsaKeySize keySize) => RsaKeyGenerator.GenerateInXml(mode, keySize);
public static Sm2Key GenerateKey(AsymmetricKeyMode mode, string publicKey, string privateKey) => Sm2KeyGenerator.Generate(mode, publicKey, privateKey);
public static Sm2Key GenerateKey(AsymmetricKeyMode mode) => Sm2KeyGenerator.Generate(mode);
public static IDSA Create(AsymmetricKeyMode mode, int keySize) => new DsaFunction(GenerateKey(mode, keySize));
public static DsaKey GenerateKey(AsymmetricKeyMode mode, int keySize = 1024) => DsaKeyGenerator.CreateKey(mode, keySize);
public static IDSA Create(AsymmetricKeyMode mode, int keySize) => Factory.Create(mode, keySize);
/// <summary> /// Generate JSON Format RSA Key. /// </summary> /// <param name="mode"></param> /// <param name="keySize">Key Size.Unit: bits</param> /// <returns></returns> public static RsaKey GenerateKeyInJson(AsymmetricKeyMode mode, RsaKeySize keySize) => Factory.GenerateKeyInJson(mode, keySize);
/// <summary> /// Generate Pkcs8 format RSA key. /// </summary> /// <param name="mode"></param> /// <param name="keySize">Key Size.Unit: bits</param> /// <param name="keepingFormat">Whether the format is true If it is standard pem file format</param> /// <returns></returns> public static RsaKey GenerateKeyInPkcs8(AsymmetricKeyMode mode, int keySize, bool keepingFormat) => Factory.GenerateKeyInPkcs8(mode, keySize, keepingFormat);
public static IDSA Create(AsymmetricKeyMode mode) => Factory.Create(mode);
/// <summary> /// Generate Pkcs8 format RSA key. /// </summary> /// <param name="mode"></param> /// <param name="keySize">Key Size.Unit: bits</param> /// <param name="keepingFormat">Whether the format is true If it is standard pem file format</param> /// <returns></returns> public static RsaKey GenerateKeyInPkcs8(AsymmetricKeyMode mode, RsaKeySize keySize, bool keepingFormat) => RsaKeyGenerator.GenerateInPkcs8(mode, keySize, keepingFormat);
/// <summary> /// Generate RSA key. /// </summary> /// <param name="mode"></param> /// <param name="keySize"></param> /// <param name="keyFormat"></param> /// <param name="keepingFormat"></param> /// <returns></returns> public static RsaKey GenerateKey(AsymmetricKeyMode mode, RsaKeySize keySize, RsaKeyFormat keyFormat = RsaKeyFormat.XML, bool keepingFormat = false) => RsaKeyGenerator.Generate(mode, keySize, keyFormat, keepingFormat);
/// <summary> /// Generate JSON Format RSA Key. /// </summary> /// <param name="mode"></param> /// <param name="keySize"></param> /// <returns></returns> public static RsaKey GenerateKeyInJson(AsymmetricKeyMode mode, int keySize) => RsaKeyGenerator.GenerateInJson(mode, keySize);
internal Sm2Key(string publicKey, string privateKey, AsymmetricKeyMode mode) { PublicKey = publicKey; PrivateKey = privateKey; Mode = mode; }
public static Sm2Key GenerateKey(AsymmetricKeyMode mode) => Factory.GenerateKey(mode);