mirror of
https://github.com/maxgoedjen/secretive.git
synced 2025-04-18 05:22:11 +00:00
Validate signature
This commit is contained in:
parent
65a01f59f1
commit
927dce506a
@ -1,5 +1,6 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
import XCTest
|
import XCTest
|
||||||
|
import CryptoKit
|
||||||
@testable import SecretKit
|
@testable import SecretKit
|
||||||
@testable import SecretAgentKit
|
@testable import SecretAgentKit
|
||||||
|
|
||||||
@ -36,13 +37,25 @@ class AgentTests: XCTestCase {
|
|||||||
|
|
||||||
func testSignature() {
|
func testSignature() {
|
||||||
let stubReader = StubFileHandleReader(availableData: Constants.Requests.requestSignature)
|
let stubReader = StubFileHandleReader(availableData: Constants.Requests.requestSignature)
|
||||||
let list = storeList(with: [Constants.Secrets.ecdsa256Secret])
|
let requestReader = OpenSSHReader(data: Constants.Requests.requestSignature[5...])
|
||||||
|
_ = requestReader.readNextChunk()
|
||||||
|
let dataToSign = requestReader.readNextChunk()
|
||||||
|
let list = storeList(with: [Constants.Secrets.ecdsa256Secret, Constants.Secrets.ecdsa384Secret])
|
||||||
let agent = Agent(storeList: list)
|
let agent = Agent(storeList: list)
|
||||||
agent.handle(reader: stubReader, writer: stubWriter)
|
agent.handle(reader: stubReader, writer: stubWriter)
|
||||||
let reader = OpenSSHReader(data: stubWriter.data)
|
let outer = OpenSSHReader(data: stubWriter.data[5...])
|
||||||
// TODO: VERIFY
|
let payload = outer.readNextChunk()
|
||||||
XCTAssertFalse(true)
|
let inner = OpenSSHReader(data: payload)
|
||||||
print(stubWriter.data.base64EncodedString())
|
_ = inner.readNextChunk()
|
||||||
|
let signedData = inner.readNextChunk()
|
||||||
|
let rsData = OpenSSHReader(data: signedData)
|
||||||
|
let r = rsData.readNextChunk()
|
||||||
|
let s = rsData.readNextChunk()
|
||||||
|
var rs = r
|
||||||
|
rs.append(s)
|
||||||
|
let signature = try! P256.Signing.ECDSASignature(rawRepresentation: rs)
|
||||||
|
let valid = try! P256.Signing.PublicKey(x963Representation: Constants.Secrets.ecdsa256Secret.publicKey).isValidSignature(signature, for: dataToSign)
|
||||||
|
XCTAssertTrue(valid)
|
||||||
}
|
}
|
||||||
|
|
||||||
// MARK: Witness protocol
|
// MARK: Witness protocol
|
||||||
|
Loading…
Reference in New Issue
Block a user