Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
148 lines
6.1 KiB
JavaScript
Executable file
148 lines
6.1 KiB
JavaScript
Executable file
/* -*- Mode: js; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- /
|
|
/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
|
|
|
|
/* global ProvisioningAuthentication */
|
|
|
|
'use strict';
|
|
|
|
requireApp('wappush/js/ext/CryptoJSv3.1.2/rollups/hmac-sha1.js');
|
|
requireApp('wappush/js/auth.js');
|
|
|
|
suite('ProvisioningAuthentication >', function() {
|
|
suite('ProvisioningAuthentication.isDocumentValid()', function() {
|
|
var USER_PIN = '1234567890';
|
|
var USER_PIN_AUTH_INFO;
|
|
|
|
test('Unknow security mechanism', function() {
|
|
USER_PIN_AUTH_INFO = {
|
|
sec: 'FAKEMECHANISM'
|
|
};
|
|
assert.throw(
|
|
function() {
|
|
ProvisioningAuthentication.isDocumentValid(USER_PIN,
|
|
USER_PIN_AUTH_INFO);
|
|
},
|
|
'cp-finish-confirm-dialog-message-auth-unsupported-mechanism'
|
|
);
|
|
});
|
|
|
|
test('NETWPIN security mechanism should not be called', function() {
|
|
USER_PIN_AUTH_INFO = {
|
|
sec: 'NETWPIN'
|
|
};
|
|
assert.throw(
|
|
function() {
|
|
ProvisioningAuthentication.isDocumentValid(USER_PIN,
|
|
USER_PIN_AUTH_INFO);
|
|
},
|
|
'cp-finish-confirm-dialog-message-auth-error'
|
|
);
|
|
});
|
|
|
|
test('USERNETWPIN security mechanism is not supported yet', function() {
|
|
USER_PIN_AUTH_INFO = {
|
|
sec: 'USERNETWPIN'
|
|
};
|
|
assert.throw(
|
|
function() {
|
|
ProvisioningAuthentication.isDocumentValid(USER_PIN,
|
|
USER_PIN_AUTH_INFO);
|
|
},
|
|
'cp-finish-confirm-dialog-message-auth-unsupported-mechanism'
|
|
);
|
|
});
|
|
|
|
test('USERPINMAC security mechanism is not supported yet', function() {
|
|
USER_PIN_AUTH_INFO = {
|
|
sec: 'USERPINMAC'
|
|
};
|
|
assert.throw(
|
|
function() {
|
|
ProvisioningAuthentication.isDocumentValid(USER_PIN,
|
|
USER_PIN_AUTH_INFO);
|
|
},
|
|
'cp-finish-confirm-dialog-message-auth-unsupported-mechanism'
|
|
);
|
|
});
|
|
|
|
test('A message with USERPIN security mechanism was authenticated',
|
|
function() {
|
|
var wbxml = new Uint8Array([
|
|
0x03, 0x0B, 0x6A, 0x00, 0x45, 0xC6, 0x56, 0x01,
|
|
0x87, 0x07, 0x06, 0x03, 0x43, 0x48, 0x54, 0x5F,
|
|
0x65, 0x6D, 0x6F, 0x6D, 0x65, 0x00, 0x01, 0x01,
|
|
0xC6, 0x00, 0x01, 0x55, 0x01, 0x87, 0x36, 0x00,
|
|
0x00, 0x06, 0x03, 0x77, 0x32, 0x00, 0x01, 0x87,
|
|
0x00, 0x01, 0x39, 0x00, 0x00, 0x06, 0x03, 0x57,
|
|
0x50, 0x52, 0x4F, 0x58, 0x59, 0x00, 0x01, 0x87,
|
|
0x07, 0x06, 0x03, 0x43, 0x48, 0x54, 0x5F, 0x65,
|
|
0x6D, 0x6F, 0x6D, 0x65, 0x00, 0x01, 0xC6, 0x00,
|
|
0x01, 0x59, 0x01, 0x87, 0x3A, 0x00, 0x00, 0x06,
|
|
0x03, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F,
|
|
0x77, 0x61, 0x70, 0x2E, 0x65, 0x6D, 0x6F, 0x6D,
|
|
0x65, 0x2E, 0x6E, 0x65, 0x74, 0x2F, 0x00, 0x01,
|
|
0x87, 0x07, 0x06, 0x03, 0x43, 0x48, 0x54, 0x5F,
|
|
0x65, 0x6D, 0x6F, 0x6D, 0x65, 0x00, 0x01, 0x87,
|
|
0x1C, 0x01, 0x01, 0x01, 0xC6, 0x00, 0x01, 0x55,
|
|
0x01, 0x87, 0x36, 0x00, 0x00, 0x06, 0x03, 0x77,
|
|
0x34, 0x00, 0x01, 0x87, 0x00, 0x01, 0x39, 0x00,
|
|
0x00, 0x06, 0x03, 0x4D, 0x50, 0x52, 0x4F, 0x58,
|
|
0x59, 0x00, 0x01, 0x87, 0x00, 0x01, 0x34, 0x00,
|
|
0x00, 0x06, 0x03, 0x68, 0x74, 0x74, 0x70, 0x3A,
|
|
0x2F, 0x2F, 0x6D, 0x6D, 0x73, 0x3A, 0x38, 0x30,
|
|
0x30, 0x32, 0x00, 0x01, 0x01, 0xC6, 0x51, 0x01,
|
|
0x87, 0x15, 0x06, 0x03, 0x57, 0x50, 0x52, 0x4F,
|
|
0x58, 0x59, 0x00, 0x01, 0x87, 0x07, 0x06, 0x03,
|
|
0x43, 0x48, 0x54, 0x5F, 0x65, 0x6D, 0x6F, 0x6D,
|
|
0x65, 0x00, 0x01, 0x87, 0x1C, 0x06, 0x03, 0x68,
|
|
0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x77, 0x61,
|
|
0x70, 0x2E, 0x65, 0x6D, 0x6F, 0x6D, 0x65, 0x2E,
|
|
0x6E, 0x65, 0x74, 0x2F, 0x00, 0x01, 0xC6, 0x52,
|
|
0x01, 0x87, 0x2F, 0x06, 0x03, 0x50, 0x52, 0x4F,
|
|
0x58, 0x59, 0x31, 0x00, 0x01, 0x87, 0x20, 0x06,
|
|
0x03, 0x31, 0x30, 0x2E, 0x31, 0x2E, 0x31, 0x2E,
|
|
0x31, 0x00, 0x01, 0x87, 0x21, 0x06, 0x85, 0x01,
|
|
0x87, 0x22, 0x06, 0x03, 0x43, 0x48, 0x54, 0x5F,
|
|
0x65, 0x6D, 0x6F, 0x6D, 0x65, 0x00, 0x01, 0xC6,
|
|
0x53, 0x01, 0x87, 0x23, 0x06, 0x03, 0x38, 0x30,
|
|
0x38, 0x30, 0x00, 0x01, 0x01, 0x01, 0x01, 0xC6,
|
|
0x51, 0x01, 0x87, 0x15, 0x06, 0x03, 0x4D, 0x50,
|
|
0x52, 0x4F, 0x58, 0x59, 0x00, 0x01, 0x87, 0x07,
|
|
0x06, 0x03, 0x43, 0x48, 0x54, 0x5F, 0x4D, 0x4D,
|
|
0x53, 0x00, 0x01, 0xC6, 0x52, 0x01, 0x87, 0x2F,
|
|
0x06, 0x03, 0x50, 0x52, 0x4F, 0x58, 0x59, 0x32,
|
|
0x00, 0x01, 0x87, 0x20, 0x06, 0x03, 0x31, 0x30,
|
|
0x2E, 0x31, 0x2E, 0x31, 0x2E, 0x31, 0x00, 0x01,
|
|
0x87, 0x21, 0x06, 0x85, 0x01, 0x87, 0x22, 0x06,
|
|
0x03, 0x43, 0x48, 0x54, 0x5F, 0x4D, 0x4D, 0x53,
|
|
0x00, 0x01, 0xC6, 0x53, 0x01, 0x87, 0x23, 0x06,
|
|
0x03, 0x38, 0x30, 0x38, 0x30, 0x00, 0x01, 0x01,
|
|
0x01, 0x01, 0xC6, 0x55, 0x01, 0x87, 0x11, 0x06,
|
|
0x03, 0x43, 0x48, 0x54, 0x5F, 0x65, 0x6D, 0x6F,
|
|
0x6D, 0x65, 0x00, 0x01, 0x87, 0x07, 0x06, 0x03,
|
|
0x43, 0x48, 0x54, 0x5F, 0x65, 0x6D, 0x6F, 0x6D,
|
|
0x65, 0x00, 0x01, 0x87, 0x10, 0x06, 0xAB, 0x01,
|
|
0x87, 0x08, 0x06, 0x03, 0x65, 0x6D, 0x6F, 0x6D,
|
|
0x65, 0x00, 0x01, 0x87, 0x09, 0x06, 0x89, 0x01,
|
|
0x01, 0xC6, 0x55, 0x01, 0x87, 0x11, 0x06, 0x03,
|
|
0x43, 0x48, 0x54, 0x5F, 0x4D, 0x4D, 0x53, 0x00,
|
|
0x01, 0x87, 0x07, 0x06, 0x03, 0x43, 0x48, 0x54,
|
|
0x5F, 0x4D, 0x4D, 0x53, 0x00, 0x01, 0x87, 0x10,
|
|
0x06, 0xAB, 0x01, 0x87, 0x08, 0x06, 0x03, 0x65,
|
|
0x6D, 0x6F, 0x6D, 0x65, 0x00, 0x01, 0x87, 0x09,
|
|
0x06, 0x89, 0x01, 0x01, 0x01
|
|
]);
|
|
|
|
USER_PIN = '0000';
|
|
USER_PIN_AUTH_INFO = {
|
|
sec: 'USERPIN',
|
|
mac: 'AA2DC41FC48AEEF3FED7351B1EE704461A8894D4',
|
|
data: wbxml
|
|
};
|
|
assert.isTrue(
|
|
ProvisioningAuthentication.isDocumentValid(USER_PIN,
|
|
USER_PIN_AUTH_INFO)
|
|
);
|
|
});
|
|
});
|
|
});
|