Advertisement
Guest User

Untitled

a guest
Dec 4th, 2016
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.76 KB | None | 0 0
  1. var arrayBufferToInt = function(buffer) {
  2. return new Int16Array(buffer)[0];
  3. }
  4.  
  5. var parceTLV = function(assertion) {
  6. let buffer = Base64URLToArrayBuffer(assertion);
  7. let tlv = parceTLVRec(buffer);
  8.  
  9. return tlv;
  10. }
  11.  
  12. var parceTLVRec = function(buffer) {
  13. let tlv = {};
  14.  
  15. if(arrayBufferToInt(buffer.slice(0,2)) >> 8 !== 0x3E
  16. && arrayBufferToInt(buffer.slice(0,2)) >> 8 !== 0x2E)
  17. return ArrayBufferToBase64URL(buffer);
  18.  
  19. while(buffer.byteLength > 0) {
  20. let tag = arrayBufferToInt(buffer.slice(0,2));
  21. let tag_string = PREDEFINED_TAGS[tag];
  22.  
  23. let len = arrayBufferToInt(buffer.slice(2,4));
  24. tlv[tag_string] = parceTLVRec(buffer.slice(4, len));
  25. buffer = buffer.slice(len + 4, buffer.byteLength);
  26. }
  27.  
  28. return tlv
  29. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement