byte[] ls = new byte[label.length + seed.length];
System.arraycopy(label, 0, ls, 0, label.length);
System.arraycopy(seed, 0, ls, label.length, seed.length);
byte[] prf = new byte[buf.length];
hmac_hash(new MD5Digest(), s1, ls, prf);
hmac_hash(new SHA1Digest(), s2, ls, buf);
for (int i = 0; i < buf.length; i++)
{
buf[i] ^= prf[i];
}