diff --git a/.github/workflows/build-desktop-osx64.yml b/.github/workflows/build-desktop-osx64.yml index 28b9a3661e2..47b02166269 100644 --- a/.github/workflows/build-desktop-osx64.yml +++ b/.github/workflows/build-desktop-osx64.yml @@ -40,6 +40,46 @@ jobs: - name: Install OpenSSL run: brew install openssl + - name: Copy and Sign SSL dylibs + run: | + mkdir -p src-tauri/frameworks + OPENSSL_PREFIX=$(brew --prefix openssl@3) + + # Verify files exist before copying + if [ ! -f "${OPENSSL_PREFIX}/lib/libcrypto.3.dylib" ]; then + echo "Error: libcrypto.3.dylib not found at ${OPENSSL_PREFIX}/lib/" + exit 1 + fi + if [ ! -f "${OPENSSL_PREFIX}/lib/libssl.3.dylib" ]; then + echo "Error: libssl.3.dylib not found at ${OPENSSL_PREFIX}/lib/" + exit 1 + fi + + cp "${OPENSSL_PREFIX}/lib/libcrypto.3.dylib" src-tauri/frameworks/ + cp "${OPENSSL_PREFIX}/lib/libssl.3.dylib" src-tauri/frameworks/ + + security find-identity -v -p codesigning + codesign --force --sign "Developer ID Application" \ + --timestamp \ + --options runtime \ + src-tauri/frameworks/libcrypto.3.dylib + + codesign --force --sign "Developer ID Application" \ + --timestamp \ + --options runtime \ + src-tauri/frameworks/libssl.3.dylib + + # Verify signatures + codesign --verify --verbose=4 --deep --strict src-tauri/frameworks/libcrypto.3.dylib + codesign --verify --verbose=4 --deep --strict src-tauri/frameworks/libssl.3.dylib + + # Display signature info + codesign -dvv src-tauri/frameworks/libcrypto.3.dylib + codesign -dvv src-tauri/frameworks/libssl.3.dylib + + echo "Successfully copied and signed SSL dylibs" + + - name: Setup Cargo Cache uses: actions/cache@v4 with: diff --git a/.github/workflows/build-desktop-osxARM.yml b/.github/workflows/build-desktop-osxARM.yml index 0cd4cfa3e8f..6cd08bb5255 100644 --- a/.github/workflows/build-desktop-osxARM.yml +++ b/.github/workflows/build-desktop-osxARM.yml @@ -40,6 +40,45 @@ jobs: - name: Install OpenSSL run: brew install openssl + - name: Copy and Sign SSL dylibs + run: | + mkdir -p src-tauri/frameworks + OPENSSL_PREFIX=$(brew --prefix openssl@3) + + # Verify files exist before copying + if [ ! -f "${OPENSSL_PREFIX}/lib/libcrypto.3.dylib" ]; then + echo "Error: libcrypto.3.dylib not found at ${OPENSSL_PREFIX}/lib/" + exit 1 + fi + if [ ! -f "${OPENSSL_PREFIX}/lib/libssl.3.dylib" ]; then + echo "Error: libssl.3.dylib not found at ${OPENSSL_PREFIX}/lib/" + exit 1 + fi + + cp "${OPENSSL_PREFIX}/lib/libcrypto.3.dylib" src-tauri/frameworks/ + cp "${OPENSSL_PREFIX}/lib/libssl.3.dylib" src-tauri/frameworks/ + + security find-identity -v -p codesigning + codesign --force --sign "Developer ID Application" \ + --timestamp \ + --options runtime \ + src-tauri/frameworks/libcrypto.3.dylib + + codesign --force --sign "Developer ID Application" \ + --timestamp \ + --options runtime \ + src-tauri/frameworks/libssl.3.dylib + + # Verify signatures + codesign --verify --verbose=4 --deep --strict src-tauri/frameworks/libcrypto.3.dylib + codesign --verify --verbose=4 --deep --strict src-tauri/frameworks/libssl.3.dylib + + # Display signature info + codesign -dvv src-tauri/frameworks/libcrypto.3.dylib + codesign -dvv src-tauri/frameworks/libssl.3.dylib + + echo "Successfully copied and signed SSL dylibs" + - name: Setup Cargo Cache uses: actions/cache@v4 with: diff --git a/.github/workflows/build-desktop-win64.yml b/.github/workflows/build-desktop-win64.yml index 25d031320dd..292f7f6151f 100644 --- a/.github/workflows/build-desktop-win64.yml +++ b/.github/workflows/build-desktop-win64.yml @@ -58,6 +58,65 @@ jobs: echo "OPENSSL_INCLUDE_DIR=${{ env.VCPKG_ROOT }}/installed/x64-windows-static/include" >> $GITHUB_ENV echo "OPENSSL_LIB_DIR=${{ env.VCPKG_ROOT }}/installed/x64-windows-static/lib" >> $GITHUB_ENV + - name: Copy SSL DLLs + shell: pwsh + run: | + # Verify OpenSSL DLLs exist + $opensslBinDir = "${{ env.VCPKG_ROOT }}/installed/x64-windows-static/bin" + $libcryptoPath = Join-Path $opensslBinDir "libcrypto-3-x64.dll" + $libsslPath = Join-Path $opensslBinDir "libssl-3-x64.dll" + + if (-not (Test-Path $libcryptoPath)) { + Write-Error "Error: libcrypto-3-x64.dll not found at $libcryptoPath" + exit 1 + } + if (-not (Test-Path $libsslPath)) { + Write-Error "Error: libssl-3-x64.dll not found at $libsslPath" + exit 1 + } + + # Copy DLLs to src-tauri folder + Copy-Item -Path $libcryptoPath -Destination "src-tauri/" -Force + Copy-Item -Path $libsslPath -Destination "src-tauri/" -Force + Write-Host "Successfully copied OpenSSL DLLs to src-tauri/" + Get-ChildItem -Path "src-tauri/" + + - name: Create temp directory for signing DLLs + shell: pwsh + run: New-Item -ItemType Directory -Force -Path "${{ github.workspace }}/desktop/temp-sign-dlls" + + - name: Sign libcrypto DLL + uses: sslcom/esigner-codesign@develop + with: + command: sign + username: ${{ secrets.ESIGNER_USERNAME }} + password: ${{ secrets.ESIGNER_PASSWORD }} + credential_id: ${{ secrets.ESIGNER_CREDENTIAL_ID }} + totp_secret: ${{ secrets.ESIGNER_TOTP_SECRET }} + file_path: ${{ github.workspace }}/desktop/src-tauri/libcrypto-3-x64.dll + output_path: ${{ github.workspace }}/desktop/temp-sign-dlls + malware_block: false + + - name: Sign libssl DLL + uses: sslcom/esigner-codesign@develop + with: + command: sign + username: ${{ secrets.ESIGNER_USERNAME }} + password: ${{ secrets.ESIGNER_PASSWORD }} + credential_id: ${{ secrets.ESIGNER_CREDENTIAL_ID }} + totp_secret: ${{ secrets.ESIGNER_TOTP_SECRET }} + file_path: ${{ github.workspace }}/desktop/src-tauri/libssl-3-x64.dll + output_path: ${{ github.workspace }}/desktop/temp-sign-dlls + malware_block: false + + - name: Replace unsigned DLLs with signed ones + shell: pwsh + run: | + Copy-Item -Path "${{ github.workspace }}/desktop/temp-sign-dlls/libcrypto-3-x64.dll" -Destination "${{ github.workspace }}/desktop/src-tauri/libcrypto-3-x64.dll" -Force + Copy-Item -Path "${{ github.workspace }}/desktop/temp-sign-dlls/libssl-3-x64.dll" -Destination "${{ github.workspace }}/desktop/src-tauri/libssl-3-x64.dll" -Force + Write-Host "Successfully replaced unsigned DLLs with signed versions" + Get-ChildItem -Path "${{ github.workspace }}/desktop/src-tauri/*.dll" + - name: Set up Node.js uses: actions/setup-node@v4 with: diff --git a/desktop/Cargo.lock b/desktop/Cargo.lock index 3c8f47092f5..e698b4362e4 100644 --- a/desktop/Cargo.lock +++ b/desktop/Cargo.lock @@ -5673,7 +5673,7 @@ dependencies = [ [[package]] name = "openbb-platform" -version = "0.6.0" +version = "0.7.0" dependencies = [ "cc", "chrono", diff --git a/desktop/package.json b/desktop/package.json index 15c693c7b32..670e655f72b 100644 --- a/desktop/package.json +++ b/desktop/package.json @@ -1,7 +1,7 @@ { "name": "openbb-platform", "private": true, - "version": "0.6.0", + "version": "0.7.0", "type": "module", "license": "AGPL-3.0", "scripts": { diff --git a/desktop/src-tauri/Cargo.toml b/desktop/src-tauri/Cargo.toml index 666b7c4573e..acb8c1b5ae5 100644 --- a/desktop/src-tauri/Cargo.toml +++ b/desktop/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "openbb-platform" -version = "0.6.0" +version = "0.7.0" description = "Open Data Platform - by OpenBB - Desktop Application for managing virtual environments, application backend servers." authors = ["OpenBB, Inc."] license = "AGPL-3.0" diff --git a/desktop/src-tauri/frameworks/libcrypto.3.dylib b/desktop/src-tauri/frameworks/libcrypto.3.dylib deleted file mode 100755 index 077569f1f5c..00000000000 Binary files a/desktop/src-tauri/frameworks/libcrypto.3.dylib and /dev/null differ diff --git a/desktop/src-tauri/frameworks/libssl.3.dylib b/desktop/src-tauri/frameworks/libssl.3.dylib deleted file mode 100755 index 0ac73874687..00000000000 Binary files a/desktop/src-tauri/frameworks/libssl.3.dylib and /dev/null differ diff --git a/desktop/src-tauri/libcrypto-3-x64.dll b/desktop/src-tauri/libcrypto-3-x64.dll deleted file mode 100644 index e4a19bd39e9..00000000000 Binary files a/desktop/src-tauri/libcrypto-3-x64.dll and /dev/null differ diff --git a/desktop/src-tauri/libssl-3-x64.dll b/desktop/src-tauri/libssl-3-x64.dll deleted file mode 100644 index 92ab3eefabb..00000000000 Binary files a/desktop/src-tauri/libssl-3-x64.dll and /dev/null differ diff --git a/desktop/src-tauri/resources/libcrypto-3-arm.dylib b/desktop/src-tauri/resources/libcrypto-3-arm.dylib deleted file mode 100755 index 506cdc4d8e9..00000000000 Binary files a/desktop/src-tauri/resources/libcrypto-3-arm.dylib and /dev/null differ diff --git a/desktop/src-tauri/resources/libcrypto-3-x64.dylib b/desktop/src-tauri/resources/libcrypto-3-x64.dylib deleted file mode 100755 index 1e93edd1d6e..00000000000 Binary files a/desktop/src-tauri/resources/libcrypto-3-x64.dylib and /dev/null differ diff --git a/desktop/src-tauri/resources/libssl-3-arm.dylib b/desktop/src-tauri/resources/libssl-3-arm.dylib deleted file mode 100755 index db13f738ca0..00000000000 Binary files a/desktop/src-tauri/resources/libssl-3-arm.dylib and /dev/null differ diff --git a/desktop/src-tauri/resources/libssl-3-x64.dylib b/desktop/src-tauri/resources/libssl-3-x64.dylib deleted file mode 100755 index 6aa7413dbd2..00000000000 Binary files a/desktop/src-tauri/resources/libssl-3-x64.dylib and /dev/null differ diff --git a/desktop/src-tauri/tauri.conf.json b/desktop/src-tauri/tauri.conf.json index 2f64dda71cb..d59548d6b7d 100644 --- a/desktop/src-tauri/tauri.conf.json +++ b/desktop/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "$schema": "https://schema.tauri.app/config/2", "productName": "Open Data Platform", - "version": "0.6.0", + "version": "0.7.0", "identifier": "co.openbb.platform", "build": { "frontendDist": "../dist",