Skip to content

Commit 3e488a0

Browse files
committed
Make manifest and signature file names type safe
1 parent 2ff84fa commit 3e488a0

File tree

2 files changed

+18
-12
lines changed

2 files changed

+18
-12
lines changed

Sources/WalletOrders/OrderBuilder.swift

+9-6
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ public struct OrderBuilder: Sendable {
1313

1414
private let encoder = JSONEncoder()
1515

16+
private static let manifestFileName = "manifest.json"
17+
private static let signatureFileName = "signature"
18+
1619
/// Creates a new ``OrderBuilder``.
1720
///
1821
/// - Parameters:
@@ -75,7 +78,7 @@ public struct OrderBuilder: Sendable {
7578
try FileManager.default.createDirectory(at: dir, withIntermediateDirectories: true)
7679
defer { try? FileManager.default.removeItem(at: dir) }
7780

78-
try manifest.write(to: dir.appendingPathComponent("manifest.json"))
81+
try manifest.write(to: dir.appendingPathComponent(Self.manifestFileName))
7982
try self.pemWWDRCertificate.write(to: dir.appendingPathComponent("wwdr.pem"), atomically: true, encoding: .utf8)
8083
try self.pemCertificate.write(to: dir.appendingPathComponent("certificate.pem"), atomically: true, encoding: .utf8)
8184
try self.pemPrivateKey.write(to: dir.appendingPathComponent("private.pem"), atomically: true, encoding: .utf8)
@@ -88,15 +91,15 @@ public struct OrderBuilder: Sendable {
8891
"-certfile", dir.appendingPathComponent("wwdr.pem").path,
8992
"-signer", dir.appendingPathComponent("certificate.pem").path,
9093
"-inkey", dir.appendingPathComponent("private.pem").path,
91-
"-in", dir.appendingPathComponent("manifest.json").path,
92-
"-out", dir.appendingPathComponent("signature").path,
94+
"-in", dir.appendingPathComponent(Self.manifestFileName).path,
95+
"-out", dir.appendingPathComponent(Self.signatureFileName).path,
9396
"-outform", "DER",
9497
"-passin", "pass:\(pemPrivateKeyPassword)",
9598
]
9699
try process.run()
97100
process.waitUntilExit()
98101

99-
return try Data(contentsOf: dir.appendingPathComponent("signature"))
102+
return try Data(contentsOf: dir.appendingPathComponent(Self.signatureFileName))
100103
} else {
101104
let signature = try CMS.sign(
102105
manifest,
@@ -143,8 +146,8 @@ public struct OrderBuilder: Sendable {
143146
let sourceFiles = try Self.sourceFiles(in: tempDir)
144147

145148
let manifest = try self.manifest(for: sourceFiles)
146-
archiveFiles.append(ArchiveFile(filename: "manifest.json", data: manifest))
147-
try archiveFiles.append(ArchiveFile(filename: "signature", data: self.signature(for: manifest)))
149+
archiveFiles.append(ArchiveFile(filename: Self.manifestFileName, data: manifest))
150+
try archiveFiles.append(ArchiveFile(filename: Self.signatureFileName, data: self.signature(for: manifest)))
148151

149152
for file in sourceFiles {
150153
archiveFiles.append(ArchiveFile(filename: file.key, data: file.value))

Sources/WalletPasses/PassBuilder.swift

+9-6
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ public struct PassBuilder: Sendable {
1313

1414
private let encoder = JSONEncoder()
1515

16+
private static let manifestFileName = "manifest.json"
17+
private static let signatureFileName = "signature"
18+
1619
/// Creates a new ``PassBuilder``.
1720
///
1821
/// - Parameters:
@@ -100,7 +103,7 @@ public struct PassBuilder: Sendable {
100103
try FileManager.default.createDirectory(at: dir, withIntermediateDirectories: true)
101104
defer { try? FileManager.default.removeItem(at: dir) }
102105

103-
try manifest.write(to: dir.appendingPathComponent("manifest.json"))
106+
try manifest.write(to: dir.appendingPathComponent(Self.manifestFileName))
104107
try self.pemWWDRCertificate.write(to: dir.appendingPathComponent("wwdr.pem"), atomically: true, encoding: .utf8)
105108
try self.pemCertificate.write(to: dir.appendingPathComponent("certificate.pem"), atomically: true, encoding: .utf8)
106109
try self.pemPrivateKey.write(to: dir.appendingPathComponent("private.pem"), atomically: true, encoding: .utf8)
@@ -113,15 +116,15 @@ public struct PassBuilder: Sendable {
113116
"-certfile", dir.appendingPathComponent("wwdr.pem").path,
114117
"-signer", dir.appendingPathComponent("certificate.pem").path,
115118
"-inkey", dir.appendingPathComponent("private.pem").path,
116-
"-in", dir.appendingPathComponent("manifest.json").path,
117-
"-out", dir.appendingPathComponent("signature").path,
119+
"-in", dir.appendingPathComponent(Self.manifestFileName).path,
120+
"-out", dir.appendingPathComponent(Self.signatureFileName).path,
118121
"-outform", "DER",
119122
"-passin", "pass:\(pemPrivateKeyPassword)",
120123
]
121124
try process.run()
122125
process.waitUntilExit()
123126

124-
return try Data(contentsOf: dir.appendingPathComponent("signature"))
127+
return try Data(contentsOf: dir.appendingPathComponent(Self.signatureFileName))
125128
} else {
126129
let signature = try CMS.sign(
127130
manifest,
@@ -177,8 +180,8 @@ public struct PassBuilder: Sendable {
177180
let sourceFiles = try Self.sourceFiles(in: tempDir, isPersonalized: personalization != nil)
178181

179182
let manifest = try self.manifest(for: sourceFiles)
180-
archiveFiles.append(ArchiveFile(filename: "manifest.json", data: manifest))
181-
try archiveFiles.append(ArchiveFile(filename: "signature", data: self.signature(for: manifest)))
183+
archiveFiles.append(ArchiveFile(filename: Self.manifestFileName, data: manifest))
184+
try archiveFiles.append(ArchiveFile(filename: Self.signatureFileName, data: self.signature(for: manifest)))
182185

183186
for file in sourceFiles {
184187
archiveFiles.append(ArchiveFile(filename: file.key, data: file.value))

0 commit comments

Comments
 (0)