Exemplo n.º 1
0
        /// <summary>
        /// Generate a new key with the given length.
        /// </summary>
        /// <param name="length">Length of the key to be generated. Usually given in bits, but depends on the algorithm.</param>
        /// <returns>New RSAPrivateKey with the PublicKey-property set to the corresponding RSAPublicKey.</returns>
        public Key generateKey(short length)
        {
            Debug.Assert(length >= 2048, "The key must be at least 2048 bits in length.");
            Debug.Assert(((length % 1024) == 0), "The key must be a power of 1024.");

            RsaKeyPairGenerator generator = new RsaKeyPairGenerator();
            generator.Init(new KeyGenerationParameters(new SecureRandom(), length));
            AsymmetricCipherKeyPair pair = generator.GenerateKeyPair();

            RSAPrivateKey privateKey = new RSAPrivateKey(pair.Private);
            RSAPublicKey publicKey = new RSAPublicKey(pair.Public);

            privateKey.PublicKey = publicKey;

            return privateKey;
        }
Exemplo n.º 2
0
        /// <summary>
        /// Generate a new key with the given length.
        /// </summary>
        /// <param name="length">Length of the key to be generated. Usually given in bits, but depends on the algorithm.</param>
        /// <returns>New RSAPrivateKey with the PublicKey-property set to the corresponding RSAPublicKey.</returns>
        public Key generateKey(short length)
        {
            Debug.Assert(length >= 2048, "The key must be at least 2048 bits in length.");
            Debug.Assert(((length % 1024) == 0), "The key must be a power of 1024.");

            RsaKeyPairGenerator generator = new RsaKeyPairGenerator();

            generator.Init(new KeyGenerationParameters(new SecureRandom(), length));
            AsymmetricCipherKeyPair pair = generator.GenerateKeyPair();

            RSAPrivateKey privateKey = new RSAPrivateKey(pair.Private);
            RSAPublicKey  publicKey  = new RSAPublicKey(pair.Public);

            privateKey.PublicKey = publicKey;

            return(privateKey);
        }