#include <time.h>
#include <debug.h>
+#include <credentials/certificates/x509.h>
typedef struct private_tls_server_t private_tls_server_t;
tls_writer_t *authorities;
enumerator_t *enumerator;
certificate_t *cert;
+ x509_t *x509;
identification_t *id;
/* currently only RSA signatures are supported */
CERT_X509, KEY_RSA, NULL, TRUE);
while (enumerator->enumerate(enumerator, &cert))
{
- id = cert->get_subject(cert);
- authorities->write_data16(authorities, id->get_encoding(id));
+ x509 = (x509_t*)cert;
+ if (x509->get_flags(x509) & X509_CA)
+ {
+ id = cert->get_subject(cert);
+ authorities->write_data16(authorities, id->get_encoding(id));
+ }
}
enumerator->destroy(enumerator);
writer->write_data16(writer, authorities->get_buf(authorities));