| import Crypto from '@/utils/oss-upload/common/crypto/crypto.js.js'; | |
| (function() { | |
|   // Shortcut | |
|   var util = Crypto.util; | |
|   Crypto.HMAC = function(hasher, message, key, options) { | |
|     // Allow arbitrary length keys | |
|     key = key.length > hasher._blocksize * 4 ? | |
|       hasher(key, { | |
|         asBytes: true | |
|       }) : | |
|       util.stringToBytes(key); | |
|     // XOR keys with pad constants | |
|     var okey = key, | |
|       ikey = key.slice(0); | |
|     for (var i = 0; i < hasher._blocksize * 4; i++) { | |
|       okey[i] ^= 0x5C; | |
|       ikey[i] ^= 0x36; | |
|     } | |
|     var hmacbytes = hasher(util.bytesToString(okey) + | |
|       hasher(util.bytesToString(ikey) + message, { | |
|         asString: true | |
|       }), { | |
|         asBytes: true | |
|       }); | |
|     return options && options.asBytes ? hmacbytes : | |
|       options && options.asString ? util.bytesToString(hmacbytes) : | |
|       util.bytesToHex(hmacbytes); | |
|   }; | |
| })();
 |