示例#1
0
        public void GenerateKeyPairUnsupported()
        {
            // Ensure we have the correct first value of the enum.
            Assert.AreEqual((double)KeyPair.KeyTypes.Ecc, 0);

            const KeyPair.KeyTypes invalidEnumType = KeyPair.KeyTypes.Ecc - 1;

            Assert.Throws <InvalidEnumArgumentException>(() => AsymmetricCryptoUtil.GenerateKeyPair(invalidEnumType));
        }
        public static KeyPair GenerateKeyPair(KeyPair.KeyTypes type)
        {
            AsymmetricCipherKeyPair generatedKeyPair;

            switch (type)
            {
            case KeyPair.KeyTypes.Ecc:
                generatedKeyPair = GenerateKeyPairEcc();
                break;

            case KeyPair.KeyTypes.Rsa:
                generatedKeyPair = GenerateKeyPairRsa();
                break;

            default:
                throw new InvalidEnumArgumentException("Invalid key type");
            }

            var pubKeyPem  = ConvertPublicKeyToPem(generatedKeyPair.Public);
            var privKeyPem = ConvertPrivateKeyToPem(generatedKeyPair.Private);

            return(new KeyPair(type, privKeyPem, pubKeyPem));
        }