
#use wml::openssl-macros area=docs page=EVP_PKEY_set1_RSA

<title>Documents, EVP_PKEY_set1_RSA(3)</title>

<h1>EVP_PKEY_set1_RSA(3)</h1>

#use wml::imp::generic

{:
## What's this? [[s|(<STRONG>[^<].+?)</A>(</STRONG><DD>)|$1$2|sg]]
[[s|<P>\s+<P>|<P>|sg]]
[[s|<P>\s+</|</|sg]]
[[s|<DD>\s*<DT>|<DD>&nbsp;<DT>|sg]]
[[s|<DD>\s*</DL>|<DD>&nbsp;</DL>|sg]]
[[s|\[|&#91;|sg]]
[[s|\]|&#93;|sg]]

<!-- INDEX BEGIN -->

<UL>

	<LI><A HREF="#NAME">NAME</A>
	<LI><A HREF="#SYNOPSIS">SYNOPSIS</A>
	<LI><A HREF="#DESCRIPTION">DESCRIPTION</A>
	<LI><A HREF="#NOTES">NOTES</A>
	<LI><A HREF="#RETURN_VALUES">RETURN VALUES</A>
	<LI><A HREF="#SEE_ALSO">SEE ALSO</A>
	<LI><A HREF="#HISTORY">HISTORY</A>
</UL>
<!-- INDEX END -->

<HR>
<P>
<HR>
<H1><A NAME="NAME">NAME</A></H1>
<P>
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_assign_RSA,
EVP_PKEY_assign_DSA, EVP_PKEY_assign_DH, EVP_PKEY_assign_EC_KEY,
EVP_PKEY_type - EVP_PKEY assignment functions.

</P>
<P>
<HR>
<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1>
<PRE> #include &lt;openssl/evp.h&gt;
</PRE>
<PRE> int EVP_PKEY_set1_RSA(EVP_PKEY *pkey,RSA *key);
 int EVP_PKEY_set1_DSA(EVP_PKEY *pkey,DSA *key);
 int EVP_PKEY_set1_DH(EVP_PKEY *pkey,DH *key);
 int EVP_PKEY_set1_EC_KEY(EVP_PKEY *pkey,EC_KEY *key);
</PRE>
<PRE> RSA *EVP_PKEY_get1_RSA(EVP_PKEY *pkey);
 DSA *EVP_PKEY_get1_DSA(EVP_PKEY *pkey);
 DH *EVP_PKEY_get1_DH(EVP_PKEY *pkey);
 EC_KEY *EVP_PKEY_get1_EC_KEY(EVP_PKEY *pkey);
</PRE>
<PRE> int EVP_PKEY_assign_RSA(EVP_PKEY *pkey,RSA *key);
 int EVP_PKEY_assign_DSA(EVP_PKEY *pkey,DSA *key);
 int EVP_PKEY_assign_DH(EVP_PKEY *pkey,DH *key);
 int EVP_PKEY_assign_EC_KEY(EVP_PKEY *pkey,EC_KEY *key);
</PRE>
<PRE> int EVP_PKEY_type(int type);
</PRE>
<P>
<HR>
<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1>
<P>
<CODE>EVP_PKEY_set1_RSA(),</CODE> <CODE>EVP_PKEY_set1_DSA(),</CODE>
<CODE>EVP_PKEY_set1_DH()</CODE> and <CODE>EVP_PKEY_set1_EC_KEY()</CODE> set
the key referenced by <STRONG>pkey</STRONG> to <STRONG>key</STRONG>.

</P>
<P>
<CODE>EVP_PKEY_get1_RSA(),</CODE> <CODE>EVP_PKEY_get1_DSA(),</CODE>
<CODE>EVP_PKEY_get1_DH()</CODE> and <CODE>EVP_PKEY_get1_EC_KEY()</CODE>
return the referenced key in <STRONG>pkey</STRONG> or
<STRONG>NULL</STRONG> if the key is not of the correct type.

</P>
<P>
<CODE>EVP_PKEY_assign_RSA()</CODE> <CODE>EVP_PKEY_assign_DSA(),</CODE>
<CODE>EVP_PKEY_assign_DH()</CODE> and <CODE>EVP_PKEY_assign_EC_KEY()</CODE>
also set the referenced key to <STRONG>key</STRONG>
however these use the supplied <STRONG>key</STRONG> internally and so <STRONG>key</STRONG>
will be freed when the parent <STRONG>pkey</STRONG> is freed.

</P>
<P>
<CODE>EVP_PKEY_type()</CODE> returns the type of key corresponding to the
value
<STRONG>type</STRONG>. The type of a key can be obtained with
<CODE>EVP_PKEY_type(pkey-&gt;type).</CODE> 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.

</P>
<P>
<HR>
<H1><A NAME="NOTES">NOTES</A></H1>
<P>
In accordance with the OpenSSL naming convention the key obtained from or
assigned to the <STRONG>pkey</STRONG> using the <STRONG>1</STRONG> functions must be freed as well as <STRONG>pkey</STRONG>.

</P>
<P>
<CODE>EVP_PKEY_assign_RSA()</CODE> <CODE>EVP_PKEY_assign_DSA(),</CODE>
<CODE>EVP_PKEY_assign_DH()</CODE> <CODE>EVP_PKEY_assign_EC_KEY()</CODE> are
implemented as macros.

</P>
<P>
<HR>
<H1><A NAME="RETURN_VALUES">RETURN VALUES</A></H1>
<P>
<CODE>EVP_PKEY_set1_RSA(),</CODE> <CODE>EVP_PKEY_set1_DSA(),</CODE>
<CODE>EVP_PKEY_set1_DH()</CODE> and <CODE>EVP_PKEY_set1_EC_KEY()</CODE>
return 1 for success or 0 for failure.

</P>
<P>
<CODE>EVP_PKEY_get1_RSA(),</CODE> <CODE>EVP_PKEY_get1_DSA(),</CODE>
<CODE>EVP_PKEY_get1_DH()</CODE> and <CODE>EVP_PKEY_get1_EC_KEY()</CODE>
return the referenced key or <STRONG>NULL</STRONG> if an error occurred.

</P>
<P>
<CODE>EVP_PKEY_assign_RSA()</CODE> <CODE>EVP_PKEY_assign_DSA(),</CODE>
<CODE>EVP_PKEY_assign_DH()</CODE> and <CODE>EVP_PKEY_assign_EC_KEY()</CODE>
return 1 for success and 0 for failure.

</P>
<P>
<HR>
<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1>
<P>
<A HREF="../crypto/EVP_PKEY_new.html#">EVP_PKEY_new(3)</A>



</P>
<P>
<HR>
<H1><A NAME="HISTORY">HISTORY</A></H1>
<P>
TBA

</P>
:}


