Blame doc/examples/print-ciphersuites.c
|
Packit Service |
4684c1 |
/* This example code is placed in the public domain. */
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
#include <config.h>
|
|
Packit Service |
4684c1 |
#include <stdio.h>
|
|
Packit Service |
4684c1 |
#include <stdlib.h>
|
|
Packit Service |
4684c1 |
#include <string.h>
|
|
Packit Service |
4684c1 |
#include <gnutls/gnutls.h>
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
static void print_cipher_suite_list(const char *priorities)
|
|
Packit Service |
4684c1 |
{
|
|
Packit Service |
4684c1 |
size_t i;
|
|
Packit Service |
4684c1 |
int ret;
|
|
Packit Service |
4684c1 |
unsigned int idx;
|
|
Packit Service |
4684c1 |
const char *name;
|
|
Packit Service |
4684c1 |
const char *err;
|
|
Packit Service |
4684c1 |
unsigned char id[2];
|
|
Packit Service |
4684c1 |
gnutls_protocol_t version;
|
|
Packit Service |
4684c1 |
gnutls_priority_t pcache;
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
if (priorities != NULL) {
|
|
Packit Service |
4684c1 |
printf("Cipher suites for %s\n", priorities);
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
ret = gnutls_priority_init(&pcache, priorities, &err;;
|
|
Packit Service |
4684c1 |
if (ret < 0) {
|
|
Packit Service |
4684c1 |
fprintf(stderr, "Syntax error at: %s\n", err);
|
|
Packit Service |
4684c1 |
exit(1);
|
|
Packit Service |
4684c1 |
}
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
for (i = 0;; i++) {
|
|
Packit Service |
4684c1 |
ret =
|
|
Packit Service |
4684c1 |
gnutls_priority_get_cipher_suite_index(pcache,
|
|
Packit Service |
4684c1 |
i,
|
|
Packit Service |
4684c1 |
&idx);
|
|
Packit Service |
4684c1 |
if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
|
|
Packit Service |
4684c1 |
break;
|
|
Packit Service |
4684c1 |
if (ret == GNUTLS_E_UNKNOWN_CIPHER_SUITE)
|
|
Packit Service |
4684c1 |
continue;
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
name =
|
|
Packit Service |
4684c1 |
gnutls_cipher_suite_info(idx, id, NULL, NULL,
|
|
Packit Service |
4684c1 |
NULL, &version);
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
if (name != NULL)
|
|
Packit Service |
4684c1 |
printf("%-50s\t0x%02x, 0x%02x\t%s\n",
|
|
Packit Service |
4684c1 |
name, (unsigned char) id[0],
|
|
Packit Service |
4684c1 |
(unsigned char) id[1],
|
|
Packit Service |
4684c1 |
gnutls_protocol_get_name(version));
|
|
Packit Service |
4684c1 |
}
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
return;
|
|
Packit Service |
4684c1 |
}
|
|
Packit Service |
4684c1 |
}
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
int main(int argc, char **argv)
|
|
Packit Service |
4684c1 |
{
|
|
Packit Service |
4684c1 |
if (argc > 1)
|
|
Packit Service |
4684c1 |
print_cipher_suite_list(argv[1]);
|
|
Packit Service |
4684c1 |
return 0;
|
|
Packit Service |
4684c1 |
}
|