{"id":171368,"date":"2014-06-17T14:49:45","date_gmt":"2014-06-17T14:49:45","guid":{"rendered":"https:\/\/www.microsoft.com\/en-us\/research\/project\/msr-javascript-cryptography-library\/"},"modified":"2020-05-19T15:49:27","modified_gmt":"2020-05-19T22:49:27","slug":"msr-javascript-cryptography-library","status":"publish","type":"msr-project","link":"https:\/\/www.microsoft.com\/en-us\/research\/project\/msr-javascript-cryptography-library\/","title":{"rendered":"MSR JavaScript Cryptography Library"},"content":{"rendered":"
The MSR JavaScript Cryptography Library has been migrated to GitHub. The latest version, v1.6.0, is available here: https:\/\/github.com\/microsoft\/MSR-JavaScript-Crypto<\/a><\/p>\n The\u00a0MSR JavaScript Cryptography Library has been developed for use with cloud services in an HTML5 compliant and forward-looking manner. The algorithms are exposed via the W3C WebCrypto interface, and are tested against the Internet Explorer 11 implementation of that interface. The library currently supports RSA encrypt\/decrypt (PKCS#1 v1.5, OAEP, and PSS), AES-CBC and GCM encrypt\/decrypt, SHA-256\/384\/512, HMAC with supported hash functions, PRNG (AES-CTR based) as specified by NIST, ECDH, ECDSA, and KDF (Concat mode). The W3C WebCrypto interface does not yet implement promises. The library is tested on IE8,9,10,11, and latest Firefox, Chrome, Opera, and Safari browsers.<\/p>\n This library includes big number integer arithmetic to support the aforementioned cryptographic algorithms. It supports unsigned big integer arithmetic with addition, subtraction, multiplication, division, reduction, inversion, GCD, extended Euclidean algorithm (EEA), Montgomery multiplication, and modular exponentiation. It provides useful utility functions, such as endianness management and conversion routines. The big integer library is likely to change in future releases.<\/p>\n There are also unit tests and some sample code.\u00a0\u00a0This library is under active development. Future updates to this library may change the programming interfaces.<\/p>\n