Fix #407: Search all scanned segments for the key block footer
This commit is contained in:
parent
078503f249
commit
6ae506d7e6
2 changed files with 8 additions and 1 deletions
|
|
@ -64,7 +64,7 @@ struct QRKeyScanner {
|
||||||
|
|
||||||
// Update the list of scanned segments and return.
|
// Update the list of scanned segments and return.
|
||||||
segments.append(segment)
|
segments.append(segment)
|
||||||
if segment.starts(with: keyType.footerStart), segment.hasSuffix(keyType.footerEnd) {
|
if scannedKey.contains(keyType.footerStart), scannedKey.hasSuffix(keyType.footerEnd) {
|
||||||
return .completed
|
return .completed
|
||||||
}
|
}
|
||||||
previousResult = .scanned(segments.count)
|
previousResult = .scanned(segments.count)
|
||||||
|
|
|
||||||
|
|
@ -48,4 +48,11 @@ class QRKeyScannerTest: XCTestCase {
|
||||||
XCTAssertEqual(scanner.add(segment: body), .lookingForStart)
|
XCTAssertEqual(scanner.add(segment: body), .lookingForStart)
|
||||||
XCTAssertTrue(scanner.scannedKey.isEmpty)
|
XCTAssertTrue(scanner.scannedKey.isEmpty)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func testFooterSplitIntoDifferentSegments() {
|
||||||
|
XCTAssertEqual(scanner.add(segment: header), .scanned(1))
|
||||||
|
XCTAssertEqual(scanner.add(segment: "-----END PGP PUBLIC KEY "), .scanned(2))
|
||||||
|
XCTAssertEqual(scanner.add(segment: "BLOCK-----"), .completed)
|
||||||
|
XCTAssertEqual(scanner.scannedKey, header + footer)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue