@@ -54,7 +54,7 @@ public enum CertificatePolicyKey: Hashable, CustomStringConvertible {
54
54
55
55
// MARK: - Certificate policies
56
56
57
- protocol CertificatePolicy {
57
+ package protocol CertificatePolicy {
58
58
/// Validates the given certificate chain.
59
59
///
60
60
/// - Parameters:
@@ -71,11 +71,11 @@ extension CertificatePolicy {
71
71
/// - Parameters:
72
72
/// - certChain: The certificate being verified must be the first element of the array, with its issuer the next
73
73
/// element and so on, and the root CA certificate is last.
74
- func validate( certChain: [ Certificate ] ) async throws {
74
+ package func validate( certChain: [ Certificate ] ) async throws {
75
75
try await self . validate ( certChain: certChain, validationTime: Date ( ) )
76
76
}
77
77
78
- func verify(
78
+ package func verify(
79
79
certChain: [ Certificate ] ,
80
80
trustedRoots: [ Certificate ] ? ,
81
81
@PolicyBuilder policies: ( ) -> some VerifierPolicy ,
@@ -114,7 +114,7 @@ extension CertificatePolicy {
114
114
}
115
115
}
116
116
117
- enum CertificatePolicyError : Error , Equatable {
117
+ package enum CertificatePolicyError : Error , Equatable {
118
118
case noTrustedRootCertsConfigured
119
119
case emptyCertChain
120
120
case invalidCertChain
@@ -128,7 +128,7 @@ enum CertificatePolicyError: Error, Equatable {
128
128
/// - The certificate must use either 256-bit EC (recommended) or 2048-bit RSA key.
129
129
/// - The certificate must not be revoked. The certificate authority must support OCSP.
130
130
/// - The certificate chain is valid and root certificate must be trusted.
131
- struct DefaultCertificatePolicy : CertificatePolicy {
131
+ package struct DefaultCertificatePolicy : CertificatePolicy {
132
132
let trustedRoots : [ Certificate ]
133
133
let expectedSubjectUserID : String ?
134
134
let expectedSubjectOrganizationalUnit : String ?
@@ -146,7 +146,7 @@ struct DefaultCertificatePolicy: CertificatePolicy {
146
146
/// user configured and dynamic, while this is configured by SwiftPM and static.
147
147
/// - expectedSubjectUserID: The subject user ID that must match if specified.
148
148
/// - expectedSubjectOrganizationalUnit: The subject organizational unit name that must match if specified.
149
- init (
149
+ package init (
150
150
trustedRootCertsDir: URL ? ,
151
151
additionalTrustedRootCerts: [ Certificate ] ? ,
152
152
expectedSubjectUserID: String ? = nil ,
@@ -168,7 +168,7 @@ struct DefaultCertificatePolicy: CertificatePolicy {
168
168
self . observabilityScope = observabilityScope
169
169
}
170
170
171
- func validate( certChain: [ Certificate ] , validationTime: Date ) async throws {
171
+ package func validate( certChain: [ Certificate ] , validationTime: Date ) async throws {
172
172
guard !certChain. isEmpty else {
173
173
throw CertificatePolicyError . emptyCertChain
174
174
}
@@ -202,7 +202,7 @@ struct DefaultCertificatePolicy: CertificatePolicy {
202
202
///
203
203
/// This has the same requirements as `DefaultCertificatePolicy` plus additional
204
204
/// marker extensions for Swift Package Collection certifiicates.
205
- struct ADPSwiftPackageCollectionCertificatePolicy : CertificatePolicy {
205
+ package struct ADPSwiftPackageCollectionCertificatePolicy : CertificatePolicy {
206
206
let trustedRoots : [ Certificate ]
207
207
let expectedSubjectUserID : String ?
208
208
let expectedSubjectOrganizationalUnit : String ?
@@ -220,7 +220,7 @@ struct ADPSwiftPackageCollectionCertificatePolicy: CertificatePolicy {
220
220
/// user configured and dynamic, while this is configured by SwiftPM and static.
221
221
/// - expectedSubjectUserID: The subject user ID that must match if specified.
222
222
/// - expectedSubjectOrganizationalUnit: The subject organizational unit name that must match if specified.
223
- init (
223
+ package init (
224
224
trustedRootCertsDir: URL ? ,
225
225
additionalTrustedRootCerts: [ Certificate ] ? ,
226
226
expectedSubjectUserID: String ? = nil ,
@@ -242,7 +242,7 @@ struct ADPSwiftPackageCollectionCertificatePolicy: CertificatePolicy {
242
242
self . observabilityScope = observabilityScope
243
243
}
244
244
245
- func validate( certChain: [ Certificate ] , validationTime: Date ) async throws {
245
+ package func validate( certChain: [ Certificate ] , validationTime: Date ) async throws {
246
246
guard !certChain. isEmpty else {
247
247
throw CertificatePolicyError . emptyCertChain
248
248
}
@@ -353,13 +353,13 @@ struct ADPAppleDistributionCertificatePolicy: CertificatePolicy {
353
353
// MARK: - Verifier policies
354
354
355
355
/// Policy for code signing certificates.
356
- struct _CodeSigningPolicy : VerifierPolicy {
357
- let verifyingCriticalExtensions : [ ASN1ObjectIdentifier ] = [
356
+ package struct _CodeSigningPolicy : VerifierPolicy {
357
+ package let verifyingCriticalExtensions : [ ASN1ObjectIdentifier ] = [
358
358
ASN1ObjectIdentifier . X509ExtensionID. keyUsage,
359
359
ASN1ObjectIdentifier . X509ExtensionID. extendedKeyUsage,
360
360
]
361
361
362
- func chainMeetsPolicyRequirements( chain: UnverifiedCertificateChain ) async -> PolicyEvaluationResult {
362
+ package func chainMeetsPolicyRequirements( chain: UnverifiedCertificateChain ) async -> PolicyEvaluationResult {
363
363
let isCodeSigning = (
364
364
try ? chain. leaf. extensions. extendedKeyUsage? . contains ( ExtendedKeyUsage . Usage. codeSigning)
365
365
) ?? false
@@ -368,6 +368,8 @@ struct _CodeSigningPolicy: VerifierPolicy {
368
368
}
369
369
return . meetsPolicy
370
370
}
371
+
372
+ package init ( ) { }
371
373
}
372
374
373
375
/// Policy for revocation check via OCSP.
0 commit comments