test: 建立桌面端自动化回归测试体系并完善跨平台 CI

(cherry picked from commit 74267ae2f63f8256c3da84b04f5b330e6e9d4c67)
This commit is contained in:
电摇小子
2026-08-03 10:08:28 +08:00
committed by Wxw-Gu
parent b4f909a597
commit 3e57a8432d
36 changed files with 2598 additions and 110 deletions
+11 -15
View File
@@ -203,9 +203,11 @@ function getMimeType(extension) {
function strictRemovePadding(buffer) {
if (buffer.length === 0) return buffer
const paddingLength = buffer[buffer.length - 1]
if (paddingLength <= 0 || paddingLength > 16 || paddingLength > buffer.length) return buffer
if (paddingLength <= 0 || paddingLength > 16 || paddingLength > buffer.length) {
throw new Error('invalid PKCS#7 padding')
}
for (let index = buffer.length - paddingLength; index < buffer.length; index += 1) {
if (buffer[index] !== paddingLength) return buffer
if (buffer[index] !== paddingLength) throw new Error('invalid PKCS#7 padding')
}
return buffer.subarray(0, buffer.length - paddingLength)
}
@@ -1636,19 +1638,13 @@ export class ImageDecryptService {
private strictRemovePadding(buffer: Buffer): Buffer {
if (buffer.length === 0) return buffer
const lastByte = buffer[buffer.length - 1]
if (lastByte <= 16 && lastByte > 0) {
const paddingLength = lastByte
let valid = true
for (let i = buffer.length - paddingLength; i < buffer.length; i++) {
if (buffer[i] !== lastByte) {
valid = false
break
}
}
if (valid) {
return buffer.subarray(0, buffer.length - paddingLength)
}
if (lastByte <= 0 || lastByte > 16 || lastByte > buffer.length) {
throw new Error('invalid PKCS#7 padding')
}
return buffer
const paddingLength = lastByte
for (let i = buffer.length - paddingLength; i < buffer.length; i += 1) {
if (buffer[i] !== lastByte) throw new Error('invalid PKCS#7 padding')
}
return buffer.subarray(0, buffer.length - paddingLength)
}
}