2016-07-29 4 views

Antwort

0

I STACK_OF(X509_NAME) passieren müssen passieren zu ENGINE_load_ssl_client_cert ...

Sie haben uns nicht viel gegeben, um damit zu arbeiten. Es ist nicht klar, was dein Problem ist, also ist es schwer zu sagen, was du anders machen solltest.

starten OpenSSL Code in <openssl src dir>/ssl/s3_clnt.c Tracing:

int ssl_do_client_cert_cb(SSL *s, X509 **px509, EVP_PKEY **ppkey) 
{ 
    int i = 0; 
#ifndef OPENSSL_NO_ENGINE 
    if (s->ctx->client_cert_engine) { 
     i = ENGINE_load_ssl_client_cert(s->ctx->client_cert_engine, s, 
             SSL_get_client_CA_list(s), 
             px509, ppkey, NULL, NULL, NULL); 
     if (i != 0) 
      return i; 
    } 
#endif 
    if (s->ctx->client_cert_cb) 
     i = s->ctx->client_cert_cb(s, px509, ppkey); 
    return i; 
} 

Wie Sie sehen können, dauert es einen Stapel von X509, nicht X509_NAME. Ich habe nie viel Zeit mit dem ENGINE-Code verbracht, also bin ich mir nicht sicher, was als nächstes passiert.

Sie könnten auch interessiert sein an STACK API auf dem OpenSSL-Wiki.

Endlich, es gibt noch einige andere Hits, an denen Sie interessiert sein könnten. Ich war irgendwie überrascht zu sehen, dass keine Treffer in einer der Apps waren.

$ grep -IR ENGINE_load_ssl_client_cert * 
crypto/engine/eng_err.c:  "ENGINE_load_ssl_client_cert"}, 
crypto/engine/eng_pkey.c:int ENGINE_load_ssl_client_cert(ENGINE *e, SSL *s, 
crypto/engine/engine.h:int ENGINE_load_ssl_client_cert(ENGINE *e, SSL *s, 
ssl/s3_clnt.c:  i = ENGINE_load_ssl_client_cert(s->ctx->client_cert_engine, s, 
util/libeay.num:ENGINE_load_ssl_client_cert    4046 EXIST::FUNCTION:ENGINE 
Verwandte Themen