Esempio n. 1
0
        /// <param name="console"></param>
        public static void genSHA3KeyFile(CryptobyConsole console)
        {
            Scanner scanner = new Scanner(java.lang.System.@in);
            string  keyPath;
            // Initial Variables
            int    keySize;
            int    choice;
            string pwAns;
            string key;
            string password;

            // Set Default Key Size
            keySize = 256;
            do
            {
                Console.Out.WriteLine("\n");
                Console.Out.WriteLine("Select Key Size in Bit");
                Console.Out.WriteLine("----------------------\n");
                Console.Out.WriteLine("1 - 224");
                Console.Out.WriteLine("2 - 256");
                Console.Out.WriteLine("3 - 384");
                Console.Out.WriteLine("4 - 512");
                Console.Out.WriteLine("5 - Back");
                Console.Out.Write("Enter Number: ");
                while (!scanner.hasNextInt())
                {
                    Console.Out.WriteLine("That's not a number! Enter 1,2,3,4 or 5:");
                    scanner.next();
                }
                choice = scanner.nextInt();
            }while (choice < 1 || choice > 5);
            switch (choice)
            {
            case 1:
            {
                keySize = 224;
                break;
            }

            case 2:
            {
                keySize = 256;
                break;
            }

            case 3:
            {
                keySize = 384;
                break;
            }

            case 4:
            {
                keySize = 512;
                break;
            }

            case 5:
            {
                console.menuGenKey();
                break;
            }

            default:
            {
                console.menuGenKey();
                break;
            }
            }
            do
            {
                // Input a Password or nothing, in the case it will be used a Secure Random number
                Console.Out.WriteLine("Do you want to use a password. If not, it will be used a SecureRandom password."
                                      );
                Console.Out.WriteLine("Enter y or n: ");
                pwAns = scanner.next();
            }while (!pwAns.Equals("y") && !pwAns.Equals("n"));
            if (pwAns.Equals("y"))
            {
                Console.Out.Write("Enter Password for the Key: ");
                password = scanner.next();
            }
            else
            {
                password = string.Empty;
            }
            // Input Path for saving Private Key
            scanner = new Scanner(java.lang.System.@in);
            Console.Out.WriteLine("Enter Path to saving Private Key(Type '" + quit + "' to Escape):"
                                  );
            scanner.useDelimiter("\n");
            if (scanner.hasNext(quit))
            {
                console.menuGenKey();
            }
            keyPath = scanner.next();
            // Initial Key Generator
            console.getCore().getClient().setKeySymArt("SHA3");
            console.getCore().initSymKey();
            // Get Result of Test
            if (password.Equals(string.Empty))
            {
                key = console.getCore().getKeyGenSym().generateKey(keySize);
            }
            else
            {
                key = console.getCore().getKeyGenSym().generateKey(keySize, password);
            }
            // Save Key
            try
            {
                //Put private Key to File
                CryptobyFileManager.putKeyToFile(keyPath, key);
            }
            catch (System.IO.IOException)
            {
                CryptobyHelper.printIOExp();
                console.menuGenKey();
            }
            Console.Out.WriteLine("\nAES Key File saved to this Path:");
            Console.Out.WriteLine(keyPath);
            // Enter for Continues
            CryptobyHelper.pressEnter();
            // Back to Menu Choose PrimeTest
            console.menuGenKey();
        }
        public virtual void testPutAndGetKey()
        {
            System.Console.Out.WriteLine("Put and Get Keys");
            string         publicKeyFilePath  = "publicKey.pub";
            string         privateKeyFilePath = "privateKey.prv";
            int            keySize            = 1024;
            CryptobyClient client             = new CryptobyClient();
            CryptobyCore   core      = new CryptobyCore(client);
            KeyGenRSA      generator = new KeyGenRSA(core);

            generator.initGenerator(keySize);
            byte[] publicKeyByte  = generator.getPublicKeyByte();
            byte[] privateKeyByte = generator.getPrivateKeyByte();
            string publicKey      = generator.getPublicKey();
            string privateKey     = generator.getPrivateKey();

            try
            {
                CryptobyFileManager.putKeyToFile(publicKeyFilePath, publicKey);
            }
            catch (IOException ex)
            {
                Logger.getLogger(typeof(CryptobyFileManagerTest).FullName).log(Level.SEVERE, null
                                                                               , ex);
            }
            try
            {
                CryptobyFileManager.putKeyToFile(privateKeyFilePath, privateKey);
            }
            catch (IOException ex)
            {
                Logger.getLogger(typeof(CryptobyFileManagerTest).FullName).log(Level.SEVERE, null
                                                                               , ex);
            }
            byte[] resultPublic = null;
            try
            {
                resultPublic = CryptobyFileManager.getKeyFromFile(publicKeyFilePath);
            }
            catch (IOException ex)
            {
                Logger.getLogger(typeof(CryptobyFileManagerTest).FullName).log(Level.SEVERE, null
                                                                               , ex);
            }
            byte[] resultPrivate = null;
            try
            {
                resultPrivate = CryptobyFileManager.getKeyFromFile(privateKeyFilePath);
            }
            catch (IOException ex)
            {
                Logger.getLogger(typeof(CryptobyFileManagerTest).FullName).log(Level.SEVERE, null
                                                                               , ex);
            }
            Assert.AreEqual(publicKeyByte, resultPublic);
            Assert.AreEqual(privateKeyByte, resultPrivate);
            Assert.AreEqual(publicKey, CryptobyHelper.bytesToHexString(resultPublic
                                                                       ));
            Assert.AreEqual(privateKey, CryptobyHelper.bytesToHexString(resultPrivate
                                                                        ));
        }
