Module dh
dh module for lua-openssl binding
Diffie-Hellman (DH) key exchange is a method of securely exchanging cryptographic keys over a public channel.
The module provides functionality for DH parameter generation, key generation and key agreement operations.
Usage:
dh = require('openssl').dh
Functions
parse () | parse DH key parameters and components |
check () | check DH parameters for validity |
generate_parameters ([bits=1024[, generator=2[, eng]]]) | generate DH parameters for key exchange |
generate_key () | generate a DH key pair from parameters |
problems (reason[, pub=false]) | interpret DH parameter check problems |
Functions
- parse ()
-
parse DH key parameters and components
Returns:
-
table
DH parameters including size, bits, p, q, g, public key, and private key (if present)
- check ()
-
check DH parameters for validity
Returns:
- boolean true if parameters are valid
- table error codes if parameters are invalid
- generate_parameters ([bits=1024[, generator=2[, eng]]])
-
generate DH parameters for key exchange
Parameters:
- bits number parameter size in bits (default 1024)
- generator number generator value (typically 2 or 5) (default 2)
- eng engine engine to use for parameter generation (optional)
Returns:
-
dh or nil
generated DH parameters or nil on error
- generate_key ()
-
generate a DH key pair from parameters
Returns:
-
dh
new DH object with generated key pair on success
- problems (reason[, pub=false])
-
interpret DH parameter check problems
Parameters:
- reason number the problem codes returned by check functions
- pub boolean whether to include public key problems (default false)
Returns:
-
table
array of problem descriptions