code: function parse_EncInfoAgl(blob) {
  	var KeyData = ["saltSize","blockSize","keyBits","hashSize","cipherAlgorithm","cipherChaining","hashAlgorithm","saltValue"];
  	blob.l+=4;
  	var xml = blob.read_shift(blob.length - blob.l, 'utf8');
  	var o = {};
  	xml.replace(tagregex, function xml_agile(x) {
  		var y = parsexmltag(x);
  		switch(strip_ns(y[0])) {
  			case '<?xml': break;
  			case '<encryption': case '</encryption>': break;
  			case '<keyData': KeyData.forEach(function(k) { o[k] = y[k]; }); break;
  			case '<dataIntegrity': o.encryptedHmacKey = y.encryptedHmacKey; o.encryptedHmacValue = y.encryptedHmacValue; break;
  			case '<keyEncryptors>': case '<keyEncryptors': o.encs = []; break;
  			case '</keyEncryptors>': break;
  
  			case '<keyEncryptor': o.uri = y.uri; break;
  			case '</keyEncryptor>': break;
  			case '<encryptedKey': o.encs.push(y); break;
  			default: throw y[0];
  		}
  	});
  	return o;
  }
docs: /* [MS-OFFCRYPTO] 2.3.4.10 EncryptionInfo Stream (Agile Encryption)