openssl (version 0.9.5)

ec_dh: Diffie-Hellman Key Agreement

Description

Key agreement is one-step method of creating a shared secret between two peers. Both peers can indendently derive the joined secret by combining his or her private key with the public key from the peer.

Usage

ec_dh(key = my_key(), peerkey, password = askpass)

Arguments

key
your own private key
peerkey
the public key from your peer
password
passed to read_key for reading protected private keys

Details

Currently only Elliptic Curve Diffie Hellman (ECDH) is implemented.

References

https://wiki.openssl.org/index.php/EVP_Key_Agreement, https://wiki.openssl.org/index.php/Elliptic_Curve_Diffie_Hellman

Examples

Run this code
## Not run: 
# # Need two EC keypairs from the same curve
# alice_key <- ec_keygen("P-521")
# bob_key <- ec_keygen("P-521")
# 
# # Derive public keys
# alice_pub <- as.list(alice_key)$pubkey
# bob_pub <- as.list(bob_key)$pubkey
# 
# # Both peers can derive the (same) shared secret via each other's pubkey
# ec_dh(alice_key, bob_pub)
# ec_dh(bob_key, alice_pub)
# ## End(Not run)

Run the code above in your browser using DataLab