Skip to content

Commit 9219062

Browse files
idiskyleIshwar Raut
authored and
Ishwar Raut
committed
Add Digital Signature to DLLs in Maven Build (microsoft#22401)
### Description * Add digital signature to dll files in jar files. * Jar file names: onnxruntime-{version}.jar, onnxruntime_gpu-{version}.jar ### Motivation and Context microsoft#19204
1 parent 0742f4f commit 9219062

File tree

4 files changed

+81
-0
lines changed

4 files changed

+81
-0
lines changed

tools/ci_build/github/azure-pipelines/stages/java-cuda-packaging-stage.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,11 @@ stages:
5858
showWarnings: true
5959
workingDirectory: '$(Build.BinariesDirectory)\java-artifact'
6060

61+
- template: ../templates/jar-esrp-dll.yml
62+
parameters:
63+
JarFileDirectory: '$(Build.BinariesDirectory)\java-artifact\onnxruntime-java-win-x64'
64+
JarFileName: 'onnxruntime_gpu-$(OnnxRuntimeVersion).jar'
65+
6166
- template: ../templates/jar-maven-signing-win.yml
6267
parameters:
6368
JarFileDirectory: '$(Build.BinariesDirectory)\java-artifact\onnxruntime-java-win-x64'

tools/ci_build/github/azure-pipelines/templates/c-api-cpu.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,11 @@ stages:
260260
showWarnings: true
261261
workingDirectory: '$(Build.BinariesDirectory)\java-artifact'
262262

263+
- template: jar-esrp-dll.yml
264+
parameters:
265+
JarFileDirectory: '$(Build.BinariesDirectory)\java-artifact\onnxruntime-java-win-x64'
266+
JarFileName: 'onnxruntime-$(OnnxRuntimeVersion).jar'
267+
263268
- template: jar-maven-signing-win.yml
264269
parameters:
265270
JarFileDirectory: '$(Build.BinariesDirectory)\java-artifact\onnxruntime-java-win-x64'
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
parameters:
2+
- name: JarFileDirectory
3+
type: string
4+
default: ''
5+
6+
- name: JarFileName
7+
type: string
8+
default: ''
9+
10+
steps:
11+
- task: PowerShell@2
12+
displayName: 'ESRP Jar - Extract Jar File'
13+
inputs:
14+
targetType: filePath
15+
filePath: $(Build.SourcesDirectory)\tools\ci_build\github\windows\jar_esrp_dll.ps1
16+
arguments: extract '${{ parameters.JarFileDirectory }}' '${{ parameters.JarFileName }}'
17+
workingDirectory: '$(Build.BinariesDirectory)'
18+
19+
- template: win-esrp-dll.yml
20+
parameters:
21+
FolderPath: '${{ parameters.JarFileDirectory }}\jar_extracted_full_files'
22+
DisplayName: 'ESRP Jar - Sign Dlls'
23+
24+
- task: PowerShell@2
25+
displayName: 'ESRP Jar - Repack Jar File'
26+
inputs:
27+
targetType: filePath
28+
filePath: $(Build.SourcesDirectory)\tools\ci_build\github\windows\jar_esrp_dll.ps1
29+
arguments: repack '${{ parameters.JarFileDirectory }}' '${{ parameters.JarFileName }}'
30+
workingDirectory: '$(Build.BinariesDirectory)'
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
$instruction = $args[0] # extract or repack
2+
$original_jar_file_directory = $args[1] # The directory where the original jar file is located
3+
$original_jar_file_name = $args[2] # The name of the original jar file
4+
5+
$original_jar_file_full_path = "$original_jar_file_directory\$original_jar_file_name"
6+
$extracted_file_directory = "$original_jar_file_directory\jar_extracted_full_files"
7+
8+
if ($instruction -eq "extract") {
9+
Write-Host "Extracting the jar file $original_jar_file_full_path..."
10+
& 7z x $original_jar_file_full_path -o"$extracted_file_directory"
11+
if ($lastExitCode -ne 0) {
12+
Write-Host -Object "7z extracting the jar file command failed. Exitcode: $exitCode"
13+
exit $lastExitCode
14+
}
15+
Write-Host "Extracted files directory: $extracted_file_directory"
16+
17+
Write-Host "Removing the original jar file..."
18+
Remove-Item -Path "$original_jar_file_full_path" -Force
19+
Write-Host "Removed the original jar file."
20+
}
21+
elseif ($instruction -eq "repack") {
22+
Write-Host "Removing ESRP's CodeSignSummary file..."
23+
# It is the summary generated by ESRP tool. It is not needed in the jar file.
24+
Remove-Item -Path "$extracted_file_directory/CodeSignSummary*.*" -Force
25+
Write-Host "Removed ESRP's CodeSignSummary file."
26+
27+
Write-Host "Repacking the jar file from directory $extracted_file_directory..."
28+
& 7z a "$original_jar_file_full_path" "$extracted_file_directory\*"
29+
if ($lastExitCode -ne 0) {
30+
Write-Host -Object "7z repacking the jar file command failed. Exitcode: $exitCode"
31+
exit $lastExitCode
32+
}
33+
Write-Host "Repacked the jar file $original_jar_file_full_path."
34+
35+
Write-Host "Removing the extracted files..."
36+
Remove-Item -Path "$extracted_file_directory" -Recurse -Force
37+
Write-Host "Removed the extracted files."
38+
}
39+
else {
40+
Write-Host "Invalid instruction: $instruction"
41+
}

0 commit comments

Comments
 (0)