From 10c0b6b7d2814b3d2b19d5dfedecfaca5f89b169 Mon Sep 17 00:00:00 2001 From: Evan Su <48808396+HACKERALERT@users.noreply.github.com> Date: Sat, 1 Jun 2024 11:03:54 -0400 Subject: [PATCH] Initial commit --- .github/workflows/codeql-analysis.yml | 32 + Changelog.md | 280 +++ Internals.md | 58 + README.md | 193 ++ images/key.icns | Bin 0 -> 222482 bytes images/key.ico | Bin 0 -> 26330 bytes images/key.svg | 1 + images/logo.svg | 1 + images/screenshot.png | Bin 0 -> 85584 bytes src/Picocrypt.go | 2323 +++++++++++++++++++++++++ src/README.md | 33 + src/go.mod | 21 + src/go.sum | 65 + 13 files changed, 3007 insertions(+) create mode 100644 .github/workflows/codeql-analysis.yml create mode 100644 Changelog.md create mode 100644 Internals.md create mode 100644 README.md create mode 100644 images/key.icns create mode 100644 images/key.ico create mode 100644 images/key.svg create mode 100644 images/logo.svg create mode 100644 images/screenshot.png create mode 100644 src/Picocrypt.go create mode 100644 src/README.md create mode 100644 src/go.mod create mode 100644 src/go.sum diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml new file mode 100644 index 0000000..b73790d --- /dev/null +++ b/.github/workflows/codeql-analysis.yml @@ -0,0 +1,32 @@ +name: "CodeQL" +on: + push: + paths: + - "src/*.go" + - "src/go.mod" + - "src/go.sum" + pull_request: + branches: [ main ] +jobs: + analyze: + name: Analyze + runs-on: ubuntu-latest + permissions: + actions: read + contents: read + security-events: write + strategy: + fail-fast: false + matrix: + language: ['go'] + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + - name: Initialize CodeQL + uses: github/codeql-action/init@v3 + with: + languages: ${{ matrix.language }} + - name: Autobuild + uses: github/codeql-action/autobuild@v3 + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v3 diff --git a/Changelog.md b/Changelog.md new file mode 100644 index 0000000..a780be3 --- /dev/null +++ b/Changelog.md @@ -0,0 +1,280 @@ +# Future + + +# v1.34 (Released 04/29/2024) + + +# v1.33 (Released 06/27/2023) + + +# v1.32 (Released 04/28/2023) + + +# v1.31 (Released 11/18/2022) + + +# v1.30 (Released 09/24/2022) + + +# v1.29 (Released 05/23/2022) + + +# v1.28 (Released 05/16/2022) + + +# v1.27 (Released 05/02/2022) + + +# v1.26 (Released 04/18/2022) + + +# v1.25 (Released 04/13/2022) + + +# v1.24 (Released 04/02/2022) + + +# v1.23 (Released 03/19/2022) + + +# v1.22 (Released 12/22/2021) + + +# v1.21 (Released 11/19/2021) + + +# v1.20 (Released 11/12/2021) + + +# v1.19 (Released 09/26/2021) + + +# v1.18 (Released 09/24/2021) + + +# v1.17 (Released 09/04/2021) + +Note: v1.17 will be incompatible with all previous releases! + +# v1.16 (Released 08/11/2021) + + +# v1.15 (Released 08/09/2021) + + +# v1.14 (Released 08/07/2021) + +Note: v1.14 will be incompatible with all previous releases! + +# v1.13 (Released 5/29/2021) + +Note: v1.13 will be incompatible with all previous releases! + +# v1.12.1 (Released 04/11/2021) + + +# v1.12 (Released 04/07/2021) + +Note: v1.12 will be incompatible with all previous releases! + +# v1.11 (Released 03/23/2021) + diff --git a/Internals.md b/Internals.md new file mode 100644 index 0000000..3320abb --- /dev/null +++ b/Internals.md @@ -0,0 +1,58 @@ +# Internals +If you're wondering about how Picocrypt handles cryptography, you've come to the right place! This page contains the technical details about the cryptographic algorithms and parameters used, as well as how cryptographic values are stored in the header format. + +# Core Cryptography +Picocrypt uses the following cryptographic primitives: +- XChaCha20 (cascaded with Serpent in counter mode for paranoid mode) +- Keyed-BLAKE2b for normal mode, HMAC-SHA3 for paranoid mode (256-bit key, 512-bit digest) +- HKDF-SHA3 for deriving a subkey for the MAC above, as well as a key for Serpent +- Argon2id: + - Normal mode: 4 passes, 1 GiB memory, 4 threads + - Paranoid mode: 8 passes, 1 GiB memory, 8 threads + +All primitives used are from the well-known [golang.org/x/crypto](https://pkg.go.dev/golang.org/x/crypto) module. + +# Counter Overflow +Since XChaCha20 has a max message size of 256 GiB, Picocrypt will use the HKDF-SHA3 mentioned above to generate a new nonce for XChaCha20 and a new IV for Serpent if the total encrypted data is more than 60 GiB. While this threshold can be increased up to 256 GiB, Picocrypt uses 60 GiB to prevent any edge cases with blocks or the counter used by Serpent. + +# Header Format +A Picocrypt volume's header is encoded with Reed-Solomon by default since it is, after all, the most important part of the entire file. An encoded value will take up three times the size of the unencoded value. + +**All offsets and sizes below are in bytes.** +| Offset | Encoded size | Decoded size | Description +| ------ | ------------ | ------------ | ----------- +| 0 | 15 | 5 | Version number (ex. "v1.15") +| 15 | 15 | 5 | Length of comments, zero-padded to 5 bytes +| 30 | 3C | C | Comments with a length of C characters +| 30+3C | 15 | 5 | Flags (paranoid mode, use keyfiles, etc.) +| 45+3C | 48 | 16 | Salt for Argon2 +| 93+3C | 96 | 32 | Salt for HKDF-SHA3 +| 189+3C | 48 | 16 | IV for Serpent +| 237+3C | 72 | 24 | Nonce for XChaCha20 +| 309+3C | 192 | 64 | SHA3-512 of encryption key +| 501+3C | 96 | 32 | SHA3-256 of keyfile key +| 597+3C | 192 | 64 | Authentication tag (BLAKE2b/HMAC-SHA3) +| 789+3C | | | Encrypted contents of input data + +# Keyfile Design +Picocrypt allows the use of keyfiles as an additional form of authentication. Picocrypt's unique "Require correct order" feature enforces the user to drop keyfiles into the window in the same order as they did when encrypting in order to decrypt the volume successfully. Here's how it works: + +If correct order is not required, Picocrypt will take the SHA3-256 of each keyfile individually and XOR the hashes together. Finally, the result is XORed with the master key. Because the XOR operation is both commutative and associative, the order in which the keyfile hashes are XORed with each other doesn't matter - the end result is the same. + +If correct order is required, Picocrypt will concatenate the keyfiles together in the order they were dropped into the window and take the SHA3-256 of the combined keyfiles. If the order is not correct, the keyfiles, when appended to each other, will result in a different file, and thus a different hash. So, the correct order of keyfiles is required to decrypt the volume successfully. + +# Reed-Solomon +By default, all Picocrypt volume headers are encoded with Reed-Solomon to improve resiliency against bit rot. The header uses N+2N encoding, where N is the size of a particular header field such as the version number, and 2N is the number of parity bytes added. Using the Berlekamp-Welch algorithm, Picocrypt is able to automatically detect and correct up to 2N/2=N broken bytes. + +If Reed-Solomon is to be used with the input data itself, the data will be encoded using 128+8 encoding, with the data being read in 1 MiB chunks and encoded in 128-byte blocks, and the final block padded to 128 bytes using PKCS#7. + +To address the edge case where the final 128-byte block happens to be padded so that it completes a full 1 MiB chunk, a flag is used to distinguish whether the last 128-byte block was padded originally or if it is just a full 128-byte block of data. + +# Deniability +Plausible deniability in Picocrypt is achieved by simply re-encrypting the volume but without storing any identifiable header data. A new Argon2 salt and XChaCha20 nonce will be generated and stored in the deniable volume, but since both values are random, they don't reveal anything. A deniable volume will look something like this: +``` +[argon2 salt][xchacha20 nonce][encrypted stream of bytes] +``` + +# Just Read the Code +Picocrypt is a very simple tool and only has one source file. The source Go file is just 2K lines and a lot of the code is dealing with the UI. The core cryptography code is only about 1K lines of code, and even so, a lot of that code deals with the UI and other features of Picocrypt. So if you need more information about how Picocrypt works, just read the code. It's not long, and it is well commented and will explain what happens under the hood better than a document can. diff --git a/README.md b/README.md new file mode 100644 index 0000000..097abcc --- /dev/null +++ b/README.md @@ -0,0 +1,193 @@ +

Picocrypt

+ +Picocrypt is a very small (hence Pico), very simple, yet very secure encryption tool that you can use to protect your files. It's designed to be the go-to tool for encryption, with a focus on security, simplicity, and reliability. Picocrypt uses the secure XChaCha20 cipher and the Argon2id key derivation function to provide a high level of security, even from three-letter agencies like the NSA. Your privacy and security is under attack. Take it back with confidence by protecting your files with Picocrypt. + +
+

Picocrypt

