Skip to content

End the bootstrap mode once the standing dialog is initialized - #228

Open
mt-software-de wants to merge 1 commit into
raphaelm:masterfrom
mt-software-de:fix-end-bootstrap-mode
Open

mt-software-de wants to merge 1 commit into
raphaelm:masterfrom
mt-software-de:fix-end-bootstrap-mode

Conversation

@mt-software-de

Copy link
Copy Markdown

FinTS3PinTanClient._bootstrap_mode is set in the constructor and only reset at the end of get_tan_media(). A client that never calls get_tan_media() stays in bootstrap mode forever, e.g. because the TAN method needs no medium, or because it is restored with from_data for a later session. In bootstrap mode a 9075 Starke Authentifizierung erforderlich. is ignored: get_transactions() returns an empty list instead of raising FinTSSCARequiredError, so an application cannot tell "no transactions" from "the bank asks for a strong customer authentication". This happens with Consorsbank for HKKAZ 7 (9050 Nachricht teilweise fehlerhaft. / 9075 Starke Authentifizierung erforderlich.).

The bootstrap mode now ends when the standing dialog is initialized (with client:), the bootstrap itself (fetch_tan_mechanisms(), get_tan_media()) runs without a standing dialog.

Related to #214, which resets the bootstrap mode at the end of fetch_tan_mechanisms(). That doesn't cover clients restored with from_data, which usually don't call fetch_tan_mechanisms() again.

Note that out of bootstrap mode the existing PIN safety check applies too: a 9xxx response before the dialog is open blocks the PIN, as intended.

The test server gets a login test-sca that responds to HKKAZ with 9050/9075, and a test checks that FinTSSCARequiredError is raised.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant