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.
|
||||
segments.append(segment)
|
||||
if segment.starts(with: keyType.footerStart), segment.hasSuffix(keyType.footerEnd) {
|
||||
if scannedKey.contains(keyType.footerStart), scannedKey.hasSuffix(keyType.footerEnd) {
|
||||
return .completed
|
||||
}
|
||||
previousResult = .scanned(segments.count)
|
||||
|
|
|
|||
|
|
@ -48,4 +48,11 @@ class QRKeyScannerTest: XCTestCase {
|
|||
XCTAssertEqual(scanner.add(segment: body), .lookingForStart)
|
||||
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