forked from allan-stewart/node-aes-cmac
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
22 lines (19 loc) · 792 Bytes
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var aesCmac = require('./lib/aes-cmac.js').aesCmac;
exports.aesCmac = function (key, message, options) {
validateKey(key);
var messageBuffer = validateMessage(message);
options = options ? options : {};
var result = aesCmac(key, messageBuffer, options.padded ? options.padded : false);
return options.returnAsBuffer ? result : result.toString('hex');
};
function validateKey(key) {
if ((typeof key !== 'string') && !(key instanceof Buffer)) {
throw new Error('Keys must be provided as a Buffer or string.');
}
}
function validateMessage(message) {
if ((typeof message !== 'string') && !(message instanceof Buffer)) {
throw new Error('The message must be provided as a string or Buffer.');
}
return (message instanceof Buffer) ? message : new Buffer(message);
}