@@ -194,13 +194,15 @@ fileprivate protocol ARCCredentialResponse {
194194 var rawRepresentation : Data { get }
195195}
196196
197+ @available ( macOS 10 . 15 , iOS 13 . 2 , tvOS 13 . 2 , watchOS 6 . 1 , macCatalyst 13 . 2 , visionOS 1 . 2 , * )
197198fileprivate protocol ARCPresentation < H2G> {
198199 associatedtype H2G : HashToGroup
199200 var backing : ARC . Presentation < H2G > { get }
200201 init ( rawRepresentation: some DataProtocol ) throws
201202 var rawRepresentation : Data { get }
202203}
203204
205+ @available ( macOS 10 . 15 , iOS 13 . 2 , tvOS 13 . 2 , watchOS 6 . 1 , macCatalyst 13 . 2 , visionOS 1 . 2 , * )
204206fileprivate protocol ARCCredential < H2G, Presentation> {
205207 associatedtype H2G : HashToGroup
206208 associatedtype Presentation : ARCPresentation
@@ -216,6 +218,7 @@ fileprivate protocol ARCCredential<H2G, Presentation> {
216218 mutating func makePresentation( context: some DataProtocol , presentationLimit: Int ) throws -> ( presentation: Presentation , nonce: Int )
217219}
218220
221+ @available ( macOS 10 . 15 , iOS 13 . 2 , tvOS 13 . 2 , watchOS 6 . 1 , macCatalyst 13 . 2 , visionOS 1 . 2 , * )
219222fileprivate protocol ARCPrivateKey < H2G, CredentialRequest, CredentialResponse, Credential, Presentation> {
220223 associatedtype H2G : HashToGroup
221224 associatedtype Credential
@@ -236,6 +239,7 @@ fileprivate protocol ARCPrivateKey<H2G, CredentialRequest, CredentialResponse, C
236239 ) throws -> Bool
237240}
238241
242+ @available ( macOS 10 . 15 , iOS 13 . 2 , tvOS 13 . 2 , watchOS 6 . 1 , macCatalyst 13 . 2 , visionOS 1 . 2 , * )
239243fileprivate protocol ARCPublicKey < H2G, CredentialResponse, Credential> {
240244 associatedtype H2G : HashToGroup
241245 associatedtype Precredential : ARCPrecredential
@@ -253,6 +257,7 @@ fileprivate protocol ARCPrecredential {
253257 var credentialRequest : CredentialRequest { get }
254258}
255259
260+ @available ( macOS 10 . 15 , iOS 13 . 2 , tvOS 13 . 2 , watchOS 6 . 1 , macCatalyst 13 . 2 , visionOS 1 . 2 , * )
256261fileprivate protocol ARCV1 < H2G> {
257262 associatedtype H2G : HashToGroup
258263 associatedtype CredentialRequest : ARCCredentialRequest
@@ -263,41 +268,60 @@ fileprivate protocol ARCV1<H2G> {
263268 associatedtype PublicKey : ARCPublicKey < H2G , CredentialResponse , Credential >
264269}
265270
271+ @available ( macOS 10 . 15 , iOS 13 . 2 , tvOS 13 . 2 , watchOS 6 . 1 , macCatalyst 13 . 2 , visionOS 1 . 2 , * )
266272fileprivate protocol ARCCurve : OpenSSLSupportedNISTCurve {
267273 associatedtype H2G : HashToGroup where H2G == OpenSSLHashToCurve < Self >
268274 associatedtype _ARCV1 : ARCV1 < H2G >
269275}
270276
277+ @available ( iOS 16 . 0 , macOS 13 . 0 , watchOS 9 . 0 , tvOS 16 . 0 , macCatalyst 16 . 0 , visionOS 2 . 0 , * )
271278extension P256 . _ARCV1 . Precredential : ARCPrecredential { }
279+ @available ( iOS 16 . 0 , macOS 13 . 0 , watchOS 9 . 0 , tvOS 16 . 0 , macCatalyst 16 . 0 , visionOS 2 . 0 , * )
272280extension P256 . _ARCV1 . CredentialRequest : ARCCredentialRequest { }
281+ @available ( iOS 16 . 0 , macOS 13 . 0 , watchOS 9 . 0 , tvOS 16 . 0 , macCatalyst 16 . 0 , visionOS 2 . 0 , * )
273282extension P256 . _ARCV1 . CredentialResponse : ARCCredentialResponse { }
283+ @available ( iOS 16 . 0 , macOS 13 . 0 , watchOS 9 . 0 , tvOS 16 . 0 , macCatalyst 16 . 0 , visionOS 2 . 0 , * )
274284extension P256 . _ARCV1 . Credential : ARCCredential { }
285+ @available ( iOS 16 . 0 , macOS 13 . 0 , watchOS 9 . 0 , tvOS 16 . 0 , macCatalyst 16 . 0 , visionOS 2 . 0 , * )
275286extension P256 . _ARCV1 . Presentation : ARCPresentation { }
287+ @available ( iOS 16 . 0 , macOS 13 . 0 , watchOS 9 . 0 , tvOS 16 . 0 , macCatalyst 16 . 0 , visionOS 2 . 0 , * )
276288extension P256 . _ARCV1 . PublicKey : ARCPublicKey {
277289 typealias H2G = P256 . _ARCV1 . H2G
278290}
291+ @available ( iOS 16 . 0 , macOS 13 . 0 , watchOS 9 . 0 , tvOS 16 . 0 , macCatalyst 16 . 0 , visionOS 2 . 0 , * )
279292extension P256 . _ARCV1 . PrivateKey : ARCPrivateKey { }
293+ @available ( iOS 16 . 0 , macOS 13 . 0 , watchOS 9 . 0 , tvOS 16 . 0 , macCatalyst 16 . 0 , visionOS 2 . 0 , * )
280294extension P256 . _ARCV1 : ARCV1 { }
295+ @available ( iOS 16 . 0 , macOS 13 . 0 , watchOS 9 . 0 , tvOS 16 . 0 , macCatalyst 16 . 0 , visionOS 2 . 0 , * )
281296extension P256 : ARCCurve { }
282297
283298
284299@available ( * , deprecated, message: " ARC(P-384) has been removed from the IETF draft; use ARC(P-256) instead. " )
300+ @available ( iOS 16 . 0 , macOS 13 . 0 , watchOS 9 . 0 , tvOS 16 . 0 , macCatalyst 16 . 0 , visionOS 2 . 0 , * )
285301extension P384 . _ARCV1 . Precredential : ARCPrecredential { }
286302@available ( * , deprecated, message: " ARC(P-384) has been removed from the IETF draft; use ARC(P-256) instead. " )
303+ @available ( iOS 16 . 0 , macOS 13 . 0 , watchOS 9 . 0 , tvOS 16 . 0 , macCatalyst 16 . 0 , visionOS 2 . 0 , * )
287304extension P384 . _ARCV1 . CredentialRequest : ARCCredentialRequest { }
288305@available ( * , deprecated, message: " ARC(P-384) has been removed from the IETF draft; use ARC(P-256) instead. " )
306+ @available ( iOS 16 . 0 , macOS 13 . 0 , watchOS 9 . 0 , tvOS 16 . 0 , macCatalyst 16 . 0 , visionOS 2 . 0 , * )
289307extension P384 . _ARCV1 . CredentialResponse : ARCCredentialResponse { }
290308@available ( * , deprecated, message: " ARC(P-384) has been removed from the IETF draft; use ARC(P-256) instead. " )
309+ @available ( iOS 16 . 0 , macOS 13 . 0 , watchOS 9 . 0 , tvOS 16 . 0 , macCatalyst 16 . 0 , visionOS 2 . 0 , * )
291310extension P384 . _ARCV1 . Credential : ARCCredential { }
292311@available ( * , deprecated, message: " ARC(P-384) has been removed from the IETF draft; use ARC(P-256) instead. " )
312+ @available ( iOS 16 . 0 , macOS 13 . 0 , watchOS 9 . 0 , tvOS 16 . 0 , macCatalyst 16 . 0 , visionOS 2 . 0 , * )
293313extension P384 . _ARCV1 . Presentation : ARCPresentation { }
294314@available ( * , deprecated, message: " ARC(P-384) has been removed from the IETF draft; use ARC(P-256) instead. " )
315+ @available ( iOS 16 . 0 , macOS 13 . 0 , watchOS 9 . 0 , tvOS 16 . 0 , macCatalyst 16 . 0 , visionOS 2 . 0 , * )
295316extension P384 . _ARCV1 . PublicKey : ARCPublicKey {
296317 typealias H2G = P384 . _ARCV1 . H2G
297318}
298319@available ( * , deprecated, message: " ARC(P-384) has been removed from the IETF draft; use ARC(P-256) instead. " )
320+ @available ( iOS 16 . 0 , macOS 13 . 0 , watchOS 9 . 0 , tvOS 16 . 0 , macCatalyst 16 . 0 , visionOS 2 . 0 , * )
299321extension P384 . _ARCV1 . PrivateKey : ARCPrivateKey { }
300322@available ( * , deprecated, message: " ARC(P-384) has been removed from the IETF draft; use ARC(P-256) instead. " )
323+ @available ( iOS 16 . 0 , macOS 13 . 0 , watchOS 9 . 0 , tvOS 16 . 0 , macCatalyst 16 . 0 , visionOS 2 . 0 , * )
301324extension P384 . _ARCV1 : ARCV1 { }
302325@available ( * , deprecated, message: " ARC(P-384) has been removed from the IETF draft; use ARC(P-256) instead. " )
326+ @available ( iOS 16 . 0 , macOS 13 . 0 , watchOS 9 . 0 , tvOS 16 . 0 , macCatalyst 16 . 0 , visionOS 2 . 0 , * )
303327extension P384 : ARCCurve { }
0 commit comments