/// <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); } }
/// <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(); }
/// <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; }