mirror of
https://github.com/openssl/openssl.git
synced 2024-11-21 01:15:20 +08:00
a528d4f0a9
If something was "present in all versions" of SSLeay, or if it was added to a version of SSLeay (and therefore predates OpenSSL), remove mention of it. Documentation history now starts with OpenSSL. Remove mention of all history before OpenSSL 0.9.8, inclusive. Remove all AUTHOR sections. Reviewed-by: Tim Hudson <tjh@openssl.org>
46 lines
1.2 KiB
Plaintext
46 lines
1.2 KiB
Plaintext
=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)>.
|
|
|
|
=head1 SEE ALSO
|
|
|
|
L<dh(3)>, L<ERR_get_error(3)>, L<rand(3)>, L<DH_size(3)>
|
|
|
|
=cut
|