예제 #1
0
        /// <summary>
        /// Generates RSA key pair of desired size (note that keys larger than 4096 bits will have high impact on performance)
        /// </summary>
        /// <param name="keySize">Size of the key</param>
        /// <returns>Generated key pair</returns>
        public static RsaKeyPair GenerateKeyPairs(RsaKeySizes keySize)
        {
            using (var rsa = RSA.Create())
            {
                rsa.KeySize = keySize.GetIntegerKeySize();

                return(new RsaKeyPair(rsa.ExportParameters(true)));
            }
        }
예제 #2
0
        /// <summary>
        /// Maps <see cref="RsaKeySizes"/> to integers
        /// </summary>
        /// <param name="size">Enum value</param>
        /// <returns>Integer value</returns>
        public static int GetIntegerKeySize(this RsaKeySizes size)
        {
            switch (size)
            {
            case RsaKeySizes.Rsa2048:
                return(2048);

            case RsaKeySizes.Rsa4096:
                return(4096);

            case RsaKeySizes.Rsa8192:
                return(8192);

            default:
                return(16384);
            }
        }