Example #1
0
        /// <summary>
        /// 创建密钥
        /// </summary>
        /// <returns></returns>
        public override AsymmetricKey CreateKey(RSAKeySizeType size = RSAKeySizeType.L2048)
        {
            var key = RSAEncryptionProvider.CreateKey(size, KeyType);

            return(new AsymmetricKey()
            {
                PrivateKey = key.PrivateKey, PublickKey = key.PublickKey
            });
        }
Example #2
0
 public static RSAKey CreateKey(string privateKey, string publicKey, RSAKeySizeType size = RSAKeySizeType.L2048, RSAKeyType type = RSAKeyType.Base64)
 {
     using (var rsa = new RSACryptoServiceProvider((int)size))
     {
         return(new RSAKey()
         {
             PrivateKey = privateKey,
             PublicKey = publicKey
         });
     }
 }
        /// <summary>
        /// 创建密钥
        /// </summary>
        /// <returns></returns>
        public override AsymmetricKey CreateKey(RSAKeySizeType size = RSAKeySizeType.L2048)
        {
            // 私钥
            string prik = "";
            // 公钥
            string pubk = "";

            SMCrypto.SM2.GenerateKeyPair(out prik, out pubk); //获取公钥 私钥
            return(new AsymmetricKey()
            {
                PrivateKey = prik, PublickKey = pubk
            });
        }
        /// <summary>
        /// 创建 RSA 密钥
        /// </summary>
        /// <param name="size">密钥长度类型,默认为<see cref="RSAKeySizeType.L2048"/></param>
        /// <param name="keyType">密钥类型,默认为<see cref="RSAKeyType.Xml"/></param>
        /// <returns></returns>
        public static RSAKey CreateKey(RSAKeySizeType size = RSAKeySizeType.L2048, RSAKeyType keyType = RSAKeyType.Xml)
        {
            using (var rsa = new RSACryptoServiceProvider((int)size))
            {
                var publicKey = keyType == RSAKeyType.Json ? rsa.ToJsonString(false) : rsa.ToExtXmlString(false);

                var privateKey = keyType == RSAKeyType.Json ? rsa.ToJsonString(true) : rsa.ToExtXmlString(true);

                return(new RSAKey()
                {
                    PublickKey = publicKey,
                    PrivateKey = privateKey,
                    Exponent = rsa.ExportParameters(false).Exponent.ToHexString(),
                    Modulus = rsa.ExportParameters(false).Modulus.ToHexString()
                });
            }
        }
 /// <summary>
 /// 创建密钥
 /// </summary>
 /// <returns></returns>
 public abstract AsymmetricKey CreateKey(RSAKeySizeType size = RSAKeySizeType.L2048);