summaryrefslogtreecommitdiff
path: root/alarm/node_modules/node-forge/tests/loginDemo.js
diff options
context:
space:
mode:
Diffstat (limited to 'alarm/node_modules/node-forge/tests/loginDemo.js')
-rw-r--r--alarm/node_modules/node-forge/tests/loginDemo.js149
1 files changed, 149 insertions, 0 deletions
diff --git a/alarm/node_modules/node-forge/tests/loginDemo.js b/alarm/node_modules/node-forge/tests/loginDemo.js
new file mode 100644
index 0000000..859e1f0
--- /dev/null
+++ b/alarm/node_modules/node-forge/tests/loginDemo.js
@@ -0,0 +1,149 @@
+/**
+ * Forge Web ID Tests
+ *
+ * @author Dave Longley
+ *
+ * Copyright (c) 2010 Digital Bazaar, Inc. All rights reserved.
+ */
+(function($)
+{
+ // load flash socket pool
+ window.forge.socketPool = {};
+ window.forge.socketPool.ready = function()
+ {
+ // init page
+ init($);
+ };
+ swfobject.embedSWF(
+ 'forge/SocketPool.swf', 'socketPool', '0', '0', '9.0.0',
+ false, {}, {allowscriptaccess: 'always'}, {});
+})(jQuery);
+
+var init = function($)
+{
+ // logging category
+ var cat = 'forge.tests.loginDemo';
+
+ // local alias
+ var forge = window.forge;
+ try
+ {
+ // get query variables
+ var query = forge.util.getQueryVariables();
+ var domain = query.domain || '';
+ var auth = query.auth || '';
+ var redirect = query.redirect || '';
+ var pport = query.pport || 843;
+ redirect = 'https://' + domain + '/' + redirect;
+ if(domain)
+ {
+ $('#domain').html('`' + domain + '`');
+ }
+
+ // for chosen webid
+ var chosen = null;
+
+ // init forge xhr
+ forge.xhr.init({
+ flashId: 'socketPool',
+ msie: $.browser.msie,
+ url: 'https://' + domain,
+ policyPort: pport,
+ connections: 1,
+ caCerts: [],
+ verify: function(c, verified, depth, certs)
+ {
+ // don't care about cert verification for test
+ return true;
+ },
+ getCertificate: function(c)
+ {
+ forge.log.debug(cat, 'using cert', chosen.certificate);
+ return chosen.certificate;
+ },
+ getPrivateKey: function(c)
+ {
+ //forge.log.debug(cat, 'using private key', chosen.privateKey);
+ return chosen.privateKey;
+ }
+ });
+
+ // get flash API
+ var flashApi = document.getElementById('socketPool');
+
+ // get web ids collection
+ var webids = forge.util.getItem(
+ flashApi, 'forge.test.webid', 'webids');
+ webids = webids || {};
+
+ var id = 0;
+ var list = $('<ul/>');
+ for(var key in webids)
+ {
+ (function(webid)
+ {
+ var cert = forge.pki.certificateFromPem(webid.certificate);
+ var item = $('<li/>');
+ var button = $('<button>');
+ button.attr('id', '' + (webid + id++));
+ button.html('Choose');
+ button.click(function()
+ {
+ button.attr('disabled', 'disabled');
+
+ // set chosen webid
+ chosen = webid;
+
+ // do webid call
+ $.ajax(
+ {
+ type: 'GET',
+ url: '/' + auth,
+ success: function(data, textStatus, xhr)
+ {
+ if(data !== '')
+ {
+ forge.log.debug(cat, 'authentication completed');
+ forge.log.debug(cat, data);
+ window.name = data;
+ }
+ else
+ {
+ forge.log.debug(cat, 'authentication failed');
+ window.name = '';
+ }
+ window.location = redirect;
+ },
+ error: function(xhr, textStatus, errorThrown)
+ {
+ forge.log.error(cat, 'authentication failed');
+ },
+ xhr: forge.xhr.create
+ });
+ });
+ item.append(button);
+ item.append(' ' + key + '<br/>');
+
+ // display certificate attributes
+ var attr;
+ for(var n = 0; n < cert.subject.attributes.length; ++n)
+ {
+ attr = cert.subject.attributes[n];
+ item.append(attr.name + ': ' + attr.value + '<br/>');
+ }
+
+ list.append(item);
+ })(webids[key]);
+ }
+ if(list.html() === '<ul/>')
+ {
+ list.append('None');
+ }
+
+ $('#webids').append(list);
+ }
+ catch(ex)
+ {
+ forge.log.error(cat, ex);
+ }
+};