Functions and Directives

Function CertificateSelect() Professional

Selects the certificate for SSL connections.

Syntax
CertificateSelect( [<cSubject>] [, <cStoreName>] [, <cLocation>] )
Scope
thread-local
Parameters
<cSubject>
A character string with the name of the entity associated with the SSL certificate. The subject name is case-sensitive. It defaults to the computer name.
<cStoreName>
A character string specifying the name of the certificate store. If no store name is specified, "my" is used which corresponds to the default store.
<cLocation>
A character string which selects the location of the certificate store. This can be either "user" or "machine". If no location is passed, the machine context is used as the default.
Return

The logical value true (.T.), if a certificate is selected for SSL communication. Otherwise, the value false (.F.) is returned.

Description

The function CertificateSelect() selects a server and or client SSL certificate from a certificate store for the current thread. The SSL certificate must be specified via the subject name, the name of the certificate store, and the location the store resides in. A certificate store can exist either in the user or in the machine context. The user context contains certificates for the current user, whereas certificates in the machine context are valid for the local machine.

If the <cSubject> parameter contains a "server:" prefix, a certificate for server authentication is selected. If the prefix "client:" is used, a client certificate is selected instead. When no prefix is specified in the <cSubject> parameter, the function tries to select both a client and a server certificate and returns success if at least one certificate type is selected.

After a SSL certificate has been selected via CertificateSelect(), the certificate is used by SocketNegotiateSSL(), HttpEndPoint() or HttpClient() for SSL connections of the current thread.

Feedback

If you see anything in the documentation that is not correct, does not match your experience with the particular feature or requires further clarification, please use this form to report a documentation issue.