iostream-openssl-common.c revision cca4ba2a504d70a9fe9fee37f8433997359de52c
#include "lib.h"
#include "iostream-openssl.h"
enum {
DOVECOT_SSL_PROTO_SSLv2 = 0x01,
DOVECOT_SSL_PROTO_SSLv3 = 0x02,
DOVECOT_SSL_PROTO_TLSv1 = 0x04,
DOVECOT_SSL_PROTO_ALL = 0x07
};
int openssl_get_protocol_options(const char *protocols)
{
const char *const *tmp;
bool neg;
if (*name != '!')
else {
name++;
}
else {
i_fatal("Invalid ssl_protocols setting: "
"Unknown protocol '%s'", name);
}
if (neg)
else
include |= proto;
}
if (include != 0) {
/* exclude everything, except those that are included
(and let excludes still override those) */
exclude |= DOVECOT_SSL_PROTO_ALL & ~include;
}
return op;
}
{
const char *cstr;
unsigned int len;
/* NULs in the name - could be some MITM attack.
never allow. */
return "";
}
return cstr;
}
{
return "";
}
{
int cn_idx;
return "";
if (cn_idx == -1)
return "";
return asn1_string_to_c(str);
}
{
const GENERAL_NAME *gn;
const char *dnsname;
unsigned int i, count;
int ret;
/* verify against SubjectAltNames */
for (i = 0; i < count; i++) {
break;
}
}
/* verify against CommonName only when there wasn't any DNS
SubjectAltNames */
if (dns_names)
else
return ret;
}