Hi Rob,
The PASSTHRU rule returns the shared secret value that is the output of the Elliptic Curve Diffie-Hellman (ECDH) primitive operation.
This is really just the x coordinate of a point on the curve. See "Standards for Efficient Cryptography
SEC 1: Elliptic Curve Cryptography" section 3.3.1 here: http://www.secg.org/sec1-v2.pdf for more details.
There is no KDF involved here.
On page 37 of the ICSF Application Programmer's Guide (http://publibfp.dhe.ibm.com/epubs/pdf/csf2c414.pdf) there is a brief discussion of this.
Here is the first part of that discussion:
"Obtaining the Raw "Z" value
To use a key agreement scheme that differs from the above [DERIV01], one may obtain the raw shared secret "Z" and skip the key derivation step.
The caller must then derive the final key material using a method of their choice."
The raw "Z" value is input to all of the KDFs. See section 3.6.1 of the SEC 1 document mentioned in the first paragraph for implementation
details of the ANSI-9.63-KDF.
The JavaScript and bouncy castle implementations you are using must just do the ECDH primitive operation.
-Mike
MikeMiele