|  | /* | 
|  | * | 
|  | *  seeld - Secure Element Manager | 
|  | * | 
|  | *  Copyright (C) 2013  Intel Corporation. All rights reserved. | 
|  | * | 
|  | *  This program is free software; you can redistribute it and/or modify | 
|  | *  it under the terms of the GNU General Public License version 2 as | 
|  | *  published by the Free Software Foundation. | 
|  | * | 
|  | *  This program is distributed in the hope that it will be useful, | 
|  | *  but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|  | *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
|  | *  GNU General Public License for more details. | 
|  | * | 
|  | */ | 
|  |  | 
|  | #include <stdint.h> | 
|  | #include <stdbool.h> | 
|  | #include <sys/socket.h> | 
|  |  | 
|  | #include <linux/socket.h> | 
|  |  | 
|  | #include <glib.h> | 
|  |  | 
|  | #include "../src/near.h" | 
|  |  | 
|  | struct seel_se; | 
|  | struct seel_channel; | 
|  | struct seel_ace; | 
|  | struct seel_apdu *apdu; | 
|  |  | 
|  | int __seel_manager_init(DBusConnection *conn); | 
|  | void __seel_manager_cleanup(void); | 
|  |  | 
|  | #include "driver.h" | 
|  |  | 
|  | struct seel_ctrl_driver *__seel_driver_ctrl_find(enum seel_controller_type type); | 
|  | struct seel_io_driver *__seel_driver_io_find(enum seel_se_type type); | 
|  | struct seel_cert_driver *__seel_driver_cert_get(void); | 
|  |  | 
|  | struct seel_se *__seel_se_get(uint32_t se_idx, uint8_t ctrl_idx, | 
|  | uint8_t ctrl_type); | 
|  | const char *__seel_se_get_path(struct seel_se *se); | 
|  | const GSList *__seel_se_get_hashes(struct seel_se *se, const char *owner); | 
|  | int __seel_se_queue_io(struct seel_se *se, struct seel_apdu *apdu, | 
|  | transceive_cb_t cb, void *context); | 
|  | void __seel_se_list(DBusMessageIter *iter, void *user_data); | 
|  | char *__seel_se_add(uint32_t se_idx, uint8_t ctrl_idx, | 
|  | uint8_t se_type, uint8_t ctrl_type); | 
|  | int __seel_se_remove(uint32_t se_idx, uint8_t ctrl_idx, | 
|  | uint8_t ctrl_type); | 
|  | int __seel_se_init(DBusConnection *conn); | 
|  | void __seel_se_cleanup(void); | 
|  |  | 
|  | struct seel_apdu *__seel_apdu_build(uint8_t *apdu, size_t length, uint8_t channel); | 
|  | void __seel_apdu_dump(uint8_t *apdu, size_t length); | 
|  | void __seel_apdu_free(struct seel_apdu *apdu); | 
|  | size_t __seel_apdu_length(struct seel_apdu *apdu); | 
|  | uint8_t *__seel_apdu_data(struct seel_apdu *apdu); | 
|  | struct seel_apdu *__seel_apdu_open_logical_channel(void); | 
|  | struct seel_apdu *__seel_apdu_close_logical_channel(uint8_t channel); | 
|  | struct seel_apdu *__seel_apdu_select_aid(uint8_t channel, uint8_t *aid, size_t aid_length); | 
|  | struct seel_apdu *__seel_apdu_get_all_gp_data(void); | 
|  | struct seel_apdu *__seel_apdu_get_next_gp_data(size_t length); | 
|  | struct seel_apdu *__seel_apdu_get_refresh_gp_data(void); | 
|  | int __seel_apdu_resp_status(uint8_t *apdu, size_t apdu_length); | 
|  |  | 
|  | struct seel_channel *__seel_channel_add(struct seel_se *se, | 
|  | uint8_t channel, | 
|  | unsigned char *aid, size_t aid_len, | 
|  | bool basic); | 
|  | void __seel_channel_remove(struct seel_channel *channel); | 
|  | char *__seel_channel_get_path(struct seel_channel *channel); | 
|  | uint8_t __seel_channel_get_channel(struct seel_channel *channel); | 
|  | uint8_t *__seel_channel_get_aid(struct seel_channel *channel, size_t *aid_len); | 
|  | struct seel_se *__seel_channel_get_se(struct seel_channel *channel); | 
|  | bool __seel_channel_is_basic(struct seel_channel *channel); | 
|  |  | 
|  | gboolean __seel_ace_add(gpointer user_data); | 
|  | int __seel_ace_remove(struct seel_se *se); | 
|  | bool __seel_ace_apdu_allowed(struct seel_channel *channel, uint8_t *app_hash, | 
|  | uint8_t *apdu, size_t apdu_len); | 
|  | int __seel_ace_init(void); | 
|  | void __seel_ace_cleanup(void); |