+ +# Funding +**Please donate to Picocrypt on Open Collective (crypto is accepted) to raise money for a security audit from Cure53. Because this is a project that I spend many hours on and make no money from, I cannot pay for an audit myself. Picocrypt needs support from its community.** + +# Downloads +**Important**: There are multiple entities under the name "Picocrypt". For example, there's an old encryption tool called PicoCrypt that uses a broken cipher. There's also an ERC-funded research project called PICOCRYPT. There are even domains related to Picocrypt that I've never registered like picocrypt.com and picocrypt.org. Please don't confuse any of these unrelated (and potentially malicious) projects/domains with Picocrypt (this project). **Make sure to only download Picocrypt from this repository** to ensure that you get the authentic and backdoor-free Picocrypt. When sharing Picocrypt with others, be sure to link to this repository to prevent any confusion. + +**Beware of picocrypt.org, which claims to be the official website for this project! Remember, there is no official website for Picocrypt.** Even if this self-proclaimed website is taken down, I will not remove this message; let it be a real-world warning to stay vigilant. + +## Windows +Picocrypt for Windows is as simple as it gets. To download the latest, standalone, and portable executable for Windows, click here. If Microsoft Defender or your antivirus flags Picocrypt as a virus, please do your part and submit it as a false positive for the betterment of everyone. + +If you use Picocrypt frequently, you can also download the installable version from here, which will install Picocrypt onto your system and add it to your start menu for easy access. The installer also includes extra compatibility helpers, so if the portable executable doesn't work, this likely will. + +## macOS +Picocrypt for macOS is very simple as well. Download Picocrypt for Apple silicon here, open the container, and drag Picocrypt to your Downloads or Applications. If you can't open Picocrypt because it's not from a verified developer, control-click on Picocrypt and hit Open to bypass the warning. If the app appears to be "damaged" and can't be opened, try manually trusting it from a terminal: +``` +xattr -d com.apple.quarantine /Applications/Picocrypt.app +``` +Note that Picocrypt requires OpenGL, and may not work in the future if Apple removes it. + +## Linux +To use Picocrypt on Linux, you can download the raw binary here. Alternatively, you can try the Snap, run Picocrypt through Wine, or compile from source using the instructions in the `src/` directory. + +## CLI +A command-line interface is available for Picocrypt here. It can encrypt and decrypt files, folders, and globs, and supports paranoid mode and Reed-Solomon encoding. You can use it on systems that don't have a GUI or can't run the GUI app, or to write automated shell scripts for backups, etc. + +## Web +A web interface for Picocrypt is available here, allowing you to use a lite version of Picocrypt on any device. Keep in mind that its functionality is very limited and you won't be able to use any advanced features or encrypt large files. It is also quite slow compared to the native app. + +## Paranoid Pack +The Paranoid Pack is a compressed archive that contains executables for Windows, macOS, and Linux, including the source code and dependencies. As long as you have it stored in a place you can access, you'll be able to open it and use Picocrypt on any desktop operating system in case this repository mysteriously vanishes or the entire Internet burns down. Think of it as a seed vault for Picocrypt; as long as one person has the Paranoid Pack within reach, they can share it with the rest of the world and keep Picocrypt functional in case of catastrophic events. The best way to ensure Picocrypt is accessible many decades from now is to keep a Paranoid Pack in a safe place. Get your copy here. + +# Why Picocrypt? +Why should you use Picocrypt instead of VeraCrypt, 7-Zip, BitLocker, or Cryptomator? Here are a few reasons why you should choose Picocrypt: + + +# Comparison +Here's how Picocrypt compares to other popular encryption tools. + +| | Picocrypt | VeraCrypt | 7-Zip GUI | BitLocker | Cryptomator | +| -------------- | -------------- | -------------- | -------------- | -------------- | -------------- | +| Free |✅ Yes |✅ Yes |✅ Yes |✅ Bundled |✅ Yes | +| Open Source |✅ GPLv3 |✅ Multi |✅ LGPL |❌ No |✅ GPLv3 | +| Cross-Platform |✅ Yes |✅ Yes |❌ No |❌ No |✅ Yes | +| Size |✅ 3 MiB |❌ 20 MiB |✅ 2 MiB |✅ N/A |❌ 50 MiB | +| Portable |✅ Yes |✅ Yes |❌ No |✅ Yes |❌ No | +| Permissions |✅ None |❌ Admin |❌ Admin |❌ Admin |❌ Admin | +| Ease-Of-Use |✅ Easy |❌ Hard |✅ Easy |✅ Easy |🟧 Medium | +| Cipher |✅ XChaCha20 |✅ AES-256 |✅ AES-256 |🟧 AES-128 |✅ AES-256 | +| Key Derivation |✅ Argon2 |🟧 PBKDF2 |❌ SHA-256 |❓ Unknown |✅ Scrypt | +| Data Integrity |✅ Always |❌ No |❌ No |❓ Unknown |✅ Always | +| Deniability |✅ Supported |✅ Supported |❌ No |❌ No |❌ No | +| Reed-Solomon |✅ Yes |❌ No |❌ No |❌ No |❌ No | +| Compression |✅ Yes |❌ No |✅ Yes |✅ Yes |❌ No | +| Telemetry |✅ None |✅ None |✅ None |❓ Unknown |✅ None | +| Audited |❌ [Donate](https://opencollective.com/picocrypt) |✅ Yes |❌ No |❓ Unknown |✅ Yes | + +Keep in mind that while Picocrypt does most things better than other tools, it's not a one-size-fits-all and doesn't try to be. There are use cases such as full-disk encryption where VeraCrypt and BitLocker would be a better choice. So while Picocrypt is a great choice for the majority of people, you should still do your own research and use what's best for you. + +# Features +Picocrypt is a very simple tool, and most users will intuitively understand how to use it in a few seconds. On a basic level, simply dropping your files, entering a password, and hitting Encrypt is all that's needed to encrypt your files. Dropping the output back into Picocrypt, entering the password, and hitting Decrypt is all that's needed to decrypt those files. Pretty simple, right? + +While being simple, Picocrypt also strives to be powerful in the hands of knowledgeable and advanced users. Thus, there are some additional options that you may use to suit your needs. + + +# Security +For more information on how Picocrypt handles cryptography, see Internals for the technical details. If you're worried about the safety of me or this project, let me assure you that this repository won't be hijacked or backdoored. I have 2FA (TOTP) enabled on all accounts with a tie to Picocrypt (GitHub, Reddit, Google, etc.), in addition to full-disk encryption on all of my portable devices. For further hardening, Picocrypt uses my isolated forks of dependencies and I fetch upstream only when I have taken a look at the changes and believe that there aren't any security issues. This means that if a dependency gets hacked or deleted by the author, Picocrypt will be using my fork of it and remain completely unaffected. You can feel confident about using Picocrypt. + +## Signatures +For the paranoid, Picocrypt is signed with PGP. The fingerprint and public key are listed below. + +
B342A744BDEEA57B6A583E33A247E73798946F55
+
-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mDMEYoGUHxYJKwYBBAHaRw8BAQdAvmQA+pdbDB/ynJxHhNDpz6Sb5tgkNuuNJIvw
+HYwZtqi0CVBpY29jcnlwdIiTBBMWCgA7FiEEs0KnRL3upXtqWD4zokfnN5iUb1UF
+AmKBlB8CGwMFCwkIBwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgkQokfnN5iUb1UZ
+RgEA8jbIsdqCr21DWxcqW/eLlbxRkuA8kflVYvWWUxtVqsUA/jQPSDpvA8rakvaL
+PIbXjQvrAMkEVIc0HbCzLxr1k3sH
+=YFwz
+-----END PGP PUBLIC KEY BLOCK-----
+ +# Community +Keep an eye on r/Picocrypt. While I won't be active in this subreddit myself, it's still a great place to ask questions and help one another out, especially if something happens to me or this repository in the future. Remember to only trust this specific subreddit and be aware of hackers that might try to impersonate me on other platforms. I will never ask you for your password, and anyone who does is not me. I will never tell you to download a file from a suspicious link, and anyone who does is not me. + +# Donations +When I was actively developing Picocrypt, I accepted donations, but now that Picocrypt is complete and production-ready, there's no need anymore. Instead, take your time and effort to share the love of Picocrypt with others. Donations are nice, but being able to help others is a lot more valuable to me than a few spare dollars. Knowing that Picocrypt is helping people secure their files is plenty enough for me. + +# FAQ + +**Is Picocrypt accepting new features?** + +No, Picocrypt is considered feature-complete and won't be getting any new features. Unlike other tools which try to constantly add new features (which introduces new bugs and security holes), Picocrypt focuses on just a few core features but does each of them exceptionally well. Remember Picocrypt's ideology: small, simple, and secure. + +**Will Android/iOS be supported?** + +No, I don't plan on supporting Android or iOS because they are very different from traditional desktop operating systems and require different toolchains to develop apps for. Due to the nature of open-source software, however, a community-built version of Picocrypt for Android or iOS may appear in the future. + +**Why is Picocrypt not updated frequently?** + +People seem to have the notion that software must be constantly updated to stay relevant and secure. While this may be true for a lot of the software we use today, it is not for Picocrypt. Picocrypt is "good software" and good software doesn't need constant updates to remain relevant and secure. Good software will always be good software. + +**Does the "Delete files" feature shred files?** + +No, it doesn't shred any files and just deletes them as your file manager would. On modern storage mediums like SSDs, there is no such thing as shredding a file since wear leveling makes it impossible to overwrite a particular sector. Thus, to prevent giving users a false sense of security, Picocrypt doesn't include any shredding features at all. + +**Is Picocrypt quantum-secure?** + +Yes, Picocrypt is secure against quantum computers. All of the cryptography used in Picocrypt works off of a private key, and private-key cryptography is considered to be resistant against all current and future developments, including quantum computers. + +# Acknowledgements +A thank you from the bottom of my heart to the significant contributors on Open Collective: + + + +Also, a huge thanks to the following people who were the first to donate and support Picocrypt: + + +Finally, thanks to these people/organizations for helping me out when needed: + diff --git a/images/key.icns b/images/key.icns new file mode 100644 index 0000000000000000000000000000000000000000..318c0c56f6b08c6086742eb9078a67da84a3a793 GIT binary patch literal 222482 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

+6uxEgO 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

