1*758e9fbaSOystein Eftevaag /* SPDX-License-Identifier: BSD-2-Clause */ 2*758e9fbaSOystein Eftevaag /******************************************************************************* 3*758e9fbaSOystein Eftevaag * Copyright 2017-2018, Fraunhofer SIT sponsored by Infineon Technologies AG 4*758e9fbaSOystein Eftevaag * All rights reserved. 5*758e9fbaSOystein Eftevaag ******************************************************************************/ 6*758e9fbaSOystein Eftevaag #ifndef ESYS_MU_H 7*758e9fbaSOystein Eftevaag #define ESYS_MU_H 8*758e9fbaSOystein Eftevaag 9*758e9fbaSOystein Eftevaag #include "tss2_mu.h" 10*758e9fbaSOystein Eftevaag 11*758e9fbaSOystein Eftevaag #include "esys_types.h" 12*758e9fbaSOystein Eftevaag 13*758e9fbaSOystein Eftevaag #ifndef FALSE 14*758e9fbaSOystein Eftevaag #define FALSE 0 15*758e9fbaSOystein Eftevaag #endif 16*758e9fbaSOystein Eftevaag #ifndef TRUE 17*758e9fbaSOystein Eftevaag #define TRUE 1 18*758e9fbaSOystein Eftevaag #endif 19*758e9fbaSOystein Eftevaag #define ESYS_MAX_SIZE_METADATA 3072 20*758e9fbaSOystein Eftevaag 21*758e9fbaSOystein Eftevaag #ifdef __cplusplus 22*758e9fbaSOystein Eftevaag extern "C" { 23*758e9fbaSOystein Eftevaag #endif 24*758e9fbaSOystein Eftevaag 25*758e9fbaSOystein Eftevaag TSS2_RC 26*758e9fbaSOystein Eftevaag iesys_MU_IESYSC_PARAM_ENCRYPT_Marshal( 27*758e9fbaSOystein Eftevaag const IESYSC_PARAM_ENCRYPT in, 28*758e9fbaSOystein Eftevaag uint8_t *buffer, 29*758e9fbaSOystein Eftevaag size_t size, 30*758e9fbaSOystein Eftevaag size_t *offset); 31*758e9fbaSOystein Eftevaag 32*758e9fbaSOystein Eftevaag TSS2_RC 33*758e9fbaSOystein Eftevaag iesys_MU_IESYSC_PARAM_ENCRYPT_Unmarshal( 34*758e9fbaSOystein Eftevaag const uint8_t *buffer, 35*758e9fbaSOystein Eftevaag size_t size, 36*758e9fbaSOystein Eftevaag size_t *offset, 37*758e9fbaSOystein Eftevaag IESYSC_PARAM_ENCRYPT *out); 38*758e9fbaSOystein Eftevaag 39*758e9fbaSOystein Eftevaag TSS2_RC 40*758e9fbaSOystein Eftevaag iesys_MU_IESYSC_PARAM_ENCRYPT_check( 41*758e9fbaSOystein Eftevaag const IESYSC_PARAM_ENCRYPT *in); 42*758e9fbaSOystein Eftevaag 43*758e9fbaSOystein Eftevaag TSS2_RC 44*758e9fbaSOystein Eftevaag iesys_MU_IESYSC_PARAM_DECRYPT_Marshal( 45*758e9fbaSOystein Eftevaag const IESYSC_PARAM_DECRYPT in, 46*758e9fbaSOystein Eftevaag uint8_t *buffer, 47*758e9fbaSOystein Eftevaag size_t size, 48*758e9fbaSOystein Eftevaag size_t *offset); 49*758e9fbaSOystein Eftevaag 50*758e9fbaSOystein Eftevaag TSS2_RC 51*758e9fbaSOystein Eftevaag iesys_MU_IESYSC_PARAM_DECRYPT_Unmarshal( 52*758e9fbaSOystein Eftevaag const uint8_t *buffer, 53*758e9fbaSOystein Eftevaag size_t size, 54*758e9fbaSOystein Eftevaag size_t *offset, 55*758e9fbaSOystein Eftevaag IESYSC_PARAM_DECRYPT *out); 56*758e9fbaSOystein Eftevaag 57*758e9fbaSOystein Eftevaag TSS2_RC 58*758e9fbaSOystein Eftevaag iesys_MU_IESYSC_PARAM_DECRYPT_check( 59*758e9fbaSOystein Eftevaag const IESYSC_PARAM_DECRYPT *in); 60*758e9fbaSOystein Eftevaag 61*758e9fbaSOystein Eftevaag TSS2_RC 62*758e9fbaSOystein Eftevaag iesys_MU_IESYSC_TYPE_POLICY_AUTH_Marshal( 63*758e9fbaSOystein Eftevaag const IESYSC_TYPE_POLICY_AUTH in, 64*758e9fbaSOystein Eftevaag uint8_t *buffer, 65*758e9fbaSOystein Eftevaag size_t size, 66*758e9fbaSOystein Eftevaag size_t *offset); 67*758e9fbaSOystein Eftevaag 68*758e9fbaSOystein Eftevaag TSS2_RC 69*758e9fbaSOystein Eftevaag iesys_MU_IESYSC_TYPE_POLICY_AUTH_Unmarshal( 70*758e9fbaSOystein Eftevaag const uint8_t *buffer, 71*758e9fbaSOystein Eftevaag size_t size, 72*758e9fbaSOystein Eftevaag size_t *offset, 73*758e9fbaSOystein Eftevaag IESYSC_TYPE_POLICY_AUTH *out); 74*758e9fbaSOystein Eftevaag 75*758e9fbaSOystein Eftevaag TSS2_RC 76*758e9fbaSOystein Eftevaag iesys_MU_IESYSC_TYPE_POLICY_AUTH_check( 77*758e9fbaSOystein Eftevaag const IESYSC_TYPE_POLICY_AUTH *in); 78*758e9fbaSOystein Eftevaag 79*758e9fbaSOystein Eftevaag TSS2_RC 80*758e9fbaSOystein Eftevaag iesys_MU_IESYS_SESSION_Marshal( 81*758e9fbaSOystein Eftevaag const IESYS_SESSION *in, 82*758e9fbaSOystein Eftevaag uint8_t *buffer, 83*758e9fbaSOystein Eftevaag size_t size, 84*758e9fbaSOystein Eftevaag size_t *offset); 85*758e9fbaSOystein Eftevaag 86*758e9fbaSOystein Eftevaag TSS2_RC 87*758e9fbaSOystein Eftevaag iesys_MU_IESYS_SESSION_Unmarshal(const uint8_t *buffer, 88*758e9fbaSOystein Eftevaag size_t size, 89*758e9fbaSOystein Eftevaag size_t *offset, 90*758e9fbaSOystein Eftevaag IESYS_SESSION *out); 91*758e9fbaSOystein Eftevaag 92*758e9fbaSOystein Eftevaag 93*758e9fbaSOystein Eftevaag TSS2_RC 94*758e9fbaSOystein Eftevaag iesys_MU_IESYSC_RESOURCE_TYPE_Marshal( 95*758e9fbaSOystein Eftevaag const IESYSC_RESOURCE_TYPE in, 96*758e9fbaSOystein Eftevaag uint8_t *buffer, 97*758e9fbaSOystein Eftevaag size_t size, 98*758e9fbaSOystein Eftevaag size_t *offset); 99*758e9fbaSOystein Eftevaag 100*758e9fbaSOystein Eftevaag TSS2_RC 101*758e9fbaSOystein Eftevaag iesys_MU_IESYSC_RESOURCE_TYPE_Unmarshal( 102*758e9fbaSOystein Eftevaag const uint8_t *buffer, 103*758e9fbaSOystein Eftevaag size_t size, 104*758e9fbaSOystein Eftevaag size_t *offset, 105*758e9fbaSOystein Eftevaag IESYSC_RESOURCE_TYPE *out); 106*758e9fbaSOystein Eftevaag 107*758e9fbaSOystein Eftevaag TSS2_RC 108*758e9fbaSOystein Eftevaag iesys_MU_IESYSC_RESOURCE_TYPE_check( 109*758e9fbaSOystein Eftevaag const IESYSC_RESOURCE_TYPE *in); 110*758e9fbaSOystein Eftevaag 111*758e9fbaSOystein Eftevaag TSS2_RC 112*758e9fbaSOystein Eftevaag iesys_MU_IESYS_RSRC_UNION_Marshal( 113*758e9fbaSOystein Eftevaag const IESYS_RSRC_UNION *in, 114*758e9fbaSOystein Eftevaag UINT32 selector, 115*758e9fbaSOystein Eftevaag uint8_t *buffer, 116*758e9fbaSOystein Eftevaag size_t size, 117*758e9fbaSOystein Eftevaag size_t *offset); 118*758e9fbaSOystein Eftevaag 119*758e9fbaSOystein Eftevaag TSS2_RC 120*758e9fbaSOystein Eftevaag iesys_MU_IESYS_RSRC_UNION_Unmarshal( 121*758e9fbaSOystein Eftevaag const uint8_t *buffer, 122*758e9fbaSOystein Eftevaag size_t size, 123*758e9fbaSOystein Eftevaag size_t *offset, 124*758e9fbaSOystein Eftevaag UINT32 selector, 125*758e9fbaSOystein Eftevaag IESYS_RSRC_UNION *out); 126*758e9fbaSOystein Eftevaag 127*758e9fbaSOystein Eftevaag 128*758e9fbaSOystein Eftevaag TSS2_RC 129*758e9fbaSOystein Eftevaag iesys_MU_IESYS_RESOURCE_Marshal( 130*758e9fbaSOystein Eftevaag const IESYS_RESOURCE *in, 131*758e9fbaSOystein Eftevaag uint8_t *buffer, 132*758e9fbaSOystein Eftevaag size_t size, 133*758e9fbaSOystein Eftevaag size_t *offset); 134*758e9fbaSOystein Eftevaag 135*758e9fbaSOystein Eftevaag TSS2_RC 136*758e9fbaSOystein Eftevaag iesys_MU_IESYS_RESOURCE_Unmarshal(const uint8_t *buffer, 137*758e9fbaSOystein Eftevaag size_t size, 138*758e9fbaSOystein Eftevaag size_t *offset, 139*758e9fbaSOystein Eftevaag IESYS_RESOURCE *out); 140*758e9fbaSOystein Eftevaag 141*758e9fbaSOystein Eftevaag 142*758e9fbaSOystein Eftevaag TSS2_RC 143*758e9fbaSOystein Eftevaag iesys_MU_IESYS_METADATA_Marshal( 144*758e9fbaSOystein Eftevaag const IESYS_METADATA *in, 145*758e9fbaSOystein Eftevaag uint8_t *buffer, 146*758e9fbaSOystein Eftevaag size_t size, 147*758e9fbaSOystein Eftevaag size_t *offset); 148*758e9fbaSOystein Eftevaag 149*758e9fbaSOystein Eftevaag TSS2_RC 150*758e9fbaSOystein Eftevaag iesys_MU_IESYS_METADATA_Unmarshal(const uint8_t *buffer, 151*758e9fbaSOystein Eftevaag size_t size, 152*758e9fbaSOystein Eftevaag size_t *offset, 153*758e9fbaSOystein Eftevaag IESYS_METADATA *out); 154*758e9fbaSOystein Eftevaag 155*758e9fbaSOystein Eftevaag 156*758e9fbaSOystein Eftevaag TSS2_RC 157*758e9fbaSOystein Eftevaag iesys_MU_IESYS_CONTEXT_DATA_Marshal( 158*758e9fbaSOystein Eftevaag const IESYS_CONTEXT_DATA *in, 159*758e9fbaSOystein Eftevaag uint8_t *buffer, 160*758e9fbaSOystein Eftevaag size_t size, 161*758e9fbaSOystein Eftevaag size_t *offset); 162*758e9fbaSOystein Eftevaag 163*758e9fbaSOystein Eftevaag TSS2_RC 164*758e9fbaSOystein Eftevaag iesys_MU_IESYS_CONTEXT_DATA_Unmarshal(const uint8_t *buffer, 165*758e9fbaSOystein Eftevaag size_t size, 166*758e9fbaSOystein Eftevaag size_t *offset, 167*758e9fbaSOystein Eftevaag IESYS_CONTEXT_DATA *out); 168*758e9fbaSOystein Eftevaag 169*758e9fbaSOystein Eftevaag 170*758e9fbaSOystein Eftevaag #ifdef __cplusplus 171*758e9fbaSOystein Eftevaag } 172*758e9fbaSOystein Eftevaag #endif 173*758e9fbaSOystein Eftevaag 174*758e9fbaSOystein Eftevaag #endif /* ESYS_MU_H */ 175