private static int EncryptFile(EncryptFileOptions opts)
        {
            string           fileName    = Path.GetFileName(opts.FileToEncrypt);
            X509Certificate2 certificate = new X509Certificate2(opts.CertificatePath);

            using FileStream outputFiletream = new FileStream(opts.EncryptedFile, FileMode.Create, FileAccess.ReadWrite);
            using FileStream inputFiletream  = new FileStream(opts.FileToEncrypt, FileMode.Open, FileAccess.Read);

            using ContainerWriter writer = new ContainerWriter(outputFiletream, fileName, certificate);
            writer.AdditionalPadingSize  = opts.ParseAdditionalPadingSize();

            writer.Write(inputFiletream).GetAwaiter().GetResult();

            return(0);
        }
        static int EncryptFile(EncryptFileOptions opts)
        {
            if (FilesExist(new List <string> {
                opts.FilePath, opts.RecipientKeyPath, opts.SenderKeyPath
            }))
            {
                var fileContents = File.ReadAllBytes(opts.FilePath);

                var serializedPacket = string.Empty;

                try
                {
                    var encryptedPacket = Encrypt(fileContents, opts.KeyBitLength, opts.RecipientKeyPath, opts.SenderKeyPath, Path.GetFileName(opts.FilePath));
                    serializedPacket = JsonConvert.SerializeObject(encryptedPacket);
                }
                catch (Exception ex)
                {
                    WriteMessageToConsole($"Error while encrypting data: {ex.Message}", ConsoleColor.Red);
                    return(1);
                }

                try
                {
                    File.WriteAllText(opts.OutputPath, serializedPacket);
                    WriteMessageToConsole($"File successfully encrypted to {opts.OutputPath}", ConsoleColor.Green);
                    return(0);
                }
                catch (Exception ex)
                {
                    WriteMessageToConsole(ex.Message, ConsoleColor.Red);
                    return(1);
                }
            }
            else
            {
                WriteMessageToConsole("One or more of the specified files were not found - see above", ConsoleColor.Red);
                return(1);
            }
        }