Files
palemoon27/dom/webidl/SecureElement.webidl
T
roytam1 9fd132e8a3 import changes from `dev' branch of rmottola/Arctic-Fox:
- Bug 1153248, re-enable a bunch of tests that now work with e10s, r=billm (c7d1a1d95)
- Bug 1113086 - AudioChannel policy in Browser API - patch 1 - BrowserElementAudioChannel, r=ehsan (b25164d4f)
- Bug 1158798 - Properly initialize the LookAndFeel cache in the child. r=mstange. (0f4232b5c)
- Bug 1113086 - AudioChannel policy in Browser API - patch 2 - IPC communication between AudioChannelServices, r=ehsan (a2132f4d4)
- Bug 1113086 - AudioChannel policy in Browser API - patch 3 - right management of audiochannel-activity events in child processes, r=ehsan (d1bd88e79)
- Bug 1150727 - Enable software vsync refresh driver on Linux. r=kats (a991d3c25)
- Bug 1113086 - AudioChannel policy in Browser API - patch 4 - Muted by default, e=alwu (a8978ef69)
- Bug 1167064 - Patch3: Update mochitests for switching to Bluetooth APIv2. r=bz (f02729d0d)
- Bug 1113086 - AudioChannel policy in Browser API - patch 5 - nsTObserverArray instead hashtables, r=ehsan, r=alwu (8f9aa5d4f)
- Bug 1113086 - AudioChannel policy in Browser API - patch 6 - media-playback has to be dispatched async, r=alwu (da4da2207)
- Bug 1113086 - AudioChannel policy in Browser API - patch 7 - Support non-app iframe, r=alwu (7078c3df5)
- Bug 1174733 - Browser API: iframe.executeScript. r=kanru, r=bholley (5e19f9186)
- Bug 1146355: Prepare build system to support Bluetooth APIs v1 and v2, r=shuang (ffe7bf5ef)
- Bug 1156716: Build GATT backend as part of Bluetooth v1, r=joliu (033da499a)
- Bug 1168343 - Remove the improper MOZ_ASSERT in |BluetoothServiceBluedroid::BondStateChangedNotification|. r=shuang (10d398b57)
- Bug 1128386 - Handle |STATUS_FAIL| in |BondStateChangedNotification()|. r=tzimmermann (0bb76982f)
- Bug 1164498: Remove |DispatchBluetoothReply| from |BluetoothServiceBluedroid|, r=btian (c027eb350)
- Bug 1167064 - Patch1: Switch to bluetooth APIv2. r=shuang (37c775331)
- Bug 1153717 - [Stingray] Update document reference link on InputPort API. r=baku, a=NPOTB (550bd985d)
- Bug 1179718 - Rename CheckPermissions to CheckAnyPermissions. r=bz (b8e4bf1b7)
- Bug 1152702 - Fix upper bounds of ContiguousEnumSerializer for BluetoothStatus and BluetoothSspVariant. r=tzimmermann (30ec5dc1a)
- Bug 1162893 - Fix BluetoothGattWriteType serialization problem. f=elin, r=jocelyn (d36e089da)
- Bug 1152631 - We no longer display category data for platform data in call tree, r=jsantell (6e2e877a0)
- Bug 1164338 - Tests that the style markers have restyleHints. r=pbrosset (d6c357832)
- Bug 1058898 - Enable e10s tests on the performance tool. r=vp (18c8324c3)
- Bug 814497 - Fix nsScriptErrorWithStack constructor. r=ehsan (8096b8a8a)
- Bug 814497 followup: Add missing 'override' keyword to nsScriptErrorWithStack method 'GetStack'. rs=ehsan (30889b974)
2021-06-02 10:22:06 +08:00

161 lines
5.0 KiB
Plaintext

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
/* Copyright © 2014 Deutsche Telekom, Inc. */
enum SEType {
"uicc",
"eSE"
};
enum SEError {
"SESecurityError", // Requested operation does not match the access control rules of the application.
"SEIoError", // I/O Error while communicating with the secure element.
"SEBadStateError", // Error occuring as a result of bad state.
"SEInvalidChannelError", // Opening a channel failed because no channel is available.
"SEInvalidApplicationError", // The requested application was not found on the secure element.
"SEGenericError" // Generic failures.
};
enum SEChannelType {
"basic",
"logical"
};
// Dictionary that represents an APDU command to be sent to a secure element.
dictionary SECommand {
required octet cla; // Class Byte
required octet ins; // Instruction Byte
required octet p1; // First Octet of Parameters Byte
required octet p2; // Second Octet of Parameters Byte
sequence<octet>? data = null; // Sequence of octets
short le = -1; // The length of the expected
// response data or -1 if none is expected
};
[Pref="dom.secureelement.enabled",
CheckAnyPermissions="secureelement-manage",
AvailableIn="CertifiedApps",
JSImplementation="@mozilla.org/secureelement/reader;1"]
interface SEReader {
// 'true' if a secure element is present
readonly attribute boolean isSEPresent;
// Type of SecureElement
readonly attribute SEType type;
/**
* Opens a session with the Secure Element.
* Note that a reader may have several opened sessions.
*
* @return If the operation is successful the promise is resolved with an instance of SESession.
*/
[Throws]
Promise<SESession> openSession();
/**
* Closes all sessions associated with this Reader and its associated channels.
*
*/
[Throws]
Promise<void> closeAll();
};
[Pref="dom.secureelement.enabled",
CheckAnyPermissions="secureelement-manage",
AvailableIn="CertifiedApps",
JSImplementation="@mozilla.org/secureelement/session;1"]
interface SESession {
// 'reader' that provides this session
readonly attribute SEReader reader;
// Status of current session
readonly attribute boolean isClosed;
/**
* Opens a communication logical channel to an application on Secure Element identified by the AID.
* The 'aid' can be null for some secure elements.
*
* @param aid
* Application Identifier of the Card Applet on the secure element.
* If the 'aid' is null :
* For secure element type 'eSE', the default applet is selected.
* For secure element type 'uicc', the request will be immediately rejected.
* Note that the length of 'aid should be between 5 and 16.
*
* @return If the operation is successful the promise is resolved with an instance of SEChannel.
*/
[Throws]
Promise<SEChannel> openLogicalChannel(Uint8Array? aid);
/**
* Close all active channels associated with this session.
*
*/
[Throws]
Promise<void> closeAll();
};
[Pref="dom.secureelement.enabled",
CheckAnyPermissions="secureelement-manage",
AvailableIn="CertifiedApps",
JSImplementation="@mozilla.org/secureelement/channel;1"]
interface SEChannel {
// 'session' obj this channel is bound to
readonly attribute SESession session;
// response to openBasicChannel / openLogicalChannel operation
[Constant, Cached] readonly attribute Uint8Array? openResponse;
// Status of channel
readonly attribute boolean isClosed;
// Type of channel
readonly attribute SEChannelType type;
/**
* Transmits the APDU command to the secure element. This is an atomic operation that transmits
* an APDU command (as per ISO7816-4) to the secure element (UICC / eSE). Upon receiving response
* to the transmit apdu command, it is propogated to the applications using SEResponse object.
*
* @param command
* SECommand to be sent to secure element
*
* @return If success, the promise is resolved with the new created
* SEResponse object. Otherwise, rejected with the error of type 'SEError'.
*/
[Throws]
Promise<SEResponse> transmit(optional SECommand command);
/**
* Closes the active channel.
*
*/
[Throws]
Promise<void> close();
};
[Pref="dom.secureelement.enabled",
CheckAnyPermissions="secureelement-manage",
AvailableIn="CertifiedApps",
JSImplementation="@mozilla.org/secureelement/response;1"]
interface SEResponse {
// Response received on this 'channel' object.
[Constant] readonly attribute SEChannel channel;
// First octet of response's status word
[Constant] readonly attribute octet sw1;
// Second octet of response's status word
[Constant] readonly attribute octet sw2;
// The response's data field bytes
[Cached, Pure] readonly attribute sequence<octet>? data;
};