Skip to content

Commit 0b1b470

Browse files
arc: Deprecate ARC P384
1 parent edb19a5 commit 0b1b470

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

Sources/_CryptoExtras/ARC/ARC+API.swift

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -396,6 +396,7 @@ extension P256._ARCV1.PrivateKey {
396396

397397
// MARK: - P384 + ARC(P-384)
398398
@available(iOS 16.0, macOS 13.0, watchOS 9.0, tvOS 16.0, macCatalyst 16.0, visionOS 2.0, *)
399+
@available(*, deprecated, message: "ARC(P-384) has been removed from the IETF draft; use ARC(P-256) instead.")
399400
extension P384 {
400401
/// Anonymous Rate-Limited Credentials (ARC).
401402
///
@@ -413,6 +414,7 @@ extension P384 {
413414
}
414415

415416
@available(iOS 16.0, macOS 13.0, watchOS 9.0, tvOS 16.0, macCatalyst 16.0, visionOS 2.0, *)
417+
@available(*, deprecated, message: "ARC(P-384) has been removed from the IETF draft; use ARC(P-256) instead.")
416418
extension P384._ARCV1 {
417419
/// The server secrets used to issue and verify credentials.
418420
public struct PrivateKey: Sendable {
@@ -630,6 +632,7 @@ extension P384._ARCV1 {
630632
}
631633

632634
@available(iOS 16.0, macOS 13.0, watchOS 9.0, tvOS 16.0, macCatalyst 16.0, visionOS 2.0, *)
635+
@available(*, deprecated, message: "ARC(P-384) has been removed from the IETF draft; use ARC(P-256) instead.")
633636
extension P384._ARCV1.PublicKey {
634637
internal func prepareCredentialRequest<D: DataProtocol>(
635638
requestContext: D,
@@ -667,6 +670,7 @@ extension P384._ARCV1.PublicKey {
667670
}
668671

669672
@available(iOS 16.0, macOS 13.0, watchOS 9.0, tvOS 16.0, macCatalyst 16.0, visionOS 2.0, *)
673+
@available(*, deprecated, message: "ARC(P-384) has been removed from the IETF draft; use ARC(P-256) instead.")
670674
extension P384._ARCV1.PrivateKey {
671675
internal func issue(
672676
_ credentialRequest: P384._ARCV1.CredentialRequest,
@@ -683,6 +687,7 @@ extension P384._ARCV1.PrivateKey {
683687
}
684688

685689
@available(iOS 16.0, macOS 13.0, watchOS 9.0, tvOS 16.0, macCatalyst 16.0, visionOS 2.0, *)
690+
@available(*, deprecated, message: "ARC(P-384) has been removed from the IETF draft; use ARC(P-256) instead.")
686691
extension P384._ARCV1.PublicKey {
687692
/// Create a credential from the issuer response.
688693
public func finalize(
@@ -695,6 +700,7 @@ extension P384._ARCV1.PublicKey {
695700
}
696701

697702
@available(iOS 16.0, macOS 13.0, watchOS 9.0, tvOS 16.0, macCatalyst 16.0, visionOS 2.0, *)
703+
@available(*, deprecated, message: "ARC(P-384) has been removed from the IETF draft; use ARC(P-256) instead.")
698704
extension P384._ARCV1.Credential {
699705
internal mutating func makePresentation<D: DataProtocol>(
700706
context: D,
@@ -740,6 +746,7 @@ extension P384._ARCV1.Credential {
740746
}
741747

742748
@available(iOS 16.0, macOS 13.0, watchOS 9.0, tvOS 16.0, macCatalyst 16.0, visionOS 2.0, *)
749+
@available(*, deprecated, message: "ARC(P-384) has been removed from the IETF draft; use ARC(P-256) instead.")
743750
extension P384._ARCV1.PrivateKey {
744751
/// Verify a presentation is valid for a given attribute.
745752
///

Tests/_CryptoExtrasTests/ARC/ARCAPITests.swift

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import XCTest
1818
@available(iOS 16.0, macOS 13.0, watchOS 9.0, tvOS 16.0, macCatalyst 16.0, visionOS 2.0, *)
1919
final class ARCAPITests: XCTestCase {
2020

21+
@available(*, deprecated, message: "ARC(P-384) has been removed from the IETF draft; use ARC(P-256) instead.")
2122
func testVectors() throws {
2223
let data = ARCEncodedTestVector.data(using: .utf8)!
2324
let decoder = JSONDecoder()
@@ -279,14 +280,24 @@ extension P256._ARCV1.PrivateKey: ARCPrivateKey {}
279280
extension P256._ARCV1: ARCV1 {}
280281
extension P256: ARCCurve {}
281282

283+
284+
@available(*, deprecated, message: "ARC(P-384) has been removed from the IETF draft; use ARC(P-256) instead.")
282285
extension P384._ARCV1.Precredential: ARCPrecredential {}
286+
@available(*, deprecated, message: "ARC(P-384) has been removed from the IETF draft; use ARC(P-256) instead.")
283287
extension P384._ARCV1.CredentialRequest: ARCCredentialRequest {}
288+
@available(*, deprecated, message: "ARC(P-384) has been removed from the IETF draft; use ARC(P-256) instead.")
284289
extension P384._ARCV1.CredentialResponse: ARCCredentialResponse {}
290+
@available(*, deprecated, message: "ARC(P-384) has been removed from the IETF draft; use ARC(P-256) instead.")
285291
extension P384._ARCV1.Credential: ARCCredential {}
292+
@available(*, deprecated, message: "ARC(P-384) has been removed from the IETF draft; use ARC(P-256) instead.")
286293
extension P384._ARCV1.Presentation: ARCPresentation {}
294+
@available(*, deprecated, message: "ARC(P-384) has been removed from the IETF draft; use ARC(P-256) instead.")
287295
extension P384._ARCV1.PublicKey: ARCPublicKey {
288296
typealias H2G = P384._ARCV1.H2G
289297
}
298+
@available(*, deprecated, message: "ARC(P-384) has been removed from the IETF draft; use ARC(P-256) instead.")
290299
extension P384._ARCV1.PrivateKey: ARCPrivateKey {}
300+
@available(*, deprecated, message: "ARC(P-384) has been removed from the IETF draft; use ARC(P-256) instead.")
291301
extension P384._ARCV1: ARCV1 {}
302+
@available(*, deprecated, message: "ARC(P-384) has been removed from the IETF draft; use ARC(P-256) instead.")
292303
extension P384: ARCCurve {}

0 commit comments

Comments
 (0)