Inhaltsverzeichnis
6.1 File Share
The simplest distribution method: A network drive.
Why File Share?
Advantages:
- ✓ No additional server needed
- ✓ Quick to set up
- ✓ Permissions via Windows ACLs
- ✓ Everyone knows how to use folders
Disadvantages:
- ✗ No automatic versioning
- ✗ No dependency management
- ✗ Manual copying required
Directory Structure
A recommended structure for the share:
\\server\builds\openssl\ ├── 3.6.0\ │ ├── win-x64\ │ │ ├── bin\ │ │ │ ├── libcrypto-3-x64.dll │ │ │ ├── libssl-3-x64.dll │ │ │ └── openssl.exe │ │ ├── ssl\ │ │ │ └── openssl.cnf │ │ └── README.txt │ ├── win-x64-fips\ │ │ └── ... (with FIPS Provider) │ ├── linux-x64\ │ │ └── ... (Shared Objects) │ └── wasm\ │ └── ... (JS + WASM) ├── 3.5.0\ │ └── ... (older version) └── latest -> 3.6.0\
Set up Share
1. Create Folder
# On the server mkdir D:\Builds\OpenSSL mkdir D:\Builds\OpenSSL\3.6.0 mkdir D:\Builds\OpenSSL\3.6.0\win-x64
2. Copy Files
# Copy build result Copy-Item -Recurse "D:\Projects\openssl-3.6.0\bin\*" "D:\Builds\OpenSSL\3.6.0\win-x64\"
3. Create Share
# As Administrator New-SmbShare -Name "OpenSSL" -Path "D:\Builds\OpenSSL" -ReadAccess "Domain Users"
Or via GUI:
- Right-click on folder
- Properties → Sharing
- Advanced Sharing → Permissions
Usage
From Developer PC
# Access share dir \\server\openssl\3.6.0\win-x64\bin\ # Copy to project copy "\\server\openssl\3.6.0\win-x64\bin\*.dll" C:\MyProject\
Mount as Drive
# Permanently as O: (for OpenSSL) net use O: \\server\openssl /persistent:yes # Then simply: copy O:\3.6.0\win-x64\bin\*.dll C:\MyProject\
Permissions
| Group | Permission |
| ——- | ———— |
| Build Server | Full Control (writes new builds) |
| Developers | Read (copy DLLs) |
| CI/CD Agents | Read |
PowerShell
# Set permissions (NTFS) $acl = Get-Acl "D:\Builds\OpenSSL" # Developers: Read only $rule = New-Object System.Security.AccessControl.FileSystemAccessRule( "DOMAIN\Developers", "ReadAndExecute", "ContainerInherit,ObjectInherit", "None", "Allow") $acl.AddAccessRule($rule) # Build account: Full Control $rule = New-Object System.Security.AccessControl.FileSystemAccessRule( "DOMAIN\BuildService", "FullControl", "ContainerInherit,ObjectInherit", "None", "Allow") $acl.AddAccessRule($rule) Set-Acl "D:\Builds\OpenSSL" $acl
"latest" Symlink
For easy access to the current version:
# Create junction (like symlink) cmd /c mklink /J "D:\Builds\OpenSSL\latest" "D:\Builds\OpenSSL\3.6.0" # Then works: # \\server\openssl\latest\win-x64\...
Update the symlink when a new version is released!
Automation
A PowerShell script for new releases:
# publish-openssl.ps1 param( [string]$Version = "3.6.0", [string]$SourceDir = "D:\Projects\openssl-3.6.0\bin", [string]$SharePath = "\\server\openssl" ) $TargetDir = "$SharePath\$Version\win-x64" # Create folder if not present if (!(Test-Path $TargetDir)) { New-Item -ItemType Directory -Path $TargetDir -Force } # Copy files Copy-Item -Recurse -Force "$SourceDir\*" $TargetDir # Add README @" OpenSSL $Version ================ Build date: $(Get-Date -Format 'yyyy-MM-dd HH:mm') Platform: Windows x64 (VC-WIN64A) Contains: - libcrypto-3-x64.dll - libssl-3-x64.dll - openssl.exe Post-Quantum: ML-DSA, ML-KEM "@ | Out-File "$TargetDir\README.txt" Write-Host "Published: $TargetDir"
Continue to
Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional
Zuletzt geändert: on 2026/01/29 at 09:23 PM