Sample code for 30+ languages & platforms
Visual FoxPro

Load a CSR and Get the SANs (Subject Alternative Names)

See more CSR Examples

Demonstrates how to load a Certificate Signing Request (CSR) and get the Subject Alternative Names (if any).

Note: This example requires Chilkat v9.5.0.91 or greater.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loCsr
LOCAL loFac
LOCAL lcCsrPem
LOCAL loSt
LOCAL i
LOCAL lnNumSans

lnSuccess = 0

* Note: Requires Chilkat v9.5.0.91 or greater.

* This requires the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.

loCsr = CreateObject('Chilkat.Csr')

* Load a CSR PEM file.  The file should contain content that looks like this:
* 
* -----BEGIN CERTIFICATE REQUEST-----
* MIIDnzCCAocCAQAwgZ4xFDASBgNVBAMMC2V4YW1wbGUuY29tMRQwEgYDVQQHDAtM
* b3MgQW5nZWxlczETMBEGA1UECAwKQ2FsaWZvcm5pYTEUMBIGA1UECgwLRXhhbXBs
* ZSBJbmMxFDASBgNVBAsMC1NTTCBTdXBwb3J0MSIwIAYJKoZIhvcNAQkBFhNleGFt
* cGxlQGV4YW1wbGUuY29tMQswCQYDVQQGEwJVUzCCASIwDQYJKoZIhvcNAQEBBQAD
* ggEPADCCAQoCggEBALhIT/q7y1xwpYaR0Coplktwn7RGaJpEBCgbJWxOVPTGL540
* erlhc6MrSEr6fo/HNtAbn6MNWm5F0MwjEU7H1Jxc7DYav+ps3hyhGaK9jalE99Sm
* yFOzKMLDPyWTPpxfT4QBO4rpWxMT2lgixDkZlaNqmC6pUGXArfH+H1F3C0gtH4ZU
* XN/Ipyk6r6ozWnJvIefdMe1JmeMD3RSoVcXd9bNWSpiD4uJnV+2pewkkNzhcGzBH
* MGi4ZjIbpPiYLlri/79fPb6u7wYkYLzCWRKzq6EaJkqY6OQgE33SC1GQKjC/fFRx
* wogub1s9cRjfL6vdqWbTJ5xhOkPeBO3UzHBHIksCAwEAAaCBujCBtwYJKoZIhvcN
* AQkOMYGpMIGmMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgWgMB0GA1UdJQQWMBQGCCsG
* AQUFBwMBBggrBgEFBQcDAjBtBgNVHREEZjBkggtleGFtcGxlLmNvbYIPd3d3LmV4
* YW1wbGUuY29tgg9mdHAuZXhhbXBsZS5jb22CD3N2bi5leGFtcGxlLmNvbYIQc210
* cC5leGFtcGxlLmNvbYIQaW1hcC5leGFtcGxlLmNvbTANBgkqhkiG9w0BAQsFAAOC
* AQEAsIEDMlZViEVtuQWpfa6vUl5RfqQrop+hh9l4UmEOnERLEzyVO+9Kn7jNxyOR
* Gg7O9H4BYTfet6YwfpawbnQ1HBexduRZaUnET8RiYgKch0vWr/HbP7jvc23XUz2P
* NOAiet/tyTU6U5xJn0H4q1VFIbHjntpBSL+n+aiv8glIUepG8BwTu+vBe2/kVzKG
* ro2tudhbpEJYOwurlHCoubhCah9ryIkDeYEnycsrB6VnaxeGK0/5S2JBQo22/F9s
* T+q0Gee936ISvypLwNoIX+YFAjw2KnqucUM3RKHAAheJin5WNIQXdHHKGsImapun
* VqmPwLN6Kgm+kFVS0H5eyULSnA==
* -----END CERTIFICATE REQUEST-----

loFac = CreateObject('Chilkat.FileAccess')
lcCsrPem = loFac.ReadEntireTextFile("qa_data/csr/myCsr.pem","utf-8")

lnSuccess = loCsr.LoadCsrPem(lcCsrPem)
IF (lnSuccess <> 1) THEN
    ? loCsr.LastErrorText
    RELEASE loCsr
    RELEASE loFac
    CANCEL
ENDIF

* Get the SANs
loSt = CreateObject('Chilkat.StringTable')

lnSuccess = loCsr.GetSans(loSt)
IF (lnSuccess <> 1) THEN
    ? loCsr.LastErrorText
    RELEASE loCsr
    RELEASE loFac
    RELEASE loSt
    CANCEL
ENDIF

i = 0
lnNumSans = loSt.Count
DO WHILE i < lnNumSans
    ? loSt.StringAt(i)
    i = i + 1
ENDDO

RELEASE loCsr
RELEASE loFac
RELEASE loSt