Normally x is a compressed point on the NIST P-224 elliptic curve; the nistp224 program prints another compressed point on the curve, namely the eth multiple of x on the curve, and exits 0. If x is not a compressed point on the curve, or if e is exactly the order of the curve, nistp224 exits 100 without printing anything. If nistp224 encounters I/O errors, it exits 111.
The integer format and compressed point format used by the nistp224 program are the same as the formats used by the nistp224 library routine.
To generate a public key: Generate a secret key, consisting of 28 secret random bytes. Feed those bytes, followed by 28 newlines, into nistp224. The output is your 28-byte public key.
To compute a shared secret: Feed your secret key, followed by someone else's 28-byte public key, into nistp224. The output is your shared secret.
Normally (x,y) is a point on the NIST P-224 elliptic curve; the nistp224-56 program prints another point on the curve, namely the eth multiple of (x,y) on the curve, and exits 0. If (x,y) is not a point on the curve, or if e is exactly the order of the curve, nistp224-56 exits 100 without printing anything. If nistp224-56 encounters I/O errors, it exits 111.
The integer format and point format used by the nistp224-56 program are the same as the formats used by the nistp224_56 library routine.
To generate a public key: Generate a secret key, consisting of 28 secret random bytes. Feed those bytes, followed by the 56-byte standard base point, into nistp224-56. The output is your 56-byte public key.
To compute a shared secret: Feed your secret key, followed by someone else's 56-byte public key, into nistp224. The output is your shared secret.