xref: /qemu/tests/unit/crypto-tls-psk-helpers.c (revision 2116650254117a873ab316038803cef657ae2820)
1  /*
2   * Copyright (C) 2015-2018 Red Hat, Inc.
3   *
4   * This library is free software; you can redistribute it and/or
5   * modify it under the terms of the GNU Lesser General Public
6   * License as published by the Free Software Foundation; either
7   * version 2.1 of the License, or (at your option) any later version.
8   *
9   * This library is distributed in the hope that it will be useful,
10   * but WITHOUT ANY WARRANTY; without even the implied warranty of
11   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12   * Lesser General Public License for more details.
13   *
14   * You should have received a copy of the GNU Lesser General Public
15   * License along with this library.  If not, see
16   * <http://www.gnu.org/licenses/>.
17   *
18   * Author: Richard W.M. Jones <rjones@redhat.com>
19   */
20  
21  #include "qemu/osdep.h"
22  
23  #include "crypto-tls-x509-helpers.h"
24  #include "crypto-tls-psk-helpers.h"
25  #include "qemu/sockets.h"
26  
27  static void
28  test_tls_psk_init_common(const char *pskfile, const char *user, const char *key)
29  {
30      FILE *fp;
31  
32      fp = fopen(pskfile, "w");
33      if (fp == NULL) {
34          g_critical("Failed to create pskfile %s: %s", pskfile, strerror(errno));
35          abort();
36      }
37      fprintf(fp, "%s:%s\n", user, key);
38      fclose(fp);
39  }
40  
41  void test_tls_psk_init(const char *pskfile)
42  {
43      /* Don't hard code a key like this in real applications!  Use psktool. */
44      test_tls_psk_init_common(pskfile, "qemu", "009d5638c40fde0c");
45  }
46  
47  void test_tls_psk_init_alt(const char *pskfile)
48  {
49      /* Don't hard code a key like this in real applications!  Use psktool. */
50      test_tls_psk_init_common(pskfile, "qemu", "10ffa6a2c42f0388");
51  }
52  
53  void test_tls_psk_cleanup(const char *pskfile)
54  {
55      unlink(pskfile);
56  }
57