mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-10 21:23:58 +01:00
Example code to get nickname from cert
svn:r628
This commit is contained in:
parent
0ec2a34a1d
commit
0142a568d3
@ -180,6 +180,7 @@ int connection_tls_continue_handshake(connection_t *conn) {
|
||||
static int connection_tls_finish_handshake(connection_t *conn) {
|
||||
crypto_pk_env_t *pk;
|
||||
routerinfo_t *router;
|
||||
char nickname[255];
|
||||
|
||||
conn->state = OR_CONN_STATE_OPEN;
|
||||
directory_set_dirty();
|
||||
@ -187,6 +188,12 @@ static int connection_tls_finish_handshake(connection_t *conn) {
|
||||
log_fn(LOG_DEBUG,"tls handshake done. verifying.");
|
||||
if(options.OnionRouter) { /* I'm an OR */
|
||||
if(tor_tls_peer_has_cert(conn->tls)) { /* it's another OR */
|
||||
if (tor_tls_get_peer_cert_nickname(conn->tls, nickname, 256)) {
|
||||
log_fn(LOG_WARN,"Other side (%s:%d) has a cert without a valid nickname. Closing.",
|
||||
conn->address, conn->port);
|
||||
return -1;
|
||||
}
|
||||
log_fn(LOG_DEBUG,"Other side claims to be \"%s\"",nickname);
|
||||
pk = tor_tls_verify(conn->tls);
|
||||
if(!pk) {
|
||||
log_fn(LOG_WARN,"Other side (%s:%d) has a cert but it's invalid. Closing.",
|
||||
|
Loading…
Reference in New Issue
Block a user