Sample code for 30+ languages & platforms
Go

Enumerate Server-Advertised Acceptable Client CAs

See more Socket/SSL/TLS Examples

Demonstrates Socket.GetSslAcceptableClientCaDn, which returns a certificate-authority distinguished name advertised by a TLS server when it requests a client certificate.

Background. Valid indexes range from 0 through NumSslAcceptableClientCAs minus one. A client can use these names to select an appropriate client certificate.

Chilkat Go Downloads

Go
    success := false

    socket := chilkat.NewSocket()

    //  Connect to the server using TLS.
    bTls := true
    maxWaitMs := 5000
    success = socket.Connect("example.com",5000,bTls,maxWaitMs)
    if success == false {
        fmt.Println(socket.LastErrorText())
        socket.DisposeSocket()
        return
    }

    //  After connecting to a server that requests a client certificate, enumerate the certificate-
    //  authority distinguished names the server advertised as acceptable.
    numCAs := socket.NumSslAcceptableClientCAs()
    var i int
    for i = 0; i <= numCAs - 1; i++ {
        caDn := socket.GetSslAcceptableClientCaDn(i)
        if socket.LastMethodSuccess() == false {
            fmt.Println(socket.LastErrorText())
            socket.DisposeSocket()
            return
        }

        fmt.Println(*caDn)
    }


    socket.DisposeSocket()