<+y8 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 \ No newline at end of file diff --git a/images/logo.svg b/images/logo.svg new file mode 100644 index 0000000..c1986e0 --- /dev/null +++ b/images/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/screenshot.png b/images/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..7ccea84d15c3ab6cfdc3cd73db54a25b5bdc0341 GIT binary patch literal 85584 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 W|9wDIu`L<~P$ 0 { + giu.Separator().Build() + } + for _, i := range keyfiles { + giu.Label(filepath.Base(i)).Build() + } + }), + giu.Row( + giu.Button("Clear").Size(100, 0).OnClick(func() { + keyfiles = nil + if keyfile { + keyfileLabel = "Keyfiles required." + } else { + keyfileLabel = "None selected." + } + modalId++ + giu.Update() + }), + giu.Tooltip("Remove all keyfiles."), + + giu.Button("Done").Size(100, 0).OnClick(func() { + giu.CloseCurrentPopup() + showKeyfile = false + }), + ), + ).Build() + giu.OpenPopup("Manage keyfiles:##" + strconv.Itoa(modalId)) + giu.Update() + } + + if showOverwrite { + giu.PopupModal("Warning:##"+strconv.Itoa(modalId)).Flags(6).Layout( + giu.Label("Output already exists. Overwrite?"), + giu.Row( + giu.Button("No").Size(100, 0).OnClick(func() { + giu.CloseCurrentPopup() + showOverwrite = false + }), + giu.Button("Yes").Size(100, 0).OnClick(func() { + giu.CloseCurrentPopup() + showOverwrite = false + + showProgress = true + fastDecode = true + canCancel = true + modalId++ + giu.Update() + go func() { + work() + working = false + showProgress = false + giu.Update() + }() + }), + ), + ).Build() + giu.OpenPopup("Warning:##" + strconv.Itoa(modalId)) + giu.Update() + } + + if showProgress { + giu.PopupModal(" ##"+strconv.Itoa(modalId)).Flags(6).Layout( + giu.Row( + giu.ProgressBar(progress).Size(210, 0).Overlay(progressInfo), + giu.Style().SetDisabled(!canCancel).To( + giu.Button(func() string { + if working { + return "Cancel" + } + return "..." + }()).Size(58, 0).OnClick(func() { + working = false + canCancel = false + }), + ), + ), + giu.Label(popupStatus), + ).Build() + giu.OpenPopup(" ##" + strconv.Itoa(modalId)) + giu.Update() + } + }), + + giu.Row( + giu.Label(inputLabel), + giu.Custom(func() { + bw, _ := giu.CalcTextSize("Clear") + p, _ := giu.GetWindowPadding() + bw += p * 2 + giu.Dummy((bw+p)/-dpi, 0).Build() + giu.SameLine() + giu.Style().SetDisabled((len(allFiles) == 0 && len(onlyFiles) == 0) || scanning).To( + giu.Button("Clear").Size(bw/dpi, 0).OnClick(resetUI), + giu.Tooltip("Clear all input files and reset UI state."), + ).Build() + }), + ), + + giu.Separator(), + giu.Style().SetDisabled((len(allFiles) == 0 && len(onlyFiles) == 0) || scanning).To( + giu.Label("Password:"), + giu.Row( + giu.Button(passwordStateLabel).Size(54, 0).OnClick(func() { + if passwordState == giu.InputTextFlagsPassword { + passwordState = giu.InputTextFlagsNone + passwordStateLabel = "Hide" + } else { + passwordState = giu.InputTextFlagsPassword + passwordStateLabel = "Show" + } + giu.Update() + }), + giu.Tooltip("Toggle the visibility of password entries."), + + giu.Button("Clear").Size(54, 0).OnClick(func() { + password = "" + cpassword = "" + giu.Update() + }), + giu.Tooltip("Clear the password entries."), + + giu.Button("Copy").Size(54, 0).OnClick(func() { + giu.Context.GetPlatform().SetClipboard(password) + giu.Update() + }), + giu.Tooltip("Copy the password into your clipboard."), + + giu.Button("Paste").Size(54, 0).OnClick(func() { + tmp := giu.Context.GetPlatform().GetClipboard() + password = tmp + if mode != "decrypt" { + cpassword = tmp + } + passwordStrength = zxcvbn.PasswordStrength(password, nil).Score + giu.Update() + }), + giu.Tooltip("Paste a password from your clipboard."), + + giu.Style().SetDisabled(mode == "decrypt").To( + giu.Button("Create").Size(54, 0).OnClick(func() { + showPassgen = true + modalId++ + giu.Update() + }), + ), + giu.Tooltip("Generate a cryptographically secure password."), + ), + giu.Row( + giu.InputText(&password).Flags(passwordState).Size(302/dpi).OnChange(func() { + passwordStrength = zxcvbn.PasswordStrength(password, nil).Score + giu.Update() + }), + giu.Custom(func() { + c := giu.GetCanvas() + p := giu.GetCursorScreenPos() + col := color.RGBA{ + uint8(0xc8 - 31*passwordStrength), + uint8(0x4c + 31*passwordStrength), 0x4b, 0xff, + } + if password == "" || mode == "decrypt" { + col = TRANSPARENT + } + path := p.Add(image.Pt( + int(math.Round(-20*float64(dpi))), + int(math.Round(12*float64(dpi))), + )) + c.PathArcTo(path, 6*dpi, -math.Pi/2, math.Pi*(.4*float32(passwordStrength)-.1), -1) + c.PathStroke(col, false, 2) + }), + ), + + giu.Dummy(0, 0), + giu.Style().SetDisabled(password == "" || mode == "decrypt").To( + giu.Label("Confirm password:"), + giu.Row( + giu.InputText(&cpassword).Flags(passwordState).Size(302/dpi), + giu.Custom(func() { + c := giu.GetCanvas() + p := giu.GetCursorScreenPos() + col := color.RGBA{0x4c, 0xc8, 0x4b, 0xff} + if cpassword != password { + col = color.RGBA{0xc8, 0x4c, 0x4b, 0xff} + } + if password == "" || cpassword == "" || mode == "decrypt" { + col = TRANSPARENT + } + path := p.Add(image.Pt( + int(math.Round(-20*float64(dpi))), + int(math.Round(12*float64(dpi))), + )) + c.PathArcTo(path, 6*dpi, 0, 2*math.Pi, -1) + c.PathStroke(col, false, 2) + }), + ), + ), + + giu.Dummy(0, 0), + giu.Style().SetDisabled(mode == "decrypt" && !keyfile && !deniability).To( + giu.Row( + giu.Label("Keyfiles:"), + giu.Button("Edit").Size(54, 0).OnClick(func() { + showKeyfile = true + modalId++ + giu.Update() + }), + giu.Tooltip("Manage keyfiles to use for "+(func() string { + if mode != "decrypt" { + return "encryption." + } + return "decryption." + }())), + + giu.Style().SetDisabled(mode == "decrypt").To( + giu.Button("Create").Size(54, 0).OnClick(func() { + f := dialog.File().Title("Choose where to save the keyfile.") + f.SetStartDir(func() string { + if len(onlyFiles) > 0 { + return filepath.Dir(onlyFiles[0]) + } + return filepath.Dir(onlyFolders[0]) + }()) + f.SetInitFilename("Keyfile") + file, err := f.Save() + if file == "" || err != nil { + return + } + + fout, _ := os.Create(file) + data := make([]byte, KiB) + rand.Read(data) + _, err = fout.Write(data) + fout.Close() + if err != nil { + insufficientSpace(nil, nil) + os.Remove(file) + } else { + mainStatus = "Ready." + mainStatusColor = WHITE + } + }), + giu.Tooltip("Generate a cryptographically secure keyfile."), + ), + giu.Style().SetDisabled(true).To( + giu.InputText(&keyfileLabel).Size(giu.Auto), + ), + ), + ), + ), + + giu.Separator(), + giu.Style().SetDisabled(mode != "decrypt" && ((len(keyfiles) == 0 && password == "") || (password != cpassword))).To( + giu.Style().SetDisabled(mode == "decrypt" && (comments == "" || comments == "Comments are corrupted.")).To( + giu.Label(commentsLabel), + giu.InputText(&comments).Size(giu.Auto).Flags(func() giu.InputTextFlags { + if commentsDisabled { + return giu.InputTextFlagsReadOnly + } + return giu.InputTextFlagsNone + }()), + giu.Custom(func() { + if !commentsDisabled { + giu.Tooltip("Note: comments are not encrypted!").Build() + } + }), + ), + ), + giu.Style().SetDisabled((len(keyfiles) == 0 && password == "") || (mode == "encrypt" && password != cpassword)).To( + giu.Label("Advanced:"), + giu.Custom(func() { + if mode != "decrypt" { + giu.Row( + giu.Checkbox("Paranoid mode", ¶noid), + giu.Tooltip("Provides the highest level of security attainable."), + giu.Dummy(-170, 0), + giu.Style().SetDisabled(recursively).To( + giu.Checkbox("Compress files", &compress).OnChange(func() { + if !(len(allFiles) > 1 || len(onlyFolders) > 0) { + if compress { + outputFile = filepath.Join(filepath.Dir(outputFile), "Encrypted") + ".zip.pcv" + } else { + outputFile = filepath.Join(filepath.Dir(outputFile), filepath.Base(inputFile)) + ".pcv" + } + } + }), + giu.Tooltip("Compress files with Deflate before encrypting."), + ), + ).Build() + + giu.Row( + giu.Checkbox("Reed-Solomon", &reedsolo), + giu.Tooltip("Prevent file corruption with erasure coding."), + giu.Dummy(-170, 0), + giu.Checkbox("Delete files", &delete), + giu.Tooltip("Delete the input files after encryption."), + ).Build() + + giu.Row( + giu.Checkbox("Deniability", &deniability), + giu.Tooltip("Add plausible deniability to the volume."), + giu.Dummy(-170, 0), + giu.Style().SetDisabled(!(len(allFiles) > 1 || len(onlyFolders) > 0)).To( + giu.Checkbox("Recursively", &recursively).OnChange(func() { + compress = false + }), + giu.Tooltip("Encrypt and decrypt recursive files individually."), + ), + ).Build() + + giu.Row( + giu.Checkbox("Split into chunks:", &split), + giu.Tooltip("Split the output file into smaller chunks."), + giu.Dummy(-170, 0), + giu.InputText(&splitSize).Size(86/dpi).Flags(2).OnChange(func() { + split = splitSize != "" + }), + giu.Tooltip("Choose the chunk size."), + giu.Combo("##splitter", splitUnits[splitSelected], splitUnits, &splitSelected).Size(68), + giu.Tooltip("Choose the chunk units."), + ).Build() + } else { + giu.Row( + giu.Style().SetDisabled(deniability).To( + giu.Checkbox("Force decrypt", &keep), + giu.Tooltip("Override security measures when decrypting."), + ), + giu.Dummy(-170, 0), + giu.Checkbox("Delete volume", &delete), + giu.Tooltip("Delete the volume after a successful decryption."), + ).Build() + } + }), + + giu.Style().SetDisabled(recursively).To( + giu.Label("Save output as:"), + giu.Custom(func() { + w, _ := giu.GetAvailableRegion() + bw, _ := giu.CalcTextSize("Change") + p, _ := giu.GetWindowPadding() + bw += p * 2 + dw := w - bw - p + giu.Style().SetDisabled(true).To( + giu.InputText(func() *string { + tmp := "" + if outputFile == "" { + return &tmp + } + tmp = filepath.Base(outputFile) + if split { + tmp += ".*" + } + if recursively { + tmp = "(multiple values)" + } + return &tmp + }()).Size(dw / dpi / dpi).Flags(16384), + ).Build() + + giu.SameLine() + giu.Button("Change").Size(bw/dpi, 0).OnClick(func() { + f := dialog.File().Title("Choose where to save the output. Don't include extensions.") + f.SetStartDir(func() string { + if len(onlyFiles) > 0 { + return filepath.Dir(onlyFiles[0]) + } + return filepath.Dir(onlyFolders[0]) + }()) + + // Prefill the filename + tmp := strings.TrimSuffix(filepath.Base(outputFile), ".pcv") + f.SetInitFilename(strings.TrimSuffix(tmp, filepath.Ext(tmp))) + if mode == "encrypt" && (len(allFiles) > 1 || len(onlyFolders) > 0 || compress) { + f.SetInitFilename("Encrypted") + } + + // Get the chosen file path + file, err := f.Save() + if file == "" || err != nil { + return + } + file = filepath.Join(filepath.Dir(file), strings.Split(filepath.Base(file), ".")[0]) + + // Add the correct extensions + if mode == "encrypt" { + if len(allFiles) > 1 || len(onlyFolders) > 0 || compress { + file += ".zip.pcv" + } else { + file += filepath.Ext(inputFile) + ".pcv" + } + } else { + if strings.HasSuffix(inputFile, ".zip.pcv") { + file += ".zip" + } else { + tmp := strings.TrimSuffix(filepath.Base(inputFile), ".pcv") + file += filepath.Ext(tmp) + } + } + outputFile = file + mainStatus = "Ready." + mainStatusColor = WHITE + }).Build() + giu.Tooltip("Save the output with a custom name and path.").Build() + }), + ), + + giu.Dummy(0, 0), + giu.Separator(), + giu.Dummy(0, 0), + giu.Button(func() string { + if !recursively { + return startLabel + } + return "Process" + }()).Size(giu.Auto, 34).OnClick(func() { + if keyfile && keyfiles == nil { + mainStatus = "Please select your keyfiles." + mainStatusColor = RED + return + } + tmp, err := strconv.Atoi(splitSize) + if split && (splitSize == "" || tmp <= 0 || err != nil) { + mainStatus = "Invalid chunk size." + mainStatusColor = RED + return + } + + // Check if output file already exists + _, err = os.Stat(outputFile) + + // Check if any split chunks already exist + if split { + names, _ := filepath.Glob(outputFile + ".*") + if len(names) > 0 { + err = nil + } else { + err = os.ErrNotExist + } + } + + // If files already exist, show the overwrite modal + if err == nil && !recursively { + showOverwrite = true + modalId++ + giu.Update() + } else { // Nothing to worry about, start working + showProgress = true + fastDecode = true + canCancel = true + modalId++ + giu.Update() + if !recursively { + go func() { + work() + working = false + showProgress = false + giu.Update() + }() + } else { + // Store variables as they will be cleared + oldPassword := password + oldKeyfile := keyfile + oldKeyfiles := keyfiles + oldKeyfileOrdered := keyfileOrdered + oldKeyfileLabel := keyfileLabel + oldComments := comments + oldParanoid := paranoid + oldReedsolo := reedsolo + oldDeniability := deniability + oldSplit := split + oldSplitSize := splitSize + oldSplitSelected := splitSelected + oldDelete := delete + files := allFiles + go func() { + for _, file := range files { + // Simulate dropping the file + onDrop([]string{file}) + + // Restore variables and options + password = oldPassword + cpassword = oldPassword + keyfile = oldKeyfile + keyfiles = oldKeyfiles + keyfileOrdered = oldKeyfileOrdered + keyfileLabel = oldKeyfileLabel + comments = oldComments + paranoid = oldParanoid + reedsolo = oldReedsolo + deniability = oldDeniability + split = oldSplit + splitSize = oldSplitSize + splitSelected = oldSplitSelected + delete = oldDelete + + work() + if !working { + resetUI() + cancel(nil, nil) + showProgress = false + giu.Update() + return + } + } + working = false + showProgress = false + giu.Update() + }() + } + } + }), + giu.Style().SetColor(giu.StyleColorText, mainStatusColor).To( + giu.Label(mainStatus), + ), + ), + + giu.Custom(func() { + window.SetSize(int(318*dpi), giu.GetCursorPos().Y+1) + }), + ) +} + +func onDrop(names []string) { + if showKeyfile { + keyfiles = append(keyfiles, names...) + + // Make sure keyfiles are accessible, remove duplicates + var tmp []string + for _, i := range keyfiles { + duplicate := false + for _, j := range tmp { + if i == j { + duplicate = true + } + } + stat, _ := os.Stat(i) + fin, err := os.Open(i) + if err == nil { + fin.Close() + } else { + showKeyfile = false + resetUI() + accessDenied("Keyfile read") + giu.Update() + return + } + if !duplicate && !stat.IsDir() && err == nil { + tmp = append(tmp, i) + } + } + keyfiles = tmp + + // Update the keyfile status + if len(keyfiles) == 0 { + keyfileLabel = "None selected." + } else if len(keyfiles) == 1 { + keyfileLabel = "Using 1 keyfile." + } else { + keyfileLabel = fmt.Sprintf("Using %d keyfiles.", len(keyfiles)) + } + + modalId++ + giu.Update() + return + } + + scanning = true + files, folders := 0, 0 + compressDone, compressTotal = 0, 0 + resetUI() + + // One item dropped + if len(names) == 1 { + stat, _ := os.Stat(names[0]) + + // A folder was dropped + if stat.IsDir() { + folders++ + mode = "encrypt" + inputLabel = "1 folder." + startLabel = "Encrypt" + onlyFolders = append(onlyFolders, names[0]) + inputFile = filepath.Join(filepath.Dir(names[0]), "Encrypted") + ".zip" + outputFile = inputFile + ".pcv" + } else { // A file was dropped + files++ + + // Is the file a part of a split volume? + nums := []string{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"} + endsNum := false + for _, i := range nums { + if strings.HasSuffix(names[0], i) { + endsNum = true + } + } + isSplit := strings.Contains(names[0], ".pcv.") && endsNum + + // Decide if encrypting or decrypting + if strings.HasSuffix(names[0], ".pcv") || isSplit { + mode = "decrypt" + inputLabel = "Volume for decryption." + startLabel = "Decrypt" + commentsLabel = "Comments (read-only):" + commentsDisabled = true + + // Get the correct input and output filenames + if isSplit { + ind := strings.Index(names[0], ".pcv") + names[0] = names[0][:ind+4] + inputFile = names[0] + outputFile = names[0][:ind] + recombine = true + + // Find out the number of splitted chunks + totalFiles := 0 + for { + stat, err := os.Stat(fmt.Sprintf("%s.%d", inputFile, totalFiles)) + if err != nil { + break + } + totalFiles++ + compressTotal += stat.Size() + } + } else { + outputFile = names[0][:len(names[0])-4] + } + + // Open the input file in read-only mode + var fin *os.File + var err error + if isSplit { + fin, err = os.Open(names[0] + ".0") + } else { + fin, err = os.Open(names[0]) + } + if err != nil { + resetUI() + accessDenied("Read") + return + } + + // Check if version can be read from header + tmp := make([]byte, 15) + fin.Read(tmp) + tmp, err = rsDecode(rs5, tmp) + if valid, _ := regexp.Match(`^v1\.\d{2}`, tmp); !valid || err != nil { + // Volume has plausible deniability + deniability = true + mainStatus = "Can't read header, assuming volume is deniable." + fin.Close() + } else { + // Read comments from file and check for corruption + tmp = make([]byte, 15) + fin.Read(tmp) + tmp, err = rsDecode(rs5, tmp) + if err == nil { + commentsLength, _ := strconv.Atoi(string(tmp)) + tmp = make([]byte, commentsLength*3) + fin.Read(tmp) + comments = "" + for i := 0; i < commentsLength*3; i += 3 { + t, err := rsDecode(rs1, tmp[i:i+3]) + if err != nil { + comments = "Comments are corrupted." + break + } + comments += string(t) + } + } else { + comments = "Comments are corrupted." + } + + // Read flags from file and check for corruption + flags := make([]byte, 15) + fin.Read(flags) + fin.Close() + flags, err = rsDecode(rs5, flags) + if err != nil { + mainStatus = "The volume header is damaged." + mainStatusColor = RED + return + } + + // Update UI and variables according to flags + if flags[1] == 1 { + keyfile = true + keyfileLabel = "Keyfiles required." + } else { + keyfileLabel = "Not applicable." + } + if flags[2] == 1 { + keyfileOrdered = true + } + } + } else { // One file was dropped for encryption + mode = "encrypt" + inputLabel = "1 file." + startLabel = "Encrypt" + inputFile = names[0] + outputFile = names[0] + ".pcv" + } + + // Add the file + onlyFiles = append(onlyFiles, names[0]) + inputFile = names[0] + if !isSplit { + compressTotal += stat.Size() + } + } + } else { // There are multiple dropped items + mode = "encrypt" + startLabel = "Encrypt" + + // Go through each dropped item and add to corresponding slices + for _, name := range names { + stat, _ := os.Stat(name) + if stat.IsDir() { + folders++ + onlyFolders = append(onlyFolders, name) + } else { + files++ + onlyFiles = append(onlyFiles, name) + allFiles = append(allFiles, name) + + compressTotal += stat.Size() + inputLabel = fmt.Sprintf("Scanning files... (%s)", sizeify(compressTotal)) + giu.Update() + } + } + + // Update UI with the number of files and folders selected + if folders == 0 { + inputLabel = fmt.Sprintf("%d files.", files) + } else if files == 0 { + inputLabel = fmt.Sprintf("%d folders.", folders) + } else { + if files == 1 && folders > 1 { + inputLabel = fmt.Sprintf("1 file and %d folders.", folders) + } else if folders == 1 && files > 1 { + inputLabel = fmt.Sprintf("%d files and 1 folder.", files) + } else if folders == 1 && files == 1 { + inputLabel = "1 file and 1 folder." + } else { + inputLabel = fmt.Sprintf("%d files and %d folders.", files, folders) + } + } + + // Set the input and output paths + inputFile = filepath.Join(filepath.Dir(names[0]), "Encrypted") + ".zip" + outputFile = inputFile + ".pcv" + } + + // Recursively add all files in 'onlyFolders' to 'allFiles' + go func() { + oldInputLabel := inputLabel + for _, name := range onlyFolders { + filepath.Walk(name, func(path string, _ os.FileInfo, _ error) error { + stat, err := os.Stat(path) + // If 'path' is a valid file path, add to 'allFiles' + if err == nil && !stat.IsDir() { + allFiles = append(allFiles, path) + compressTotal += stat.Size() + inputLabel = fmt.Sprintf("Scanning files... (%s)", sizeify(compressTotal)) + giu.Update() + } + return nil + }) + } + inputLabel = fmt.Sprintf("%s (%s)", oldInputLabel, sizeify(compressTotal)) + scanning = false + giu.Update() + }() +} + +func work() { + popupStatus = "Starting..." + mainStatus = "Working..." + mainStatusColor = WHITE + working = true + padded := false + giu.Update() + + // Cryptography values + var salt []byte // Argon2 salt, 16 bytes + var hkdfSalt []byte // HKDF-SHA3 salt, 32 bytes + var serpentIV []byte // Serpent IV, 16 bytes + var nonce []byte // 24-byte XChaCha20 nonce + var keyHash []byte // SHA3-512 hash of encryption key + var keyHashRef []byte // Same as 'keyHash', but used for comparison + var keyfileKey []byte // The SHA3-256 hashes of keyfiles + var keyfileHash = make([]byte, 32) // The SHA3-256 of 'keyfileKey' + var keyfileHashRef []byte // Same as 'keyfileHash', but used for comparison + var authTag []byte // 64-byte authentication tag (BLAKE2b or HMAC-SHA3) + + // Combine/compress all files into a .zip file if needed + if len(allFiles) > 1 || len(onlyFolders) > 0 || compress { + // Consider case where compressing only one file + files := allFiles + if len(allFiles) == 0 { + files = onlyFiles + } + + // Get the root directory of the selected files + var rootDir string + if len(onlyFolders) > 0 { + rootDir = filepath.Dir(onlyFolders[0]) + } else { + rootDir = filepath.Dir(onlyFiles[0]) + } + + // Open a temporary .zip for writing + inputFile = strings.TrimSuffix(outputFile, ".pcv") + file, err := os.Create(inputFile) + if err != nil { // Make sure file is writable + accessDenied("Write") + return + } + + // Add each file to the .zip + writer := zip.NewWriter(file) + compressStart = time.Now() + for i, path := range files { + progressInfo = fmt.Sprintf("%d/%d", i+1, len(files)) + giu.Update() + + // Create file info header (size, last modified, etc.) + stat, err := os.Stat(path) + if err != nil { + continue // Skip temporary and inaccessible files + } + header, _ := zip.FileInfoHeader(stat) + header.Name = strings.TrimPrefix(path, rootDir) + header.Name = filepath.ToSlash(header.Name) + header.Name = strings.TrimPrefix(header.Name, "/") + + if compress { + header.Method = zip.Deflate + } else { + header.Method = zip.Store + } + + // Open the file for reading + entry, _ := writer.CreateHeader(header) + fin, err := os.Open(path) + if err != nil { + writer.Close() + file.Close() + os.Remove(inputFile) + resetUI() + accessDenied("Read") + return + } + + // Use a passthrough to catch compression progress + passthrough := &compressorProgress{Reader: fin} + buf := make([]byte, MiB) + _, err = io.CopyBuffer(entry, passthrough, buf) + fin.Close() + + if err != nil { + writer.Close() + insufficientSpace(nil, file) + os.Remove(inputFile) + return + } + + if !working { + writer.Close() + cancel(nil, file) + os.Remove(inputFile) + return + } + } + writer.Close() + file.Close() + } + + // Recombine a split file if necessary + if recombine { + totalFiles := 0 + totalBytes := int64(0) + done := 0 + + // Find out the number of splitted chunks + for { + stat, err := os.Stat(fmt.Sprintf("%s.%d", inputFile, totalFiles)) + if err != nil { + break + } + totalFiles++ + totalBytes += stat.Size() + } + + // Make sure not to overwrite anything + _, err := os.Stat(outputFile + ".pcv") + if err == nil { // File already exists + mainStatus = "Please remove " + filepath.Base(outputFile+".pcv") + "." + mainStatusColor = RED + return + } + + // Create a .pcv to combine chunks into + fout, err := os.Create(outputFile + ".pcv") + if err != nil { // Make sure file is writable + accessDenied("Write") + return + } + + // Merge all chunks into one file + startTime := time.Now() + for i := 0; i < totalFiles; i++ { + fin, err := os.Open(fmt.Sprintf("%s.%d", inputFile, i)) + if err != nil { + fout.Close() + os.Remove(outputFile + ".pcv") + resetUI() + accessDenied("Read") + return + } + + for { + if !working { + cancel(fin, fout) + os.Remove(outputFile + ".pcv") + return + } + + // Copy from the chunk into the .pcv + data := make([]byte, MiB) + read, err := fin.Read(data) + if err != nil { + break + } + data = data[:read] + _, err = fout.Write(data) + done += read + + if err != nil { + insufficientSpace(fin, fout) + os.Remove(outputFile + ".pcv") + return + } + + // Update the stats + progress, speed, eta = statify(int64(done), totalBytes, startTime) + progressInfo = fmt.Sprintf("%d/%d", i+1, totalFiles) + popupStatus = fmt.Sprintf("Recombining at %.2f MiB/s (ETA: %s)", speed, eta) + giu.Update() + } + fin.Close() + } + fout.Close() + inputFileOld = inputFile + inputFile = outputFile + ".pcv" + } + + // Input volume has plausible deniability + if mode == "decrypt" && deniability { + popupStatus = "Removing deniability protection..." + progressInfo = "" + progress = 0 + canCancel = false + giu.Update() + + // Get size of volume for showing progress + stat, _ := os.Stat(inputFile) + total := stat.Size() + + // Rename input volume to free up the filename + fin, _ := os.Open(inputFile) + for strings.HasSuffix(inputFile, ".tmp") { + inputFile = strings.TrimSuffix(inputFile, ".tmp") + } + inputFile += ".tmp" + fout, _ := os.Create(inputFile) + + // Get the Argon2 salt and XChaCha20 nonce from input volume + salt := make([]byte, 16) + nonce := make([]byte, 24) + fin.Read(salt) + fin.Read(nonce) + + // Generate key and XChaCha20 + key := argon2.IDKey([]byte(password), salt, 4, 1<<20, 4, 32) + chacha, _ := chacha20.NewUnauthenticatedCipher(key, nonce) + + // Decrypt the entire volume + done, counter := 0, 0 + for { + src := make([]byte, MiB) + size, err := fin.Read(src) + if err != nil { + break + } + src = src[:size] + dst := make([]byte, len(src)) + chacha.XORKeyStream(dst, src) + fout.Write(dst) + + // Update stats + done += size + counter += MiB + progress = float32(float64(done) / float64(total)) + giu.Update() + + // Change nonce after 60 GiB to prevent overflow + if counter >= 60*GiB { + tmp := sha3.New256() + tmp.Write(nonce) + nonce = tmp.Sum(nil)[:24] + chacha, _ = chacha20.NewUnauthenticatedCipher(key, nonce) + counter = 0 + } + } + + fin.Close() + fout.Close() + + // Check if the version can be read from the volume + fin, _ = os.Open(inputFile) + tmp := make([]byte, 15) + fin.Read(tmp) + fin.Close() + tmp, err := rsDecode(rs5, tmp) + if valid, _ := regexp.Match(`^v1\.\d{2}`, tmp); !valid || err != nil { + os.Remove(inputFile) + inputFile = strings.TrimSuffix(inputFile, ".tmp") + broken(nil, nil, "Password is incorrect or the file is not a volume.", true) + if recombine { + inputFile = inputFileOld + } + return + } + } + + canCancel = false + progress = 0 + progressInfo = "" + giu.Update() + + // Subtract the header size from the total size if decrypting + stat, _ := os.Stat(inputFile) + total := stat.Size() + if mode == "decrypt" { + total -= 789 + } + + // Open input file in read-only mode + fin, err := os.Open(inputFile) + if err != nil { + resetUI() + accessDenied("Read") + return + } + + // Setup output file + var fout *os.File + + // If encrypting, generate values and write to file + if mode == "encrypt" { + popupStatus = "Generating values..." + giu.Update() + + // Stores any errors when writing to file + errs := make([]error, 11) + + // Make sure not to overwrite anything + _, err = os.Stat(outputFile) + if split && err == nil { // File already exists + fin.Close() + if len(allFiles) > 1 || len(onlyFolders) > 0 || compress { + os.Remove(inputFile) + } + mainStatus = "Please remove " + filepath.Base(outputFile) + "." + mainStatusColor = RED + return + } + + // Create the output file + fout, err = os.Create(outputFile) + if err != nil { + fin.Close() + if len(allFiles) > 1 || len(onlyFolders) > 0 || compress { + os.Remove(inputFile) + } + accessDenied("Write") + return + } + + // Set up cryptographic values + salt = make([]byte, 16) + hkdfSalt = make([]byte, 32) + serpentIV = make([]byte, 16) + nonce = make([]byte, 24) + + // Write the program version to file + _, errs[0] = fout.Write(rsEncode(rs5, []byte(version))) + + // Encode and write the comment length to file + commentsLength := []byte(fmt.Sprintf("%05d", len(comments))) + _, errs[1] = fout.Write(rsEncode(rs5, commentsLength)) + + // Encode the comment and write to file + for _, i := range []byte(comments) { + _, err := fout.Write(rsEncode(rs1, []byte{i})) + if err != nil { + errs[2] = err + } + } + + // Configure flags and write to file + flags := make([]byte, 5) + if paranoid { // Paranoid mode selected + flags[0] = 1 + } + if len(keyfiles) > 0 { // Keyfiles are being used + flags[1] = 1 + } + if keyfileOrdered { // Order of keyfiles matter + flags[2] = 1 + } + if reedsolo { // Full Reed-Solomon encoding is selected + flags[3] = 1 + } + if total%int64(MiB) >= int64(MiB)-128 { // Reed-Solomon internals + flags[4] = 1 + } + _, errs[3] = fout.Write(rsEncode(rs5, flags)) + + // Fill values with Go's CSPRNG + rand.Read(salt) + rand.Read(hkdfSalt) + rand.Read(serpentIV) + rand.Read(nonce) + + // Encode values with Reed-Solomon and write to file + _, errs[4] = fout.Write(rsEncode(rs16, salt)) + _, errs[5] = fout.Write(rsEncode(rs32, hkdfSalt)) + _, errs[6] = fout.Write(rsEncode(rs16, serpentIV)) + _, errs[7] = fout.Write(rsEncode(rs24, nonce)) + + // Write placeholders for future use + _, errs[8] = fout.Write(make([]byte, 192)) // Hash of encryption key + _, errs[9] = fout.Write(make([]byte, 96)) // Hash of keyfile key + _, errs[10] = fout.Write(make([]byte, 192)) // BLAKE2b/HMAC-SHA3 tag + + for _, err := range errs { + if err != nil { + insufficientSpace(fin, fout) + if len(allFiles) > 1 || len(onlyFolders) > 0 || compress { + os.Remove(inputFile) + } + os.Remove(outputFile) + return + } + } + } else { // Decrypting, read values from file and decode + popupStatus = "Reading values..." + giu.Update() + + // Stores any Reed-Solomon decoding errors + errs := make([]error, 10) + + version := make([]byte, 15) + fin.Read(version) + _, errs[0] = rsDecode(rs5, version) + + tmp := make([]byte, 15) + fin.Read(tmp) + tmp, errs[1] = rsDecode(rs5, tmp) + commentsLength, _ := strconv.Atoi(string(tmp)) + fin.Read(make([]byte, commentsLength*3)) + total -= int64(commentsLength) * 3 + + flags := make([]byte, 15) + fin.Read(flags) + flags, errs[2] = rsDecode(rs5, flags) + paranoid = flags[0] == 1 + reedsolo = flags[3] == 1 + padded = flags[4] == 1 + if deniability { + keyfile = flags[1] == 1 + keyfileOrdered = flags[2] == 1 + } + + salt = make([]byte, 48) + fin.Read(salt) + salt, errs[3] = rsDecode(rs16, salt) + + hkdfSalt = make([]byte, 96) + fin.Read(hkdfSalt) + hkdfSalt, errs[4] = rsDecode(rs32, hkdfSalt) + + serpentIV = make([]byte, 48) + fin.Read(serpentIV) + serpentIV, errs[5] = rsDecode(rs16, serpentIV) + + nonce = make([]byte, 72) + fin.Read(nonce) + nonce, errs[6] = rsDecode(rs24, nonce) + + keyHashRef = make([]byte, 192) + fin.Read(keyHashRef) + keyHashRef, errs[7] = rsDecode(rs64, keyHashRef) + + keyfileHashRef = make([]byte, 96) + fin.Read(keyfileHashRef) + keyfileHashRef, errs[8] = rsDecode(rs32, keyfileHashRef) + + authTag = make([]byte, 192) + fin.Read(authTag) + authTag, errs[9] = rsDecode(rs64, authTag) + + // If there was an issue during decoding, the header is corrupted + for _, err := range errs { + if err != nil { + if keep { // If the user chooses to force decrypt + kept = true + } else { + broken(fin, nil, "The volume header is damaged.", true) + return + } + } + } + } + + popupStatus = "Deriving key..." + giu.Update() + + // Derive encryption keys and subkeys + var key []byte + if paranoid { + key = argon2.IDKey( + []byte(password), + salt, + 8, // 8 passes + 1<<20, // 1 GiB memory + 8, // 8 threads + 32, // 32-byte output key + ) + } else { + key = argon2.IDKey( + []byte(password), + salt, + 4, + 1<<20, + 4, + 32, + ) + } + + // If keyfiles are being used + if len(keyfiles) > 0 || keyfile { + popupStatus = "Reading keyfiles..." + giu.Update() + + var keyfileTotal int64 + for _, path := range keyfiles { + stat, _ := os.Stat(path) + keyfileTotal += stat.Size() + } + + if keyfileOrdered { // If order matters, hash progressively + var tmp = sha3.New256() + var keyfileDone int + + // For each keyfile... + for _, path := range keyfiles { + fin, _ := os.Open(path) + for { // Read in chunks of 1 MiB + data := make([]byte, MiB) + size, err := fin.Read(data) + if err != nil { + break + } + data = data[:size] + tmp.Write(data) // Hash the data + + // Update progress + keyfileDone += size + progress = float32(keyfileDone) / float32(keyfileTotal) + giu.Update() + } + fin.Close() + } + keyfileKey = tmp.Sum(nil) // Get the SHA3-256 + + // Store a hash of 'keyfileKey' for comparison + tmp = sha3.New256() + tmp.Write(keyfileKey) + keyfileHash = tmp.Sum(nil) + } else { // If order doesn't matter, hash individually and combine + var keyfileDone int + + // For each keyfile... + for _, path := range keyfiles { + fin, _ := os.Open(path) + tmp := sha3.New256() + for { // Read in chunks of 1 MiB + data := make([]byte, MiB) + size, err := fin.Read(data) + if err != nil { + break + } + data = data[:size] + tmp.Write(data) // Hash the data + + // Update progress + keyfileDone += size + progress = float32(keyfileDone) / float32(keyfileTotal) + giu.Update() + } + fin.Close() + + sum := tmp.Sum(nil) // Get the SHA3-256 + + // XOR keyfile hash with 'keyfileKey' + if keyfileKey == nil { + keyfileKey = sum + } else { + for i, j := range sum { + keyfileKey[i] ^= j + } + } + } + + // Store a hash of 'keyfileKey' for comparison + tmp := sha3.New256() + tmp.Write(keyfileKey) + keyfileHash = tmp.Sum(nil) + } + } + + popupStatus = "Calculating values..." + giu.Update() + + // Hash the encryption key for comparison when decrypting + tmp := sha3.New512() + tmp.Write(key) + keyHash = tmp.Sum(nil) + + // Validate the password and/or keyfiles + if mode == "decrypt" { + keyCorrect := subtle.ConstantTimeCompare(keyHash, keyHashRef) == 1 + keyfileCorrect := subtle.ConstantTimeCompare(keyfileHash, keyfileHashRef) == 1 + incorrect := !keyCorrect + if keyfile || len(keyfiles) > 0 { + incorrect = !keyCorrect || !keyfileCorrect + } + + // If something is incorrect + if incorrect { + if keep { + kept = true + } else { + if !keyCorrect { + mainStatus = "The provided password is incorrect." + } else { + if keyfileOrdered { + mainStatus = "Incorrect keyfiles or ordering." + } else { + mainStatus = "Incorrect keyfiles." + } + if deniability { + fin.Close() + os.Remove(inputFile) + inputFile = strings.TrimSuffix(inputFile, ".tmp") + } + } + broken(fin, nil, mainStatus, true) + if recombine { + inputFile = inputFileOld + } + return + } + } + + // Create the output file for decryption + fout, err = os.Create(outputFile) + if err != nil { + fin.Close() + if recombine { + os.Remove(inputFile) + } + accessDenied("Write") + return + } + } + + if len(keyfiles) > 0 || keyfile { + // Prevent an even number of duplicate keyfiles + if bytes.Equal(keyfileKey, make([]byte, 32)) { + mainStatus = "Duplicate keyfiles detected." + mainStatusColor = RED + fin.Close() + if len(allFiles) > 1 || len(onlyFolders) > 0 || compress { + os.Remove(inputFile) + } + fout.Close() + os.Remove(fout.Name()) + return + } + + // XOR the encryption key with the keyfile key + tmp := key + key = make([]byte, 32) + for i := range key { + key[i] = tmp[i] ^ keyfileKey[i] + } + } + + done, counter := 0, 0 + chacha, _ := chacha20.NewUnauthenticatedCipher(key, nonce) + + // Use HKDF-SHA3 to generate a subkey for the MAC + var mac hash.Hash + subkey := make([]byte, 32) + hkdf := hkdf.New(sha3.New256, key, hkdfSalt, nil) + hkdf.Read(subkey) + if paranoid { + mac = hmac.New(sha3.New512, subkey) // HMAC-SHA3 + } else { + mac, _ = blake2b.New512(subkey) // Keyed BLAKE2b + } + + // Generate another subkey for use as Serpent's key + serpentKey := make([]byte, 32) + hkdf.Read(serpentKey) + s, _ := serpent.NewCipher(serpentKey) + serpent := cipher.NewCTR(s, serpentIV) + + // Start the main encryption process + canCancel = true + startTime := time.Now() + for { + if !working { + cancel(fin, fout) + if recombine || len(allFiles) > 1 || len(onlyFolders) > 0 || compress { + os.Remove(inputFile) + } + os.Remove(outputFile) + return + } + + // Read in data from the file + var src []byte + if mode == "decrypt" && reedsolo { + src = make([]byte, MiB/128*136) + } else { + src = make([]byte, MiB) + } + size, err := fin.Read(src) + if err != nil { + break + } + src = src[:size] + dst := make([]byte, len(src)) + + // Do the actual encryption + if mode == "encrypt" { + if paranoid { + serpent.XORKeyStream(dst, src) + copy(src, dst) + } + + chacha.XORKeyStream(dst, src) + mac.Write(dst) + + if reedsolo { + copy(src, dst) + dst = nil + // If a full MiB is available + if len(src) == MiB { + // Encode every chunk + for i := 0; i < MiB; i += 128 { + dst = append(dst, rsEncode(rs128, src[i:i+128])...) + } + } else { + // Encode the full chunks + chunks := math.Floor(float64(len(src)) / 128) + for i := 0; float64(i) < chunks; i++ { + dst = append(dst, rsEncode(rs128, src[i*128:(i+1)*128])...) + } + + // Pad and encode the final partial chunk + dst = append(dst, rsEncode(rs128, pad(src[int(chunks*128):]))...) + } + } + } else { // Decryption + if reedsolo { + copy(dst, src) + src = nil + // If a complete 1 MiB block is available + if len(dst) == MiB/128*136 { + // Decode every chunk + for i := 0; i < MiB/128*136; i += 136 { + tmp, err := rsDecode(rs128, dst[i:i+136]) + if err != nil { + if keep { + kept = true + } else { + broken(fin, fout, "The input file is irrecoverably damaged.", false) + return + } + } + if i == MiB/128*136-136 && done+MiB/128*136 >= int(total) && padded { + tmp = unpad(tmp) + } + src = append(src, tmp...) + + if !fastDecode && i%17408 == 0 { + progress, speed, eta = statify(int64(done+i), total, startTime) + progressInfo = fmt.Sprintf("%.2f%%", progress*100) + popupStatus = fmt.Sprintf("Repairing at %.2f MiB/s (ETA: %s)", speed, eta) + giu.Update() + } + } + } else { + // Decode the full chunks + chunks := len(dst)/136 - 1 + for i := 0; i < chunks; i++ { + tmp, err := rsDecode(rs128, dst[i*136:(i+1)*136]) + if err != nil { + if keep { + kept = true + } else { + broken(fin, fout, "The input file is irrecoverably damaged.", false) + return + } + } + src = append(src, tmp...) + + if !fastDecode && i%128 == 0 { + progress, speed, eta = statify(int64(done+i*136), total, startTime) + progressInfo = fmt.Sprintf("%.2f%%", progress*100) + popupStatus = fmt.Sprintf("Repairing at %.2f MiB/s (ETA: %s)", speed, eta) + giu.Update() + } + } + + // Unpad and decode the final partial chunk + tmp, err := rsDecode(rs128, dst[int(chunks)*136:]) + if err != nil { + if keep { + kept = true + } else { + broken(fin, fout, "The input file is irrecoverably damaged.", false) + return + } + } + src = append(src, unpad(tmp)...) + } + dst = make([]byte, len(src)) + } + + mac.Write(src) + chacha.XORKeyStream(dst, src) + + if paranoid { + copy(src, dst) + serpent.XORKeyStream(dst, src) + } + } + + // Write the data to output file + _, err = fout.Write(dst) + if err != nil { + insufficientSpace(fin, fout) + if recombine || len(allFiles) > 1 || len(onlyFolders) > 0 || compress { + os.Remove(inputFile) + } + os.Remove(outputFile) + return + } + + // Update stats + if mode == "decrypt" && reedsolo { + done += MiB / 128 * 136 + } else { + done += MiB + } + counter += MiB + progress, speed, eta = statify(int64(done), total, startTime) + progressInfo = fmt.Sprintf("%.2f%%", progress*100) + if mode == "encrypt" { + popupStatus = fmt.Sprintf("Encrypting at %.2f MiB/s (ETA: %s)", speed, eta) + } else { + if fastDecode { + popupStatus = fmt.Sprintf("Decrypting at %.2f MiB/s (ETA: %s)", speed, eta) + } + } + giu.Update() + + // Change nonce/IV after 60 GiB to prevent overflow + if counter >= 60*GiB { + // ChaCha20 + nonce = make([]byte, 24) + hkdf.Read(nonce) + chacha, _ = chacha20.NewUnauthenticatedCipher(key, nonce) + + // Serpent + serpentIV = make([]byte, 16) + hkdf.Read(serpentIV) + serpent = cipher.NewCTR(s, serpentIV) + + // Reset counter to 0 + counter = 0 + } + } + + progress = 0 + progressInfo = "" + giu.Update() + + if mode == "encrypt" { + popupStatus = "Writing values..." + giu.Update() + + // Seek back to header and write important values + fout.Seek(int64(309+len(comments)*3), 0) + fout.Write(rsEncode(rs64, keyHash)) + fout.Write(rsEncode(rs32, keyfileHash)) + fout.Write(rsEncode(rs64, mac.Sum(nil))) + } else { + popupStatus = "Comparing values..." + giu.Update() + + // Validate the authenticity of decrypted data + if subtle.ConstantTimeCompare(mac.Sum(nil), authTag) == 0 { + // Decrypt again but this time rebuilding the input data + if reedsolo && fastDecode { + fastDecode = false + fin.Close() + fout.Close() + work() + return + } + + if keep { + kept = true + } else { + broken(fin, fout, "The input file is damaged or modified.", false) + return + } + } + } + + fin.Close() + fout.Close() + + // Add plausible deniability + if mode == "encrypt" && deniability { + popupStatus = "Adding plausible deniability..." + canCancel = false + giu.Update() + + // Get size of volume for showing progress + stat, _ := os.Stat(fout.Name()) + total := stat.Size() + + // Rename the output volume to free up the filename + os.Rename(fout.Name(), fout.Name()+".tmp") + fin, _ := os.Open(fout.Name() + ".tmp") + fout, _ := os.Create(fout.Name()) + + // Use a random Argon2 salt and XChaCha20 nonce + salt := make([]byte, 16) + nonce := make([]byte, 24) + rand.Read(salt) + rand.Read(nonce) + fout.Write(salt) + fout.Write(nonce) + + // Generate key and XChaCha20 + key := argon2.IDKey([]byte(password), salt, 4, 1<<20, 4, 32) + chacha, _ := chacha20.NewUnauthenticatedCipher(key, nonce) + + // Encrypt the entire volume + done, counter := 0, 0 + for { + src := make([]byte, MiB) + size, err := fin.Read(src) + if err != nil { + break + } + src = src[:size] + dst := make([]byte, len(src)) + chacha.XORKeyStream(dst, src) + fout.Write(dst) + + // Update stats + done += size + counter += MiB + progress = float32(float64(done) / float64(total)) + giu.Update() + + // Change nonce after 60 GiB to prevent overflow + if counter >= 60*GiB { + tmp := sha3.New256() + tmp.Write(nonce) + nonce = tmp.Sum(nil)[:24] + chacha, _ = chacha20.NewUnauthenticatedCipher(key, nonce) + counter = 0 + } + } + + fin.Close() + fout.Close() + os.Remove(fin.Name()) + canCancel = true + giu.Update() + } + + // Split the file into chunks + if split { + var splitted []string + stat, _ := os.Stat(outputFile) + size := stat.Size() + finishedFiles := 0 + finishedBytes := 0 + chunkSize, _ := strconv.Atoi(splitSize) + + // Calculate chunk size + if splitSelected == 0 { + chunkSize *= KiB + } else if splitSelected == 1 { + chunkSize *= MiB + } else if splitSelected == 2 { + chunkSize *= GiB + } else if splitSelected == 3 { + chunkSize *= TiB + } else { + chunkSize = int(math.Ceil(float64(size) / float64(chunkSize))) + } + + // Get the number of required chunks + chunks := int(math.Ceil(float64(size) / float64(chunkSize))) + progressInfo = fmt.Sprintf("%d/%d", finishedFiles+1, chunks) + giu.Update() + + // Open the volume for reading + fin, _ := os.Open(outputFile) + + // Delete existing chunks to prevent mixed chunks + names, _ := filepath.Glob(outputFile + ".*") + for _, i := range names { + os.Remove(i) + } + + // Start the splitting process + startTime := time.Now() + for i := 0; i < chunks; i++ { + // Make the chunk + fout, _ := os.Create(fmt.Sprintf("%s.%d", outputFile, i)) + done := 0 + + // Copy data into the chunk + for { + data := make([]byte, MiB) + for done+len(data) > chunkSize { + data = make([]byte, int(math.Ceil(float64(len(data))/2))) + } + + read, err := fin.Read(data) + if err != nil { + break + } + if !working { + cancel(fin, fout) + if len(allFiles) > 1 || len(onlyFolders) > 0 || compress { + os.Remove(inputFile) + } + os.Remove(outputFile) + for _, j := range splitted { // Remove existing chunks + os.Remove(j) + } + os.Remove(fmt.Sprintf("%s.%d", outputFile, i)) + return + } + + data = data[:read] + _, err = fout.Write(data) + if err != nil { + insufficientSpace(fin, fout) + if len(allFiles) > 1 || len(onlyFolders) > 0 || compress { + os.Remove(inputFile) + } + os.Remove(outputFile) + for _, j := range splitted { // Remove existing chunks + os.Remove(j) + } + os.Remove(fmt.Sprintf("%s.%d", outputFile, i)) + return + } + done += read + if done >= chunkSize { + break + } + + // Update stats + finishedBytes += read + progress, speed, eta = statify(int64(finishedBytes), int64(size), startTime) + popupStatus = fmt.Sprintf("Splitting at %.2f MiB/s (ETA: %s)", speed, eta) + giu.Update() + } + fout.Close() + + // Update stats + finishedFiles++ + if finishedFiles == chunks { + finishedFiles-- + } + splitted = append(splitted, fmt.Sprintf("%s.%d", outputFile, i)) + progressInfo = fmt.Sprintf("%d/%d", finishedFiles+1, chunks) + giu.Update() + } + + fin.Close() + os.Remove(outputFile) + } + + canCancel = false + progress = 0 + progressInfo = "" + giu.Update() + + // Delete temporary files used during encryption and decryption + if recombine || len(allFiles) > 1 || len(onlyFolders) > 0 || compress { + os.Remove(inputFile) + if deniability { + os.Remove(strings.TrimSuffix(inputFile, ".tmp")) + } + } + + // Delete the input files if the user chooses + if delete { + popupStatus = "Deleting files..." + giu.Update() + + if mode == "decrypt" { + if recombine { // Remove each chunk of volume + i := 0 + for { + _, err := os.Stat(fmt.Sprintf("%s.%d", inputFileOld, i)) + if err != nil { + break + } + os.Remove(fmt.Sprintf("%s.%d", inputFileOld, i)) + i++ + } + } else { + os.Remove(inputFile) + if deniability { + os.Remove(strings.TrimSuffix(inputFile, ".tmp")) + } + } + } else { + for _, i := range onlyFiles { + os.Remove(i) + } + for _, i := range onlyFolders { + os.RemoveAll(i) + } + } + } + if mode == "decrypt" && deniability { + os.Remove(inputFile) + } + + // All done, reset the UI + oldKept := kept + resetUI() + kept = oldKept + + // If the user chose to keep a corrupted/modified file, let them know + if kept { + mainStatus = "The input file was modified. Please be careful." + mainStatusColor = YELLOW + } else { + mainStatus = "Completed." + mainStatusColor = GREEN + } +} + +// If the OS denies reading or writing to a file +func accessDenied(s string) { + mainStatus = s + " access denied by operating system." + mainStatusColor = RED +} + +// If there isn't enough disk space +func insufficientSpace(fin *os.File, fout *os.File) { + fin.Close() + fout.Close() + mainStatus = "Insufficient disk space." + mainStatusColor = RED +} + +// If corruption is detected during decryption +func broken(fin *os.File, fout *os.File, message string, keepOutput bool) { + fin.Close() + fout.Close() + mainStatus = message + mainStatusColor = RED + + // Clean up files since decryption failed + if recombine { + os.Remove(inputFile) + } + if !keepOutput { + os.Remove(outputFile) + } +} + +// Stop working if user hits "Cancel" +func cancel(fin *os.File, fout *os.File) { + fin.Close() + fout.Close() + mainStatus = "Operation cancelled by user." + mainStatusColor = WHITE +} + +// Reset the UI to a clean state with nothing selected or checked +func resetUI() { + imgui.ClearActiveID() + mode = "" + + inputFile = "" + inputFileOld = "" + outputFile = "" + onlyFiles = nil + onlyFolders = nil + allFiles = nil + inputLabel = "Drop files and folders into this window." + + password = "" + cpassword = "" + passwordState = giu.InputTextFlagsPassword + passwordStateLabel = "Show" + + passgenLength = 32 + passgenUpper = true + passgenLower = true + passgenNums = true + passgenSymbols = true + passgenCopy = true + + keyfile = false + keyfiles = nil + keyfileOrdered = false + keyfileLabel = "None selected." + + comments = "" + commentsLabel = "Comments:" + commentsDisabled = false + + paranoid = false + reedsolo = false + deniability = false + recursively = false + split = false + splitSize = "" + splitSelected = 1 + recombine = false + compress = false + delete = false + keep = false + kept = false + + startLabel = "Start" + mainStatus = "Ready." + mainStatusColor = WHITE + popupStatus = "" + + progress = 0 + progressInfo = "" + giu.Update() +} + +// Reed-Solomon encoder +func rsEncode(rs *infectious.FEC, data []byte) []byte { + res := make([]byte, rs.Total()) + rs.Encode(data, func(s infectious.Share) { + res[s.Number] = s.Data[0] + }) + return res +} + +// Reed-Solomon decoder +func rsDecode(rs *infectious.FEC, data []byte) ([]byte, error) { + // If fast decode, just return the first 128 bytes + if rs.Total() == 136 && fastDecode { + return data[:128], nil + } + + tmp := make([]infectious.Share, rs.Total()) + for i := 0; i < rs.Total(); i++ { + tmp[i].Number = i + tmp[i].Data = append(tmp[i].Data, data[i]) + } + res, err := rs.Decode(nil, tmp) + + // Force decode the data but return the error as well + if err != nil { + if rs.Total() == 136 { + return data[:128], err + } + return data[:rs.Total()/3], err + } + + // No issues, return the decoded data + return res, nil +} + +// PKCS#7 pad (for use with Reed-Solomon) +func pad(data []byte) []byte { + padLen := 128 - len(data)%128 + padding := bytes.Repeat([]byte{byte(padLen)}, padLen) + return append(data, padding...) +} + +// PKCS#7 unpad +func unpad(data []byte) []byte { + padLen := int(data[127]) + return data[:128-padLen] +} + +// Generate a cryptographically secure password +func genPassword() string { + chars := "" + if passgenUpper { + chars += "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + } + if passgenLower { + chars += "abcdefghijklmnopqrstuvwxyz" + } + if passgenNums { + chars += "1234567890" + } + if passgenSymbols { + chars += "-=_+!@#$^&()?<>" + } + tmp := make([]byte, passgenLength) + for i := 0; i < int(passgenLength); i++ { + j, _ := rand.Int(rand.Reader, big.NewInt(int64(len(chars)))) + tmp[i] = chars[j.Int64()] + } + if passgenCopy { + giu.Context.GetPlatform().SetClipboard(string(tmp)) + } + return string(tmp) +} + +// Convert done, total, and starting time to progress, speed, and ETA +func statify(done int64, total int64, start time.Time) (float32, float64, string) { + progress := float32(done) / float32(total) + elapsed := float64(time.Since(start)) / float64(MiB) / 1000 + speed := float64(done) / elapsed / float64(MiB) + eta := int(math.Floor(float64(total-done) / (speed * float64(MiB)))) + return float32(math.Min(float64(progress), 1)), speed, timeify(eta) +} + +// Convert seconds to HH:MM:SS +func timeify(seconds int) string { + hours := int(math.Floor(float64(seconds) / 3600)) + seconds %= 3600 + minutes := int(math.Floor(float64(seconds) / 60)) + seconds %= 60 + hours = int(math.Max(float64(hours), 0)) + minutes = int(math.Max(float64(minutes), 0)) + seconds = int(math.Max(float64(seconds), 0)) + return fmt.Sprintf("%02d:%02d:%02d", hours, minutes, seconds) +} + +// Convert bytes to KiB, MiB, etc. +func sizeify(size int64) string { + if size >= int64(TiB) { + return fmt.Sprintf("%.2f TiB", float64(size)/float64(TiB)) + } else if size >= int64(GiB) { + return fmt.Sprintf("%.2f GiB", float64(size)/float64(GiB)) + } else if size >= int64(MiB) { + return fmt.Sprintf("%.2f MiB", float64(size)/float64(MiB)) + } else { + return fmt.Sprintf("%.2f KiB", float64(size)/float64(KiB)) + } +} + +func main() { + // Create the main window + window = giu.NewMasterWindow("Picocrypt", 318, 507, giu.MasterWindowFlagsNotResizable) + + // Start the dialog module + dialog.Init() + + // Set callbacks + window.SetDropCallback(onDrop) + window.SetCloseCallback(func() bool { + return !working && !showProgress + }) + + // Set universal DPI + dpi = giu.Context.GetPlatform().GetContentScale() + + // Start the UI + window.Run(draw) +} diff --git a/src/README.md b/src/README.md new file mode 100644 index 0000000..8e2d64e --- /dev/null +++ b/src/README.md @@ -0,0 +1,33 @@ +# Running From Source +If you would like to run Picocrypt from source, or an executable isn't available for your platform, you've come to the right place. Running from source is very simple, and I've made it even easier with these straightforward instructions. Unlike VeraCrypt, which requires complex build procedures, SDKs, and assemblers, Picocrypt can easily be compiled from source with only a Go and C compiler. All you need is ten minutes and an Internet connection. + +# 1. Prerequisites +**Linux:** +```bash +apt install -y gcc xorg-dev libgtk-3-dev libgl1-mesa-dev libglu1-mesa +``` +**macOS:** +```bash +xcode-select --install +brew install glfw glew +``` +**Windows:** A C compiler, ideally TDM-GCC or MinGW-w64 + +# 2. Install Go +If you don't have Go installed, download it from here or install it from your package manager (`apt install golang-go`). The latest version of Go is recommended, although you may fall back to Go 1.19 should any issues arise in the future. + +# 3. Get the Source Files +Download the source files as a zip from the homepage or `git clone` this repository. Next, navigate to the `src/` directory, where you will find the source file (`Picocrypt.go`). You will need this file, along with `go.mod` and `go.sum`, to compile Picocrypt. + +# 4. Build From Source +Finally, build Picocrypt from source: +- Windows: go build -ldflags="-s -w -H=windowsgui -extldflags=-static" Picocrypt.go +- macOS: go build -ldflags="-s -w" Picocrypt.go +- Linux: go build -ldflags="-s -w" Picocrypt.go + +Note: Make sure to set `CGO_ENABLED=1` if it isn't already. + +# 5. Done! +You should now see a compiled executable (`Picocrypt.exe`/`Picocrypt`) in your directory. You can run it by double-clicking or executing it in your terminal. That wasn't too hard, right? Enjoy! + +Note: On Linux, if hardware OpenGL isn't available, you can set `LIBGL_ALWAYS_SOFTWARE=1` to force Mesa to use software rendering. This way, Picocrypt will be able to run regardless of driver support and can even run without a GPU at all. You may also need to set `NO_AT_BRIDGE=1` to disable the accessibility bus which is known to cause potential issues. diff --git a/src/go.mod b/src/go.mod new file mode 100644 index 0000000..f56f5df --- /dev/null +++ b/src/go.mod @@ -0,0 +1,21 @@ +module Picocrypt + +go 1.17 + +require ( + github.com/HACKERALERT/dialog v0.0.0-20220508022504-af3bc34fe379 + github.com/HACKERALERT/giu v0.5.7-0.20221117223150-211c1da061d9 + github.com/HACKERALERT/imgui-go v1.12.1-0.20221117223032-1d1c00423178 + github.com/HACKERALERT/infectious v0.0.0-20240424200929-b9ce72346a19 + github.com/HACKERALERT/serpent v0.0.0-20210716182301-293b29869c66 + github.com/HACKERALERT/zxcvbn-go v0.0.0-20220508022013-fa924b767f89 + golang.org/x/crypto v0.22.0 +) + +require ( + github.com/HACKERALERT/gl v0.0.0-20220507232930-73af36e130d3 // indirect + github.com/HACKERALERT/glfw/v3.3/glfw v0.0.0-20221117222155-c08d79e41abe // indirect + github.com/HACKERALERT/mainthread v0.0.0-20211027212305-2ec9e701cc14 // indirect + github.com/HACKERALERT/w32 v0.0.0-20220507231852-76f2a4b526bd // indirect + golang.org/x/sys v0.19.1-0.20240416221847-9a28524796a5 // indirect +) diff --git a/src/go.sum b/src/go.sum new file mode 100644 index 0000000..a91341a --- /dev/null +++ b/src/go.sum @@ -0,0 +1,65 @@ +github.com/HACKERALERT/dialog v0.0.0-20220508022504-af3bc34fe379 h1:GR92LbksZ8zdbzQHf2dTI7e7P8Mjbdi5mSmQv2SK2Uw= +github.com/HACKERALERT/dialog v0.0.0-20220508022504-af3bc34fe379/go.mod h1:V0Gv8EvnwHTFk9TOZiHlYlXcUnVHoXJazNW0pVKZnkY= +github.com/HACKERALERT/giu v0.5.7-0.20221117223150-211c1da061d9 h1:dSCqc/xGO0OIrX8hzJHdh2fsvR2WW/5nMC0z3zW2HAw= +github.com/HACKERALERT/giu v0.5.7-0.20221117223150-211c1da061d9/go.mod h1:j0pjVMd/c5OLwvXE9IBDcmAVsdC4RGimZUmaxPyaxJM= +github.com/HACKERALERT/gl v0.0.0-20220507232930-73af36e130d3 h1:JMAOkmVuuJKjFAVeK+P7i3F/bVSCTU1UUmaxaYTYs9Q= +github.com/HACKERALERT/gl v0.0.0-20220507232930-73af36e130d3/go.mod h1:ZUosVzfEKNGLMLk6aj9yo0FSAhWWsbTMjuzeIUXniB0= +github.com/HACKERALERT/glfw/v3.3/glfw v0.0.0-20221117222155-c08d79e41abe h1:0qOalSxn46hXG9xwfZkaTuUs5smQQ3X5v7p89HHzkEg= +github.com/HACKERALERT/glfw/v3.3/glfw v0.0.0-20221117222155-c08d79e41abe/go.mod h1:aP+FSN9tk1W3UsQisFWxRLQ4WOF7T3niq68UYw0B150= +github.com/HACKERALERT/imgui-go v1.12.1-0.20221117223032-1d1c00423178 h1:P5T5Dr2tNJELM5sj6ngU65E1E1hFBvlNyJ0yp+Kdp34= +github.com/HACKERALERT/imgui-go v1.12.1-0.20221117223032-1d1c00423178/go.mod h1:rWUHB5suv9NAmQJa/Px9ds1D0wT/QD70CPYUqc6rqsM= +github.com/HACKERALERT/infectious v0.0.0-20240424200929-b9ce72346a19 h1:C5t561XXXRJvdiluejbka36n+YaOB4XJuQIo+25hL1k= +github.com/HACKERALERT/infectious v0.0.0-20240424200929-b9ce72346a19/go.mod h1:bTnpEk9zNS1sVKg5TRvLkuSEGVqH0+LRfcMurPtcJvY= +github.com/HACKERALERT/mainthread v0.0.0-20211027212305-2ec9e701cc14 h1:DwWXverhu/dEsPM/GPykuHGh4SxW69DaGZL5t3fANG4= +github.com/HACKERALERT/mainthread v0.0.0-20211027212305-2ec9e701cc14/go.mod h1:jW534e7roGur9mmzAfPxZLQzKXZ+GE5+XeS7PSyqPbo= +github.com/HACKERALERT/serpent v0.0.0-20210716182301-293b29869c66 h1:YDpFq+y6mRcu97rn/rhYg8u8FdeO0wzTuLgM2gVkA+c= +github.com/HACKERALERT/serpent v0.0.0-20210716182301-293b29869c66/go.mod h1:d/+9q3sIxtIyOgHNgFGr3yGBKKVn5h3vL4hV1qlmoLs= +github.com/HACKERALERT/w32 v0.0.0-20220507231852-76f2a4b526bd h1:d3JLIGBs+ZLdnkjg1ksomAywpHEFhldCaVbNzz7R6uY= +github.com/HACKERALERT/w32 v0.0.0-20220507231852-76f2a4b526bd/go.mod h1:S+3Ad2AEm5MhhuHJeAaXUmyAXON0qFDxcP/Chw8q7+Y= +github.com/HACKERALERT/zxcvbn-go v0.0.0-20220508022013-fa924b767f89 h1:mbKV9C7z0N7bGeKKxfKCRvN8snWvGVj+NOm38F3y5Uk= +github.com/HACKERALERT/zxcvbn-go v0.0.0-20220508022013-fa924b767f89/go.mod h1:nykydiYjCDMkF/2vQXSPM38vR5N9W1DITHvupnN+eOk= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.22.0 h1:g1v0xeRhjcugydODzvb3mEM9SQ0HGp9s/nh3COQ/C30= +golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.19.1-0.20240416221847-9a28524796a5 h1:0exPaeAtAlmNHCcRJc+hETS3/TcMV+yjoHhlp4+Ff3E= +golang.org/x/sys v0.19.1-0.20240416221847-9a28524796a5/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.19.0/go.mod h1:2CuTdWZ7KHSQwUzKva0cbMg6q2DMI3Mmxp+gKJbskEk= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=