SSL_get_verify_result()
in realtà non esegue alcuna verifica; restituisce (parte di) il risultato della verifica cert (se presente) eseguita durante l'ultimo handshake completo (se presente) sull'oggetto SSL
specificato. Supponendo che tu voglia veramente sapere cosa ha fatto la verifica che , dipende molto dal codice dell'applicazione.
Se il codice imposta una richiamata con SSL_CTX_set_cert_verify_callback
prima di creare l'oggetto SSL
, la verifica durante l'handshake consiste interamente nel chiamare quel callback, indipendentemente da ciò che fa il callback. Se questa richiamata non è impostata, come dice la pagina man, viene utilizzata una "funzione di verifica integrata", che in realtà è X509_verify_cert()
(che ha la sua pagina man non molto utile) e che che fa approssimativamente ciò che è descritto nella pagina man di verifica (1) a cui fa riferimento John, oltre ad alcune cose che sono state aggiunte nel tempo ma che non sono sempre state inserite nel doc (ad es. NameConstraints e DANE, per non parlare di alcuni controllo di revoca), ma questo controllo può essere modificato e "ottimizzato" da numerose opzioni e parametri, non tutti utilizzabili per verificare (1), e la maggior parte impostabile a entrambi il livello SSL_CTX
o SSL
, compreso un opzionale 'verify_callback' che è separato e molto diverso dal 'cert_verify_callback' citato sopra. Vedi le pagine man per SSL_[CTX_]set_verify[_depth]
, SSL_[CTX_]load_verify_locations
et rel,
le funzioni X509_STORE_*
e X509_STORE_CTX_*
includendo X509_STORE_CTX_set0_param
e relative X509_VERIFY_PARAM*
funzioni in particolare X509_VERIFY_PARAM_set_flags
.
E se questo non è abbastanza preciso, e potrebbe anche non esserlo, controlla la fonte - per la versione che sei (o sarà) in esecuzione, poiché ci sono stati alcuni cambiamenti in questa (abbastanza complessa) area nel tempo. Spiegare esattamente tutto ciò che fa, anche in una particolare versione, avrebbe (quasi sicuramente) superato il limite di risposta dello Stack e mi avrebbe richiesto circa una settimana, oltre a diventare presto obsoleto, quindi non lo farò. Se hai uno o pochissimi problemi specifici, ciò potrebbe essere risolvibile in un lasso di tempo pratico.