WebCrypto Spec Error Types feedback from MS

As promised, below is MS feedback on the types of error we believe are useful to expose to web developers.  We correlated this information with what was done on IndexedDB.  In addition, we when through Section 14.3 and mapped our proposed error types to steps on each section:

Error Type

Description

Spec Mapping

NOT_SUPPORTED_ERR

The Algorithm is not supported

14.3.1 through 8, 11:
* Step 6
14.3.7:
* Step 7
14.3.9:
* Step 5
14.3.12:
* Step 6
* Step 7

SYNTAX_ERR

Missing parameter errors.  For example, you fail to provide an IV for CBC Mode or not providing a key length when one is needed.

14.3.1 through 12:
* Steps 1 and 5


INVALID_STATE_ERR

An invalid operation was performed on an object instance. For example, you have exceeded the number of operations allowed with a key.

14.3.1 through 4, 8, 11:
* Step 8
14.3.7:
* Step 12
14.3.10:
* Step 6


DATA_ERR

Data provided to an operation does not meet requirements. For example, your plain text is not padded to the correct size.

14.3.1 through 5:
* Step 8
14.3.6:
* Step 7
14.3.7:
* Step 9
14.3.9:
* Step 6
* Step 7
* Step 8
14.3.10:
* Step 5
14.3.11:
* Step 7
14.3.12:
* Step 9
* Step 10
* Step 11
* Step 13

UNKNOWN_ERR

This is a system level transient failure that don't necessarily indicate a failure in the program logic. For example, out of memory conditions.

This could happen in any step

INVALID_ACCESS_ERR

An invalid operation was perform in an object type.  For example, you try to encrypt with a signing key.

14.3.1 through 4, 8, 9:
* Step 7
14.3.7:
* Step 8
14.3.11:
* Step 8
* Step 12
14.3.12:
* Step 8


Remember you'll need to update step 4 on each 14.3.x to return DOMError and remove editorial note.

We were also wondering if the following steps should be in the spec (they seemed redundant):

*        Section 14.3.11 Step 13

*        Section 14.3.12 Step 12

*        Section 14.3.12 Step 14

Let us know if you have any questions.
Thanks,

Israel

Received on Wednesday, 5 March 2014 02:23:36 UTC