Return to tpm_tss.c CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / strongswan / src / libtpmtss |
1.1 ! misho 1: /* ! 2: * Copyright (C) 2016 Andreas Steffen ! 3: * HSR Hochschule fuer Technik Rapperswil ! 4: * ! 5: * This program is free software; you can redistribute it and/or modify it ! 6: * under the terms of the GNU General Public License as published by the ! 7: * Free Software Foundation; either version 2 of the License, or (at your ! 8: * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>. ! 9: * ! 10: * This program is distributed in the hope that it will be useful, but ! 11: * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ! 12: * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ! 13: * for more details. ! 14: */ ! 15: ! 16: #include "tpm_tss.h" ! 17: #include "tpm_tss_tss2.h" ! 18: #include "tpm_tss_trousers.h" ! 19: ! 20: /** ! 21: * Register plugins if built statically ! 22: */ ! 23: #ifdef STATIC_PLUGIN_CONSTRUCTORS ! 24: #include "plugin_constructors.c" ! 25: #endif ! 26: ! 27: /** ! 28: * Described in header. ! 29: */ ! 30: bool libtpmtss_init(void) ! 31: { ! 32: return tpm_tss_tss2_init(); ! 33: } ! 34: ! 35: /** ! 36: * Described in header. ! 37: */ ! 38: void libtpmtss_deinit(void) ! 39: { ! 40: tpm_tss_tss2_deinit(); ! 41: } ! 42: ! 43: typedef tpm_tss_t*(*tpm_tss_create)(void); ! 44: ! 45: /** ! 46: * See header. ! 47: */ ! 48: tpm_tss_t *tpm_tss_probe(tpm_version_t version) ! 49: { ! 50: tpm_tss_create stacks[] = { ! 51: tpm_tss_tss2_create, ! 52: tpm_tss_trousers_create, ! 53: }; ! 54: tpm_tss_t *tpm; ! 55: int i; ! 56: ! 57: for (i = 0; i < countof(stacks); i++) ! 58: { ! 59: tpm = stacks[i](); ! 60: if (tpm) ! 61: { ! 62: if (version == TPM_VERSION_ANY || version == tpm->get_version(tpm)) ! 63: { ! 64: return tpm; ! 65: } ! 66: } ! 67: } ! 68: return NULL; ! 69: }