diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml new file mode 100644 index 0000000000..d7b9570329 --- /dev/null +++ b/.github/workflows/build-macos.yml @@ -0,0 +1,124 @@ +name: Build and test macOS + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + create: + tags: + - '*' + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +env: + WX_BUILD_DIR: ${{ github.workspace }}/wxbuild + WX_ROOT: ${{ github.workspace }}/wxsrc + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "build" + build: + # The type of runner that the job will run on + runs-on: ${{matrix.runner}} + strategy: + matrix: + runner: [macos-13] + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v2 + + - name: Download Packages + uses: carlosperate/download-file-action@v1.0.3 + id: download-packages + with: + file-url: 'http://s.sudre.free.fr/Software/files/Packages.dmg' + file-name: 'Packages.dmg' + location: '.' + + - name: Download macFUSE + uses: carlosperate/download-file-action@v1.0.3 + id: download-macfuse + with: + file-url: 'https://github.com/osxfuse/osxfuse/releases/download/macfuse-4.5.0/macfuse-4.5.0.dmg' + file-name: 'macfuse.dmg' + location: '.' + + - name: Download pkg-config + uses: carlosperate/download-file-action@v1.0.3 + id: download-pkg-config + with: + file-url: 'https://pkgconfig.freedesktop.org/releases/pkg-config-0.28.tar.gz' + file-name: pkg-config-0.28.tar.gz + location: '.' + + - name: Mount Packages + run: sudo hdiutil attach Packages.dmg + + - name: Mount macFUSE + run: sudo hdiutil attach macfuse.dmg + + - name: List Volumes directory context + run: ls -latr /Volumes || true + + - name: Install Packages + run: sudo installer -pkg "/Volumes/Packages 1.2.10/Install Packages.pkg" -target / + + - name: Install macFUSE + run: sudo installer -pkg "/Volumes/macFUSE/Install macFUSE.pkg" -target / + + - name: Build and install pkg-config + run: tar xvf pkg-config-0.28.tar.gz && cd pkg-config-0.28 && ./configure && make && sudo make install + + - name: Install yasm + run: brew install yasm + + - uses: actions/cache@v2 + name: Cache/restore wxWidgets + id: cache-wxwidgets + with: + path: | + ${{ env.WX_ROOT }} + ${{ env.WX_BUILD_DIR }} + key: wxwidgets + + - uses: maxim-lobanov/setup-xcode@v1 + with: + xcode-version: latest-stable + + - uses: actions/checkout@v2 + name: Checkout wxWidgets + with: + repository: 'wxWidgets/wxWidgets' + ref: 'v3.2.5' + path: ${{ env.WX_ROOT }} + submodules: 'recursive' + + - name: Show Xcode used + run: | + SDK_VERSION=$(xcrun --show-sdk-version); xcrun --show-sdk-path; xcrun --sdk macosx${SDK_VERSION} --show-sdk-path + + - name: Build wxWidgets + if: steps.cache-wxwidgets.outputs.cache-hit != 'true' + run: | + ls -l ${{env.WX_ROOT}} + (cd src && make WXSTATIC=FULL WX_ROOT=${{env.WX_ROOT}} WX_BUILD_DIR=${{env.WX_BUILD_DIR}} wxbuild); cat ${{ env.WX_BUILD_DIR }}/config.log + + - name: Build Veracrypt + run: cd src && make LOCAL_DEVELOPMENT_BUILD=true WXSTATIC=FULL WX_ROOT=${{env.WX_ROOT}} WX_BUILD_DIR=${{env.WX_BUILD_DIR}} && make LOCAL_DEVELOPMENT_BUILD=true WXSTATIC=1 package + + - name: Show directory structure + run: | + ls -R . + ls -l src || true + + - name: Release + uses: softprops/action-gh-release@v1 + if: startsWith(github.ref, 'refs/tags/') + with: + files: '**/VeraCrypt*.dmg' + + diff --git a/.gitignore b/.gitignore index e1f27fcdc1..c3a17719f6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,16 @@ # For those using Visual Studio Code for development .vscode/ +# Testing artifacts +Tests/**/*.raw +Tests/**/*.vol +Tests/**/*.bin +Tests/**/*.dmg +Tests/**/*.vc +Tests/**/*.key +**/*Testing +!src/Testing + # CLion .idea/ diff --git a/README.md b/README.md index c0bf3ea90b..cc6ebecbfc 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +![build](./actions/workflows/build-macos.yml/badge.svg) + This archive contains the source code of VeraCrypt. It is based on the original TrueCrypt 7.1a with security enhancements and modifications. diff --git a/doc/html/Bluekeys.html b/doc/html/Bluekeys.html new file mode 100644 index 0000000000..e0ba6c9a2e --- /dev/null +++ b/doc/html/Bluekeys.html @@ -0,0 +1,42 @@ + + +
+ ++Documentation + +Bluekeys +
Please note that security tokens and smart cards are currently not +supported for Pre-Boot authentication of system encryption.
Optionally, keyfiles can be encrypted using PKCS-11 compliant security + tokens and smart cards. This provides additional level of security: + knowing the keyfile content is not enough, you also need a + security token or smart card. See chapter + Bluekeys. +
EMV-compliant smart cards' data can be used as keyfile, see chapter
Please note that security tokens and smart cards are currently not supported for Pre-Boot authentication of system encryption.Security Tokens & Smart Cards
Please note that security tokens and smart cards are currently not supported for Pre-Boot authentication of system encryption.