public static void VerifyFile(byte[] publicKey, string signatureFilePath, string filePath) { try { bool validSignature = DigitalSignatures.VerifySignature(signatureFilePath, filePath, publicKey); if (!validSignature) { DisplayMessage.FilePathMessage(filePath, "Bad signature."); return; } DisplayMessage.FilePathMessage(filePath, "Good signature."); string comment = DigitalSignatures.GetComment(); DisplayMessage.Message($"Authenticated comment: {comment}"); } catch (Exception ex) when(ExceptionFilters.Cryptography(ex)) { Logging.LogException(ex.ToString(), Logging.Severity.Error); if (ex is ArgumentOutOfRangeException) { DisplayMessage.Exception(ex.GetType().Name, ex.Message); return; } DisplayMessage.Exception(ex.GetType().Name, "Unable to verify signature."); } }
public static void SignEachFile(string[] filePaths, string signatureFilePath, string comment, bool preHash, byte[] privateKey) { privateKey = PrivateKey.Decrypt(privateKey); if (privateKey == null) { return; } if (string.IsNullOrEmpty(comment)) { comment = _defaultComment; } foreach (string filePath in filePaths) { try { DigitalSignatures.SignFile(filePath, signatureFilePath, comment, preHash, privateKey); DisplayMessage.FilePathMessage(filePath, "File signed successfully."); } catch (Exception ex) when(ExceptionFilters.Cryptography(ex)) { DisplayMessage.FilePathException(filePath, ex.GetType().Name, "Unable to create signature."); } } CryptographicOperations.ZeroMemory(privateKey); }
public static void SignEachFile(byte[] privateKey, string comment, bool preHash, string[] filePaths) { privateKey = PrivateKey.Decrypt(privateKey); if (privateKey == null) { return; } if (string.IsNullOrEmpty(comment)) { comment = _defaultComment; } foreach (string filePath in filePaths) { try { DigitalSignatures.SignFile(filePath, comment, preHash, privateKey); DisplayMessage.FilePathMessage(filePath, "File signed successfully."); } catch (Exception ex) when(ExceptionFilters.Cryptography(ex)) { Logging.LogException(ex.ToString(), Logging.Severity.Error); DisplayMessage.FilePathException(filePath, ex.GetType().Name, "Unable to create signature."); } } Utilities.ZeroArray(privateKey); }
public static void VerifyFile(string signatureFilePath, string filePath, byte[] publicKey) { try { bool validSignature = DigitalSignatures.VerifySignature(signatureFilePath, filePath, publicKey, out string comment); if (!validSignature) { DisplayMessage.FilePathMessage(filePath, "Bad signature."); return; } DisplayMessage.FilePathMessage(filePath, "Good signature."); DisplayMessage.Message($"Authenticated comment: {comment}"); } catch (Exception ex) when(ExceptionFilters.Cryptography(ex)) { if (ex is ArgumentException) { DisplayMessage.FilePathMessage(signatureFilePath, ex.Message); return; } DisplayMessage.Exception(ex.GetType().Name, "Unable to verify signature."); } }