genejones / node-wsse

WSSE Username Token generator for Node.js

Home Page:https://www.npmjs.com/package/wsse

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

WSSE

WSSE Username Token generator for Browserify

Based off the excellent node-wsse by boyuza, but optimized for in browser usage. Because node-wsse requires the entire crypto module, this module can be over 400KB when minified! But the module really only uses SHA1, which is less than 30KB. To solve this, we just load only the SHA-1, via sha.js. All other usage is identical.

See: http://www.xml.com/pub/a/2003/12/17/dive.html

Installation

$ npm install wsse

Usage

var wsse = require('wsse');

var token = wsse({ username: 'bob', password: 'taadtaadpstcsm' });

// 'bob'
console.log(token.getUsername());

// 'taadtaadpstcsm'
console.log(token.getPassword());

// e.g. '2003-12-15T14:43:07Z'
console.log(token.getCreated());

// e.g. 'd36e316282959a9ed4c89851497a717f'
console.log(token.getNonce());

// e.g. 'ZDM2ZTMxNjI4Mjk1OWE5ZWQ0Yzg5ODUxNDk3YTcxN2Y='
console.log(token.getNonceBase64());

// e.g. 'quR/EWLAV4xLf9Zqyw4pDmfV9OY='
console.log(token.getPasswordDigest());

// e.g. 'UsernameToken Username="bob", PasswordDigest="quR/EWLAV4xLf9Zqyw4pDmfV9OY=", Nonce="d36e316282959a9ed4c89851497a717f", Created="2003-12-15T14:43:07Z"'
console.log(token.getWSSEHeader());
console.log(token.toString());
console.log(token + '');

// ----- advanced -----

// you can use `UsernameToken` class.
var token2 = new wsse.UsernameToken({
  username: 'bob',                           // (required)
  password: 'taadtaadpstcsm',                // (required)
  created: '2003-12-15T14:43:07Z',           // (optional) you can specify `craeted`.
  nonce: 'd36e316282959a9ed4c89851497a717f', // (optional) you can specify `nonce`.
  sha1encoding: 'hex'                        // (optional) you can specify `sha1encoding` for wrong WSSE Username Token implementation.
});

// you can use `nonceBase64` option. it encodes the nonce to base64 in header.
// 'UsernameToken Username="bob", PasswordDigest="quR/EWLAV4xLf9Zqyw4pDmfV9OY=", Nonce="ZDM2ZTMxNjI4Mjk1OWE5ZWQ0Yzg5ODUxNDk3YTcxN2Y=", Created="2003-12-15T14:43:07Z"'
console.log(token2.getWSSEHeader({ nonceBase64: true }));
console.log(token2.toString({ nonceBase64: true }));

License

MIT

Author

About

WSSE Username Token generator for Node.js

https://www.npmjs.com/package/wsse

License:MIT License


Languages

Language:CoffeeScript 72.3%Language:JavaScript 27.7%