blob: 3daf250378ec0b3c1304f5e6c829ec600f6e122d [file]
# Copyright 2025 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# Contributing to Chrome DevTools Protocol: https://goo.gle/devtools-contribution-guide-cdp
# This domain allows to emulate smart card readers and cards,
# bypassing the need for physical hardware.
experimental domain SmartCardEmulation
# Indicates the PC/SC error code.
#
# This maps to:
# PC/SC Lite: https://pcsclite.apdu.fr/api/group__ErrorCodes.html
# Microsoft: https://learn.microsoft.com/en-us/windows/win32/secauthn/authentication-return-values
type ResultCode extends string
enum
success
removed-card
reset-card
unpowered-card
unresponsive-card
unsupported-card
reader-unavailable
sharing-violation
not-transacted
no-smartcard
proto-mismatch
system-cancelled
not-ready
cancelled
insufficient-buffer
invalid-handle
invalid-parameter
invalid-value
no-memory
timeout
unknown-reader
unsupported-feature
no-readers-available
service-stopped
no-service
comm-error
internal-error
server-too-busy
unexpected
shutdown
# Maps to SCARD_E_UNKNOWN_CARD.
# TODO(crbug.com/472114998): Rename Mojo's kUnknownError to kUnknownCard to match.
unknown-card
# Error code that is not mapped in this enum.
unknown
# Maps to the |SCARD_SHARE_*| values.
type ShareMode extends string
enum
shared
exclusive
direct
# Indicates what the reader should do with the card.
type Disposition extends string
enum
leave-card
reset-card
unpower-card
eject-card
# Maps to |SCARD_*| connection state values.
type ConnectionState extends string
enum
absent
present
swallowed
powered
negotiable
specific
# Maps to the |SCARD_STATE_*| flags.
type ReaderStateFlags extends object
properties
optional boolean unaware
optional boolean ignore
optional boolean changed
optional boolean unknown
optional boolean unavailable
optional boolean empty
optional boolean present
optional boolean exclusive
optional boolean inuse
optional boolean mute
optional boolean unpowered
# Maps to the |SCARD_PROTOCOL_*| flags.
type ProtocolSet extends object
properties
optional boolean t0
optional boolean t1
optional boolean raw
# Maps to the |SCARD_PROTOCOL_*| values.
type Protocol extends string
enum
t0
t1
raw
type ReaderStateIn extends object
properties
string reader
ReaderStateFlags currentState
integer currentInsertionCount
type ReaderStateOut extends object
properties
string reader
ReaderStateFlags eventState
integer eventCount
binary atr
# Enables the |SmartCardEmulation| domain.
command enable
# Disables the |SmartCardEmulation| domain.
command disable
# Reports the successful result of a |SCardEstablishContext| call.
#
# This maps to:
# PC/SC Lite: https://pcsclite.apdu.fr/api/group__API.html#gaa1b8970169fd4883a6dc4a8f43f19b67
# Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardestablishcontext
command reportEstablishContextResult
parameters
string requestId
integer contextId
# Reports the successful result of a |SCardReleaseContext| call.
#
# This maps to:
# PC/SC Lite: https://pcsclite.apdu.fr/api/group__API.html#ga6aabcba7744c5c9419fdd6404f73a934
# Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardreleasecontext
command reportReleaseContextResult
parameters
string requestId
# Reports the successful result of a |SCardListReaders| call.
#
# This maps to:
# PC/SC Lite: https://pcsclite.apdu.fr/api/group__API.html#ga93b07815789b3cf2629d439ecf20f0d9
# Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardlistreadersa
command reportListReadersResult
parameters
string requestId
array of string readers
# Reports the successful result of a |SCardGetStatusChange| call.
#
# This maps to:
# PC/SC Lite: https://pcsclite.apdu.fr/api/group__API.html#ga33247d5d1257d59e55647c3bb717db24
# Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardgetstatuschangea
command reportGetStatusChangeResult
parameters
string requestId
array of ReaderStateOut readerStates
# Reports the result of a |SCardBeginTransaction| call.
# On success, this creates a new transaction object.
#
# This maps to:
# PC/SC Lite: https://pcsclite.apdu.fr/api/group__API.html#gaddb835dce01a0da1d6ca02d33ee7d861
# Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardbegintransaction
command reportBeginTransactionResult
parameters
string requestId
integer handle
# Reports the successful result of a call that returns only a result code.
# Used for: |SCardCancel|, |SCardDisconnect|, |SCardSetAttrib|, |SCardEndTransaction|.
#
# This maps to:
# 1. SCardCancel
# PC/SC Lite: https://pcsclite.apdu.fr/api/group__API.html#gaacbbc0c6d6c0cbbeb4f4debf6fbeeee6
# Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardcancel
#
# 2. SCardDisconnect
# PC/SC Lite: https://pcsclite.apdu.fr/api/group__API.html#ga4be198045c73ec0deb79e66c0ca1738a
# Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scarddisconnect
#
# 3. SCardSetAttrib
# PC/SC Lite: https://pcsclite.apdu.fr/api/group__API.html#ga060f0038a4ddfd5dd2b8fadf3c3a2e4f
# Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardsetattrib
#
# 4. SCardEndTransaction
# PC/SC Lite: https://pcsclite.apdu.fr/api/group__API.html#gae8742473b404363e5c587f570d7e2f3b
# Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardendtransaction
command reportPlainResult
parameters
string requestId
# Reports the successful result of a |SCardConnect| call.
#
# This maps to:
# PC/SC Lite: https://pcsclite.apdu.fr/api/group__API.html#ga4e515829752e0a8dbc4d630696a8d6a5
# Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardconnecta
command reportConnectResult
parameters
string requestId
integer handle
optional Protocol activeProtocol
# Reports the successful result of a call that sends back data on success.
# Used for |SCardTransmit|, |SCardControl|, and |SCardGetAttrib|.
#
# This maps to:
# 1. SCardTransmit
# PC/SC Lite: https://pcsclite.apdu.fr/api/group__API.html#ga9a2d77242a271310269065e64633ab99
# Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardtransmit
#
# 2. SCardControl
# PC/SC Lite: https://pcsclite.apdu.fr/api/group__API.html#gac3454d4657110fd7f753b2d3d8f4e32f
# Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardcontrol
#
# 3. SCardGetAttrib
# PC/SC Lite: https://pcsclite.apdu.fr/api/group__API.html#gaacfec51917255b7a25b94c5104961602
# Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardgetattrib
command reportDataResult
parameters
string requestId
binary data
# Reports the successful result of a |SCardStatus| call.
#
# This maps to:
# PC/SC Lite: https://pcsclite.apdu.fr/api/group__API.html#gae49c3c894ad7ac12a5b896bde70d0382
# Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardstatusa
command reportStatusResult
parameters
string requestId
string readerName
ConnectionState state
binary atr
optional Protocol protocol
# Reports an error result for the given request.
command reportError
parameters
string requestId
ResultCode resultCode
# Fired when |SCardEstablishContext| is called.
#
# This maps to:
# PC/SC Lite: https://pcsclite.apdu.fr/api/group__API.html#gaa1b8970169fd4883a6dc4a8f43f19b67
# Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardestablishcontext
event establishContextRequested
parameters
string requestId
# Fired when |SCardReleaseContext| is called.
#
# This maps to:
# PC/SC Lite: https://pcsclite.apdu.fr/api/group__API.html#ga6aabcba7744c5c9419fdd6404f73a934
# Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardreleasecontext
event releaseContextRequested
parameters
string requestId
integer contextId
# Fired when |SCardListReaders| is called.
#
# This maps to:
# PC/SC Lite: https://pcsclite.apdu.fr/api/group__API.html#ga93b07815789b3cf2629d439ecf20f0d9
# Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardlistreadersa
event listReadersRequested
parameters
string requestId
integer contextId
# Fired when |SCardGetStatusChange| is called. Timeout is specified in milliseconds.
#
# This maps to:
# PC/SC Lite: https://pcsclite.apdu.fr/api/group__API.html#ga33247d5d1257d59e55647c3bb717db24
# Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardgetstatuschangea
event getStatusChangeRequested
parameters
string requestId
integer contextId
array of ReaderStateIn readerStates
# in milliseconds, if absent, it means "infinite"
optional integer timeout
# Fired when |SCardCancel| is called.
#
# This maps to:
# PC/SC Lite: https://pcsclite.apdu.fr/api/group__API.html#gaacbbc0c6d6c0cbbeb4f4debf6fbeeee6
# Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardcancel
event cancelRequested
parameters
string requestId
integer contextId
# Fired when |SCardConnect| is called.
#
# This maps to:
# PC/SC Lite: https://pcsclite.apdu.fr/api/group__API.html#ga4e515829752e0a8dbc4d630696a8d6a5
# Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardconnecta
event connectRequested
parameters
string requestId
integer contextId
string reader
ShareMode shareMode
ProtocolSet preferredProtocols
# Fired when |SCardDisconnect| is called.
#
# This maps to:
# PC/SC Lite: https://pcsclite.apdu.fr/api/group__API.html#ga4be198045c73ec0deb79e66c0ca1738a
# Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scarddisconnect
event disconnectRequested
parameters
string requestId
integer handle
Disposition disposition
# Fired when |SCardTransmit| is called.
#
# This maps to:
# PC/SC Lite: https://pcsclite.apdu.fr/api/group__API.html#ga9a2d77242a271310269065e64633ab99
# Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardtransmit
event transmitRequested
parameters
string requestId
integer handle
binary data
optional Protocol protocol
# Fired when |SCardControl| is called.
#
# This maps to:
# PC/SC Lite: https://pcsclite.apdu.fr/api/group__API.html#gac3454d4657110fd7f753b2d3d8f4e32f
# Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardcontrol
event controlRequested
parameters
string requestId
integer handle
integer controlCode
binary data
# Fired when |SCardGetAttrib| is called.
#
# This maps to:
# PC/SC Lite: https://pcsclite.apdu.fr/api/group__API.html#gaacfec51917255b7a25b94c5104961602
# Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardgetattrib
event getAttribRequested
parameters
string requestId
integer handle
integer attribId
# Fired when |SCardSetAttrib| is called.
#
# This maps to:
# PC/SC Lite: https://pcsclite.apdu.fr/api/group__API.html#ga060f0038a4ddfd5dd2b8fadf3c3a2e4f
# Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardsetattrib
event setAttribRequested
parameters
string requestId
integer handle
integer attribId
binary data
# Fired when |SCardStatus| is called.
#
# This maps to:
# PC/SC Lite: https://pcsclite.apdu.fr/api/group__API.html#gae49c3c894ad7ac12a5b896bde70d0382
# Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardstatusa
event statusRequested
parameters
string requestId
integer handle
# Fired when |SCardBeginTransaction| is called.
#
# This maps to:
# PC/SC Lite: https://pcsclite.apdu.fr/api/group__API.html#gaddb835dce01a0da1d6ca02d33ee7d861
# Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardbegintransaction
event beginTransactionRequested
parameters
string requestId
integer handle
# Fired when |SCardEndTransaction| is called.
#
# This maps to:
# PC/SC Lite: https://pcsclite.apdu.fr/api/group__API.html#gae8742473b404363e5c587f570d7e2f3b
# Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardendtransaction
event endTransactionRequested
parameters
string requestId
integer handle
Disposition disposition