public static byte[] GetPrivateKeyFromFile(string privateKeyPath) { try { string encodedPrivateKey = File.ReadAllText(privateKeyPath); if (encodedPrivateKey.Length != Constants.EncryptionPrivateKeyLength && encodedPrivateKey.Length != Constants.SigningPrivateKeyLength) { DisplayMessage.Error(ValidationMessages.PrivateKeyFile); return(null); } byte[] privateKey = Convert.FromBase64String(encodedPrivateKey); ValidateKeyVersion(privateKey); return(privateKey); } catch (Exception ex) when(ExceptionFilters.AsymmetricKeyHandling(ex)) { if (ex is ArgumentOutOfRangeException) { DisplayMessage.Exception(ex.GetType().Name, ex.Message); return(null); } DisplayMessage.Exception(ex.GetType().Name, "Unable to retrieve private key."); return(null); } }
private static byte[] GetPublicKeyFromFile(string publicKeyPath) { try { string encodedPublicKey = File.ReadAllText(publicKeyPath); if (encodedPublicKey.Length != Constants.PublicKeyLength) { DisplayMessage.Error(ValidationMessages.PublicKeyString); return(null); } return(Convert.FromBase64String(encodedPublicKey)); } catch (Exception ex) when(ExceptionFilters.AsymmetricKeyHandling(ex)) { DisplayMessage.Exception(ex.GetType().Name, "Unable to retrieve public key."); return(null); } }
public static byte[] EncryptionPublicKeyString(char[] encodedPublicKey) { try { byte[] publicKey = Convert.FromBase64CharArray(encodedPublicKey, offset: 0, encodedPublicKey.Length); if (publicKey == null) { return(null); } byte[] keyAlgorithm = GetKeyAlgorithm(publicKey); ValidateEncryptionKey(keyAlgorithm); return(RemoveKeyAlgorithmHeader(publicKey)); } catch (Exception ex) when(ExceptionFilters.AsymmetricKeyHandling(ex)) { DisplayMessage.Exception(ex.GetType().Name, "Please enter a valid encryption public key."); return(null); } }
public static byte[] SigningPublicKeyFile(string publicKeyPath) { try { byte[] publicKey = GetPublicKeyFromFile(publicKeyPath); if (publicKey == null) { return(null); } byte[] keyAlgorithm = GetKeyAlgorithm(publicKey); ValidateSigningKey(keyAlgorithm); return(RemoveKeyAlgorithmHeader(publicKey)); } catch (Exception ex) when(ExceptionFilters.AsymmetricKeyHandling(ex)) { DisplayMessage.Exception(ex.GetType().Name, "Please specify a valid signing public key."); return(null); } }
public static byte[] EncryptionPrivateKeyFile(string privateKeyPath) { try { byte[] privateKey = GetPrivateKeyFromFile(privateKeyPath); if (privateKey == null) { return(null); } byte[] keyAlgorithm = GetKeyAlgorithm(privateKey); ValidateEncryptionKey(keyAlgorithm); return(privateKey); } catch (Exception ex) when(ExceptionFilters.AsymmetricKeyHandling(ex)) { DisplayMessage.Exception(ex.GetType().Name, "Please specify a valid encryption private key."); return(null); } }