I would like to see how to wrap a key on client side web browser, like Mozilla's fxa-auth-client (that uses a XOR to wrap) but using RFC 5297.
SIV is a deterministic authenticated encryption with additional data. It is based on CMAC.
Note: I created it under the MIT license.
The tests are passing for all the test vectors from RFC 5297 (SIV) and RFC 4493 (CMAC). The tests are running in node.js, but there is currently no node.js module for from this project.
Since SIV is a two-pass encryption scheme, the API in the CryptoJS extension doesn't currently support streaming/progressive encryption.
I also created an online "calculator" for AES-SIV and AES-CMAC from this project: http://artjomb.github.io/cryptojs-extension/.