code: public static byte[] zero_pad( byte[] original, int block_size ) {
          if ((original.length % block_size) == 0) {
              return original;
          }
  
          byte[] result = new byte[round_up(original.length, block_size)];
          memcpy(result, 0, original, 0, original.length);
  
          // Unnecessary - jvm sets bytes to 0.
          // memclr (result, original.length, result.length - original.length);
          return result;
      }
docs: Return a new array equal to original except zero-padded to an integral
  mulitple of blocks.  If the original is already an integral multiple of
  blocks, just return it.
  
  @param original the array of <code>byte</code>s to be padded
  @param block_size the size of the blocks
  
  @return an array whose size divides <code>block_size</code> exactly. The
  array is either <code>original</code> itself, or a copy whose
  first <code>original.length</code> bytes are equal to
  <code>original</code>.