@@ -34,6 +34,7 @@ public class PassportReader : NSObject {
34
34
private var caHandler : ChipAuthenticationHandler ?
35
35
private var paceHandler : PACEHandler ?
36
36
private var mrzKey : String = " "
37
+ private var aaChallenge : [ UInt8 ] ?
37
38
private var dataAmountToReadOverride : Int ? = nil
38
39
39
40
private var scanCompletedHandler : ( ( NFCPassportModel ? , NFCPassportReaderError ? ) -> ( ) ) !
@@ -63,10 +64,11 @@ public class PassportReader : NSObject {
63
64
dataAmountToReadOverride = amount
64
65
}
65
66
66
- public func readPassport( mrzKey : String , tags : [ DataGroupId ] = [ ] , skipSecureElements : Bool = true , skipCA : Bool = false , skipPACE : Bool = false , useExtendedMode : Bool = false , customDisplayMessage : ( ( NFCViewDisplayMessage ) -> String ? ) ? = nil ) async throws -> NFCPassportModel {
67
+ public func readPassport( mrzKey : String , tags : [ DataGroupId ] = [ ] , aaChallenge : [ UInt8 ] ? = nil , skipSecureElements : Bool = true , skipCA : Bool = false , skipPACE : Bool = false , useExtendedMode : Bool = false , customDisplayMessage : ( ( NFCViewDisplayMessage ) -> String ? ) ? = nil ) async throws -> NFCPassportModel {
67
68
68
69
self . passport = NFCPassportModel ( )
69
70
self . mrzKey = mrzKey
71
+ self . aaChallenge = aaChallenge
70
72
self . skipCA = skipCA
71
73
self . skipPACE = skipPACE
72
74
self . useExtendedMode = useExtendedMode
@@ -267,7 +269,7 @@ extension PassportReader {
267
269
268
270
Logger . passportReader. info ( " Performing Active Authentication " )
269
271
270
- let challenge = generateRandomUInt8Array ( 8 )
272
+ let challenge = aaChallenge ?? generateRandomUInt8Array ( 8 )
271
273
Logger . passportReader. debug ( " Generated Active Authentication challange - \( binToHexRep ( challenge) ) " )
272
274
let response = try await tagReader. doInternalAuthentication ( challenge: challenge, useExtendedMode: useExtendedMode)
273
275
self . passport. verifyActiveAuthentication ( challenge: challenge, signature: response. data )
0 commit comments