<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head profile="http://internetalchemy.org/2003/02/profile"> <link rel="foaf" type="application/rdf+xml" title="FOAF" href="http://www.openlinksw.com/dataspace/uda/about.rdf" /> <link rel="schema.dc" href="http://purl.org/dc/elements/1.1/" /> <meta name="dc.title" content="Function: x509_csr_generate - Virtuoso Functions Guide" /> <meta name="dc.subject" content="Function: x509_csr_generate - Virtuoso Functions Guide" /> <meta name="dc.creator" content="OpenLink Software Documentation Team ; " /> <meta name="dc.copyright" content="OpenLink Software, 1999 - 2009" /> <link rel="top" href="index.html" title="OpenLink Virtuoso Universal Server: Documentation" /> <link rel="search" href="/doc/adv_search.vspx" title="Search OpenLink Virtuoso Universal Server: Documentation" /> <link rel="parent" href="functions.html" title="Chapter Contents" /> <link rel="prev" href="appendixa.html" title="Appendix" /> <link rel="next" href="functions.html#.html" title="" /> <link rel="shortcut icon" href="../images/misc/favicon.ico" type="image/x-icon" /> <link rel="stylesheet" type="text/css" href="doc.css" /> <link rel="stylesheet" type="text/css" href="/doc/translation.css" /> <title>Function: x509_csr_generate - Virtuoso Functions Guide</title> <meta http-equiv="Content-Type" content="text/xhtml; charset=UTF-8" /> <meta name="author" content="OpenLink Software Documentation Team ; " /> <meta name="copyright" content="OpenLink Software, 1999 - 2009" /> <meta name="keywords" content="" /> <meta name="GENERATOR" content="OpenLink XSLT Team" /> </head> <body> <div id="header"> <a name="fn_x509_csr_generate" /> <img src="../images/misc/logo.jpg" alt="" /> <h1>22. Virtuoso Functions Guide - x509_csr_generate</h1> </div> <div id="navbartop"> <div> <a class="link" href="functions.html">Chapter Contents</a> | <a class="link" href="fn_xenc_key_RSA_create.html" title="xenc_key_RSA_create">Prev</a> | <a class="link" href="functions.html#jvmpl" title="Virtuoso Java PL API">Next</a> </div> </div> <div id="currenttoc"> <form method="post" action="/doc/adv_search.vspx"> <div class="search">Keyword Search: <br /> <input type="text" name="q" /> <input type="submit" name="go" value="Go" /> </div> </form> <div> <a href="http://www.openlinksw.com/">www.openlinksw.com</a> </div> <div> <a href="http://docs.openlinksw.com/">docs.openlinksw.com</a> </div> <br /> <div> <a href="index.html">Book Home</a> </div> <br /> <div> <a href="contents.html">Contents</a> </div> <div> <a href="preface.html">Preface</a> </div> <br /> <div> <a class="selected" href="functions.html">Virtuoso Functions Guide</a> </div> <br /> <div> <a href="functions.html#admin">Administration</a> </div> <div> <a href="functions.html#aggr">Aggregate Functions</a> </div> <div> <a href="functions.html#array">Array Manipulation</a> </div> <div> <a href="functions.html#bpel">BPEL APIs</a> </div> <div> <a href="functions.html#backup">Backup</a> </div> <div> <a href="functions.html#compression">Compression</a> </div> <div> <a href="functions.html#cursors">Cursor</a> </div> <div> <a href="functions.html#time">Date & Time Manipulation</a> </div> <div> <a href="functions.html#debug">Debug</a> </div> <div> <a href="functions.html#dict">Dictionary Manipulation</a> </div> <div> <a href="functions.html#encoding">Encoding & Decoding</a> </div> <div> <a href="functions.html#file">File Manipulation</a> </div> <div> <a href="functions.html#ft">Free Text</a> </div> <div> <a class="selected" href="functions.html#hash">Hashing / Cryptographic</a> </div> <div class="selected"> <div> <a href="fn_dsig_template_ext.html">dsig_template_ext</a> </div> <div> <a href="fn_md5.html">md5</a> </div> <div> <a href="fn_md5_final.html">md5_final</a> </div> <div> <a href="fn_md5_init.html">md5_init</a> </div> <div> <a href="fn_md5_update.html">md5_update</a> </div> <div> <a href="fn_tree_md5.html">tree_md5</a> </div> <div> <a href="fn_x509_certificate_verify.html">x509_certificate_ver...</a> </div> <div> <a class="selected" href="fn_x509_csr_generate.html">x509_csr_generate</a> </div> <div> <a href="fn_xenc_SPKI_read.html">xenc_spki_read</a> </div> <div> <a href="fn_xenc_X509_certificate_serialize.html">xenc_x509_certificat...</a> </div> <div> <a href="fn_xenc_bn2dec.html">xenc_bn2dec</a> </div> <div> <a href="fn_xenc_decrypt_soap.html">xenc_decrypt_soap</a> </div> <div> <a href="fn_xenc_delete_temp_keys.html">xenc_delete_temp_key...</a> </div> <div> <a href="fn_xenc_encrypt.html">xenc_encrypt</a> </div> <div> <a href="fn_xenc_get_key_algo.html">xenc_get_key_algo</a> </div> <div> <a href="fn_xenc_get_key_identifier.html">xenc_get_key_identif...</a> </div> <div> <a href="fn_xenc_key_3DES_create.html">xenc_key_3des_create</a> </div> <div> <a href="fn_xenc_key_3DES_rand_create.html">xenc_key_3des_rand_c...</a> </div> <div> <a href="fn_xenc_key_3DES_read.html">xenc_key_3des_read</a> </div> <div> <a href="fn_xenc_key_AES_create.html">xenc_key_aes_create</a> </div> <div> <a href="fn_xenc_key_AES_rand_create.html">xenc_key_aes_rand_cr...</a> </div> <div> <a href="fn_xenc_key_DSA_create.html">xenc_key_dsa_create</a> </div> <div> <a href="fn_xenc_key_DSA_read.html">xenc_key_dsa_read</a> </div> <div> <a href="fn_xenc_key_RSA_create.html">xenc_key_rsa_create</a> </div> <div> <a href="fn_xenc_key_RSA_read.html">xenc_key_rsa_read</a> </div> <div> <a href="fn_xenc_key_create_cert.html">xenc_key_create_cert</a> </div> <div> <a href="fn_xenc_key_exists.html">xenc_key_exists</a> </div> <div> <a href="fn_xenc_key_inst_create.html">xenc_key_inst_create</a> </div> <div> <a href="fn_xenc_key_remove.html">xenc_key_remove</a> </div> <div> <a href="fn_xenc_key_serialize.html">xenc_key_serialize</a> </div> <div> <a href="fn_xenc_pem_export.html">xenc_pem_export</a> </div> <div> <a href="fn_xenc_pkcs12_export.html">xenc_pkcs12_export</a> </div> <div> <a href="fn_xenc_set_primary_key.html">xenc_set_primary_key</a> </div> <div> <a href="fn_xenc_x509_generate.html">xenc_x509_generate</a> </div> <div> <a href="fn_xenc_x509_ss_generate.html">xenc_x509_ss_generat...</a> </div> </div> <div> <a href="functions.html#ldap">LDAP</a> </div> <div> <a href="functions.html#localization">Locale</a> </div> <div> <a href="functions.html#mail">Mail</a> </div> <div> <a href="functions.html#misc">Miscellaneous</a> </div> <div> <a href="functions.html#number">Number</a> </div> <div> <a href="functions.html#phrz">Phrases</a> </div> <div> <a href="functions.html#rdf">RDF data</a> </div> <div> <a href="functions.html#rmt">Remote SQL Data Source</a> </div> <div> <a href="functions.html#repl">Replication</a> </div> <div> <a href="functions.html#soap">SOAP</a> </div> <div> <a href="functions.html#sql">SQL</a> </div> <div> <a href="functions.html#string">String</a> </div> <div> <a href="functions.html#txn">Transaction</a> </div> <div> <a href="functions.html#type">Type Mapping</a> </div> <div> <a href="functions.html#uddi">UDDI</a> </div> <div> <a href="functions.html#udt">User Defined Types & The CLR</a> </div> <div> <a href="functions.html#vad">VAD</a> </div> <div> <a href="functions.html#jvmpl">Virtuoso Java PL API</a> </div> <div> <a href="functions.html#bif">Virtuoso Server Extension Interface (VSEI)</a> </div> <div> <a href="functions.html#ws">Web & Internet</a> </div> <div> <a href="functions.html#xml">XML</a> </div> <div> <a href="functions.html#XPATH">XPATH & XQUERY</a> </div> <br /> <div> <a href="functionidx.html">Functions Index</a> </div> <br /> </div> <div id="text"> <h2>x509_csr_generate</h2> <div class="refpurpose">Generate Certificate Signing Request (CSR)</div> <div class="funcsynopsis"> <span class="funcdef">varchar <span class="function">x509_csr_generate</span> </span> (<span class="paramdef">in <span class="parameter">cli_pk_name</span> varchar</span>, <span class="paramdef">in <span class="parameter">subject</span> array</span>, <span class="paramdef">in <span class="parameter">extensions</span> array</span>); </div> <div class="refsect1"> <div class="refsect1title">Description</div> <p>This function generates Certificate Signing Request (CSR)</p> </div> <div class="refsect1"> <div class="refsect1title">Parameters</div> <div class="refsect2"> <span class="refsect2title">cli_pk_name – </span> The user's private key name. </div> <div class="refsect2"> <span class="refsect2title">subject – </span> An array of name/value pairs representing the subject aka name enties, for ex: <div> <pre class="programlisting"> ('CN', 'Demo User', 'C', 'US') </pre> </div> </div> <div class="refsect2"> <span class="refsect2title">extensions – </span> An array of name/value pairs to add as X.509v3 extensions to certificate. </div> </div> <div class="refsect1"> <div class="refsect1title">Return Types</div> <p>String</p> </div> <div class="refsect1title">Errors</div> <table class="data"> <tr> <th class="data">SQLState</th> <th class="data">Error Code</th> <th class="data">Error Text</th> <th class="data">Description</th> </tr> <tr> <td class="data"> <a name="err22023" /> <span class="errorcode">22023</span> </td> <td class="data"> <a name="errXECXX" /> <span class="errorcode">XECXX</span> </td> <td class="data"> <span class="errorname">Missing key</span> </td> <td class="data" /> </tr> <tr> <td class="data"> <a name="err22023" /> <span class="errorcode">22023</span> </td> <td class="data"> <a name="errXECXX" /> <span class="errorcode">XECXX</span> </td> <td class="data"> <span class="errorname">Key is not DSA nor RSA</span> </td> <td class="data" /> </tr> <tr> <td class="data"> <a name="err22023" /> <span class="errorcode">22023</span> </td> <td class="data"> <a name="errXECXX" /> <span class="errorcode">XECXX</span> </td> <td class="data"> <span class="errorname">Missing private key</span> </td> <td class="data" /> </tr> <tr> <td class="data"> <a name="err22023" /> <span class="errorcode">22023</span> </td> <td class="data"> <a name="errXECXX" /> <span class="errorcode">XECXX</span> </td> <td class="data"> <span class="errorname">Subject array must be name/value pairs</span> </td> <td class="data" /> </tr> <tr> <td class="data"> <a name="err22023" /> <span class="errorcode">22023</span> </td> <td class="data"> <a name="errXECXX" /> <span class="errorcode">XECXX</span> </td> <td class="data"> <span class="errorname">Extension array must be name/value pairs</span> </td> <td class="data" /> </tr> <tr> <td class="data"> <a name="err42000" /> <span class="errorcode">42000</span> </td> <td class="data"> <a name="errXECXX" /> <span class="errorcode">XECXX</span> </td> <td class="data"> <span class="errorname">Can not create pkey</span> </td> <td class="data" /> </tr> <tr> <td class="data"> <a name="err42000" /> <span class="errorcode">42000</span> </td> <td class="data"> <a name="errXECXX" /> <span class="errorcode">XECXX</span> </td> <td class="data"> <span class="errorname">Can not assign primary key</span> </td> <td class="data" /> </tr> <tr> <td class="data"> <a name="err42000" /> <span class="errorcode">42000</span> </td> <td class="data"> <a name="errXECXX" /> <span class="errorcode">XECXX</span> </td> <td class="data"> <span class="errorname">Can not create pkey</span> </td> <td class="data" /> </tr> <tr> <td class="data"> <a name="err42000" /> <span class="errorcode">42000</span> </td> <td class="data"> <a name="errXECXX" /> <span class="errorcode">XECXX</span> </td> <td class="data"> <span class="errorname">Can not create x.509 structure</span> </td> <td class="data" /> </tr> <tr> <td class="data"> <a name="err42000" /> <span class="errorcode">42000</span> </td> <td class="data"> <a name="errXECXX" /> <span class="errorcode">XECXX</span> </td> <td class="data"> <span class="errorname">Can not sign certificate : [the sign error text]</span> </td> <td class="data" /> </tr> </table> <br /> <p /> <div class="refsect1"> <div class="refsect1title">Examples</div> <a name="ex_x509_csr_generate" /> <div class="example"> <div> <pre class="programlisting"> SQL> create procedure csr_gen_demo() { declare kname, cvalue varchar; xenc_key_RSA_create ('myRSAkey', 1024); xenc_x509_csr_generate ('myRSAkey', vector ( 'CN', 'Demo user', 'C', 'US', 'O', 'OpenLink', 'OU', 'Accounts', 'emailAddress', 'demo@openlinksw.com'), vector ('subjectAltName', 'URI: http://www.openlinksw.com/dataspace/person/demo#this', 'nsComment', 'Virtuoso Generated Certificate', 'authorityKeyIdentifier', 'keyid,issuer:always')); }; Done. -- 0 msec. SQL> select csr_gen_demo(); temp VARCHAR _______________________________________________________________________________ -----BEGIN CERTIFICATE REQUEST----- MIICLDCCAZUCADBrMRIwEAYDVQQDEwlEZW1vIHVzZXIxCzAJBgNVBAYTAlVTMREw DwYDVQQKEwhPcGVuTGluazERMA8GA1UECxMIQWNjb3VudHMxIjAgBgkqhkiG9w0B CQEWE2RlbW9Ab3Blbmxpbmtzdy5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ AoGBAM+e21xeQIJX5ySd6Juc3GtCnyT+JvDKgoxkmovFdqkCm1Ks7Pys0x59ksSZ DZoEATEt/sQsEB7AnRAkH76lWyG0zMtvxdkFH8Cepaaq4bcdqSgmE12DRwViR95a ZNA8vhonr5UdTbtKkIGD67IrkGH81C8trwF+8LnYKdtf1bMdAgMBAAGggYEwfwYJ KoZIhvcNAQkOMXIwcDA/BgNVHREEODA2hjRodHRwOi8vd3d3Lm9wZW5saW5rc3cu Y29tL2RhdGFzcGFjZS9wZXJzb24vZGVtbyN0aGlzMC0GCWCGSAGG+EIBDQQgFh5W aXJ0dW9zbyBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwDQYJKoZIhvcNAQEEBQADgYEA CQ+UeQGWLnHn5X9tKumvgP2p4LgxHsNq0uFZffVBRUAV6w8WRwor5ZKOeNhHrldp ZvxHc9ESFBTA772W01VmQNfpjkFcpH5yd81dFkSsF3lKemQIHnlz4bORU4av2TMM T9OIp5FNOec13jXqVesymd+Kl+Vb9sRBaC1Xb1OSryU= -----END CERTIFICATE REQUEST----- 1 Rows. -- 390 msec. </pre> </div> </div> </div> <div class="refsect1"> <div class="refsect1title">See Also</div> <p> <a href="fn_get_certificate_info.html">get_certificate_info()</a> </p> <p> <a href="">x509_from_csr()</a> </p> <p> <a href="fn_xenc_x509_generate.html">xenc_x509_generate()</a> </p> </div> </div> <div id="footer"> <div>Copyright© 1999 - 2009 OpenLink Software All rights reserved.</div> <div id="validation"> <a href="http://validator.w3.org/check/referer"> <img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /> </a> <a href="http://jigsaw.w3.org/css-validator/"> <img src="http://jigsaw.w3.org/css-validator/images/vcss" alt="Valid CSS!" height="31" width="88" /> </a> </div> </div> </body> </html>