Name
xenc_x509_from_csr — Generate x509 certificate from CSR.
Synopsis
varchar
xenc_x509_from_csr
(
|
in ca_key_name varchar , |
in cli_key_name varchar , | |
in csr_str varchar , | |
in serial_no varchar , | |
in days_validity varchar , | |
in
hours_validity
varchar
) ; |
Description
This function generates Certificate Signing Request (CSR). The function return 1 upon success,
sql error on failure. The new certificate can be exported in PEM format with
xenc_pem_export(cli_key_name)
.
Parameters
ca_key_name
The name of CA private key which will be used to sign certificate.
cli_key_name
The name of a key which will be created and will contains the client certificate.
csr_str
pem encoded CSR.
serial_no
Serial number.
days_validity
How many days will be valid the certificate.
hours_validity
How many hours will be valid the certificate.
Return Types
the function returns 1 upon success, sql error on failure.
Errors
Table 24.119. Errors signalled by
xenc_x509_from_csr
SQLState | Error Code | Error Text | Description |
---|---|---|---|
22023 | XECXX | The key [name of the key] already exists | |
22023 | XECXX | Missing or invalid signer certificate | |
22023 | XECXX | Invalid certificate request | |
22023 | XECXX | Invalid certificate request public key | |
22023 | XECXX | Signature did not match the certificate request | |
22023 | XECXX | Invalid certificate request subject name | |
42000 | XECXX | Can not create x.509 structure | |
42000 | XECXX | Can not sign certificate | |
42000 | XECXX | The type of public key is not supported mus tbe RSA or DSA | |
42000 | XECXX | Can not create a key | |
42000 | XECXX | Can not sign certificate : [the sign error text] |
Example
Example 24.486. Generating a Certificate Signing Request (CSR)
The following example demonstrates how to generate Certificate Signing Request (CSR).
SQL>create procedure csr_demo() { declare kname, cvalue varchar; declare _key any; declare _output int; xenc_key_RSA_create ('RSAKey1', 1024); _key := xenc_x509_csr_generate ('RSAKey1', 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')); xenc_x509_from_csr ('id_rsa', 'MyKey1', _key , sequence_next ('ca_id_rsa'), 365, 100); return xenc_pem_export ('MyKey1'); } ; Done. -- 0 msec. SQL> select csr_demo(); temp2 VARCHAR _______________________________________________________________________________ -----BEGIN CERTIFICATE----- MIIDSjCCAjKgAwIBAgIBEzANBgkqhkiG9w0BAQQFADBVMQswCQYDVQQIEwJvbDEL MAkGA1UEChMCb2wxCzAJBgNVBAsTAm9sMQ0wCwYDVQQDEwRqb2huMR0wGwYJKoZI hvcNAQkBFg5qb2huQGdtYWlsLmNvbTAeFw0xMTA2MDcxNTAxNDhaFw0xMjA2MTAx OTAxNDhaMGsxEjAQBgNVBAMTCURlbW8gdXNlcjELMAkGA1UEBhMCVVMxETAPBgNV BAoTCE9wZW5MaW5rMREwDwYDVQQLEwhBY2NvdW50czEiMCAGCSqGSIb3DQEJARYT ZGVtb0BvcGVubGlua3N3LmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA 3Ma/MlMrGruwpDsW2D3iYA6sqFqldPsgx837dNJel8ZQu5/0Nyr5DCtAQNq6nWZo 0bezK9UIfAXEQXWt4S7IMPfTF6oCT85YDsQEEE/o1spsZ9Q7kXhKu3R3LNNiTxYr TR4FSl361pUqyYngSMTxVWJxKnPW30p94i5QuQjLF1sCAwEAAaOBkjCBjzAdBgNV HQ4EFgQUF5wTSXH98IqiaaxfVTNcui8p8SowPwYDVR0RBDgwNoY0aHR0cDovL3d3 dy5vcGVubGlua3N3LmNvbS9kYXRhc3BhY2UvcGVyc29uL2RlbW8jdGhpczAtBglg hkgBhvhCAQ0EIBYeVmlydHVvc28gR2VuZXJhdGVkIENlcnRpZmljYXRlMA0GCSqG SIb3DQEBBAUAA4IBAQCwSN3y6yeCNe+/izo5GwM+16cjmZkyMUYmAO62I6T62jmI p0nYaVhJ9WV0ntVnx1H8/LKwrgyLlhXacVw4jyXwFMSo+YuONj+kKpobNH2cl+u1 +c0kJGbY/eS99S2D3JhL6n+QukvQIqhYniZ21wT1ugwpN2A7NtY+g925+vQBO0UH 0wQm3eQk8NADEjcqrmGmJcrK22jfaBNov+O2wvcZQM7WIKm98f/7So7kBN0BoRX8 7LRf3zIhp4f9fk1QDwlm9NgwgxARqNOfRuJU2YU1ICz88LbwM4XDeb+Mdr0YMNdU 6eYkCB4vKsVH+s1E8m67QZ8TGxpNZLYXLZZBdt86 -----END CERTIFICATE----- 1 Rows. -- 172 msec.