Add convenience functions and macros for asymmetric key generation
[openssl.git] / doc / man7 / EVP_PKEY-X25519.pod
index 2937f247f5b3da4d23bf6cff2e0a0940eefb69aa..a597bc53beb068fd828507ce580ee15576cc7c7f 100644 (file)
@@ -29,7 +29,7 @@ support the following.
 =item "group" (B<OSSL_PKEY_PARAM_GROUP_NAME>) <UTF8 string>
 
 This is only supported by X25519 and X448. The group name must be "x25519" or
-"x448" repsectively for those algorithms. This is only present for consistency
+"x448" respectively for those algorithms. This is only present for consistency
 with other key exchange algorithms and is typically not needed.
 
 =item "pub" (B<OSSL_PKEY_PARAM_PUB_KEY>) <octet string>
@@ -40,10 +40,11 @@ The public key value.
 
 The private key value.
 
-=item "tls-encoded-pt" (B<OSSL_PKEY_PARAM_TLS_ENCODED_PT>) <octet string>
+=item "encoded-pub-key" (B<OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY>) <octet string>
 
-Used for getting and setting the encoding of the public key used in a key exchange
-message for the TLS protocol.
+Used for getting and setting the encoding of a public key for the B<X25519> and
+B<X448> key types. Public keys are expected be encoded in a format as defined by
+RFC7748.
 
 =back
 
@@ -51,7 +52,7 @@ message for the TLS protocol.
 
 =over 4
 
-=item "mandatory-digest" (B<OSSL_PKEY_PARAM_MANDATORY_DIGEST>) <utf8 string>
+=item "mandatory-digest" (B<OSSL_PKEY_PARAM_MANDATORY_DIGEST>) <UTF8 string>
 
 The empty string, signifying that no digest may be specified.
 
@@ -83,25 +84,11 @@ An B<EVP_PKEY> context can be obtained by calling:
     EVP_PKEY_CTX *pctx =
         EVP_PKEY_CTX_new_from_name(NULL, "ED448", NULL);
 
-An B<ED25519> key can be generated like this:
+An B<X25519> key can be generated like this:
 
-    EVP_PKEY *pkey = NULL;
-    EVP_PKEY_CTX *pctx =
-        EVP_PKEY_CTX_new_from_name(NULL, "ED25519", NULL);
-
-    EVP_PKEY_keygen_init(pctx);
-    EVP_PKEY_gen(pctx, &pkey);
-    EVP_PKEY_CTX_free(pctx);
-
-An B<X25519> key can be generated in a similar way:
-
-    EVP_PKEY *pkey = NULL;
-    EVP_PKEY_CTX *pctx =
-        EVP_PKEY_CTX_new_from_name(NULL, "X25519", NULL);
+    pkey = EVP_Q_keygen(NULL, NULL, "X25519");
 
-    EVP_PKEY_keygen_init(pctx);
-    EVP_PKEY_gen(pctx, &pkey);
-    EVP_PKEY_CTX_free(pctx);
+An B<X448>, B<ED25519>, or B<ED448> key can be generated likewise.
 
 =head1 SEE ALSO