Class KJUR.crypto.Mac
Mac class which is very similar to java.security.Mac class
Defined in: crypto-1.1.js.
Constructor Attributes | Constructor Name and Description |
---|---|
KJUR.crypto.Mac(params)
Mac(Message Authentication Code) class which is very similar to java.security.Mac class
Currently this supports following algorithm and providers combination:
|
Method Attributes | Method Name and Description |
---|---|
doFinal()
completes hash calculation and returns hash result
|
|
doFinalHex(hex)
performs final update on the digest using hexadecimal string,
then completes the digest computation
|
|
doFinalString(str)
performs final update on the digest using string, then completes the digest computation
|
|
setPassword(pass)
set password for Mac
This method will set password for (H)Mac internally.
|
|
updateHex(hex)
update digest by specified hexadecimal string
|
|
updateString(str)
update digest by specified string
|
Class Detail
KJUR.crypto.Mac(params)
Mac(Message Authentication Code) class which is very similar to java.security.Mac class
Currently this supports following algorithm and providers combination:
NOTE2: Hmac signature bug was fixed in jsrsasign 4.9.0 by providing CryptoJS bug workaround.
Please see KJUR.crypto.Mac.setPassword, how to provide password in various ways in detail.
Currently this supports following algorithm and providers combination:
- hmacmd5 - cryptojs
- hmacsha1 - cryptojs
- hmacsha224 - cryptojs
- hmacsha256 - cryptojs
- hmacsha384 - cryptojs
- hmacsha512 - cryptojs
NOTE2: Hmac signature bug was fixed in jsrsasign 4.9.0 by providing CryptoJS bug workaround.
Please see KJUR.crypto.Mac.setPassword, how to provide password in various ways in detail.
var mac = new KJUR.crypto.Mac({alg: "HmacSHA1", "pass": "pass"}); mac.updateString('aaa') var macHex = mac.doFinal() // other password representation var mac = new KJUR.crypto.Mac({alg: "HmacSHA256", "pass": {"hex": "6161"}}); var mac = new KJUR.crypto.Mac({alg: "HmacSHA256", "pass": {"utf8": "aa"}}); var mac = new KJUR.crypto.Mac({alg: "HmacSHA256", "pass": {"rstr": "\x61\x61"}}); var mac = new KJUR.crypto.Mac({alg: "HmacSHA256", "pass": {"b64": "Mi02/+...a=="}}); var mac = new KJUR.crypto.Mac({alg: "HmacSHA256", "pass": {"b64u": "Mi02_-...a"}});
- Parameters:
- {Array} params
- parameters for constructor
Method Detail
doFinal()
completes hash calculation and returns hash result
mac.digest()
doFinalHex(hex)
performs final update on the digest using hexadecimal string,
then completes the digest computation
mac.digestHex('0f2abd')
- Parameters:
- {String} hex
- hexadecimal string to final update
doFinalString(str)
performs final update on the digest using string, then completes the digest computation
mac.digestString('aaa')
- Parameters:
- {String} str
- string to final update
setPassword(pass)
set password for Mac
This method will set password for (H)Mac internally.
Argument 'pass' can be specified as following:
- even length string of 0..9, a..f or A-F: implicitly specified as hexadecimal string
- not above string: implicitly specified as raw string
- {rstr: "\x65\x70"}: explicitly specified as raw string
- {hex: "6570"}: explicitly specified as hexacedimal string
- {utf8: "秘密"}: explicitly specified as UTF8 string
- {b64: "Mi78..=="}: explicitly specified as Base64 string
- {b64u: "Mi7-_"}: explicitly specified as Base64URL string
mac = KJUR.crypto.Mac({'alg': 'hmacsha256'}); // set password by implicit raw string mac.setPassword("\x65\x70\xb9\x0b"); mac.setPassword("password"); // set password by implicit hexadecimal string mac.setPassword("6570b90b"); mac.setPassword("6570B90B"); // set password by explicit raw string mac.setPassword({"rstr": "\x65\x70\xb9\x0b"}); // set password by explicit hexadecimal string mac.setPassword({"hex": "6570b90b"}); // set password by explicit utf8 string mac.setPassword({"utf8": "passwordパスワード"); // set password by explicit Base64 string mac.setPassword({"b64": "Mb+c3f/=="}); // set password by explicit Base64URL string mac.setPassword({"b64u": "Mb-c3f_"});
- Parameters:
- {Object} pass
- password for Mac
- Since:
- crypto 1.1.7 jsrsasign 4.9.0
updateHex(hex)
update digest by specified hexadecimal string
mac.updateHex('0afe36');
- Parameters:
- {String} hex
- hexadecimal string to update
updateString(str)
update digest by specified string
mac.updateString('New York');
- Parameters:
- {String} str
- string to update