forked from coolaj86/walnut.js
		
	
		
			
	
	
		
			47 lines
		
	
	
		
			802 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			47 lines
		
	
	
		
			802 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | (function () { | ||
|  | 'use strict'; | ||
|  | 
 | ||
|  | function bufferToHex(arr) { | ||
|  |   var i; | ||
|  |   var len; | ||
|  |   var hex = ''; | ||
|  |   var c; | ||
|  | 
 | ||
|  |   for (i = 0, len = arr.length; i < len; i += 1) { | ||
|  |     c = arr[i].toString(16); | ||
|  |     if (c.length < 2) { | ||
|  |       c = '0' + c; | ||
|  |     } | ||
|  |     hex += c; | ||
|  |   } | ||
|  | 
 | ||
|  |   return hex; | ||
|  | } | ||
|  | 
 | ||
|  | function hexToBuffer(hex) { | ||
|  |   // TODO use Uint8Array or ArrayBuffer or DataView
 | ||
|  |   var i; | ||
|  |   var byteLen = hex.length / 2; | ||
|  |   var arr; | ||
|  |   var j = 0; | ||
|  | 
 | ||
|  |   if (byteLen !== parseInt(byteLen, 10)) { | ||
|  |     throw new Error("Invalid hex length '" + hex.length + "'"); | ||
|  |   } | ||
|  | 
 | ||
|  |   arr = new Uint8Array(byteLen); | ||
|  | 
 | ||
|  |   for (i = 0; i < byteLen; i += 1) { | ||
|  |     arr[i] = parseInt(hex[j] + hex[j + 1], 16); | ||
|  |     j += 2; | ||
|  |   } | ||
|  | 
 | ||
|  |   return arr; | ||
|  | } | ||
|  | 
 | ||
|  | // Hex Convenience Functions
 | ||
|  | window.Unibabel.hexToBuffer = hexToBuffer; | ||
|  | window.Unibabel.bufferToHex = bufferToHex; | ||
|  | 
 | ||
|  | }()); |