diff --git a/SecretAgentKitTests/StubStore.swift b/SecretAgentKitTests/StubStore.swift index 7f4fb38..42db26a 100644 --- a/SecretAgentKitTests/StubStore.swift +++ b/SecretAgentKitTests/StubStore.swift @@ -48,7 +48,7 @@ extension Stub { print("Public Key OpenSSH: \(OpenSSHKeyWriter().openSSHString(secret: secret))") } - public func sign(data: Data, with secret: Secret, for provenance: SigningRequestProvenance) throws -> Data { + public func sign(data: Data, with secret: Secret, for provenance: SigningRequestProvenance) throws -> SignedData { guard !shouldThrow else { throw NSError(domain: "test", code: 0, userInfo: nil) } @@ -67,7 +67,10 @@ extension Stub { default: fatalError() } - return SecKeyCreateSignature(privateKey, signatureAlgorithm, data as CFData, nil)! as Data + return SignedData(data: SecKeyCreateSignature(privateKey, signatureAlgorithm, data as CFData, nil)! as Data, requiredAuthentication: false) + } + + public func persistAuthentication(secret: Stub.Secret, forDuration duration: TimeInterval) throws { } } diff --git a/SecretAgentKitTests/StubWitness.swift b/SecretAgentKitTests/StubWitness.swift index 230c009..965ce5f 100644 --- a/SecretAgentKitTests/StubWitness.swift +++ b/SecretAgentKitTests/StubWitness.swift @@ -10,14 +10,14 @@ struct StubWitness { extension StubWitness: SigningWitness { - func speakNowOrForeverHoldYourPeace(forAccessTo secret: AnySecret, by provenance: SigningRequestProvenance) throws { +func speakNowOrForeverHoldYourPeace(forAccessTo secret: AnySecret, from store: AnySecretStore, by provenance: SigningRequestProvenance) throws { let objection = speakNow(secret, provenance) if objection { throw TheresMyChance() } } - func witness(accessTo secret: AnySecret, by provenance: SigningRequestProvenance) throws { +func witness(accessTo secret: AnySecret, from store: AnySecretStore, by provenance: SigningRequestProvenance, requiredAuthentication: Bool) throws { witness(secret, provenance) } diff --git a/SecretKit/Common/Types/SignedData.swift b/SecretKit/Common/Types/SignedData.swift index 14b529c..bcaf171 100644 --- a/SecretKit/Common/Types/SignedData.swift +++ b/SecretKit/Common/Types/SignedData.swift @@ -1,6 +1,13 @@ import Foundation public struct SignedData { + public let data: Data public let requiredAuthentication: Bool + + public init(data: Data, requiredAuthentication: Bool) { + self.data = data + self.requiredAuthentication = requiredAuthentication + } + } diff --git a/Secretive/Preview Content/PreviewStore.swift b/Secretive/Preview Content/PreviewStore.swift index dc5e6cb..4d4fbdb 100644 --- a/Secretive/Preview Content/PreviewStore.swift +++ b/Secretive/Preview Content/PreviewStore.swift @@ -35,8 +35,11 @@ extension Preview { self.secrets.append(contentsOf: new) } - func sign(data: Data, with secret: Preview.Secret, for provenance: SigningRequestProvenance) throws -> Data { - return data + func sign(data: Data, with secret: Preview.Secret, for provenance: SigningRequestProvenance) throws -> SignedData { + return SignedData(data: data, requiredAuthentication: false) + } + + func persistAuthentication(secret: Preview.Secret, forDuration duration: TimeInterval) throws { } }