(hash, secret, seed, sz)
| 47 | } |
| 48 | |
| 49 | function p_hash(hash, secret, seed, sz) |
| 50 | { |
| 51 | sz = iceil(sz, hash.outputSize); |
| 52 | const hmac = new HMAC(hash, secret); |
| 53 | let A = hmac.process(seed); // start from A(1) = hmac(seed) |
| 54 | let p = new SSLStream; |
| 55 | while (--sz >= 0) { |
| 56 | p.writeChunk(hmac.process(A, seed)); |
| 57 | if (sz > 0) |
| 58 | A = hmac.process(A); |
| 59 | } |
| 60 | return p.getChunk(); |
| 61 | } |
| 62 | |
| 63 | function PRF(session, secret, label, seed, n, hash) |
| 64 | { |
no test coverage detected