diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2012-10-27 17:46:53 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2012-10-27 17:46:53 +0900 |
| commit | d6f73292fa5d5040981e6ecf354a7f638b81fc47 (patch) | |
| tree | db5d0535c5fcd200439fb19abc31e811e2b7a222 /src | |
| parent | d689ad3bd032748883ba80592d360057274c9201 (diff) | |
gnutls: Added more status checking when verifying peer
Diffstat (limited to 'src')
| -rw-r--r-- | src/SocketCore.cc | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/SocketCore.cc b/src/SocketCore.cc index 8c8bba60..2ee26e46 100644 --- a/src/SocketCore.cc +++ b/src/SocketCore.cc @@ -1060,6 +1060,17 @@ bool SocketCore::tlsHandshake(TLSContext* tlsctx, const std::string& hostname) if(status & GNUTLS_CERT_SIGNER_NOT_FOUND) { errors += " `issuer is not known'"; } + // TODO should check GNUTLS_CERT_SIGNER_NOT_CA ? + if(status & GNUTLS_CERT_INSECURE_ALGORITHM) { + errors += " `insecure algorithm'"; + } + if(status & GNUTLS_CERT_NOT_ACTIVATED) { + errors += " `not activated yet'"; + } + if(status & GNUTLS_CERT_EXPIRED) { + errors += " `expired'"; + } + // TODO Add GNUTLS_CERT_SIGNATURE_FAILURE here if(!errors.empty()) { throw DL_ABORT_EX(fmt(MSG_CERT_VERIFICATION_FAILED, errors.c_str())); } |
