v0.8.0
synaptic-cleft
released this
27 Jul 14:40
·
1006 commits
to master
since this release
This release contains several large new features. In particular, the shoulder surf prevention feature brings a number of breaking changes in the API, mainly within the irmaserver
package.
Added
- Support for chained IRMA sessions
- A Go rewrite of the keyshare server (see the new
irma keyshare
commands), succeeding the now deprecatedirma_keyshare_server
- Added a function
SessionStatus
in theirmaserver
package returning a channel with status updates of an IRMA session - Added
--api-prefix
parameter to the IRMA server for prefixing its API endpoints with a string - Added
--max-session-lifetime
parameter to the IRMA server for setting the session expiry (default 5 minutes) - Shoulder surfing prevention: support for device pairing to prevent shoulder surfing (i.e. make it impossible for someone in close physical proximity to a user to scan the QR code that was meant for the user)
- Introduced new endpoints used by the frontend to manage device pairing
- The API of the
irmaserver
package has two new functionsSetFrontendOptions
andPairingCompleted
- A new server status
"PAIRING"
is introduced
Changes
- During scheme parsing, folders found in the scheme folder not present in the assets (when configured) are removed
- Shoulder surfing prevention:
- The
server.SessionPackage
struct now contains a new structFrontendRequest
of type*irma.FrontendSessionRequest
, containing the following:- A boolean
PairingRecommended
(namedpairingHint
when being marshalled to JSON) that is set to true when pairing is recommended for that session, as indication to the frontend - An
Authorization
token used by the frontend to set pairing options - Fields called
MinProtocolVersion
andMaxProtocolVersion
indicating the frontend protocol version range supported by the IRMA server.
- A boolean
- The return values of the
StartSession
function from the API of theirmaserver
package have changed as follows:- The type of the second return parameter, the requestor token, has changed from
string
toirma.RequestorToken
- A new return parameter (type
*irma.FrontendSessionRequest
) has been added containing the frontend pairing settings (corresponding to theFrontendRequest
field in theserver.SessionPackage
mentioned above)
- The type of the second return parameter, the requestor token, has changed from
- The
token
parameter, as used by most functions in the API of theirmaserver
package, now has the typeirma.RequestorToken
- The
server.Status
type has been moved toirma.ServerStatus
; the related constants are also moved, e.g. fromserver.StatusInitialized
toirma.ServerStatusInitialized
- The
Fixed
- Bug causing IRMA server startup to fail when revocation is enabled
- Bug causing sessions to fail when revocation is enabled and the issuer has multiple revocation-enabled keys
- Incorrectly cased SQL column name used in revocation data lookup
- Bug causing issuance time in revocation records being floored to credential validity epoch boundaries
- Fixed bug when loading private key of issuer if another issuer with a similar name exists