R: Diffie-Hellman Key Agreement

ec_dh {openssl} | R Documentation

## Diffie-Hellman Key Agreement

### Description

Key agreement is one-step method of creating a shared secret between two peers. Both peers can independently 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

    ## 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)

[Package openssl version 1.4.4 Index]