Exemplo n.º 1
0
        /// <summary>
        /// Gets a list of possible MSDN asymmetric cipher algorithims accoridng to a selected operation
        /// </summary>
        /// <param name="operation">The type of operation</param>
        /// <returns>The list of cipher algorithims according the selected operation</returns>
        public static List <string> GetAlgorthims(AsymmetricOperation operation)
        {
            switch (operation)
            {
            case AsymmetricOperation.Encryption:
                return(new List <string> {
                    AsymmetricMsdnCiphers.RSA.ToString()
                });

            case AsymmetricOperation.Signature:
                return(new List <string>
                {
                    AsymmetricMsdnCiphers.ECDsa.ToString(),
                    AsymmetricMsdnCiphers.RSA.ToString(),
                    AsymmetricMsdnCiphers.DSA.ToString(),
                });

            case AsymmetricOperation.KeyExchange:
                return(new List <string>
                {
                    AsymmetricMsdnCiphers.ECDiffieHellman.ToString()
                });

            default:
                Debugger.Break();
                return(null);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Overloaded constructor
        /// </summary>
        /// <param name="api">the selected crypto library</param>
        /// <param name="operation">The selected crypto operation</param>
        public AsymmetricViewModel(CryptographyApi api, AsymmetricOperation operation)
        {
            //Initialize the commands
            InitializeCommands();

            //Initialize properties
            InitializeProperties(api, operation);
        }
        /// <summary>
        /// Overloaded Constructor
        /// </summary>
        /// <param name="api">the selected crypto library</param>
        /// <param name="operation">The selected crypto operation</param>
        public KeyPairSetupViewModel(CryptographyApi api, AsymmetricOperation operation)
        {
            //Initialize the commands
            InitializeCommands();

            //Initialize properties
            InitializeProperties(api, operation);

            //Initialize lists must be after setting api and operation
            InitializeLists();
        }
Exemplo n.º 4
0
        /// <summary>
        /// Initialize any properties
        /// </summary>
        /// <param name="api"></param>
        /// <param name="operation"></param>
        private void InitializeProperties(CryptographyApi api, AsymmetricOperation operation)
        {
            KeyPairSetup = new KeyPairSetupViewModel(api, operation);

            //Hook into the DataChanged event
            DataInput.DataChanged += DataInput_DataChanged;

            //Hook into the KeysLoaded event
            KeyPairSetup.KeysLoaded += KeyPairSetup_KeysLoaded;

            //Hook into the KeyPairChanged event
            KeyPairSetup.KeyPairChanged += KeyPairSetup_KeyPairChanged;
        }
        /// <summary>
        /// Gets a list of possible Bouncy castle asymmetric cipher algorithims accoridng to a selected operation
        /// </summary>
        /// <param name="operation">The type of operation</param>
        /// <returns>The list of cipher algorithims according the selected operation</returns>
        public static List <string> GetAlgorthims(AsymmetricOperation operation)
        {
            switch (operation)
            {
            case AsymmetricOperation.Encryption:
                return(new List <string>
                {
                    AsymmetricBouncyCiphers.SM2.ToString(),
                    AsymmetricBouncyCiphers.RSA.ToString(),
                });

            case AsymmetricOperation.Signature:
                return(new List <string>
                {
                    AsymmetricBouncyCiphers.ECDsa.ToString(),
                    AsymmetricBouncyCiphers.RSA.ToString(),
                    AsymmetricBouncyCiphers.DSA.ToString(),
                    AsymmetricBouncyCiphers.ECGost3410.ToString(),
                    AsymmetricBouncyCiphers.Gost3410_94.ToString(),
                    AsymmetricBouncyCiphers.ECNR.ToString(),
                    AsymmetricBouncyCiphers.ED25519.ToString(),
                    AsymmetricBouncyCiphers.ED448.ToString(),
                });

            case AsymmetricOperation.KeyExchange:
                return(new List <string>
                {
                    AsymmetricBouncyCiphers.DiffieHellman.ToString(),
                    AsymmetricBouncyCiphers.ECDiffieHellman.ToString(),
                    AsymmetricBouncyCiphers.ECMQV.ToString(),
                    AsymmetricBouncyCiphers.X25519.ToString(),
                });

            default:
                Debugger.Break();
                return(null);
            }
        }
 /// <summary>
 /// Initializes any properties
 /// </summary>
 /// <param name="api">the crypto api to use</param>
 /// <param name="operation">The operation to use</param>
 private void InitializeProperties(CryptographyApi api, AsymmetricOperation operation)
 {
     Api = api;
     SelectedOperation = operation;
     KeyDirectoryPath  = pKeyPath;
 }