Esempio n. 3
0
        private static void rsaEncGenKeysFile(CryptobyConsole console)
        {
            scanner = new Scanner(java.lang.System.@in);
            // Set Default Key Size
            keySize = 1024;
            do
            {
                Console.Out.WriteLine("\n");
                Console.Out.WriteLine("Choose Key Size in Bit");
                Console.Out.WriteLine("----------------------\n");
                Console.Out.WriteLine("1 - 1024");
                Console.Out.WriteLine("2 - 2048");
                Console.Out.WriteLine("3 - 4096");
                Console.Out.WriteLine("4 - Back");
                Console.Out.Write("Enter Number: ");
                while (!scanner.hasNextInt())
                {
                    Console.Out.Write("That's not a number! Enter 1,2,3 or 4: ");
                    scanner.next();
                }
                choice = scanner.nextInt();
            }while (choice < 1 || choice > 4);
            switch (choice)
            {
            case 1:
            {
                keySize = 1024;
                break;
            }

            case 2:
            {
                keySize = 2048;
                break;
            }

            case 3:
            {
                keySize = 4096;
                break;
            }

            case 4:
            {
                rsaCrypterFile(console);
                break;
            }

            default:
            {
                rsaEncGenKeysFile(console);
                break;
            }
            }
            // Input Path to File for encryption
            scanner = new Scanner(java.lang.System.@in);
            Console.Out.WriteLine("Enter Path to File for encryption (Type '" + quit +
                                  "' to Escape):");
            scanner.useDelimiter("\n");
            if (scanner.hasNext(quit))
            {
                rsaCrypterFile(console);
            }
            plainFilePath = scanner.next();
            // Input Path to File for encryption
            scanner = new Scanner(java.lang.System.@in);
            Console.Out.WriteLine("Enter Path to saving encrypted File (Type '" + quit
                                  + "' to Escape):");
            scanner.useDelimiter("\n");
            if (scanner.hasNext(quit))
            {
                rsaCrypterFile(console);
            }
            cryptFilePath = scanner.next();
            // Input Path for saving Private Key
            scanner = new Scanner(java.lang.System.@in);
            Console.Out.WriteLine("Enter Path to saving Private Key (Type '" + quit +
                                  "' to Escape):");
            scanner.useDelimiter("\n");
            if (scanner.hasNext(quit))
            {
                rsaCrypterFile(console);
            }
            privateKeyPath = scanner.next();
            // Input Path for saving Public Key
            scanner = new Scanner(java.lang.System.@in);
            Console.Out.WriteLine("Enter Path to saving Public Key (Type '" + quit + "' to Escape):"
                                  );
            scanner.useDelimiter("\n");
            publicKeyPath = scanner.next();
            // Get Bytes from PlainFile
            try
            {
                plainByte = CryptobyFileManager.getBytesFromFile(plainFilePath);
            }
            catch (System.IO.IOException)
            {
                CryptobyHelper.printIOExp();
                rsaCrypterFile(console);
            }
            // Initial RSA Crypt Object
            initRSAKeyGen(console);
            // Get Public Key in Bytecode
            Console.Out.WriteLine("\nGenerate Private and Public RSA Keys...");
            console.getCore().getKeyGenAsym().initGenerator(keySize);
            publicKeyByte = console.getCore().getKeyGenAsym().getPublicKeyByte();
            // Get Public and Private Key as String
            string publicKey  = console.getCore().getKeyGenAsym().getPublicKey();
            string privateKey = console.getCore().getKeyGenAsym().getPrivateKey();

            // Encrypt the File with given Key
            Console.Out.WriteLine("\nEncryption in progress...");
            cryptByte = console.getCore().getCryptAsym().encrypt(plainByte, publicKeyByte);
            Console.Out.WriteLine("\nEncryption successfull. Saving File now...");
            //Put encrypted Bytes to File
            try
            {
                CryptobyFileManager.putBytesToFile(cryptFilePath, cryptByte);
            }
            catch (System.IO.IOException)
            {
                CryptobyHelper.printIOExp();
                rsaCrypterFile(console);
            }
            Console.Out.WriteLine("\nEncrypted File saved to this Path:");
            Console.Out.WriteLine(cryptFilePath);
            //Put private Key to File
            try
            {
                CryptobyFileManager.putKeyToFile(privateKeyPath, privateKey);
            }
            catch (System.IO.IOException)
            {
                CryptobyHelper.printIOExp();
                rsaCrypterFile(console);
            }
            Console.Out.WriteLine("\nPrivate Key File saved to this Path:");
            Console.Out.WriteLine(privateKeyPath);
            //Put public Key to File
            try
            {
                CryptobyFileManager.putKeyToFile(publicKeyPath, publicKey);
            }
            catch (System.IO.IOException)
            {
                CryptobyHelper.printIOExp();
                rsaCrypterFile(console);
            }
            Console.Out.WriteLine("\nPublic Key File saved to this Path:");
            Console.Out.WriteLine(publicKeyPath);
            // Reset Variables
            initRSAKeyGen(console);
            cryptByte     = null;
            plainByte     = null;
            publicKeyByte = null;
            // Back to Menu rsaCrypter with Enter (Return) Key
            Console.Out.WriteLine("\nGo back to RSA File Crypter Menu: Press Enter");
            CryptobyHelper.pressEnter();
            rsaCrypterFile(console);
        }
