From 263b1f51e8db5bce3f9162613141ebe2d9964227 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 13 Feb 2026 08:10:39 +0000 Subject: [PATCH 1/3] Initial plan From a1dc40439aab3fd8c6cd1cefbde21b33917ae964 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 13 Feb 2026 08:14:42 +0000 Subject: [PATCH 2/3] Fix irmago v0.19.1 compatibility: update StartSession signature Updated the signingSessionHandler interface and mock implementations to match the new irmago v0.19.1 StartSession method signature which now requires a requestor string parameter. Co-authored-by: reinkrul <1481228+reinkrul@users.noreply.github.com> --- auth/services/irma/signer.go | 4 ++-- auth/services/irma/validator_test.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/auth/services/irma/signer.go b/auth/services/irma/signer.go index 936b73c75e..e206776e50 100644 --- a/auth/services/irma/signer.go +++ b/auth/services/irma/signer.go @@ -105,7 +105,7 @@ func (v Signer) StartSigningSession(contract contract.Contract, _ map[string]int sessionPointer, token, _, err := v.sessionHandler.StartSession(signatureRequest, func(result *server.SessionResult) { log.Logger().Debug("Session done") log.Logger().Trace(server.ToJson(result)) - }) + }, "") if err != nil { return nil, fmt.Errorf("error while creating session: %w", err) } @@ -216,6 +216,6 @@ func printQrCode(qrcode string) { // signingSessionHandler is an abstraction for the Irma Server, mainly for enabling better testing type signingSessionHandler interface { GetSessionResult(token irmago.RequestorToken) (*server.SessionResult, error) - StartSession(request interface{}, handler server.SessionHandler) (*irmago.Qr, irmago.RequestorToken, *irmago.FrontendSessionRequest, error) + StartSession(request interface{}, handler server.SessionHandler, requestor string) (*irmago.Qr, irmago.RequestorToken, *irmago.FrontendSessionRequest, error) HandlerFunc() http.HandlerFunc } diff --git a/auth/services/irma/validator_test.go b/auth/services/irma/validator_test.go index 20ad04fdd8..219997b4c3 100644 --- a/auth/services/irma/validator_test.go +++ b/auth/services/irma/validator_test.go @@ -48,7 +48,7 @@ func (m *mockIrmaClient) GetSessionResult(token irma.RequestorToken) (*irmaserve return m.sessionResult, nil } -func (m *mockIrmaClient) StartSession(request interface{}, handler irmaservercore.SessionHandler) (*irma.Qr, irma.RequestorToken, *irma.FrontendSessionRequest, error) { +func (m *mockIrmaClient) StartSession(request interface{}, handler irmaservercore.SessionHandler, requestor string) (*irma.Qr, irma.RequestorToken, *irma.FrontendSessionRequest, error) { if m.err != nil { return nil, "", nil, m.err } From 45380163752cef09e7fad673ab440d16d7ed72de Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 13 Feb 2026 08:16:12 +0000 Subject: [PATCH 3/3] Add documentation for requestor parameter Added comments explaining the purpose of the requestor parameter and why an empty string is used in the nuts-node context. Co-authored-by: reinkrul <1481228+reinkrul@users.noreply.github.com> --- auth/services/irma/signer.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/auth/services/irma/signer.go b/auth/services/irma/signer.go index e206776e50..6d8316c3ba 100644 --- a/auth/services/irma/signer.go +++ b/auth/services/irma/signer.go @@ -102,6 +102,7 @@ func (v Signer) StartSigningSession(contract contract.Contract, _ map[string]int } // Start an IRMA session + // The empty string for requestor parameter is used because the nuts-node acts as a single requestor sessionPointer, token, _, err := v.sessionHandler.StartSession(signatureRequest, func(result *server.SessionResult) { log.Logger().Debug("Session done") log.Logger().Trace(server.ToJson(result)) @@ -216,6 +217,7 @@ func printQrCode(qrcode string) { // signingSessionHandler is an abstraction for the Irma Server, mainly for enabling better testing type signingSessionHandler interface { GetSessionResult(token irmago.RequestorToken) (*server.SessionResult, error) + // StartSession starts an IRMA session. The requestor parameter identifies the party requesting the session. StartSession(request interface{}, handler server.SessionHandler, requestor string) (*irmago.Qr, irmago.RequestorToken, *irmago.FrontendSessionRequest, error) HandlerFunc() http.HandlerFunc }