ndx = new Random ().nextInt (256);
while (ndx < 1 || ndx > 255) ndx = (byte) nextByte();
  static final KDF getInstance(final byte[] K)  {    int ndx = -1;    final byte[] keyMaterial;    if (K != null)      {        keyMaterial = K;        ndx = 0;      }    else      {        keyMaterial = new byte[AES_BLOCK_SIZE];        ndx = new Random ().nextInt (256); // XXX does this need to be secure?      }    return new KDF(keyMaterial, ndx);  }