summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorschwarze <>2019-10-29 18:22:21 +0000
committerschwarze <>2019-10-29 18:22:21 +0000
commitb3ca2d0d0ab0b0e46d883979518b2fb981aeaeef (patch)
tree19f09accd0150f6bab09dde6080b881daaa7316d /src/lib
parent490353a1e0fab7743f3e5af338e6501c2a79dbfb (diff)
downloadopenbsd-b3ca2d0d0ab0b0e46d883979518b2fb981aeaeef.tar.gz
openbsd-b3ca2d0d0ab0b0e46d883979518b2fb981aeaeef.tar.bz2
openbsd-b3ca2d0d0ab0b0e46d883979518b2fb981aeaeef.zip
merge documentation for several macros EVP_PKEY_CTX_*_rsa_oaep_*(3)
and EVP_PKEY_CTX_*_ecdh_*(3); from Antoine Salon <asalon at vmware dot com> via OpenSSL commit 87103969 Oct 1 14:11:57 2018 -0700 from the OpenSSL 1.1.1 branch, which is still under a free license
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/libcrypto/man/EVP_PKEY_CTX_ctrl.3243
1 files changed, 239 insertions, 4 deletions
diff --git a/src/lib/libcrypto/man/EVP_PKEY_CTX_ctrl.3 b/src/lib/libcrypto/man/EVP_PKEY_CTX_ctrl.3
index 1805a9283d..ca3321c3cb 100644
--- a/src/lib/libcrypto/man/EVP_PKEY_CTX_ctrl.3
+++ b/src/lib/libcrypto/man/EVP_PKEY_CTX_ctrl.3
@@ -1,8 +1,9 @@
1.\" $OpenBSD: EVP_PKEY_CTX_ctrl.3,v 1.17 2019/10/29 17:21:07 schwarze Exp $ 1.\" $OpenBSD: EVP_PKEY_CTX_ctrl.3,v 1.18 2019/10/29 18:22:21 schwarze Exp $
2.\" full merge up to: OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400 2.\" full merge up to: OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
3.\" selective merge up to: OpenSSL df75c2bf Dec 9 01:02:36 2018 +0100 3.\" selective merge up to: OpenSSL df75c2bf Dec 9 01:02:36 2018 +0100
4.\" 4.\"
5.\" This file was written by Dr. Stephen Henson <steve@openssl.org>. 5.\" This file was written by Dr. Stephen Henson <steve@openssl.org>
6.\" and Antoine Salon <asalon@vmware.com>.
6.\" Copyright (c) 2006, 2009, 2013, 2014, 2015, 2018 The OpenSSL Project. 7.\" Copyright (c) 2006, 2009, 2013, 2014, 2015, 2018 The OpenSSL Project.
7.\" All rights reserved. 8.\" All rights reserved.
8.\" 9.\"
@@ -66,11 +67,25 @@
66.Nm EVP_PKEY_CTX_set_rsa_keygen_pubexp , 67.Nm EVP_PKEY_CTX_set_rsa_keygen_pubexp ,
67.Nm EVP_PKEY_CTX_set_rsa_mgf1_md , 68.Nm EVP_PKEY_CTX_set_rsa_mgf1_md ,
68.Nm EVP_PKEY_CTX_get_rsa_mgf1_md , 69.Nm EVP_PKEY_CTX_get_rsa_mgf1_md ,
70.Nm EVP_PKEY_CTX_set_rsa_oaep_md ,
71.Nm EVP_PKEY_CTX_get_rsa_oaep_md ,
72.Nm EVP_PKEY_CTX_set0_rsa_oaep_label ,
73.Nm EVP_PKEY_CTX_get0_rsa_oaep_label ,
69.Nm EVP_PKEY_CTX_set_dsa_paramgen_bits , 74.Nm EVP_PKEY_CTX_set_dsa_paramgen_bits ,
70.Nm EVP_PKEY_CTX_set_dh_paramgen_prime_len , 75.Nm EVP_PKEY_CTX_set_dh_paramgen_prime_len ,
71.Nm EVP_PKEY_CTX_set_dh_paramgen_generator , 76.Nm EVP_PKEY_CTX_set_dh_paramgen_generator ,
72.Nm EVP_PKEY_CTX_set_ec_paramgen_curve_nid , 77.Nm EVP_PKEY_CTX_set_ec_paramgen_curve_nid ,
73.Nm EVP_PKEY_CTX_set_ec_param_enc , 78.Nm EVP_PKEY_CTX_set_ec_param_enc ,
79.Nm EVP_PKEY_CTX_set_ecdh_cofactor_mode ,
80.Nm EVP_PKEY_CTX_get_ecdh_cofactor_mode ,
81.Nm EVP_PKEY_CTX_set_ecdh_kdf_type ,
82.Nm EVP_PKEY_CTX_get_ecdh_kdf_type ,
83.Nm EVP_PKEY_CTX_set_ecdh_kdf_md ,
84.Nm EVP_PKEY_CTX_get_ecdh_kdf_md ,
85.Nm EVP_PKEY_CTX_set_ecdh_kdf_outlen ,
86.Nm EVP_PKEY_CTX_get_ecdh_kdf_outlen ,
87.Nm EVP_PKEY_CTX_set0_ecdh_kdf_ukm ,
88.Nm EVP_PKEY_CTX_get0_ecdh_kdf_ukm ,
74.Nm EVP_PKEY_CTX_set1_id , 89.Nm EVP_PKEY_CTX_set1_id ,
75.Nm EVP_PKEY_CTX_get1_id , 90.Nm EVP_PKEY_CTX_get1_id ,
76.Nm EVP_PKEY_CTX_get1_id_len 91.Nm EVP_PKEY_CTX_get1_id_len
@@ -143,6 +158,27 @@
143.Fa "EVP_PKEY_CTX *ctx" 158.Fa "EVP_PKEY_CTX *ctx"
144.Fa "const EVP_MD **pmd" 159.Fa "const EVP_MD **pmd"
145.Fc 160.Fc
161.Ft int
162.Fo EVP_PKEY_CTX_set_rsa_oaep_md
163.Fa "EVP_PKEY_CTX *ctx"
164.Fa "const EVP_MD *md"
165.Fc
166.Ft int
167.Fo EVP_PKEY_CTX_get_rsa_oaep_md
168.Fa "EVP_PKEY_CTX *ctx"
169.Fa "const EVP_MD **pmd"
170.Fc
171.Ft int
172.Fo EVP_PKEY_CTX_set0_rsa_oaep_label
173.Fa "EVP_PKEY_CTX *ctx"
174.Fa "unsigned char *label"
175.Fa "int len"
176.Fc
177.Ft int
178.Fo EVP_PKEY_CTX_get0_rsa_oaep_label
179.Fa "EVP_PKEY_CTX *ctx"
180.Fa "unsigned char **plabel"
181.Fc
146.In openssl/dsa.h 182.In openssl/dsa.h
147.Ft int 183.Ft int
148.Fo EVP_PKEY_CTX_set_dsa_paramgen_bits 184.Fo EVP_PKEY_CTX_set_dsa_paramgen_bits
@@ -172,6 +208,55 @@
172.Fa "int param_enc" 208.Fa "int param_enc"
173.Fc 209.Fc
174.Ft int 210.Ft int
211.Fo EVP_PKEY_CTX_set_ecdh_cofactor_mode
212.Fa "EVP_PKEY_CTX *ctx"
213.Fa "int cofactor_mode"
214.Fc
215.Ft int
216.Fo EVP_PKEY_CTX_get_ecdh_cofactor_mode
217.Fa "EVP_PKEY_CTX *ctx"
218.Fc
219.Ft int
220.Fo EVP_PKEY_CTX_set_ecdh_kdf_type
221.Fa "EVP_PKEY_CTX *ctx"
222.Fa "int kdf"
223.Fc
224.Ft int
225.Fo EVP_PKEY_CTX_get_ecdh_kdf_type
226.Fa "EVP_PKEY_CTX *ctx"
227.Fc
228.Ft int
229.Fo EVP_PKEY_CTX_set_ecdh_kdf_md
230.Fa "EVP_PKEY_CTX *ctx"
231.Fa "const EVP_MD *md"
232.Fc
233.Ft int
234.Fo EVP_PKEY_CTX_get_ecdh_kdf_md
235.Fa "EVP_PKEY_CTX *ctx"
236.Fa "const EVP_MD **pmd"
237.Fc
238.Ft int
239.Fo EVP_PKEY_CTX_set_ecdh_kdf_outlen
240.Fa "EVP_PKEY_CTX *ctx"
241.Fa "int len"
242.Fc
243.Ft int
244.Fo EVP_PKEY_CTX_get_ecdh_kdf_outlen
245.Fa "EVP_PKEY_CTX *ctx"
246.Fa "int *plen"
247.Fc
248.Ft int
249.Fo EVP_PKEY_CTX_set0_ecdh_kdf_ukm
250.Fa "EVP_PKEY_CTX *ctx"
251.Fa "unsigned char *ukm"
252.Fa "int len"
253.Fc
254.Ft int
255.Fo EVP_PKEY_CTX_get0_ecdh_kdf_ukm
256.Fa "EVP_PKEY_CTX *ctx"
257.Fa "unsigned char **pukm"
258.Fc
259.Ft int
175.Fo EVP_PKEY_CTX_set1_id 260.Fo EVP_PKEY_CTX_set1_id
176.Fa "EVP_PKEY_CTX *ctx" 261.Fa "EVP_PKEY_CTX *ctx"
177.Fa "void *id" 262.Fa "void *id"
@@ -332,6 +417,49 @@ The padding mode must have been set to
332.Dv RSA_PKCS1_OAEP_PADDING 417.Dv RSA_PKCS1_OAEP_PADDING
333or 418or
334.Dv RSA_PKCS1_PSS_PADDING . 419.Dv RSA_PKCS1_PSS_PADDING .
420.Pp
421The
422.Fn EVP_PKEY_CTX_set_rsa_oaep_md
423macro sets the message digest type used in RSA OAEP to
424.Fa md .
425The padding mode must have been set to
426.Dv RSA_PKCS1_OAEP_PADDING .
427.Pp
428The
429.Fn EVP_PKEY_CTX_get_rsa_oaep_md
430macro gets the message digest type used in RSA OAEP to
431.Pf * Fa md .
432The padding mode must have been set to
433.Dv RSA_PKCS1_OAEP_PADDING .
434.Pp
435The
436.Fn EVP_PKEY_CTX_set0_rsa_oaep_label
437macro sets the RSA OAEP label to
438.Fa label
439and its length to
440.Fa len .
441If
442.Fa label
443is
444.Dv NULL
445or
446.Fa len
447is 0, the label is cleared.
448The library takes ownership of the label so the caller should not
449free the original memory pointed to by
450.Fa label .
451The padding mode must have been set to
452.Dv RSA_PKCS1_OAEP_PADDING .
453.Pp
454The
455.Fn EVP_PKEY_CTX_get0_rsa_oaep_label
456macro gets the RSA OAEP label to
457.Pf * Fa plabel .
458The return value is the label length.
459The padding mode must have been set to
460.Dv RSA_PKCS1_OAEP_PADDING .
461The resulting pointer is owned by the library and should not be
462freed by the caller.
335.Ss DSA parameters 463.Ss DSA parameters
336The macro 464The macro
337.Fn EVP_PKEY_CTX_set_dsa_paramgen_bits 465.Fn EVP_PKEY_CTX_set_dsa_paramgen_bits
@@ -369,6 +497,94 @@ when generating EC parameters or an EC key.
369The encoding can be set to 0 for explicit parameters or to 497The encoding can be set to 0 for explicit parameters or to
370.Dv OPENSSL_EC_NAMED_CURVE 498.Dv OPENSSL_EC_NAMED_CURVE
371to use named curve form. 499to use named curve form.
500.Ss ECDH parameters
501The
502.Fn EVP_PKEY_CTX_set_ecdh_cofactor_mode
503macro sets the cofactor mode to
504.Fa cofactor_mode
505for ECDH key derivation.
506Possible values are 1 to enable cofactor key derivation, 0 to disable
507it, or -1 to clear the stored cofactor mode and fall back to the
508private key cofactor mode.
509.Pp
510The
511.Fn EVP_PKEY_CTX_get_ecdh_cofactor_mode
512macro returns the cofactor mode for
513.Fa ctx
514used for ECDH key derivation.
515Possible return values are 1 when cofactor key derivation is enabled
516or 0 otherwise.
517.Ss ECDH key derivation function parameters
518The
519.Fn EVP_PKEY_CTX_set_ecdh_kdf_type
520macro sets the key derivation function type to
521.Fa kdf
522for ECDH key derivation.
523Possible values are
524.Dv EVP_PKEY_ECDH_KDF_NONE
525or
526.Dv EVP_PKEY_ECDH_KDF_X9_63
527which uses the key derivation specified in X9.63.
528When using key derivation, the
529.Fa kdf_md
530and
531.Fa kdf_outlen
532parameters must also be specified.
533.Pp
534The
535.Fn EVP_PKEY_CTX_get_ecdh_kdf_type
536macro returns the key derivation function type for
537.Fa ctx
538used for ECDH key derivation.
539Possible return values are
540.Dv EVP_PKEY_ECDH_KDF_NONE
541or
542.Dv EVP_PKEY_ECDH_KDF_X9_63 .
543.Pp
544The
545.Fn EVP_PKEY_CTX_set_ecdh_kdf_md
546macro sets the key derivation function message digest to
547.Fa md
548for ECDH key derivation.
549Note that X9.63 specifies that this digest should be SHA1,
550but OpenSSL tolerates other digests.
551.Pp
552The
553.Fn EVP_PKEY_CTX_get_ecdh_kdf_md
554macro gets the key derivation function message digest for
555.Fa ctx
556used for ECDH key derivation.
557.Pp
558The
559.Fn EVP_PKEY_CTX_set_ecdh_kdf_outlen
560macro sets the key derivation function output length to
561.Fa len
562for ECDH key derivation.
563.Pp
564The
565.Fn EVP_PKEY_CTX_get_ecdh_kdf_outlen
566macro gets the key derivation function output length for
567.Fa ctx
568used for ECDH key derivation.
569.Pp
570The
571.Fn EVP_PKEY_CTX_set0_ecdh_kdf_ukm
572macro sets the user key material to
573.Fa ukm
574for ECDH key derivation.
575This parameter is optional and corresponds to the shared info
576in X9.63 terms.
577The library takes ownership of the user key material, so the caller
578should not free the original memory pointed to by
579.Fa ukm .
580.Pp
581The
582.Fn EVP_PKEY_CTX_get0_ecdh_kdf_ukm
583macro gets the user key material for
584.Fa ctx .
585The return value is the user key material length.
586The resulting pointer is owned by the library and should not be
587freed by the caller.
372.Ss Other parameters 588.Ss Other parameters
373The 589The
374.Fn EVP_PKEY_CTX_set1_id , 590.Fn EVP_PKEY_CTX_set1_id ,
@@ -443,9 +659,19 @@ first appeared in OpenSSL 1.0.1 and have been available since
443.Ox 5.3 . 659.Ox 5.3 .
444.Pp 660.Pp
445The functions 661The functions
446.Fn EVP_PKEY_CTX_get_signature_md 662.Fn EVP_PKEY_CTX_get_signature_md ,
663.Fn EVP_PKEY_CTX_set_ec_param_enc ,
664.Fn EVP_PKEY_CTX_set_ecdh_cofactor_mode ,
665.Fn EVP_PKEY_CTX_get_ecdh_cofactor_mode ,
666.Fn EVP_PKEY_CTX_set_ecdh_kdf_type ,
667.Fn EVP_PKEY_CTX_get_ecdh_kdf_type ,
668.Fn EVP_PKEY_CTX_set_ecdh_kdf_md ,
669.Fn EVP_PKEY_CTX_get_ecdh_kdf_md ,
670.Fn EVP_PKEY_CTX_set_ecdh_kdf_outlen ,
671.Fn EVP_PKEY_CTX_get_ecdh_kdf_outlen ,
672.Fn EVP_PKEY_CTX_set0_ecdh_kdf_ukm ,
447and 673and
448.Fn EVP_PKEY_CTX_set_ec_param_enc 674.Fn EVP_PKEY_CTX_get0_ecdh_kdf_ukm
449first appeared in OpenSSL 1.0.2 and have been available since 675first appeared in OpenSSL 1.0.2 and have been available since
450.Ox 6.6 . 676.Ox 6.6 .
451.Pp 677.Pp
@@ -456,3 +682,12 @@ and
456.Fn EVP_PKEY_CTX_get1_id_len 682.Fn EVP_PKEY_CTX_get1_id_len
457first appeared in OpenSSL 1.1.1 and have been available since 683first appeared in OpenSSL 1.1.1 and have been available since
458.Ox 6.6 . 684.Ox 6.6 .
685.Pp
686The functions
687.Fn EVP_PKEY_CTX_set_rsa_oaep_md ,
688.Fn EVP_PKEY_CTX_get_rsa_oaep_md ,
689.Fn EVP_PKEY_CTX_set0_rsa_oaep_label ,
690and
691.Fn EVP_PKEY_CTX_get0_rsa_oaep_label
692first appeared in OpenSSL 1.0.2 and have been available since
693.Ox 6.7 .