[#EVP_PKEY_asn1_set_param]
= EVP&lowbar;PKEY&lowbar;asn1&lowbar;set&lowbar;param
:mrdocs:

Install parameter encode&sol;decode, missing, copy, compare, and print callbacks on an ASN&period;1 method&period;

== Synopsis

Declared in `&lt;openssl&sol;evp&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
EVP&lowbar;PKEY&lowbar;asn1&lowbar;set&lowbar;param(
    xref:EVP_PKEY_ASN1_METHOD.adoc[EVP&lowbar;PKEY&lowbar;ASN1&lowbar;METHOD]* ameth,
    int(* param&lowbar;decode)(xref:EVP_PKEY.adoc[EVP&lowbar;PKEY]*, unsigned char const**, int),
    int(* param&lowbar;encode)(xref:EVP_PKEY.adoc[EVP&lowbar;PKEY] const*, unsigned char**),
    int(* param&lowbar;missing)(xref:EVP_PKEY.adoc[EVP&lowbar;PKEY] const*),
    int(* param&lowbar;copy)(xref:EVP_PKEY.adoc[EVP&lowbar;PKEY]*, xref:EVP_PKEY.adoc[EVP&lowbar;PKEY] const*),
    int(* param&lowbar;cmp)(xref:EVP_PKEY.adoc[EVP&lowbar;PKEY] const*, xref:EVP_PKEY.adoc[EVP&lowbar;PKEY] const*),
    int(* param&lowbar;print)(xref:BIO.adoc[BIO]*, xref:EVP_PKEY.adoc[EVP&lowbar;PKEY] const*, int, xref:ASN1_PCTX.adoc[ASN1&lowbar;PCTX]*));
----

== Parameters

[cols="1,4"]
|===
| Name| Description
| *ameth*
| ASN&period;1 method being customized&period;
| *param&lowbar;decode*
| Decode algorithm parameters from DER into `pkey&period;`
| *param&lowbar;encode*
| Encode algorithm parameters from `pkey` to DER&period;
| *param&lowbar;missing*
| Return nonzero if `pk` lacks required parameters&period;
| *param&lowbar;copy*
| Copy parameters from `from` into `to&period;`
| *param&lowbar;cmp*
| Compare parameters of two keys (1 match, 0 differ, negative on error)&period;
| *param&lowbar;print*
| Print parameters to a BIO&period;
|===


[.small]#Created with https://www.mrdocs.com[MrDocs]#
