blob: c768a71a97a62ad7f307934a8d260a9090e7c253 [file] [log] [blame]
Minos Galanakis2c824b42025-03-20 09:28:45 +00001/* psasim test client */
2
3/*
4 * Copyright The Mbed TLS Contributors
5 * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
6 */
7
8#include <psa/client.h>
9#include "psa_manifest/sid.h"
10#include <stdio.h>
11#include <unistd.h>
12
13int main()
14{
15
16 const char *text = "FOOBARCOOL!!";
17
18 char output[100] = { 0 };
19 printf("My PID is %d\n", getpid());
20
21 printf("The version of the service is %u\n", psa_version(PSA_SID_SHA256_SID));
22 psa_handle_t h = psa_connect(PSA_SID_SHA256_SID, 1);
23
24 if (h < 0) {
25 printf("Couldn't connect %d\n", h);
26 return 1;
27 } else {
28 int type = 2;
29 puts("Calling!");
30 puts("Trying without invec");
31 printf("Answer to my call was %d (no invec)\n", psa_call(h, type, NULL, 0, NULL, 0));
32 psa_invec invecs[1];
33 psa_outvec outvecs[1];
34 invecs[0].base = text;
35 invecs[0].len = 24;
36 outvecs[0].base = output;
37 outvecs[0].len = 99;
38
39 printf("My iovec size should be %lu\n", invecs[0].len);
40 printf("Answer to my call was %d (with invec)\n", psa_call(h, type, invecs, 1, outvecs, 1));
41 printf("Here's the payload I recieved: %s\n", output);
42 printf("Apparently the server wrote %lu bytes in outvec %d\n", outvecs[0].len, 0);
43 puts("Closing handle");
44 psa_close(h);
45 }
46
47 return 0;
48}