/* SSSD Library for rule based certificate to user mapping Authors: Sumit Bose Copyright (C) 2017 Red Hat This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef _SSS_CERTMAP_H_ #define _SSS_CERTMAP_H_ #include #include #include #include #include /** * Opaque type for the idmap context */ struct sss_certmap_ctx; #define SSS_CERTMAP_MIN_PRIO UINT32_MAX typedef void (sss_certmap_ext_debug)(void *private, const char *file, long line, const char *function, const char *format, ...); /** * @brief */ int sss_certmap_init(TALLOC_CTX *mem_ctx, sss_certmap_ext_debug *debug, void *debug_priv, struct sss_certmap_ctx **ctx); void sss_certmap_free_ctx(struct sss_certmap_ctx *ctx); const char *sss_certmap_err_msg(struct sss_certmap_ctx *ctx); int sss_certmap_add_rule(struct sss_certmap_ctx *ctx, unsigned int priority, const char *match_rule, const char *map_rule, const char **domains); int sss_certmap_match_cert(struct sss_certmap_ctx *ctx, uint8_t *der_cert, size_t der_size); int sss_certmap_get_search_filter(struct sss_certmap_ctx *ctx, uint8_t *der_cert, size_t der_size, char **filter, char ***domains); void sss_certmap_free_filter_and_domains(char *filter, char **domains); #endif /* _SSS_CERTMAP_H_ */