From b36a2efd55078a5fff32b2755046b23cb3c5d8a3 Mon Sep 17 00:00:00 2001 From: "Dr. Stephen Henson" Date: Sun, 13 Mar 2016 15:49:09 +0000 Subject: [PATCH] Add EVP_PKEY documentation. Document EVP_PKEY_id() and EVP_PKEY_base_id(). Reviewed-by: Viktor Dukhovni --- doc/crypto/EVP_PKEY_set1_RSA.pod | 38 +++++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 11 deletions(-) diff --git a/doc/crypto/EVP_PKEY_set1_RSA.pod b/doc/crypto/EVP_PKEY_set1_RSA.pod index 09b43ba2ca..de31bc1572 100644 --- a/doc/crypto/EVP_PKEY_set1_RSA.pod +++ b/doc/crypto/EVP_PKEY_set1_RSA.pod @@ -6,7 +6,7 @@ EVP_PKEY_set1_RSA, EVP_PKEY_set1_DSA, EVP_PKEY_set1_DH, EVP_PKEY_set1_EC_KEY, EVP_PKEY_get1_RSA, EVP_PKEY_get1_DSA, EVP_PKEY_get1_DH, EVP_PKEY_get1_EC_KEY, EVP_PKEY_get0_RSA, EVP_PKEY_get0_DSA, EVP_PKEY_get0_DH, EVP_PKEY_get0_EC_KEY, EVP_PKEY_assign_RSA, EVP_PKEY_assign_DSA, EVP_PKEY_assign_DH, EVP_PKEY_assign_EC_KEY, -EVP_PKEY_type - EVP_PKEY assignment functions. +EVP_PKEY_type, EVP_PKEY_id, EVP_PKEY_base_id - EVP_PKEY assignment functions. =head1 SYNOPSIS @@ -32,6 +32,8 @@ EVP_PKEY_type - EVP_PKEY assignment functions. int EVP_PKEY_assign_DH(EVP_PKEY *pkey,DH *key); int EVP_PKEY_assign_EC_KEY(EVP_PKEY *pkey,EC_KEY *key); + int EVP_PKEY_id(const EVP_PKEY *pkey); + int EVP_PKEY_base_id(const EVP_PKEY *pkey); int EVP_PKEY_type(int type); =head1 DESCRIPTION @@ -54,11 +56,18 @@ and EVP_PKEY_assign_EC_KEY() also set the referenced key to B however these use the supplied B internally and so B will be freed when the parent B is freed. -EVP_PKEY_type() returns the type of key corresponding to the value -B. The type of a key can be obtained with -EVP_PKEY_type(pkey->type). The return value will be EVP_PKEY_RSA, -EVP_PKEY_DSA, EVP_PKEY_DH or EVP_PKEY_EC for the corresponding -key types or NID_undef if the key type is unassigned. +EVP_PKEY_base_id() returns the type of B. For example +an RSA key will return B. + +EVP_PKEY_id() returns the actual OID associated with B. Historically keys +using the same algorithm could use different OIDs. For example an RSA key could +use the OIDs corresponding to the NIDs B (equivalent to +B (equivalent to B). The use of +alternative non-standard OIDs is now rare so B et al are not +often seen in practice. + +EVP_PKEY_type() returns the underlying type of the NID B. For example +EVP_PKEY_type(EVP_PKEY_RSA2) will return B. =head1 NOTES @@ -69,24 +78,31 @@ freed as well as B. EVP_PKEY_assign_RSA(), EVP_PKEY_assign_DSA(), EVP_PKEY_assign_DH() and EVP_PKEY_assign_EC_KEY() are implemented as macros. +Most applications wishing to know a key type will simply call +EVP_PKEY_base_id() and will not care about the actual type: +which will be identical in almost all cases. + +Previous versions of this document suggested using EVP_PKEY_type(pkey->type) +to determine the type of a key. Since B is now opaque this +is no longer possible: the equivalent is EVP_PKEY_base_id(pkey). + =head1 RETURN VALUES EVP_PKEY_set1_RSA(), EVP_PKEY_set1_DSA(), EVP_PKEY_set1_DH() and EVP_PKEY_set1_EC_KEY() return 1 for success or 0 for failure. EVP_PKEY_get1_RSA(), EVP_PKEY_get1_DSA(), EVP_PKEY_get1_DH() and -EVP_PKEY_get1_EC_KEY() return the referenced key or B if +EVP_PKEY_get1_EC_KEY() return the referenced key or B if an error occurred. EVP_PKEY_assign_RSA(), EVP_PKEY_assign_DSA(), EVP_PKEY_assign_DH() and EVP_PKEY_assign_EC_KEY() return 1 for success and 0 for failure. +EVP_PKEY_base_id(), EVP_PKEY_id() and EVP_PKEY_type() return a key +type or B (equivalently B) on error. + =head1 SEE ALSO L -=head1 HISTORY - -TBA - =cut -- 2.25.1