diff --git a/Benchmarks/Benchmarks/Benchmarks.swift b/Benchmarks/Benchmarks/Benchmarks.swift index 64626f573..5836678c1 100644 --- a/Benchmarks/Benchmarks/Benchmarks.swift +++ b/Benchmarks/Benchmarks/Benchmarks.swift @@ -13,9 +13,14 @@ //===----------------------------------------------------------------------===// import Benchmark import Crypto -import Foundation import _CryptoExtras +#if canImport(FoundationEssentials) +import FoundationEssentials +#else +import Foundation +#endif + let benchmarks = { let defaultMetrics: [BenchmarkMetric] = [.mallocCountTotal, .cpuTotal] diff --git a/Sources/Crypto/AEADs/AES/GCM/AES-GCM.swift b/Sources/Crypto/AEADs/AES/GCM/AES-GCM.swift index 1ba3ca8ad..df016ce60 100644 --- a/Sources/Crypto/AEADs/AES/GCM/AES-GCM.swift +++ b/Sources/Crypto/AEADs/AES/GCM/AES-GCM.swift @@ -25,8 +25,12 @@ typealias AESGCMImpl = OpenSSLAESGCMImpl #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION public import SwiftSystem #else +#if canImport(FoundationEssentials) +public import FoundationEssentials +#else public import Foundation #endif +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) extension AES { diff --git a/Sources/Crypto/AEADs/AES/GCM/BoringSSL/AES-GCM_boring.swift b/Sources/Crypto/AEADs/AES/GCM/BoringSSL/AES-GCM_boring.swift index 666442b0c..33ae0ca0e 100644 --- a/Sources/Crypto/AEADs/AES/GCM/BoringSSL/AES-GCM_boring.swift +++ b/Sources/Crypto/AEADs/AES/GCM/BoringSSL/AES-GCM_boring.swift @@ -16,7 +16,11 @@ #else @_implementationOnly import CCryptoBoringSSL import CryptoBoringWrapper +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) enum OpenSSLAESGCMImpl { diff --git a/Sources/Crypto/AEADs/ChachaPoly/BoringSSL/ChaChaPoly_boring.swift b/Sources/Crypto/AEADs/ChachaPoly/BoringSSL/ChaChaPoly_boring.swift index 0d3933965..349cd99aa 100644 --- a/Sources/Crypto/AEADs/ChachaPoly/BoringSSL/ChaChaPoly_boring.swift +++ b/Sources/Crypto/AEADs/ChachaPoly/BoringSSL/ChaChaPoly_boring.swift @@ -17,7 +17,11 @@ @_implementationOnly import CCryptoBoringSSL @_implementationOnly import CCryptoBoringSSLShims import CryptoBoringWrapper +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) extension BoringSSLAEAD { diff --git a/Sources/Crypto/AEADs/ChachaPoly/ChaChaPoly.swift b/Sources/Crypto/AEADs/ChachaPoly/ChaChaPoly.swift index 223cb521b..e242c5ff1 100644 --- a/Sources/Crypto/AEADs/ChachaPoly/ChaChaPoly.swift +++ b/Sources/Crypto/AEADs/ChachaPoly/ChaChaPoly.swift @@ -25,8 +25,12 @@ typealias ChaChaPolyImpl = OpenSSLChaChaPolyImpl #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION public import SwiftSystem #else +#if canImport(FoundationEssentials) +public import FoundationEssentials +#else public import Foundation #endif +#endif /// An implementation of the ChaCha20-Poly1305 cipher. diff --git a/Sources/Crypto/AEADs/Cipher.swift b/Sources/Crypto/AEADs/Cipher.swift index 8ac46f1e7..2e7dc81eb 100644 --- a/Sources/Crypto/AEADs/Cipher.swift +++ b/Sources/Crypto/AEADs/Cipher.swift @@ -18,8 +18,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION import SwiftSystem #else +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation #endif +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) diff --git a/Sources/Crypto/AEADs/Nonces.swift b/Sources/Crypto/AEADs/Nonces.swift index 7310294a3..a9f17c75b 100644 --- a/Sources/Crypto/AEADs/Nonces.swift +++ b/Sources/Crypto/AEADs/Nonces.swift @@ -17,8 +17,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION public import SwiftSystem #else +#if canImport(FoundationEssentials) +public import FoundationEssentials +#else public import Foundation #endif +#endif // MARK: - Generated file, do NOT edit // any edits of this file WILL be overwritten and thus discarded // see section `gyb` in `README` for details. diff --git a/Sources/Crypto/AEADs/Nonces.swift.gyb b/Sources/Crypto/AEADs/Nonces.swift.gyb index 9b05da21d..83f6c594e 100644 --- a/Sources/Crypto/AEADs/Nonces.swift.gyb +++ b/Sources/Crypto/AEADs/Nonces.swift.gyb @@ -17,8 +17,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION public import SwiftSystem #else +#if canImport(FoundationEssentials) +public import FoundationEssentials +#else public import Foundation #endif +#endif // MARK: - Generated file, do NOT edit // any edits of this file WILL be overwritten and thus discarded // see section `gyb` in `README` for details. diff --git a/Sources/Crypto/ASN1/ASN1.swift b/Sources/Crypto/ASN1/ASN1.swift index fdd17f81a..4cba7ff28 100644 --- a/Sources/Crypto/ASN1/ASN1.swift +++ b/Sources/Crypto/ASN1/ASN1.swift @@ -18,8 +18,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION import SwiftSystem #else +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation #endif +#endif // This module implements "just enough" ASN.1. Specifically, we implement exactly enough ASN.1 DER parsing to handle // the following use-cases: diff --git a/Sources/Crypto/ASN1/Basic ASN1 Types/ASN1Any.swift b/Sources/Crypto/ASN1/Basic ASN1 Types/ASN1Any.swift index 575d23d81..ec3a95cbf 100644 --- a/Sources/Crypto/ASN1/Basic ASN1 Types/ASN1Any.swift +++ b/Sources/Crypto/ASN1/Basic ASN1 Types/ASN1Any.swift @@ -18,8 +18,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION import SwiftSystem #else +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation #endif +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) extension ASN1 { diff --git a/Sources/Crypto/ASN1/Basic ASN1 Types/ASN1BitString.swift b/Sources/Crypto/ASN1/Basic ASN1 Types/ASN1BitString.swift index ce43673ca..c5babc680 100644 --- a/Sources/Crypto/ASN1/Basic ASN1 Types/ASN1BitString.swift +++ b/Sources/Crypto/ASN1/Basic ASN1 Types/ASN1BitString.swift @@ -18,8 +18,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION import SwiftSystem #else +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation #endif +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) extension ASN1 { diff --git a/Sources/Crypto/ASN1/Basic ASN1 Types/ASN1Boolean.swift b/Sources/Crypto/ASN1/Basic ASN1 Types/ASN1Boolean.swift index a2c1c3f19..3e4ce4283 100644 --- a/Sources/Crypto/ASN1/Basic ASN1 Types/ASN1Boolean.swift +++ b/Sources/Crypto/ASN1/Basic ASN1 Types/ASN1Boolean.swift @@ -18,8 +18,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION import SwiftSystem #else +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation #endif +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) extension Bool: ASN1ImplicitlyTaggable { diff --git a/Sources/Crypto/ASN1/Basic ASN1 Types/ASN1Identifier.swift b/Sources/Crypto/ASN1/Basic ASN1 Types/ASN1Identifier.swift index c47477cb7..54c9f537c 100644 --- a/Sources/Crypto/ASN1/Basic ASN1 Types/ASN1Identifier.swift +++ b/Sources/Crypto/ASN1/Basic ASN1 Types/ASN1Identifier.swift @@ -18,8 +18,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION import SwiftSystem #else +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation #endif +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) extension ASN1 { diff --git a/Sources/Crypto/ASN1/Basic ASN1 Types/ASN1Integer.swift b/Sources/Crypto/ASN1/Basic ASN1 Types/ASN1Integer.swift index 7026f634e..0238a9ca1 100644 --- a/Sources/Crypto/ASN1/Basic ASN1 Types/ASN1Integer.swift +++ b/Sources/Crypto/ASN1/Basic ASN1 Types/ASN1Integer.swift @@ -18,8 +18,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION import SwiftSystem #else +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation #endif +#endif /// A protocol that represents any internal object that can present itself as a INTEGER, or be parsed from /// a INTEGER. diff --git a/Sources/Crypto/ASN1/Basic ASN1 Types/ASN1Null.swift b/Sources/Crypto/ASN1/Basic ASN1 Types/ASN1Null.swift index 850d81747..eb0caade6 100644 --- a/Sources/Crypto/ASN1/Basic ASN1 Types/ASN1Null.swift +++ b/Sources/Crypto/ASN1/Basic ASN1 Types/ASN1Null.swift @@ -18,8 +18,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION import SwiftSystem #else +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation #endif +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) extension ASN1 { diff --git a/Sources/Crypto/ASN1/Basic ASN1 Types/ASN1OctetString.swift b/Sources/Crypto/ASN1/Basic ASN1 Types/ASN1OctetString.swift index 1b6374a50..ced74024e 100644 --- a/Sources/Crypto/ASN1/Basic ASN1 Types/ASN1OctetString.swift +++ b/Sources/Crypto/ASN1/Basic ASN1 Types/ASN1OctetString.swift @@ -18,8 +18,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION import SwiftSystem #else +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation #endif +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) extension ASN1 { diff --git a/Sources/Crypto/ASN1/Basic ASN1 Types/ASN1Strings.swift b/Sources/Crypto/ASN1/Basic ASN1 Types/ASN1Strings.swift index 794150b53..8fc52ec1a 100644 --- a/Sources/Crypto/ASN1/Basic ASN1 Types/ASN1Strings.swift +++ b/Sources/Crypto/ASN1/Basic ASN1 Types/ASN1Strings.swift @@ -18,8 +18,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION import SwiftSystem #else +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation #endif +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) private func contents(of string: StaticString) -> ArraySlice { diff --git a/Sources/Crypto/ASN1/Basic ASN1 Types/ArraySliceBigint.swift b/Sources/Crypto/ASN1/Basic ASN1 Types/ArraySliceBigint.swift index 7a00fd1e2..73ba9404b 100644 --- a/Sources/Crypto/ASN1/Basic ASN1 Types/ArraySliceBigint.swift +++ b/Sources/Crypto/ASN1/Basic ASN1 Types/ArraySliceBigint.swift @@ -18,8 +18,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION import SwiftSystem #else +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation #endif +#endif // For temporary purposes we pretend that ArraySlice is our "bigint" type. We don't really need anything else. @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) diff --git a/Sources/Crypto/ASN1/Basic ASN1 Types/GeneralizedTime.swift b/Sources/Crypto/ASN1/Basic ASN1 Types/GeneralizedTime.swift index bec502fd4..95789c70f 100644 --- a/Sources/Crypto/ASN1/Basic ASN1 Types/GeneralizedTime.swift +++ b/Sources/Crypto/ASN1/Basic ASN1 Types/GeneralizedTime.swift @@ -18,8 +18,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION import SwiftSystem #else +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation #endif +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) extension ASN1 { diff --git a/Sources/Crypto/ASN1/Basic ASN1 Types/ObjectIdentifier.swift b/Sources/Crypto/ASN1/Basic ASN1 Types/ObjectIdentifier.swift index 2d21798e0..a4283bb29 100644 --- a/Sources/Crypto/ASN1/Basic ASN1 Types/ObjectIdentifier.swift +++ b/Sources/Crypto/ASN1/Basic ASN1 Types/ObjectIdentifier.swift @@ -18,8 +18,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION import SwiftSystem #else +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation #endif +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) extension ASN1 { diff --git a/Sources/Crypto/ASN1/ECDSASignature.swift b/Sources/Crypto/ASN1/ECDSASignature.swift index 6029e5a9b..09bfafbae 100644 --- a/Sources/Crypto/ASN1/ECDSASignature.swift +++ b/Sources/Crypto/ASN1/ECDSASignature.swift @@ -18,8 +18,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION import SwiftSystem #else +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation #endif +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) extension ASN1 { diff --git a/Sources/Crypto/ASN1/PEMDocument.swift b/Sources/Crypto/ASN1/PEMDocument.swift index 05319a6b3..1cd182c10 100644 --- a/Sources/Crypto/ASN1/PEMDocument.swift +++ b/Sources/Crypto/ASN1/PEMDocument.swift @@ -18,8 +18,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION import SwiftSystem #else +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation #endif +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) extension ASN1 { diff --git a/Sources/Crypto/ASN1/PKCS8PrivateKey.swift b/Sources/Crypto/ASN1/PKCS8PrivateKey.swift index 3c3003edf..2b3693d79 100644 --- a/Sources/Crypto/ASN1/PKCS8PrivateKey.swift +++ b/Sources/Crypto/ASN1/PKCS8PrivateKey.swift @@ -17,8 +17,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION import SwiftSystem #else +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation #endif +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) extension ASN1 { diff --git a/Sources/Crypto/ASN1/SEC1PrivateKey.swift b/Sources/Crypto/ASN1/SEC1PrivateKey.swift index 86cd7b522..3a299118b 100644 --- a/Sources/Crypto/ASN1/SEC1PrivateKey.swift +++ b/Sources/Crypto/ASN1/SEC1PrivateKey.swift @@ -18,8 +18,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION import SwiftSystem #else +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation #endif +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) extension ASN1 { diff --git a/Sources/Crypto/ASN1/SubjectPublicKeyInfo.swift b/Sources/Crypto/ASN1/SubjectPublicKeyInfo.swift index 9e113a104..00f82defc 100644 --- a/Sources/Crypto/ASN1/SubjectPublicKeyInfo.swift +++ b/Sources/Crypto/ASN1/SubjectPublicKeyInfo.swift @@ -18,8 +18,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION import SwiftSystem #else +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation #endif +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) extension ASN1 { diff --git a/Sources/Crypto/Digests/Digest.swift b/Sources/Crypto/Digests/Digest.swift index b42e30cd6..a7b5c735c 100644 --- a/Sources/Crypto/Digests/Digest.swift +++ b/Sources/Crypto/Digests/Digest.swift @@ -18,8 +18,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION public import SwiftSystem #else +#if canImport(FoundationEssentials) +public import FoundationEssentials +#else public import Foundation #endif +#endif #if hasFeature(Embedded) /// A type that represents the output of a hash. diff --git a/Sources/Crypto/Digests/HashFunctions.swift b/Sources/Crypto/Digests/HashFunctions.swift index 887296e65..a0c1df748 100644 --- a/Sources/Crypto/Digests/HashFunctions.swift +++ b/Sources/Crypto/Digests/HashFunctions.swift @@ -25,8 +25,12 @@ typealias DigestImpl = OpenSSLDigestImpl #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION public import SwiftSystem #else +#if canImport(FoundationEssentials) +public import FoundationEssentials +#else public import Foundation #endif +#endif /// A type that performs cryptographically secure hashing. /// diff --git a/Sources/Crypto/HPKE/Ciphersuite/HPKE-AEAD.swift b/Sources/Crypto/HPKE/Ciphersuite/HPKE-AEAD.swift index 4a501269b..db00f1b14 100644 --- a/Sources/Crypto/HPKE/Ciphersuite/HPKE-AEAD.swift +++ b/Sources/Crypto/HPKE/Ciphersuite/HPKE-AEAD.swift @@ -18,8 +18,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION import SwiftSystem #else +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation #endif +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) diff --git a/Sources/Crypto/HPKE/Ciphersuite/HPKE-Ciphersuite.swift b/Sources/Crypto/HPKE/Ciphersuite/HPKE-Ciphersuite.swift index 5bfa85f53..69fbc0c96 100644 --- a/Sources/Crypto/HPKE/Ciphersuite/HPKE-Ciphersuite.swift +++ b/Sources/Crypto/HPKE/Ciphersuite/HPKE-Ciphersuite.swift @@ -18,8 +18,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION import SwiftSystem #else +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation #endif +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) diff --git a/Sources/Crypto/HPKE/Ciphersuite/HPKE-KDF.swift b/Sources/Crypto/HPKE/Ciphersuite/HPKE-KDF.swift index eed03a15d..19f0158f2 100644 --- a/Sources/Crypto/HPKE/Ciphersuite/HPKE-KDF.swift +++ b/Sources/Crypto/HPKE/Ciphersuite/HPKE-KDF.swift @@ -18,8 +18,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION import SwiftSystem #else +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation #endif +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) extension HPKE { diff --git a/Sources/Crypto/HPKE/Ciphersuite/HPKE-KexKeyDerivation.swift b/Sources/Crypto/HPKE/Ciphersuite/HPKE-KexKeyDerivation.swift index f37ba8006..45220fd3d 100644 --- a/Sources/Crypto/HPKE/Ciphersuite/HPKE-KexKeyDerivation.swift +++ b/Sources/Crypto/HPKE/Ciphersuite/HPKE-KexKeyDerivation.swift @@ -18,8 +18,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION import SwiftSystem #else +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation #endif +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) diff --git a/Sources/Crypto/HPKE/Ciphersuite/HPKE-LabeledExtract.swift b/Sources/Crypto/HPKE/Ciphersuite/HPKE-LabeledExtract.swift index 8e5d97e60..ba8d4b38c 100644 --- a/Sources/Crypto/HPKE/Ciphersuite/HPKE-LabeledExtract.swift +++ b/Sources/Crypto/HPKE/Ciphersuite/HPKE-LabeledExtract.swift @@ -18,8 +18,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION import SwiftSystem #else +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation #endif +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) diff --git a/Sources/Crypto/HPKE/Ciphersuite/HPKE-Utils.swift b/Sources/Crypto/HPKE/Ciphersuite/HPKE-Utils.swift index a84c60d96..e60e6ef72 100644 --- a/Sources/Crypto/HPKE/Ciphersuite/HPKE-Utils.swift +++ b/Sources/Crypto/HPKE/Ciphersuite/HPKE-Utils.swift @@ -18,8 +18,25 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION import SwiftSystem #else +#if canImport(FoundationEssentials) +#if os(Windows) +import ucrt +#elseif canImport(Darwin) +import Darwin +#elseif canImport(Glibc) +import Glibc +#elseif canImport(Musl) +import Musl +#elseif canImport(Android) +import Android +#elseif canImport(WASILibc) +import WASILibc +#endif +import FoundationEssentials +#else import Foundation #endif +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) diff --git a/Sources/Crypto/HPKE/Ciphersuite/KEM/Conformances/DHKEM.swift b/Sources/Crypto/HPKE/Ciphersuite/KEM/Conformances/DHKEM.swift index 5e06baf88..e6e483aca 100644 --- a/Sources/Crypto/HPKE/Ciphersuite/KEM/Conformances/DHKEM.swift +++ b/Sources/Crypto/HPKE/Ciphersuite/KEM/Conformances/DHKEM.swift @@ -18,8 +18,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION import SwiftSystem #else +#if canImport(FoundationEssentials) +public import FoundationEssentials +#else public import Foundation #endif +#endif /// A type that ``HPKE`` uses to encode the public key. @preconcurrency diff --git a/Sources/Crypto/HPKE/Ciphersuite/KEM/Conformances/HPKE-KEM-Curve25519.swift b/Sources/Crypto/HPKE/Ciphersuite/KEM/Conformances/HPKE-KEM-Curve25519.swift index 59d78feaf..2d707f3a6 100644 --- a/Sources/Crypto/HPKE/Ciphersuite/KEM/Conformances/HPKE-KEM-Curve25519.swift +++ b/Sources/Crypto/HPKE/Ciphersuite/KEM/Conformances/HPKE-KEM-Curve25519.swift @@ -18,8 +18,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION public import SwiftSystem #else +#if canImport(FoundationEssentials) +public import FoundationEssentials +#else public import Foundation #endif +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) diff --git a/Sources/Crypto/HPKE/Ciphersuite/KEM/Conformances/HPKE-NIST-EC-KEMs.swift b/Sources/Crypto/HPKE/Ciphersuite/KEM/Conformances/HPKE-NIST-EC-KEMs.swift index e7e942b1e..2d20fdadd 100644 --- a/Sources/Crypto/HPKE/Ciphersuite/KEM/Conformances/HPKE-NIST-EC-KEMs.swift +++ b/Sources/Crypto/HPKE/Ciphersuite/KEM/Conformances/HPKE-NIST-EC-KEMs.swift @@ -18,8 +18,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION public import SwiftSystem #else +#if canImport(FoundationEssentials) +public import FoundationEssentials +#else public import Foundation #endif +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) extension P256.KeyAgreement.PrivateKey: HPKEDiffieHellmanPrivateKeyGeneration { diff --git a/Sources/Crypto/HPKE/Ciphersuite/KEM/HPKE-KEM.swift b/Sources/Crypto/HPKE/Ciphersuite/KEM/HPKE-KEM.swift index 3a0bbc937..a3e51c75b 100644 --- a/Sources/Crypto/HPKE/Ciphersuite/KEM/HPKE-KEM.swift +++ b/Sources/Crypto/HPKE/Ciphersuite/KEM/HPKE-KEM.swift @@ -17,8 +17,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION import SwiftSystem #else +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation #endif +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) extension HPKE { diff --git a/Sources/Crypto/HPKE/HPKE-Errors.swift b/Sources/Crypto/HPKE/HPKE-Errors.swift index f94306851..677bcfb51 100644 --- a/Sources/Crypto/HPKE/HPKE-Errors.swift +++ b/Sources/Crypto/HPKE/HPKE-Errors.swift @@ -18,8 +18,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION import SwiftSystem #else +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation #endif +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) extension HPKE { diff --git a/Sources/Crypto/HPKE/HPKE.swift b/Sources/Crypto/HPKE/HPKE.swift index 756926988..9a3c3958c 100644 --- a/Sources/Crypto/HPKE/HPKE.swift +++ b/Sources/Crypto/HPKE/HPKE.swift @@ -17,8 +17,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION import SwiftSystem #else +#if canImport(FoundationEssentials) +public import FoundationEssentials +#else public import Foundation #endif +#endif /// A container for hybrid public key encryption (HPKE) operations. /// diff --git a/Sources/Crypto/HPKE/Key Schedule/HPKE-Context.swift b/Sources/Crypto/HPKE/Key Schedule/HPKE-Context.swift index 267688503..41ab963fe 100644 --- a/Sources/Crypto/HPKE/Key Schedule/HPKE-Context.swift +++ b/Sources/Crypto/HPKE/Key Schedule/HPKE-Context.swift @@ -18,8 +18,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION import SwiftSystem #else +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation #endif +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) extension HPKE { diff --git a/Sources/Crypto/HPKE/Key Schedule/HPKE-KeySchedule.swift b/Sources/Crypto/HPKE/Key Schedule/HPKE-KeySchedule.swift index a45a7b40f..1569a88f3 100644 --- a/Sources/Crypto/HPKE/Key Schedule/HPKE-KeySchedule.swift +++ b/Sources/Crypto/HPKE/Key Schedule/HPKE-KeySchedule.swift @@ -18,8 +18,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION import SwiftSystem #else +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation #endif +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) extension HPKE { diff --git a/Sources/Crypto/KEM/BoringSSL/MLKEM_boring.swift b/Sources/Crypto/KEM/BoringSSL/MLKEM_boring.swift index 035478808..ae7690c33 100644 --- a/Sources/Crypto/KEM/BoringSSL/MLKEM_boring.swift +++ b/Sources/Crypto/KEM/BoringSSL/MLKEM_boring.swift @@ -20,7 +20,11 @@ @_exported import CryptoKit #else @_implementationOnly import CCryptoBoringSSL +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) extension MLKEM768 { diff --git a/Sources/Crypto/KEM/BoringSSL/MLKEM_boring.swift.gyb b/Sources/Crypto/KEM/BoringSSL/MLKEM_boring.swift.gyb index a4b056e01..979cf314b 100644 --- a/Sources/Crypto/KEM/BoringSSL/MLKEM_boring.swift.gyb +++ b/Sources/Crypto/KEM/BoringSSL/MLKEM_boring.swift.gyb @@ -20,7 +20,11 @@ @_exported import CryptoKit #else @_implementationOnly import CCryptoBoringSSL +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif %{ parameter_sets = ["768", "1024"] }% diff --git a/Sources/Crypto/KEM/BoringSSL/MLKEM_wrapper.swift b/Sources/Crypto/KEM/BoringSSL/MLKEM_wrapper.swift index fbb84921e..9fc83b433 100644 --- a/Sources/Crypto/KEM/BoringSSL/MLKEM_wrapper.swift +++ b/Sources/Crypto/KEM/BoringSSL/MLKEM_wrapper.swift @@ -16,7 +16,11 @@ @_exported import CryptoKit #else @_implementationOnly import CCryptoBoringSSL +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) protocol BoringSSLBackedMLKEMPrivateKey { diff --git a/Sources/Crypto/KEM/BoringSSL/XWing_boring.swift b/Sources/Crypto/KEM/BoringSSL/XWing_boring.swift index 9a6a7f600..6d6aa724b 100644 --- a/Sources/Crypto/KEM/BoringSSL/XWing_boring.swift +++ b/Sources/Crypto/KEM/BoringSSL/XWing_boring.swift @@ -16,7 +16,11 @@ @_exported import CryptoKit #else @_implementationOnly import CCryptoBoringSSL +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) struct OpenSSLXWingPublicKeyImpl: Sendable { diff --git a/Sources/Crypto/KEM/KEM-Errors.swift b/Sources/Crypto/KEM/KEM-Errors.swift index 3d4b79bb8..2f2fdfb33 100644 --- a/Sources/Crypto/KEM/KEM-Errors.swift +++ b/Sources/Crypto/KEM/KEM-Errors.swift @@ -18,8 +18,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION import SwiftSystem #else +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation #endif +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) extension KEM { diff --git a/Sources/Crypto/KEM/KEM.swift b/Sources/Crypto/KEM/KEM.swift index 584e9d69e..9b8466aab 100644 --- a/Sources/Crypto/KEM/KEM.swift +++ b/Sources/Crypto/KEM/KEM.swift @@ -18,8 +18,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION public import SwiftSystem #else +#if canImport(FoundationEssentials) +public import FoundationEssentials +#else public import Foundation #endif +#endif /// A key encapsulation mechanism. /// diff --git a/Sources/Crypto/KEM/MLKEM.swift b/Sources/Crypto/KEM/MLKEM.swift index a93d860c1..3883fbd40 100644 --- a/Sources/Crypto/KEM/MLKEM.swift +++ b/Sources/Crypto/KEM/MLKEM.swift @@ -14,7 +14,11 @@ #if CRYPTO_IN_SWIFTPM && !CRYPTO_IN_SWIFTPM_FORCE_BUILD_API @_exported import CryptoKit #else +#if canImport(FoundationEssentials) +public import FoundationEssentials +#else public import Foundation +#endif #if (!CRYPTO_IN_SWIFTPM_FORCE_BUILD_API) || CRYPTOKIT_NO_ACCESS_TO_FOUNDATION @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) diff --git a/Sources/Crypto/KEM/MLKEM.swift.gyb b/Sources/Crypto/KEM/MLKEM.swift.gyb index bdc85b20a..3a1719437 100644 --- a/Sources/Crypto/KEM/MLKEM.swift.gyb +++ b/Sources/Crypto/KEM/MLKEM.swift.gyb @@ -14,7 +14,11 @@ #if CRYPTO_IN_SWIFTPM && !CRYPTO_IN_SWIFTPM_FORCE_BUILD_API @_exported import CryptoKit #else +#if canImport(FoundationEssentials) +public import FoundationEssentials +#else public import Foundation +#endif %{ MLKEM_VARIANTS = [{"name": "MLKEM768", "ccinfo": "cckem_mlkem768()!"}, {"name": "MLKEM1024", "ccinfo": "cckem_mlkem1024()!"}] }% diff --git a/Sources/Crypto/KEM/XWing.swift b/Sources/Crypto/KEM/XWing.swift index e90c94a18..dad3f5127 100644 --- a/Sources/Crypto/KEM/XWing.swift +++ b/Sources/Crypto/KEM/XWing.swift @@ -14,7 +14,11 @@ #if CRYPTO_IN_SWIFTPM && !CRYPTO_IN_SWIFTPM_FORCE_BUILD_API @_exported import CryptoKit #else +#if canImport(FoundationEssentials) +public import FoundationEssentials +#else public import Foundation +#endif #if _runtime(_ObjC) && CRYPTO_IN_SWIFTPM && !CRYPTO_IN_SWIFTPM_FORCE_BUILD_API @_exported import CryptoKit @@ -23,8 +27,12 @@ public import Foundation #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION import SwiftSystem #else +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation #endif +#endif #if (!CRYPTO_IN_SWIFTPM_FORCE_BUILD_API) || CRYPTOKIT_NO_ACCESS_TO_FOUNDATION @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) diff --git a/Sources/Crypto/Key Agreement/DH.swift b/Sources/Crypto/Key Agreement/DH.swift index 3a299b389..1d7c9a206 100644 --- a/Sources/Crypto/Key Agreement/DH.swift +++ b/Sources/Crypto/Key Agreement/DH.swift @@ -18,8 +18,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION public import SwiftSystem #else +#if canImport(FoundationEssentials) +public import FoundationEssentials +#else public import Foundation #endif +#endif /// A Diffie-Hellman Key Agreement Key @preconcurrency diff --git a/Sources/Crypto/Key Agreement/ECDH.swift b/Sources/Crypto/Key Agreement/ECDH.swift index 041c95c80..243aaee04 100644 --- a/Sources/Crypto/Key Agreement/ECDH.swift +++ b/Sources/Crypto/Key Agreement/ECDH.swift @@ -29,8 +29,12 @@ typealias NISTCurvePrivateKeyImpl = OpenSSLNISTCurvePrivateKeyImpl #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION public import SwiftSystem #else +#if canImport(FoundationEssentials) +public import FoundationEssentials +#else public import Foundation #endif +#endif // MARK: - Generated file, do NOT edit // any edits of this file WILL be overwritten and thus discarded diff --git a/Sources/Crypto/Key Agreement/ECDH.swift.gyb b/Sources/Crypto/Key Agreement/ECDH.swift.gyb index 3976519b3..aa815c92c 100644 --- a/Sources/Crypto/Key Agreement/ECDH.swift.gyb +++ b/Sources/Crypto/Key Agreement/ECDH.swift.gyb @@ -25,8 +25,12 @@ typealias NISTCurvePrivateKeyImpl = OpenSSLNISTCurvePrivateKeyImpl #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION public import SwiftSystem #else +#if canImport(FoundationEssentials) +public import FoundationEssentials +#else public import Foundation #endif +#endif // MARK: - Generated file, do NOT edit // any edits of this file WILL be overwritten and thus discarded diff --git a/Sources/Crypto/Key Derivation/ANSIx963.swift b/Sources/Crypto/Key Derivation/ANSIx963.swift index e222a5680..6c0357d38 100644 --- a/Sources/Crypto/Key Derivation/ANSIx963.swift +++ b/Sources/Crypto/Key Derivation/ANSIx963.swift @@ -18,8 +18,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION public import SwiftSystem #else +#if canImport(FoundationEssentials) +public import FoundationEssentials +#else public import Foundation #endif +#endif @_spi(ANSIKDF) @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) diff --git a/Sources/Crypto/Key Derivation/HKDF.swift b/Sources/Crypto/Key Derivation/HKDF.swift index e3d12d165..8d66b74df 100644 --- a/Sources/Crypto/Key Derivation/HKDF.swift +++ b/Sources/Crypto/Key Derivation/HKDF.swift @@ -18,8 +18,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION public import SwiftSystem #else +#if canImport(FoundationEssentials) +public import FoundationEssentials +#else public import Foundation #endif +#endif /// A standards-based implementation of an HMAC-based Key Derivation Function /// (HKDF). diff --git a/Sources/Crypto/Key Wrapping/AESWrap.swift b/Sources/Crypto/Key Wrapping/AESWrap.swift index 8558dd7e8..69ab68338 100644 --- a/Sources/Crypto/Key Wrapping/AESWrap.swift +++ b/Sources/Crypto/Key Wrapping/AESWrap.swift @@ -18,8 +18,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION public import SwiftSystem #else +#if canImport(FoundationEssentials) +public import FoundationEssentials +#else public import Foundation #endif +#endif #if (!CRYPTO_IN_SWIFTPM_FORCE_BUILD_API) || CRYPTOKIT_NO_ACCESS_TO_FOUNDATION @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) diff --git a/Sources/Crypto/Key Wrapping/BoringSSL/AESWrap_boring.swift b/Sources/Crypto/Key Wrapping/BoringSSL/AESWrap_boring.swift index 5eebd15bc..f493b8656 100644 --- a/Sources/Crypto/Key Wrapping/BoringSSL/AESWrap_boring.swift +++ b/Sources/Crypto/Key Wrapping/BoringSSL/AESWrap_boring.swift @@ -15,7 +15,11 @@ @_exported import CryptoKit #else @_implementationOnly import CCryptoBoringSSL +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) enum BoringSSLAESWRAPImpl { diff --git a/Sources/Crypto/Keys/EC/BoringSSL/Ed25519_boring.swift b/Sources/Crypto/Keys/EC/BoringSSL/Ed25519_boring.swift index 4a16757b1..4ed7ea723 100644 --- a/Sources/Crypto/Keys/EC/BoringSSL/Ed25519_boring.swift +++ b/Sources/Crypto/Keys/EC/BoringSSL/Ed25519_boring.swift @@ -16,7 +16,11 @@ #else @_implementationOnly import CCryptoBoringSSL @_implementationOnly import CCryptoBoringSSLShims +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif // For signing and verifying, we use BoringSSL's Ed25519, not the X25519 stuff. @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) diff --git a/Sources/Crypto/Keys/EC/BoringSSL/NISTCurvesKeys_boring.swift b/Sources/Crypto/Keys/EC/BoringSSL/NISTCurvesKeys_boring.swift index fc7d7bdcd..11441322e 100644 --- a/Sources/Crypto/Keys/EC/BoringSSL/NISTCurvesKeys_boring.swift +++ b/Sources/Crypto/Keys/EC/BoringSSL/NISTCurvesKeys_boring.swift @@ -17,7 +17,11 @@ @_implementationOnly import CCryptoBoringSSL @_implementationOnly import CCryptoBoringSSLShims import CryptoBoringWrapper +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif @usableFromInline @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) diff --git a/Sources/Crypto/Keys/EC/BoringSSL/X25519Keys_boring.swift b/Sources/Crypto/Keys/EC/BoringSSL/X25519Keys_boring.swift index 67217df62..b51db37de 100644 --- a/Sources/Crypto/Keys/EC/BoringSSL/X25519Keys_boring.swift +++ b/Sources/Crypto/Keys/EC/BoringSSL/X25519Keys_boring.swift @@ -16,7 +16,11 @@ #else @_implementationOnly import CCryptoBoringSSL @_implementationOnly import CCryptoBoringSSLShims +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) extension Curve25519.KeyAgreement { diff --git a/Sources/Crypto/Keys/EC/Ed25519Keys.swift b/Sources/Crypto/Keys/EC/Ed25519Keys.swift index a35bde781..3ca56763f 100644 --- a/Sources/Crypto/Keys/EC/Ed25519Keys.swift +++ b/Sources/Crypto/Keys/EC/Ed25519Keys.swift @@ -17,8 +17,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION public import SwiftSystem #else +#if canImport(FoundationEssentials) +public import FoundationEssentials +#else public import Foundation #endif +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) extension Curve25519.Signing { diff --git a/Sources/Crypto/Keys/EC/NISTCurvesKeys.swift b/Sources/Crypto/Keys/EC/NISTCurvesKeys.swift index 41c23f03d..319e556cf 100644 --- a/Sources/Crypto/Keys/EC/NISTCurvesKeys.swift +++ b/Sources/Crypto/Keys/EC/NISTCurvesKeys.swift @@ -14,8 +14,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION import SwiftSystem #else +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation #endif +#endif #if CRYPTO_IN_SWIFTPM && !CRYPTO_IN_SWIFTPM_FORCE_BUILD_API @_exported import CryptoKit diff --git a/Sources/Crypto/Keys/EC/X25519Keys.swift b/Sources/Crypto/Keys/EC/X25519Keys.swift index ffd319ee9..a34299ba9 100644 --- a/Sources/Crypto/Keys/EC/X25519Keys.swift +++ b/Sources/Crypto/Keys/EC/X25519Keys.swift @@ -17,8 +17,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION public import SwiftSystem #else +#if canImport(FoundationEssentials) +public import FoundationEssentials +#else public import Foundation #endif +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) extension Curve25519.KeyAgreement { diff --git a/Sources/Crypto/Keys/Symmetric/SymmetricKeys.swift b/Sources/Crypto/Keys/Symmetric/SymmetricKeys.swift index 2e7535591..0e46873f6 100644 --- a/Sources/Crypto/Keys/Symmetric/SymmetricKeys.swift +++ b/Sources/Crypto/Keys/Symmetric/SymmetricKeys.swift @@ -18,8 +18,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION import SwiftSystem #else +#if canImport(FoundationEssentials) +public import FoundationEssentials +#else public import Foundation #endif +#endif /// The sizes that a symmetric cryptographic key can take. /// diff --git a/Sources/Crypto/Message Authentication Codes/HMAC/HMAC.swift b/Sources/Crypto/Message Authentication Codes/HMAC/HMAC.swift index 207a6d953..a60def599 100644 --- a/Sources/Crypto/Message Authentication Codes/HMAC/HMAC.swift +++ b/Sources/Crypto/Message Authentication Codes/HMAC/HMAC.swift @@ -17,8 +17,25 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION public import SwiftSystem #else +#if canImport(FoundationEssentials) +#if os(Windows) +import ucrt +#elseif canImport(Darwin) +import Darwin +#elseif canImport(Glibc) +import Glibc +#elseif canImport(Musl) +import Musl +#elseif canImport(Android) +import Android +#elseif canImport(WASILibc) +import WASILibc +#endif +public import FoundationEssentials +#else public import Foundation #endif +#endif /// A hash-based message authentication algorithm. /// diff --git a/Sources/Crypto/Message Authentication Codes/MACFunctions.swift b/Sources/Crypto/Message Authentication Codes/MACFunctions.swift index 02132a861..118bc3882 100644 --- a/Sources/Crypto/Message Authentication Codes/MACFunctions.swift +++ b/Sources/Crypto/Message Authentication Codes/MACFunctions.swift @@ -17,8 +17,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION import SwiftSystem #else +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation #endif +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) protocol MACAlgorithm { diff --git a/Sources/Crypto/Message Authentication Codes/MessageAuthenticationCode.swift b/Sources/Crypto/Message Authentication Codes/MessageAuthenticationCode.swift index 4c546139f..13d31f046 100644 --- a/Sources/Crypto/Message Authentication Codes/MessageAuthenticationCode.swift +++ b/Sources/Crypto/Message Authentication Codes/MessageAuthenticationCode.swift @@ -17,8 +17,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION public import SwiftSystem #else +#if canImport(FoundationEssentials) +public import FoundationEssentials +#else public import Foundation #endif +#endif #if hasFeature(Embedded) /// A type that represents a message authentication code. diff --git a/Sources/Crypto/Signatures/BoringSSL/ECDSASignature_boring.swift b/Sources/Crypto/Signatures/BoringSSL/ECDSASignature_boring.swift index 28855a14f..d33110d3d 100644 --- a/Sources/Crypto/Signatures/BoringSSL/ECDSASignature_boring.swift +++ b/Sources/Crypto/Signatures/BoringSSL/ECDSASignature_boring.swift @@ -17,7 +17,11 @@ @_implementationOnly import CCryptoBoringSSL @_implementationOnly import CCryptoBoringSSLShims import CryptoBoringWrapper +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif /// A wrapper around BoringSSL's ECDSA_SIG with some lifetime management. @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) diff --git a/Sources/Crypto/Signatures/BoringSSL/ECDSA_boring.swift b/Sources/Crypto/Signatures/BoringSSL/ECDSA_boring.swift index d72b0226c..0842eadac 100644 --- a/Sources/Crypto/Signatures/BoringSSL/ECDSA_boring.swift +++ b/Sources/Crypto/Signatures/BoringSSL/ECDSA_boring.swift @@ -16,7 +16,11 @@ #else @_implementationOnly import CCryptoBoringSSL import CryptoBoringWrapper +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) extension Data { diff --git a/Sources/Crypto/Signatures/BoringSSL/EdDSA_boring.swift b/Sources/Crypto/Signatures/BoringSSL/EdDSA_boring.swift index b2ea6d2c3..9c3e39c07 100644 --- a/Sources/Crypto/Signatures/BoringSSL/EdDSA_boring.swift +++ b/Sources/Crypto/Signatures/BoringSSL/EdDSA_boring.swift @@ -16,7 +16,11 @@ #else @_implementationOnly import CCryptoBoringSSL @_implementationOnly import CCryptoBoringSSLShims +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) extension Curve25519.Signing.PublicKey { diff --git a/Sources/Crypto/Signatures/BoringSSL/MLDSA_boring.swift b/Sources/Crypto/Signatures/BoringSSL/MLDSA_boring.swift index f784d36f2..c058e71cc 100644 --- a/Sources/Crypto/Signatures/BoringSSL/MLDSA_boring.swift +++ b/Sources/Crypto/Signatures/BoringSSL/MLDSA_boring.swift @@ -16,14 +16,22 @@ @_exported import CryptoKit #else @_implementationOnly import CCryptoBoringSSL +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif // MARK: - Generated file, do NOT edit // any edits of this file WILL be overwritten and thus discarded // see section `gyb` in `README` for details. @_implementationOnly import CCryptoBoringSSL +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) extension MLDSA65 { diff --git a/Sources/Crypto/Signatures/BoringSSL/MLDSA_boring.swift.gyb b/Sources/Crypto/Signatures/BoringSSL/MLDSA_boring.swift.gyb index ed70dd236..c9d42191b 100644 --- a/Sources/Crypto/Signatures/BoringSSL/MLDSA_boring.swift.gyb +++ b/Sources/Crypto/Signatures/BoringSSL/MLDSA_boring.swift.gyb @@ -16,14 +16,22 @@ @_exported import CryptoKit #else @_implementationOnly import CCryptoBoringSSL +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif // MARK: - Generated file, do NOT edit // any edits of this file WILL be overwritten and thus discarded // see section `gyb` in `README` for details. @_implementationOnly import CCryptoBoringSSL +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif %{ parameter_sets = ["65", "87"] }% diff --git a/Sources/Crypto/Signatures/BoringSSL/MLDSA_wrapper.swift b/Sources/Crypto/Signatures/BoringSSL/MLDSA_wrapper.swift index 5d18b7d74..c8171c6b4 100644 --- a/Sources/Crypto/Signatures/BoringSSL/MLDSA_wrapper.swift +++ b/Sources/Crypto/Signatures/BoringSSL/MLDSA_wrapper.swift @@ -16,7 +16,11 @@ @_exported import CryptoKit #else @_implementationOnly import CCryptoBoringSSL +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) protocol BoringSSLBackedMLDSAPrivateKey { diff --git a/Sources/Crypto/Signatures/ECDSA.swift b/Sources/Crypto/Signatures/ECDSA.swift index 85261a9f5..423aef1e8 100644 --- a/Sources/Crypto/Signatures/ECDSA.swift +++ b/Sources/Crypto/Signatures/ECDSA.swift @@ -15,7 +15,11 @@ @_exported import CryptoKit #else #if !CRYPTOKIT_NO_ACCESS_TO_FOUNDATION +#if canImport(FoundationEssentials) +public import FoundationEssentials +#else public import Foundation +#endif #else public import SwiftSystem #endif diff --git a/Sources/Crypto/Signatures/ECDSA.swift.gyb b/Sources/Crypto/Signatures/ECDSA.swift.gyb index ae9564c70..a4e6a7015 100644 --- a/Sources/Crypto/Signatures/ECDSA.swift.gyb +++ b/Sources/Crypto/Signatures/ECDSA.swift.gyb @@ -15,7 +15,11 @@ @_exported import CryptoKit #else #if !CRYPTOKIT_NO_ACCESS_TO_FOUNDATION +#if canImport(FoundationEssentials) +public import FoundationEssentials +#else public import Foundation +#endif #else public import SwiftSystem #endif diff --git a/Sources/Crypto/Signatures/Ed25519.swift b/Sources/Crypto/Signatures/Ed25519.swift index 329ab19d4..c82b85bcc 100644 --- a/Sources/Crypto/Signatures/Ed25519.swift +++ b/Sources/Crypto/Signatures/Ed25519.swift @@ -17,8 +17,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION public import SwiftSystem #else +#if canImport(FoundationEssentials) +public import FoundationEssentials +#else public import Foundation #endif +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) protocol DigestValidator { diff --git a/Sources/Crypto/Signatures/MLDSA.swift b/Sources/Crypto/Signatures/MLDSA.swift index 0a079ca45..9f5842dff 100644 --- a/Sources/Crypto/Signatures/MLDSA.swift +++ b/Sources/Crypto/Signatures/MLDSA.swift @@ -14,7 +14,11 @@ #if CRYPTO_IN_SWIFTPM && !CRYPTO_IN_SWIFTPM_FORCE_BUILD_API @_exported import CryptoKit #else +#if canImport(FoundationEssentials) +public import FoundationEssentials +#else public import Foundation +#endif #if (!CRYPTO_IN_SWIFTPM_FORCE_BUILD_API) || CRYPTOKIT_NO_ACCESS_TO_FOUNDATION typealias MLDSAPublicKeyImpl = CoreCryptoMLDSAPublicKeyImpl diff --git a/Sources/Crypto/Signatures/MLDSA.swift.gyb b/Sources/Crypto/Signatures/MLDSA.swift.gyb index 9481fc670..a0cab6fe4 100644 --- a/Sources/Crypto/Signatures/MLDSA.swift.gyb +++ b/Sources/Crypto/Signatures/MLDSA.swift.gyb @@ -14,7 +14,11 @@ #if CRYPTO_IN_SWIFTPM && !CRYPTO_IN_SWIFTPM_FORCE_BUILD_API @_exported import CryptoKit #else +#if canImport(FoundationEssentials) +public import FoundationEssentials +#else public import Foundation +#endif #if (!CRYPTO_IN_SWIFTPM_FORCE_BUILD_API) || CRYPTOKIT_NO_ACCESS_TO_FOUNDATION typealias MLDSAPublicKeyImpl = CoreCryptoMLDSAPublicKeyImpl diff --git a/Sources/Crypto/Signatures/Signature.swift b/Sources/Crypto/Signatures/Signature.swift index c8fca65a7..ea9f9700f 100644 --- a/Sources/Crypto/Signatures/Signature.swift +++ b/Sources/Crypto/Signatures/Signature.swift @@ -17,8 +17,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION import SwiftSystem #else +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation #endif +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) protocol SignatureVerification { diff --git a/Sources/Crypto/Util/BoringSSL/Optional+withUnsafeBytes_boring.swift b/Sources/Crypto/Util/BoringSSL/Optional+withUnsafeBytes_boring.swift index 6f9a2a251..8d8aabaca 100644 --- a/Sources/Crypto/Util/BoringSSL/Optional+withUnsafeBytes_boring.swift +++ b/Sources/Crypto/Util/BoringSSL/Optional+withUnsafeBytes_boring.swift @@ -12,7 +12,11 @@ // //===----------------------------------------------------------------------===// +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif extension Optional where Wrapped: DataProtocol { func withUnsafeBytes(_ body: (UnsafeRawBufferPointer) throws -> ReturnValue) rethrows -> ReturnValue { diff --git a/Sources/Crypto/Util/BoringSSL/SafeCompare_boring.swift b/Sources/Crypto/Util/BoringSSL/SafeCompare_boring.swift index 0999addf0..da810a080 100644 --- a/Sources/Crypto/Util/BoringSSL/SafeCompare_boring.swift +++ b/Sources/Crypto/Util/BoringSSL/SafeCompare_boring.swift @@ -11,7 +11,11 @@ // SPDX-License-Identifier: Apache-2.0 // //===----------------------------------------------------------------------===// +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif /// This function performs a safe comparison between two buffers of bytes. It exists as a temporary shim until we refactor /// some of the usage sites to pass better data structures to us. diff --git a/Sources/Crypto/Util/PrettyBytes.swift b/Sources/Crypto/Util/PrettyBytes.swift index 695ebb31e..82190c60f 100644 --- a/Sources/Crypto/Util/PrettyBytes.swift +++ b/Sources/Crypto/Util/PrettyBytes.swift @@ -14,8 +14,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION import SwiftSystem #else +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation #endif +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) enum ByteHexEncodingErrors: Error { diff --git a/Sources/Crypto/Util/SafeCompare.swift b/Sources/Crypto/Util/SafeCompare.swift index 51a726d5a..25358f9a0 100644 --- a/Sources/Crypto/Util/SafeCompare.swift +++ b/Sources/Crypto/Util/SafeCompare.swift @@ -17,8 +17,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION import SwiftSystem #else +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation #endif +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) internal func safeCompare(_ lhs: LHS, _ rhs: RHS) -> Bool { diff --git a/Sources/Crypto/Util/SecureBytes.swift b/Sources/Crypto/Util/SecureBytes.swift index 94be737f5..86b7c88a4 100644 --- a/Sources/Crypto/Util/SecureBytes.swift +++ b/Sources/Crypto/Util/SecureBytes.swift @@ -17,8 +17,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION import SwiftSystem #else +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation #endif +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) nonisolated(unsafe) private let emptyStorage:SecureBytes.Backing = SecureBytes.Backing.createEmpty() diff --git a/Sources/Crypto/Util/Zeroization.swift b/Sources/Crypto/Util/Zeroization.swift index 0f115f694..ee71831e2 100644 --- a/Sources/Crypto/Util/Zeroization.swift +++ b/Sources/Crypto/Util/Zeroization.swift @@ -17,8 +17,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION import SwiftSystem #else +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation #endif +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) protocol Zeroization { diff --git a/Sources/CryptoBoringWrapper/AEAD/BoringSSLAEAD.swift b/Sources/CryptoBoringWrapper/AEAD/BoringSSLAEAD.swift index b4033e072..55b0786d5 100644 --- a/Sources/CryptoBoringWrapper/AEAD/BoringSSLAEAD.swift +++ b/Sources/CryptoBoringWrapper/AEAD/BoringSSLAEAD.swift @@ -14,7 +14,12 @@ @_implementationOnly import CCryptoBoringSSL @_implementationOnly import CCryptoBoringSSLShims + +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif /// An abstraction over a BoringSSL AEAD @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) diff --git a/Sources/CryptoBoringWrapper/Util/ArbitraryPrecisionInteger.swift b/Sources/CryptoBoringWrapper/Util/ArbitraryPrecisionInteger.swift index 41f53a9fb..505e54abd 100644 --- a/Sources/CryptoBoringWrapper/Util/ArbitraryPrecisionInteger.swift +++ b/Sources/CryptoBoringWrapper/Util/ArbitraryPrecisionInteger.swift @@ -16,7 +16,11 @@ #else @_implementationOnly import CCryptoBoringSSL @_implementationOnly import CCryptoBoringSSLShims +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif /// A wrapper around the OpenSSL BIGNUM object that is appropriately lifetime managed, /// and that provides better Swift types for this object. diff --git a/Sources/CryptoBoringWrapper/Util/FiniteFieldArithmeticContext.swift b/Sources/CryptoBoringWrapper/Util/FiniteFieldArithmeticContext.swift index 99078a44d..f5c6d435c 100644 --- a/Sources/CryptoBoringWrapper/Util/FiniteFieldArithmeticContext.swift +++ b/Sources/CryptoBoringWrapper/Util/FiniteFieldArithmeticContext.swift @@ -15,7 +15,11 @@ @_exported import CryptoKit #else @_implementationOnly import CCryptoBoringSSL +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif /// A context for performing mathematical operations on ArbitraryPrecisionIntegers over a finite field. /// diff --git a/Sources/_CryptoExtras/AES/AES_CBC.swift b/Sources/_CryptoExtras/AES/AES_CBC.swift index 6d7263a7f..8041387e2 100644 --- a/Sources/_CryptoExtras/AES/AES_CBC.swift +++ b/Sources/_CryptoExtras/AES/AES_CBC.swift @@ -13,7 +13,11 @@ //===----------------------------------------------------------------------===// import Crypto +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) extension AES { diff --git a/Sources/_CryptoExtras/AES/AES_CFB.swift b/Sources/_CryptoExtras/AES/AES_CFB.swift index 6c5645a7a..0334f2a4a 100644 --- a/Sources/_CryptoExtras/AES/AES_CFB.swift +++ b/Sources/_CryptoExtras/AES/AES_CFB.swift @@ -13,7 +13,11 @@ //===----------------------------------------------------------------------===// import Crypto +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif @usableFromInline @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) diff --git a/Sources/_CryptoExtras/AES/AES_CTR.swift b/Sources/_CryptoExtras/AES/AES_CTR.swift index 85b94689e..416b0c313 100644 --- a/Sources/_CryptoExtras/AES/AES_CTR.swift +++ b/Sources/_CryptoExtras/AES/AES_CTR.swift @@ -13,7 +13,11 @@ //===----------------------------------------------------------------------===// import Crypto +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif @usableFromInline @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) diff --git a/Sources/_CryptoExtras/AES/AES_GCM_SIV.swift b/Sources/_CryptoExtras/AES/AES_GCM_SIV.swift index 8c3d136d9..33d0c7edf 100644 --- a/Sources/_CryptoExtras/AES/AES_GCM_SIV.swift +++ b/Sources/_CryptoExtras/AES/AES_GCM_SIV.swift @@ -16,7 +16,11 @@ import Crypto @_implementationOnly import CCryptoBoringSSL @_implementationOnly import CCryptoBoringSSLShims import CryptoBoringWrapper +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif /// Types associated with the AES GCM SIV algorithm @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) diff --git a/Sources/_CryptoExtras/AES/Block Function.swift b/Sources/_CryptoExtras/AES/Block Function.swift index 4cc8b8fd6..0bf0ccbc8 100644 --- a/Sources/_CryptoExtras/AES/Block Function.swift +++ b/Sources/_CryptoExtras/AES/Block Function.swift @@ -16,7 +16,11 @@ import Crypto @_implementationOnly import CCryptoBoringSSL @_implementationOnly import CCryptoBoringSSLShims import CryptoBoringWrapper +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) extension AES { diff --git a/Sources/_CryptoExtras/AES/BoringSSL/AES_CFB_boring.swift b/Sources/_CryptoExtras/AES/BoringSSL/AES_CFB_boring.swift index 5ce90f78d..69e57ddac 100644 --- a/Sources/_CryptoExtras/AES/BoringSSL/AES_CFB_boring.swift +++ b/Sources/_CryptoExtras/AES/BoringSSL/AES_CFB_boring.swift @@ -14,7 +14,12 @@ @_implementationOnly import CCryptoBoringSSL import Crypto + +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif @usableFromInline @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) diff --git a/Sources/_CryptoExtras/AES/BoringSSL/AES_CTR_boring.swift b/Sources/_CryptoExtras/AES/BoringSSL/AES_CTR_boring.swift index e37df6244..2ed03be5f 100644 --- a/Sources/_CryptoExtras/AES/BoringSSL/AES_CTR_boring.swift +++ b/Sources/_CryptoExtras/AES/BoringSSL/AES_CTR_boring.swift @@ -14,7 +14,12 @@ @_implementationOnly import CCryptoBoringSSL import Crypto + +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif @usableFromInline @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) diff --git a/Sources/_CryptoExtras/AES/BoringSSL/AES_GCM_SIV_boring.swift b/Sources/_CryptoExtras/AES/BoringSSL/AES_GCM_SIV_boring.swift index 141e2b60e..3bc7aff3e 100644 --- a/Sources/_CryptoExtras/AES/BoringSSL/AES_GCM_SIV_boring.swift +++ b/Sources/_CryptoExtras/AES/BoringSSL/AES_GCM_SIV_boring.swift @@ -18,7 +18,12 @@ @_implementationOnly import CCryptoBoringSSLShims import Crypto import CryptoBoringWrapper + +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) extension BoringSSLAEAD { diff --git a/Sources/_CryptoExtras/ARC/ARC+API.swift b/Sources/_CryptoExtras/ARC/ARC+API.swift index 3a29f85bb..4e159f32c 100644 --- a/Sources/_CryptoExtras/ARC/ARC+API.swift +++ b/Sources/_CryptoExtras/ARC/ARC+API.swift @@ -12,7 +12,11 @@ // //===----------------------------------------------------------------------===// import Crypto +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif // MARK: - P384 + ARC(P-384) @available(iOS 16.0, macOS 13.0, watchOS 9.0, tvOS 16.0, macCatalyst 16.0, visionOS 2.0, *) diff --git a/Sources/_CryptoExtras/ARC/ARC.swift b/Sources/_CryptoExtras/ARC/ARC.swift index 73bda212a..0e6f6dd39 100644 --- a/Sources/_CryptoExtras/ARC/ARC.swift +++ b/Sources/_CryptoExtras/ARC/ARC.swift @@ -12,7 +12,11 @@ // //===----------------------------------------------------------------------===// import Crypto +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif /// Anonymous Rate-Limited Credentials (ARC) using the CMZ14 MACGGM construction, as defined in /// https://chris-wood.github.io/draft-arc/draft-yun-cfrg-arc.html diff --git a/Sources/_CryptoExtras/ARC/ARCCredential.swift b/Sources/_CryptoExtras/ARC/ARCCredential.swift index 05442263b..85dac1f85 100644 --- a/Sources/_CryptoExtras/ARC/ARCCredential.swift +++ b/Sources/_CryptoExtras/ARC/ARCCredential.swift @@ -12,7 +12,11 @@ // //===----------------------------------------------------------------------===// import Crypto +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif @available(macOS 10.15, iOS 13.2, tvOS 13.2, watchOS 6.1, macCatalyst 13.2, visionOS 1.2, *) extension ARC { diff --git a/Sources/_CryptoExtras/ARC/ARCEncoding.swift b/Sources/_CryptoExtras/ARC/ARCEncoding.swift index 7c77ab18f..579787355 100644 --- a/Sources/_CryptoExtras/ARC/ARCEncoding.swift +++ b/Sources/_CryptoExtras/ARC/ARCEncoding.swift @@ -11,7 +11,11 @@ // SPDX-License-Identifier: Apache-2.0 // //===----------------------------------------------------------------------===// +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif import Crypto @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) diff --git a/Sources/_CryptoExtras/ARC/ARCPrecredential.swift b/Sources/_CryptoExtras/ARC/ARCPrecredential.swift index 4b3f0cd04..27c5c5ac7 100644 --- a/Sources/_CryptoExtras/ARC/ARCPrecredential.swift +++ b/Sources/_CryptoExtras/ARC/ARCPrecredential.swift @@ -12,7 +12,11 @@ // //===----------------------------------------------------------------------===// import Crypto +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif @available(macOS 10.15, iOS 13.2, tvOS 13.2, watchOS 6.1, macCatalyst 13.2, visionOS 1.2, *) extension ARC { diff --git a/Sources/_CryptoExtras/ARC/ARCPresentation.swift b/Sources/_CryptoExtras/ARC/ARCPresentation.swift index 4cdc69068..5e2272039 100644 --- a/Sources/_CryptoExtras/ARC/ARCPresentation.swift +++ b/Sources/_CryptoExtras/ARC/ARCPresentation.swift @@ -12,7 +12,11 @@ // //===----------------------------------------------------------------------===// import Crypto +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif @available(macOS 10.15, iOS 13.2, tvOS 13.2, watchOS 6.1, macCatalyst 13.2, visionOS 1.2, *) extension ARC { diff --git a/Sources/_CryptoExtras/ARC/ARCRequest.swift b/Sources/_CryptoExtras/ARC/ARCRequest.swift index 25bf7c55b..9c9f529b2 100644 --- a/Sources/_CryptoExtras/ARC/ARCRequest.swift +++ b/Sources/_CryptoExtras/ARC/ARCRequest.swift @@ -12,7 +12,11 @@ // //===----------------------------------------------------------------------===// import Crypto +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif @available(macOS 10.15, iOS 13.2, tvOS 13.2, watchOS 6.1, macCatalyst 13.2, visionOS 1.2, *) extension ARC { diff --git a/Sources/_CryptoExtras/ARC/ARCResponse.swift b/Sources/_CryptoExtras/ARC/ARCResponse.swift index cf0e3e13f..b6202925a 100644 --- a/Sources/_CryptoExtras/ARC/ARCResponse.swift +++ b/Sources/_CryptoExtras/ARC/ARCResponse.swift @@ -12,7 +12,11 @@ // //===----------------------------------------------------------------------===// import Crypto +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif @available(macOS 10.15, iOS 13.2, tvOS 13.2, watchOS 6.1, macCatalyst 13.2, visionOS 1.2, *) extension ARC { diff --git a/Sources/_CryptoExtras/ARC/ARCServer.swift b/Sources/_CryptoExtras/ARC/ARCServer.swift index 0565536bf..53f890046 100644 --- a/Sources/_CryptoExtras/ARC/ARCServer.swift +++ b/Sources/_CryptoExtras/ARC/ARCServer.swift @@ -12,7 +12,11 @@ // //===----------------------------------------------------------------------===// import Crypto +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif @available(macOS 10.15, iOS 13.2, tvOS 13.2, watchOS 6.1, macCatalyst 13.2, visionOS 1.2, *) extension ARC { diff --git a/Sources/_CryptoExtras/ChaCha20CTR/BoringSSL/ChaCha20CTR_boring.swift b/Sources/_CryptoExtras/ChaCha20CTR/BoringSSL/ChaCha20CTR_boring.swift index bd4378af2..701bf8d8c 100644 --- a/Sources/_CryptoExtras/ChaCha20CTR/BoringSSL/ChaCha20CTR_boring.swift +++ b/Sources/_CryptoExtras/ChaCha20CTR/BoringSSL/ChaCha20CTR_boring.swift @@ -16,7 +16,12 @@ @_implementationOnly import CCryptoBoringSSLShims import Crypto import CryptoBoringWrapper + +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) enum OpenSSLChaCha20CTRImpl { diff --git a/Sources/_CryptoExtras/ChaCha20CTR/ChaCha20CTR.swift b/Sources/_CryptoExtras/ChaCha20CTR/ChaCha20CTR.swift index 837ba5c1f..385fa6e64 100644 --- a/Sources/_CryptoExtras/ChaCha20CTR/ChaCha20CTR.swift +++ b/Sources/_CryptoExtras/ChaCha20CTR/ChaCha20CTR.swift @@ -16,7 +16,11 @@ @_implementationOnly import CCryptoBoringSSLShims import Crypto import CryptoBoringWrapper +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) typealias ChaCha20CTRImpl = OpenSSLChaCha20CTRImpl diff --git a/Sources/_CryptoExtras/ECToolbox/BoringSSL/ECToolbox_boring.swift b/Sources/_CryptoExtras/ECToolbox/BoringSSL/ECToolbox_boring.swift index 44d5401c2..8cde5d034 100644 --- a/Sources/_CryptoExtras/ECToolbox/BoringSSL/ECToolbox_boring.swift +++ b/Sources/_CryptoExtras/ECToolbox/BoringSSL/ECToolbox_boring.swift @@ -13,7 +13,12 @@ //===----------------------------------------------------------------------===// import Crypto import CryptoBoringWrapper + +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif /// NOTE: This protocol is different from `Crypto.OpenSSLSupportedNISTCurve` module and has additional requirements to /// support ECToolbox. It is (re-)defined here because its counterpart in the Crypto module is only conditionally diff --git a/Sources/_CryptoExtras/ECToolbox/ECToolbox.swift b/Sources/_CryptoExtras/ECToolbox/ECToolbox.swift index 5a9eb7c36..452ed640f 100644 --- a/Sources/_CryptoExtras/ECToolbox/ECToolbox.swift +++ b/Sources/_CryptoExtras/ECToolbox/ECToolbox.swift @@ -12,7 +12,11 @@ // //===----------------------------------------------------------------------===// import Crypto +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif #if canImport(Darwin) && !CRYPTO_IN_SWIFTPM @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) diff --git a/Sources/_CryptoExtras/H2G/HashToField.swift b/Sources/_CryptoExtras/H2G/HashToField.swift index d1dfd153e..3b9b55c8d 100644 --- a/Sources/_CryptoExtras/H2G/HashToField.swift +++ b/Sources/_CryptoExtras/H2G/HashToField.swift @@ -11,7 +11,24 @@ // SPDX-License-Identifier: Apache-2.0 // //===----------------------------------------------------------------------===// +#if canImport(FoundationEssentials) +#if os(Windows) +import ucrt +#elseif canImport(Darwin) +import Darwin +#elseif canImport(Glibc) +import Glibc +#elseif canImport(Musl) +import Musl +#elseif canImport(Android) +import Android +#elseif canImport(WASILibc) +import WASILibc +#endif +import FoundationEssentials +#else import Foundation +#endif import Crypto @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) diff --git a/Sources/_CryptoExtras/Key Derivation/KDF.swift b/Sources/_CryptoExtras/Key Derivation/KDF.swift index 3ecae0a2b..6990023d7 100644 --- a/Sources/_CryptoExtras/Key Derivation/KDF.swift +++ b/Sources/_CryptoExtras/Key Derivation/KDF.swift @@ -12,7 +12,11 @@ // //===----------------------------------------------------------------------===// import Crypto +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif /// A container for Key Detivation Function algorithms. @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) diff --git a/Sources/_CryptoExtras/Key Derivation/PBKDF2/BoringSSL/PBKDF2_boring.swift b/Sources/_CryptoExtras/Key Derivation/PBKDF2/BoringSSL/PBKDF2_boring.swift index e2df821bb..6bfbad715 100644 --- a/Sources/_CryptoExtras/Key Derivation/PBKDF2/BoringSSL/PBKDF2_boring.swift +++ b/Sources/_CryptoExtras/Key Derivation/PBKDF2/BoringSSL/PBKDF2_boring.swift @@ -12,7 +12,12 @@ // //===----------------------------------------------------------------------===// import Crypto + +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif #if !canImport(CommonCrypto) @_implementationOnly import CCryptoBoringSSL diff --git a/Sources/_CryptoExtras/Key Derivation/PBKDF2/BoringSSL/PBKDF2_commoncrypto.swift b/Sources/_CryptoExtras/Key Derivation/PBKDF2/BoringSSL/PBKDF2_commoncrypto.swift index ad3217cc4..5926bbc4a 100644 --- a/Sources/_CryptoExtras/Key Derivation/PBKDF2/BoringSSL/PBKDF2_commoncrypto.swift +++ b/Sources/_CryptoExtras/Key Derivation/PBKDF2/BoringSSL/PBKDF2_commoncrypto.swift @@ -12,7 +12,12 @@ // //===----------------------------------------------------------------------===// import Crypto + +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif #if canImport(CommonCrypto) @_implementationOnly import CommonCrypto diff --git a/Sources/_CryptoExtras/Key Derivation/PBKDF2/PBKDF2.swift b/Sources/_CryptoExtras/Key Derivation/PBKDF2/PBKDF2.swift index 90a268cdc..d222f141a 100644 --- a/Sources/_CryptoExtras/Key Derivation/PBKDF2/PBKDF2.swift +++ b/Sources/_CryptoExtras/Key Derivation/PBKDF2/PBKDF2.swift @@ -12,7 +12,11 @@ // //===----------------------------------------------------------------------===// import Crypto +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif #if canImport(CommonCrypto) @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) diff --git a/Sources/_CryptoExtras/Key Derivation/Scrypt/BoringSSL/Scrypt_boring.swift b/Sources/_CryptoExtras/Key Derivation/Scrypt/BoringSSL/Scrypt_boring.swift index 20371014c..b89c9bd1e 100644 --- a/Sources/_CryptoExtras/Key Derivation/Scrypt/BoringSSL/Scrypt_boring.swift +++ b/Sources/_CryptoExtras/Key Derivation/Scrypt/BoringSSL/Scrypt_boring.swift @@ -15,7 +15,25 @@ @_implementationOnly import CCryptoBoringSSL @_implementationOnly import CCryptoBoringSSLShims import Crypto + +#if canImport(FoundationEssentials) +#if os(Windows) +import ucrt +#elseif canImport(Darwin) +import Darwin +#elseif canImport(Glibc) +import Glibc +#elseif canImport(Musl) +import Musl +#elseif canImport(Android) +import Android +#elseif canImport(WASILibc) +import WASILibc +#endif +import FoundationEssentials +#else import Foundation +#endif #if canImport(Android) import Android diff --git a/Sources/_CryptoExtras/Key Derivation/Scrypt/Scrypt.swift b/Sources/_CryptoExtras/Key Derivation/Scrypt/Scrypt.swift index 47ef6df66..e0bc93b8f 100644 --- a/Sources/_CryptoExtras/Key Derivation/Scrypt/Scrypt.swift +++ b/Sources/_CryptoExtras/Key Derivation/Scrypt/Scrypt.swift @@ -12,7 +12,11 @@ // //===----------------------------------------------------------------------===// import Crypto +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) fileprivate typealias BackingScrypt = BoringSSLScrypt diff --git a/Sources/_CryptoExtras/OPRFs/OPRF.swift b/Sources/_CryptoExtras/OPRFs/OPRF.swift index 65ce05990..28336d123 100644 --- a/Sources/_CryptoExtras/OPRFs/OPRF.swift +++ b/Sources/_CryptoExtras/OPRFs/OPRF.swift @@ -11,7 +11,11 @@ // SPDX-License-Identifier: Apache-2.0 // //===----------------------------------------------------------------------===// +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif import Crypto /// (Verifiable Partly-)Oblivious Pseudorandom Functions diff --git a/Sources/_CryptoExtras/OPRFs/OPRFClient.swift b/Sources/_CryptoExtras/OPRFs/OPRFClient.swift index 0e676961c..a30808210 100644 --- a/Sources/_CryptoExtras/OPRFs/OPRFClient.swift +++ b/Sources/_CryptoExtras/OPRFs/OPRFClient.swift @@ -12,7 +12,11 @@ // //===----------------------------------------------------------------------===// import Crypto +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif @available(macOS 10.15, iOS 13.2, tvOS 13.2, watchOS 6.1, macCatalyst 13.2, visionOS 1.2, *) extension OPRF { diff --git a/Sources/_CryptoExtras/OPRFs/OPRFServer.swift b/Sources/_CryptoExtras/OPRFs/OPRFServer.swift index ef5279121..baa3a419a 100644 --- a/Sources/_CryptoExtras/OPRFs/OPRFServer.swift +++ b/Sources/_CryptoExtras/OPRFs/OPRFServer.swift @@ -11,7 +11,11 @@ // SPDX-License-Identifier: Apache-2.0 // //===----------------------------------------------------------------------===// +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif import Crypto @available(macOS 10.15, iOS 13.2, tvOS 13.2, watchOS 6.1, macCatalyst 13.2, visionOS 1.2, *) diff --git a/Sources/_CryptoExtras/OPRFs/VOPRF+API.swift b/Sources/_CryptoExtras/OPRFs/VOPRF+API.swift index 6f1ea6c39..44476b0ef 100644 --- a/Sources/_CryptoExtras/OPRFs/VOPRF+API.swift +++ b/Sources/_CryptoExtras/OPRFs/VOPRF+API.swift @@ -12,7 +12,11 @@ // //===----------------------------------------------------------------------===// import Crypto +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif // MARK: - P384 + VPORF (P384-SHA384) @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) diff --git a/Sources/_CryptoExtras/OPRFs/VOPRFClient.swift b/Sources/_CryptoExtras/OPRFs/VOPRFClient.swift index 15e5ffad6..299e00c1f 100644 --- a/Sources/_CryptoExtras/OPRFs/VOPRFClient.swift +++ b/Sources/_CryptoExtras/OPRFs/VOPRFClient.swift @@ -12,7 +12,11 @@ // //===----------------------------------------------------------------------===// import Crypto +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif @available(macOS 10.15, iOS 13.2, tvOS 13.2, watchOS 6.1, macCatalyst 13.2, visionOS 1.2, *) extension OPRF { diff --git a/Sources/_CryptoExtras/OPRFs/VOPRFServer.swift b/Sources/_CryptoExtras/OPRFs/VOPRFServer.swift index f42e98e76..1a20271fd 100644 --- a/Sources/_CryptoExtras/OPRFs/VOPRFServer.swift +++ b/Sources/_CryptoExtras/OPRFs/VOPRFServer.swift @@ -11,7 +11,11 @@ // SPDX-License-Identifier: Apache-2.0 // //===----------------------------------------------------------------------===// +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif import Crypto @available(macOS 10.15, iOS 13.2, tvOS 13.2, watchOS 6.1, macCatalyst 13.2, visionOS 1.2, *) diff --git a/Sources/_CryptoExtras/RSA/RSA+BlindSigning.swift b/Sources/_CryptoExtras/RSA/RSA+BlindSigning.swift index a1d56f23f..f21f17358 100644 --- a/Sources/_CryptoExtras/RSA/RSA+BlindSigning.swift +++ b/Sources/_CryptoExtras/RSA/RSA+BlindSigning.swift @@ -11,7 +11,11 @@ // SPDX-License-Identifier: Apache-2.0 // //===----------------------------------------------------------------------===// +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif import Crypto import CryptoBoringWrapper diff --git a/Sources/_CryptoExtras/RSA/RSA.swift b/Sources/_CryptoExtras/RSA/RSA.swift index df6a5876b..4d37e9e8f 100644 --- a/Sources/_CryptoExtras/RSA/RSA.swift +++ b/Sources/_CryptoExtras/RSA/RSA.swift @@ -11,7 +11,11 @@ // SPDX-License-Identifier: Apache-2.0 // //===----------------------------------------------------------------------===// +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif import Crypto import CryptoBoringWrapper import SwiftASN1 diff --git a/Sources/_CryptoExtras/RSA/RSA_boring.swift b/Sources/_CryptoExtras/RSA/RSA_boring.swift index cd560d759..fae4da655 100644 --- a/Sources/_CryptoExtras/RSA/RSA_boring.swift +++ b/Sources/_CryptoExtras/RSA/RSA_boring.swift @@ -17,7 +17,25 @@ @_implementationOnly import CCryptoBoringSSLShims import Crypto import CryptoBoringWrapper + +#if canImport(FoundationEssentials) +#if os(Windows) +import ucrt +#elseif canImport(Darwin) +import Darwin +#elseif canImport(Glibc) +import Glibc +#elseif canImport(Musl) +import Musl +#elseif canImport(Android) +import Android +#elseif canImport(WASILibc) +import WASILibc +#endif +import FoundationEssentials +#else import Foundation +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) internal struct BoringSSLRSAPublicKey: Sendable { diff --git a/Sources/_CryptoExtras/RSA/RSA_security.swift b/Sources/_CryptoExtras/RSA/RSA_security.swift index 0a88fcc6a..db1f9f96e 100644 --- a/Sources/_CryptoExtras/RSA/RSA_security.swift +++ b/Sources/_CryptoExtras/RSA/RSA_security.swift @@ -11,7 +11,11 @@ // SPDX-License-Identifier: Apache-2.0 // //===----------------------------------------------------------------------===// +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif import Crypto #if CRYPTO_IN_SWIFTPM && !CRYPTO_IN_SWIFTPM_FORCE_BUILD_API diff --git a/Sources/_CryptoExtras/Util/BoringSSLHelpers.swift b/Sources/_CryptoExtras/Util/BoringSSLHelpers.swift index 1590b73d0..b560330c3 100644 --- a/Sources/_CryptoExtras/Util/BoringSSLHelpers.swift +++ b/Sources/_CryptoExtras/Util/BoringSSLHelpers.swift @@ -15,7 +15,11 @@ // NOTE: This file is unconditionally compiled because RSABSSA is implemented using BoringSSL on all platforms. @_implementationOnly import CCryptoBoringSSL @_implementationOnly import CCryptoBoringSSLShims +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif import Crypto @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) diff --git a/Sources/_CryptoExtras/Util/Data+Extensions.swift b/Sources/_CryptoExtras/Util/Data+Extensions.swift index 10494a8fb..a0ca7f9d6 100644 --- a/Sources/_CryptoExtras/Util/Data+Extensions.swift +++ b/Sources/_CryptoExtras/Util/Data+Extensions.swift @@ -12,7 +12,11 @@ // //===----------------------------------------------------------------------===// +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif extension Data { // This overload reduces allocations when used in a chain of infix operations. diff --git a/Sources/_CryptoExtras/Util/I2OSP.swift b/Sources/_CryptoExtras/Util/I2OSP.swift index 66ae93722..bc7dc5ad2 100644 --- a/Sources/_CryptoExtras/Util/I2OSP.swift +++ b/Sources/_CryptoExtras/Util/I2OSP.swift @@ -11,7 +11,24 @@ // SPDX-License-Identifier: Apache-2.0 // //===----------------------------------------------------------------------===// +#if canImport(FoundationEssentials) +#if os(Windows) +import ucrt +#elseif canImport(Darwin) +import Darwin +#elseif canImport(Glibc) +import Glibc +#elseif canImport(Musl) +import Musl +#elseif canImport(Android) +import Android +#elseif canImport(WASILibc) +import WASILibc +#endif +import FoundationEssentials +#else import Foundation +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) func I2OSP(value: Int, outputByteCount: Int) -> Data { diff --git a/Sources/_CryptoExtras/Util/IntegerEncoding.swift b/Sources/_CryptoExtras/Util/IntegerEncoding.swift index 2efe83c82..c26fbdc40 100644 --- a/Sources/_CryptoExtras/Util/IntegerEncoding.swift +++ b/Sources/_CryptoExtras/Util/IntegerEncoding.swift @@ -11,7 +11,11 @@ // SPDX-License-Identifier: Apache-2.0 // //===----------------------------------------------------------------------===// +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif enum IntegerDecodingError: Error, Equatable { case incorrectNumberOfBytes(expected: Int, actual: Int) diff --git a/Sources/_CryptoExtras/Util/PEMDocument.swift b/Sources/_CryptoExtras/Util/PEMDocument.swift index 22f64c430..17467a854 100644 --- a/Sources/_CryptoExtras/Util/PEMDocument.swift +++ b/Sources/_CryptoExtras/Util/PEMDocument.swift @@ -11,7 +11,11 @@ // SPDX-License-Identifier: Apache-2.0 // //===----------------------------------------------------------------------===// +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif import Crypto @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) diff --git a/Sources/_CryptoExtras/Util/PrettyBytes.swift b/Sources/_CryptoExtras/Util/PrettyBytes.swift index 8db832af7..9394fc846 100644 --- a/Sources/_CryptoExtras/Util/PrettyBytes.swift +++ b/Sources/_CryptoExtras/Util/PrettyBytes.swift @@ -11,7 +11,11 @@ // SPDX-License-Identifier: Apache-2.0 // //===----------------------------------------------------------------------===// +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) enum ByteHexEncodingErrors: Error { diff --git a/Sources/_CryptoExtras/ZKPs/DLEQ.swift b/Sources/_CryptoExtras/ZKPs/DLEQ.swift index 0eb97ed74..41cf271ee 100644 --- a/Sources/_CryptoExtras/ZKPs/DLEQ.swift +++ b/Sources/_CryptoExtras/ZKPs/DLEQ.swift @@ -11,7 +11,11 @@ // SPDX-License-Identifier: Apache-2.0 // //===----------------------------------------------------------------------===// +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif import Crypto /// A DLEQ Proof as described in https://cfrg.github.io/draft-irtf-cfrg-voprf/draft-irtf-cfrg-voprf.html#name-generateproof diff --git a/Sources/_CryptoExtras/ZKPs/Prover.swift b/Sources/_CryptoExtras/ZKPs/Prover.swift index b02670b42..ac5fa036b 100644 --- a/Sources/_CryptoExtras/ZKPs/Prover.swift +++ b/Sources/_CryptoExtras/ZKPs/Prover.swift @@ -11,7 +11,11 @@ // SPDX-License-Identifier: Apache-2.0 // //===----------------------------------------------------------------------===// +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif import Crypto @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) diff --git a/Sources/_CryptoExtras/ZKPs/Verifier.swift b/Sources/_CryptoExtras/ZKPs/Verifier.swift index a7e279156..8a9a8445e 100644 --- a/Sources/_CryptoExtras/ZKPs/Verifier.swift +++ b/Sources/_CryptoExtras/ZKPs/Verifier.swift @@ -11,7 +11,11 @@ // SPDX-License-Identifier: Apache-2.0 // //===----------------------------------------------------------------------===// +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif import Crypto @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) diff --git a/Sources/_CryptoExtras/ZKPs/ZKPToolbox.swift b/Sources/_CryptoExtras/ZKPs/ZKPToolbox.swift index 15c730e54..8c7db5d14 100644 --- a/Sources/_CryptoExtras/ZKPs/ZKPToolbox.swift +++ b/Sources/_CryptoExtras/ZKPs/ZKPToolbox.swift @@ -11,7 +11,11 @@ // SPDX-License-Identifier: Apache-2.0 // //===----------------------------------------------------------------------===// +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif import Crypto @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, macCatalyst 13, visionOS 1.0, *) diff --git a/Tests/CryptoTests/Authenticated Encryption/AES-GCM-Runner.swift b/Tests/CryptoTests/Authenticated Encryption/AES-GCM-Runner.swift index ee0f85051..c51dd7dc4 100644 --- a/Tests/CryptoTests/Authenticated Encryption/AES-GCM-Runner.swift +++ b/Tests/CryptoTests/Authenticated Encryption/AES-GCM-Runner.swift @@ -11,7 +11,11 @@ // SPDX-License-Identifier: Apache-2.0 // //===----------------------------------------------------------------------===// +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif import XCTest #if CRYPTO_IN_SWIFTPM && !CRYPTO_IN_SWIFTPM_FORCE_BUILD_API diff --git a/Tests/CryptoTests/Authenticated Encryption/ChaChaPoly-Runner.swift b/Tests/CryptoTests/Authenticated Encryption/ChaChaPoly-Runner.swift index 7eb0a36b8..a36f0b55d 100644 --- a/Tests/CryptoTests/Authenticated Encryption/ChaChaPoly-Runner.swift +++ b/Tests/CryptoTests/Authenticated Encryption/ChaChaPoly-Runner.swift @@ -11,7 +11,11 @@ // SPDX-License-Identifier: Apache-2.0 // //===----------------------------------------------------------------------===// +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif import XCTest #if CRYPTO_IN_SWIFTPM && !CRYPTO_IN_SWIFTPM_FORCE_BUILD_API diff --git a/Tests/CryptoTests/ECDH/BoringSSL/ASN1.swift b/Tests/CryptoTests/ECDH/BoringSSL/ASN1.swift index 2b2457b84..1a3716f37 100644 --- a/Tests/CryptoTests/ECDH/BoringSSL/ASN1.swift +++ b/Tests/CryptoTests/ECDH/BoringSSL/ASN1.swift @@ -11,9 +11,14 @@ // SPDX-License-Identifier: Apache-2.0 // //===----------------------------------------------------------------------===// -import Foundation import XCTest +#if canImport(FoundationEssentials) +import FoundationEssentials +#else +import Foundation +#endif + #if CRYPTO_IN_SWIFTPM && !CRYPTO_IN_SWIFTPM_FORCE_BUILD_API // Skip tests that require @testable imports of CryptoKit. #else diff --git a/Tests/CryptoTests/ECDH/BoringSSL/secpECDH_Runner_boring.swift b/Tests/CryptoTests/ECDH/BoringSSL/secpECDH_Runner_boring.swift index ef6cd8da8..6503f7d5c 100644 --- a/Tests/CryptoTests/ECDH/BoringSSL/secpECDH_Runner_boring.swift +++ b/Tests/CryptoTests/ECDH/BoringSSL/secpECDH_Runner_boring.swift @@ -11,9 +11,14 @@ // SPDX-License-Identifier: Apache-2.0 // //===----------------------------------------------------------------------===// -import Foundation import XCTest +#if canImport(FoundationEssentials) +import FoundationEssentials +#else +import Foundation +#endif + #if CRYPTO_IN_SWIFTPM && !CRYPTO_IN_SWIFTPM_FORCE_BUILD_API // Skip tests that require @testable imports of CryptoKit. #else diff --git a/Tests/CryptoTests/ECDH/X25519-Runner.swift b/Tests/CryptoTests/ECDH/X25519-Runner.swift index c03bd7b8b..41deb8702 100644 --- a/Tests/CryptoTests/ECDH/X25519-Runner.swift +++ b/Tests/CryptoTests/ECDH/X25519-Runner.swift @@ -11,7 +11,11 @@ // SPDX-License-Identifier: Apache-2.0 // //===----------------------------------------------------------------------===// +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif import XCTest #if CRYPTO_IN_SWIFTPM && !CRYPTO_IN_SWIFTPM_FORCE_BUILD_API diff --git a/Tests/CryptoTests/ECDH/secpECDH_Runner.swift b/Tests/CryptoTests/ECDH/secpECDH_Runner.swift index aa89bbbde..e03efa1d5 100644 --- a/Tests/CryptoTests/ECDH/secpECDH_Runner.swift +++ b/Tests/CryptoTests/ECDH/secpECDH_Runner.swift @@ -11,7 +11,11 @@ // SPDX-License-Identifier: Apache-2.0 // //===----------------------------------------------------------------------===// +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif import XCTest #if CRYPTO_IN_SWIFTPM && !CRYPTO_IN_SWIFTPM_FORCE_BUILD_API diff --git a/Tests/CryptoTests/HPKE/HPKETests-TestVectors.swift b/Tests/CryptoTests/HPKE/HPKETests-TestVectors.swift index 0ce8fa259..23f815e0b 100644 --- a/Tests/CryptoTests/HPKE/HPKETests-TestVectors.swift +++ b/Tests/CryptoTests/HPKE/HPKETests-TestVectors.swift @@ -11,7 +11,11 @@ // SPDX-License-Identifier: Apache-2.0 // //===----------------------------------------------------------------------===// +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif import XCTest #if CRYPTO_IN_SWIFTPM && !CRYPTO_IN_SWIFTPM_FORCE_BUILD_API diff --git a/Tests/CryptoTests/HPKE/HPKETests.swift b/Tests/CryptoTests/HPKE/HPKETests.swift index 80fb0ac16..e0e9e888b 100644 --- a/Tests/CryptoTests/HPKE/HPKETests.swift +++ b/Tests/CryptoTests/HPKE/HPKETests.swift @@ -11,7 +11,11 @@ // SPDX-License-Identifier: Apache-2.0 // //===----------------------------------------------------------------------===// +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif import XCTest #if CRYPTO_IN_SWIFTPM && !CRYPTO_IN_SWIFTPM_FORCE_BUILD_API diff --git a/Tests/CryptoTests/Key Derivation/ECprivateKeysFromSeeds.swift b/Tests/CryptoTests/Key Derivation/ECprivateKeysFromSeeds.swift index 06ebe89e3..ef4d0cef2 100644 --- a/Tests/CryptoTests/Key Derivation/ECprivateKeysFromSeeds.swift +++ b/Tests/CryptoTests/Key Derivation/ECprivateKeysFromSeeds.swift @@ -11,7 +11,11 @@ // SPDX-License-Identifier: Apache-2.0 // //===----------------------------------------------------------------------===// +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif import XCTest #if CRYPTO_IN_SWIFTPM && !CRYPTO_IN_SWIFTPM_FORCE_BUILD_API diff --git a/Tests/CryptoTests/Signatures/ECDSA/ECDSASignatureTests.swift b/Tests/CryptoTests/Signatures/ECDSA/ECDSASignatureTests.swift index a13eff23d..f3e2fcd2c 100644 --- a/Tests/CryptoTests/Signatures/ECDSA/ECDSASignatureTests.swift +++ b/Tests/CryptoTests/Signatures/ECDSA/ECDSASignatureTests.swift @@ -11,7 +11,11 @@ // SPDX-License-Identifier: Apache-2.0 // //===----------------------------------------------------------------------===// +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif import XCTest #if CRYPTO_IN_SWIFTPM && !CRYPTO_IN_SWIFTPM_FORCE_BUILD_API diff --git a/Tests/CryptoTests/Utils/Boring/CTRDRBG.swift b/Tests/CryptoTests/Utils/Boring/CTRDRBG.swift index 8e024d9fe..aff625d83 100644 --- a/Tests/CryptoTests/Utils/Boring/CTRDRBG.swift +++ b/Tests/CryptoTests/Utils/Boring/CTRDRBG.swift @@ -12,7 +12,11 @@ // //===----------------------------------------------------------------------===// #if CRYPTO_IN_SWIFTPM && CRYPTO_IN_SWIFTPM_FORCE_BUILD_API +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif @_implementationOnly import CCryptoBoringSSL import Crypto diff --git a/Tests/CryptoTests/Utils/Boring/SequenceDRBG.swift b/Tests/CryptoTests/Utils/Boring/SequenceDRBG.swift index ae7c0b266..89c32f622 100644 --- a/Tests/CryptoTests/Utils/Boring/SequenceDRBG.swift +++ b/Tests/CryptoTests/Utils/Boring/SequenceDRBG.swift @@ -12,7 +12,11 @@ // //===----------------------------------------------------------------------===// #if CRYPTO_IN_SWIFTPM && CRYPTO_IN_SWIFTPM_FORCE_BUILD_API +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif @_implementationOnly import CCryptoBoringSSL import Crypto diff --git a/Tests/CryptoTests/Utils/PrettyBytes.swift b/Tests/CryptoTests/Utils/PrettyBytes.swift index 53563509d..8a8ef78c8 100644 --- a/Tests/CryptoTests/Utils/PrettyBytes.swift +++ b/Tests/CryptoTests/Utils/PrettyBytes.swift @@ -14,8 +14,12 @@ #if CRYPTOKIT_NO_ACCESS_TO_FOUNDATION import SwiftSystem #else +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation #endif +#endif enum ByteHexEncodingErrors: Error { case incorrectHexValue diff --git a/Tests/CryptoTests/Utils/SplitData.swift b/Tests/CryptoTests/Utils/SplitData.swift index e0c17e48f..37283d85e 100644 --- a/Tests/CryptoTests/Utils/SplitData.swift +++ b/Tests/CryptoTests/Utils/SplitData.swift @@ -11,7 +11,11 @@ // SPDX-License-Identifier: Apache-2.0 // //===----------------------------------------------------------------------===// +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif import Dispatch // A testing utility that creates one contiguous and one discontiguous representation of the given Data. diff --git a/Tests/_CryptoExtrasTests/AES Block Function Tests.swift b/Tests/_CryptoExtrasTests/AES Block Function Tests.swift index 776962d45..926cc04fc 100644 --- a/Tests/_CryptoExtrasTests/AES Block Function Tests.swift +++ b/Tests/_CryptoExtrasTests/AES Block Function Tests.swift @@ -11,7 +11,11 @@ // SPDX-License-Identifier: Apache-2.0 // //===----------------------------------------------------------------------===// +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif import XCTest import Crypto import _CryptoExtras diff --git a/Tests/_CryptoExtrasTests/AES-GCM-SIV-Runner.swift b/Tests/_CryptoExtrasTests/AES-GCM-SIV-Runner.swift index 227e73c3c..6cfa781f3 100644 --- a/Tests/_CryptoExtrasTests/AES-GCM-SIV-Runner.swift +++ b/Tests/_CryptoExtrasTests/AES-GCM-SIV-Runner.swift @@ -11,7 +11,11 @@ // SPDX-License-Identifier: Apache-2.0 // //===----------------------------------------------------------------------===// +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif import XCTest import Crypto import _CryptoExtras diff --git a/Tests/_CryptoExtrasTests/AES_CBCTests.swift b/Tests/_CryptoExtrasTests/AES_CBCTests.swift index b42131c69..b2ba34eaa 100644 --- a/Tests/_CryptoExtrasTests/AES_CBCTests.swift +++ b/Tests/_CryptoExtrasTests/AES_CBCTests.swift @@ -13,7 +13,11 @@ //===----------------------------------------------------------------------===// import Crypto +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif import _CryptoExtras import XCTest diff --git a/Tests/_CryptoExtrasTests/AES_CTRTests.swift b/Tests/_CryptoExtrasTests/AES_CTRTests.swift index e154b9b4a..2206967f9 100644 --- a/Tests/_CryptoExtrasTests/AES_CTRTests.swift +++ b/Tests/_CryptoExtrasTests/AES_CTRTests.swift @@ -13,7 +13,11 @@ //===----------------------------------------------------------------------===// import Crypto +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif @testable import _CryptoExtras import XCTest diff --git a/Tests/_CryptoExtrasTests/ChaCha20CTRTests.swift b/Tests/_CryptoExtrasTests/ChaCha20CTRTests.swift index b86bfcaac..fde4a79fc 100644 --- a/Tests/_CryptoExtrasTests/ChaCha20CTRTests.swift +++ b/Tests/_CryptoExtrasTests/ChaCha20CTRTests.swift @@ -11,7 +11,11 @@ // SPDX-License-Identifier: Apache-2.0 // //===----------------------------------------------------------------------===// +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif import XCTest import Crypto import _CryptoExtras diff --git a/Tests/_CryptoExtrasTests/TestRSAEncryption.swift b/Tests/_CryptoExtrasTests/TestRSAEncryption.swift index 63ad1e0f3..b6d45c3b6 100644 --- a/Tests/_CryptoExtrasTests/TestRSAEncryption.swift +++ b/Tests/_CryptoExtrasTests/TestRSAEncryption.swift @@ -11,7 +11,11 @@ // SPDX-License-Identifier: Apache-2.0 // //===----------------------------------------------------------------------===// +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif import XCTest import Crypto import _CryptoExtras diff --git a/Tests/_CryptoExtrasTests/TestRSASigning.swift b/Tests/_CryptoExtrasTests/TestRSASigning.swift index 07da7c127..7bbb2cf1a 100644 --- a/Tests/_CryptoExtrasTests/TestRSASigning.swift +++ b/Tests/_CryptoExtrasTests/TestRSASigning.swift @@ -11,7 +11,11 @@ // SPDX-License-Identifier: Apache-2.0 // //===----------------------------------------------------------------------===// +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif import XCTest import Crypto import CryptoBoringWrapper diff --git a/Tests/_CryptoExtrasTests/Utils/BytesUtil.swift b/Tests/_CryptoExtrasTests/Utils/BytesUtil.swift index 5cc8abc76..4e774b83a 100644 --- a/Tests/_CryptoExtrasTests/Utils/BytesUtil.swift +++ b/Tests/_CryptoExtrasTests/Utils/BytesUtil.swift @@ -11,7 +11,11 @@ // SPDX-License-Identifier: Apache-2.0 // //===----------------------------------------------------------------------===// +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif import XCTest enum ByteHexEncodingErrors: Error { diff --git a/Tests/_CryptoExtrasTests/Utils/SplitData.swift b/Tests/_CryptoExtrasTests/Utils/SplitData.swift index 4b1d19307..040d9cd7a 100644 --- a/Tests/_CryptoExtrasTests/Utils/SplitData.swift +++ b/Tests/_CryptoExtrasTests/Utils/SplitData.swift @@ -11,7 +11,11 @@ // SPDX-License-Identifier: Apache-2.0 // //===----------------------------------------------------------------------===// +#if canImport(FoundationEssentials) +import FoundationEssentials +#else import Foundation +#endif import Dispatch // A testing utility that creates one contiguous and one discontiguous representation of the given Data.