Annotation of embedaddon/strongswan/src/libtpmtss/tpm_tss.c, revision 1.1.1.1

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: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>