Esempio n. 4
0
        /// <param name="console"></param>
        public static void genRSAKeysFile(CryptobyConsole console)
        {
            Scanner scanner = new Scanner(java.lang.System.@in);
            string  privateKeyPath;
            string  publicKeyPath;
            // Initial Variables
            int    keySize;
            int    choice;
            string publicKey;
            string privateKey;

            // Set Default Key Size
            keySize = 1024;
            do
            {
                Console.Out.WriteLine("\n");
                Console.Out.WriteLine("Choose Key  in Bit");
                Console.Out.WriteLine("-------------------------\n");
                Console.Out.WriteLine("1 - 1024");
                Console.Out.WriteLine("2 - 2048");
                Console.Out.WriteLine("3 - 4096");
                Console.Out.WriteLine("4 - Back");
                Console.Out.Write("Enter Number: ");
                while (!scanner.hasNextInt())
                {
                    Console.Out.WriteLine("That's not a number! Enter 1,2,3 or 4:");
                    scanner.next();
                }
                choice = scanner.nextInt();
            }while (choice < 1 || choice > 4);
            switch (choice)
            {
            case 1:
            {
                keySize = 1024;
                break;
            }

            case 2:
            {
                keySize = 2048;
                break;
            }

            case 3:
            {
                keySize = 4096;
                break;
            }

            case 4:
            {
                console.menuGenKey();
                break;
            }

            default:
            {
                console.menuGenKey();
                break;
            }
            }
            // Input Path for saving Private Key
            Console.Out.WriteLine("Enter Path to saving Private Key (Type '" + quit +
                                  "' to Escape):");
            scanner.useDelimiter("\n");
            if (scanner.hasNext(quit))
            {
                RsaUI.rsaCrypterFile(console);
            }
            privateKeyPath = scanner.next();
            // Input Path for saving Public Key
            Console.Out.WriteLine("Enter Path to saving Public Key (Type '" + quit + "' to Escape):"
                                  );
            scanner.useDelimiter("\n");
            publicKeyPath = scanner.next();
            // Initial Key Generator
            console.getCore().getClient().setKeyAsymArt("RSA");
            console.getCore().initAsymKey();
            // Generate Keys
            console.getCore().getKeyGenAsym().initGenerator(keySize);
            publicKey  = console.getCore().getKeyGenAsym().getPublicKey();
            privateKey = console.getCore().getKeyGenAsym().getPrivateKey();
            //Put private Key to File
            try
            {
                CryptobyFileManager.putKeyToFile(privateKeyPath, privateKey);
            }
            catch (System.IO.IOException)
            {
                CryptobyHelper.printIOExp();
                console.menuGenKey();
            }
            Console.Out.WriteLine("\nPrivate Key File saved to this Path:");
            Console.Out.WriteLine(privateKeyPath);
            //Put public Key to File
            try
            {
                CryptobyFileManager.putKeyToFile(publicKeyPath, publicKey);
            }
            catch (System.IO.IOException)
            {
                CryptobyHelper.printIOExp();
                console.menuGenKey();
            }
            Console.Out.WriteLine("\nPublic Key File saved to this Path:");
            Console.Out.WriteLine(publicKeyPath);
            // Enter for Continues
            CryptobyHelper.pressEnter();
            // Back to Menu Choose PrimeTest
            console.menuGenKey();
        }