| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 | 
							- /**
 
-  * Javascript implementation of mask generation function MGF1.
 
-  *
 
-  * @author Stefan Siegl
 
-  * @author Dave Longley
 
-  *
 
-  * Copyright (c) 2012 Stefan Siegl <stesie@brokenpipe.de>
 
-  * Copyright (c) 2014 Digital Bazaar, Inc.
 
-  */
 
- var forge = require('./forge');
 
- require('./util');
 
- forge.mgf = forge.mgf || {};
 
- var mgf1 = module.exports = forge.mgf.mgf1 = forge.mgf1 = forge.mgf1 || {};
 
- /**
 
-  * Creates a MGF1 mask generation function object.
 
-  *
 
-  * @param md the message digest API to use (eg: forge.md.sha1.create()).
 
-  *
 
-  * @return a mask generation function object.
 
-  */
 
- mgf1.create = function(md) {
 
-   var mgf = {
 
-     /**
 
-      * Generate mask of specified length.
 
-      *
 
-      * @param {String} seed The seed for mask generation.
 
-      * @param maskLen Number of bytes to generate.
 
-      * @return {String} The generated mask.
 
-      */
 
-     generate: function(seed, maskLen) {
 
-       /* 2. Let T be the empty octet string. */
 
-       var t = new forge.util.ByteBuffer();
 
-       /* 3. For counter from 0 to ceil(maskLen / hLen), do the following: */
 
-       var len = Math.ceil(maskLen / md.digestLength);
 
-       for(var i = 0; i < len; i++) {
 
-         /* a. Convert counter to an octet string C of length 4 octets */
 
-         var c = new forge.util.ByteBuffer();
 
-         c.putInt32(i);
 
-         /* b. Concatenate the hash of the seed mgfSeed and C to the octet
 
-          * string T: */
 
-         md.start();
 
-         md.update(seed + c.getBytes());
 
-         t.putBuffer(md.digest());
 
-       }
 
-       /* Output the leading maskLen octets of T as the octet string mask. */
 
-       t.truncate(t.length() - maskLen);
 
-       return t.getBytes();
 
-     }
 
-   };
 
-   return mgf;
 
- };
 
 
  |