Skip to content

coderslagoon/TruPax

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
etc
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

TruPax

TruPax generates VeraCrypt and TrueCrypt compatible containers from arbitrary sets of files and folders. Such files match exactly the size of the contained material and can be mounted via TrueCrypt, but also directly extracted by TruPax itself. Latter also works for containers formatted with FAT32 by TrueCrypt itself (thanks to fat32-lib). For all of that there are no administrator rights required when using TruPax.

The generated file system of the containers is UDF 1.02, which is supported by all of the modern operating systems. Most of them also support writing - meaning files in a container can also be deleted or new ones added. TruPax also wipes files after container generation, or just as a separate action. You also invalidate any TrueCrypt container with it very quickly.

TruPax is written in Java 17.

Next to the SWT UI there is also a command line version, and with it TruPax can be used in fully automated scenarios.

TruPax works fast and also uses all available CPU cores. Containers get generated in just one pass.

The software is free to use and the source code available under the terms of the GPLv3. TruPax is a completely independent implementation of the TrueCrypt logic and shares not a single line of code with latter.

If you want to use the TruPax technology in your own applications, the API is the right starting point.

Development

Everything is managed by Maven, to build things in one step simply type

./build.sh

Under Windows you may need to install MSYS to run such shell commands.

The preferred development environment is Visual Studio Code - it automatically does the Maven build in the background on every code change. There also are launchers to either just run/debug the code or the fully packaged JAR files, as well as tasks to do the building processes.

Since SWT drives the UI you need to adjust the .mvn/local-settings.xml file to declare the platform you're working on.

Sometimes thing might get stuck. In such a case try to

  • remove the ./target and ./ship folders
  • delete the ~/.swt folder in your home directory
  • under Java Projects (same place than the folder view, on the bottom) click [...] and then Clean Workspace

Testing

Verification for TruPax is implemented as JUnit tests, which are partially functional, Meaning they do interact with the local file system, and thus run in an authentic manner. All testing material though is created in the temporary directory, no changes to your machine will be made except in there.

To run these test cases:

mvn test

The whole set of tests should then execute, a full test run usually takes a few minutes.

The test cases can also leverage a third party UDF validation tool, called udf_test, which can be obtained by Phillips. You need to download this tool yourself, due to licensing it cannot be included in the code base. The udf_test software seems to keep moving around, so it might be tricky to find it. Once you acquired it point to the udf_test executable via the environment variable udftestpath. Under Linux for instance you'd set it to something like /opt/udfct1.5r4/bin/linux-noscsi/udf_test. The TruPax test cases will then detect its presence and do additional verification steps, to ensure the rendered UDF file systems comply to the actual specification.

Shipping

Set the latest version in a variety of places and rebuild:

./version.sh 1.2.3
./build.sh

Acquire and prepare the JRE binaries:

./prepare_jre.sh

This downloads all JREs for all the supported platforms and also optimizes them for shipping.

Then run the shell scripts with that version number of the release:

./ship.sh 1.2.3
./ship_macos.sh 1.2.3

The final packaged material can then be found in the ./ship folder.

API

There are two levels of API:

  • coderslagoon.trupax.lib.prg.Prg(Impl) - the official TruPax API, as used by the GUI and the command line versions
  • coderslagoon.tclib - low-level functionality, for crypto and raw container handling

Both parts are thoroughly covered with Javadoc. The best way to learn about the usage though is to look at the samples:

  • com.coderslagoon.trupax.sdk.demos - various examples on how to use the API
  • com.coderslagoon.trupax.sdk.apps - command line apps based on the low-level API

About

VeraCrypt and TrueCrypt container generation and tools application for Windows, MacOS and Linux

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages