6859cf7459
manual when the specific function is refered to in the current manual text. This correction was originally introduced in OpenBSD's tracking of OpenSSL.
50 lines
1.4 KiB
Text
50 lines
1.4 KiB
Text
=pod
|
|
|
|
=head1 NAME
|
|
|
|
DH_generate_key, DH_compute_key - perform Diffie-Hellman key exchange
|
|
|
|
=head1 SYNOPSIS
|
|
|
|
#include <openssl/dh.h>
|
|
|
|
int DH_generate_key(DH *dh);
|
|
|
|
int DH_compute_key(unsigned char *key, BIGNUM *pub_key, DH *dh);
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
DH_generate_key() performs the first step of a Diffie-Hellman key
|
|
exchange by generating private and public DH values. By calling
|
|
DH_compute_key(), these are combined with the other party's public
|
|
value to compute the shared key.
|
|
|
|
DH_generate_key() expects B<dh> to contain the shared parameters
|
|
B<dh-E<gt>p> and B<dh-E<gt>g>. It generates a random private DH value
|
|
unless B<dh-E<gt>priv_key> is already set, and computes the
|
|
corresponding public value B<dh-E<gt>pub_key>, which can then be
|
|
published.
|
|
|
|
DH_compute_key() computes the shared secret from the private DH value
|
|
in B<dh> and the other party's public value in B<pub_key> and stores
|
|
it in B<key>. B<key> must point to B<DH_size(dh)> bytes of memory.
|
|
|
|
=head1 RETURN VALUES
|
|
|
|
DH_generate_key() returns 1 on success, 0 otherwise.
|
|
|
|
DH_compute_key() returns the size of the shared secret on success, -1
|
|
on error.
|
|
|
|
The error codes can be obtained by L<ERR_get_error(3)|ERR_get_error(3)>.
|
|
|
|
=head1 SEE ALSO
|
|
|
|
L<dh(3)|dh(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>, L<DH_size(3)|DH_size(3)>
|
|
|
|
=head1 HISTORY
|
|
|
|
DH_generate_key() and DH_compute_key() are available in all versions
|
|
of SSLeay and OpenSSL.
|
|
|
|
=cut
|