Skip to content

Commit

Permalink
p11_child: split common and NSS code into separate files
Browse files Browse the repository at this point in the history
To avoid code duplication when adding support for OpenSSL the common
code is move into a separate file.

Related to https://pagure.io/SSSD/sssd/issue/3489

Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
  • Loading branch information
sumit-bose authored and fidencio committed Jun 5, 2018
1 parent 165f58a commit b5136cd
Show file tree
Hide file tree
Showing 4 changed files with 526 additions and 392 deletions.
2 changes: 2 additions & 0 deletions Makefile.am
Expand Up @@ -843,6 +843,7 @@ dist_noinst_HEADERS = \
src/shared/io.h \
src/shared/murmurhash3.h \
src/shared/safealign.h \
src/p11_child/p11_child.h \
$(NULL)


Expand Down Expand Up @@ -4268,6 +4269,7 @@ proxy_child_LDADD = \
$(SSSD_INTERNAL_LTLIBS)

p11_child_SOURCES = \
src/p11_child/p11_child_common.c \
src/p11_child/p11_child_nss.c \
src/util/atomic_io.c \
src/util/util.c \
Expand Down
55 changes: 55 additions & 0 deletions src/p11_child/p11_child.h
@@ -0,0 +1,55 @@
/*
SSSD
Helper child to commmunicate with SmartCard
Authors:
Sumit Bose <sbose@redhat.com>
Copyright (C) 2018 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 <http://www.gnu.org/licenses/>.
*/

#ifndef __P11_CHILD_H__
#define __P11_CHILD_H__

struct p11_ctx;

enum op_mode {
OP_NONE,
OP_AUTH,
OP_PREAUTH,
OP_VERIFIY
};

enum pin_mode {
PIN_NONE,
PIN_STDIN,
PIN_KEYPAD
};

errno_t init_p11_ctx(TALLOC_CTX *mem_ctx, const char *nss_db,
struct p11_ctx **p11_ctx);

errno_t init_verification(struct p11_ctx *p11_ctx,
struct cert_verify_opts *cert_verify_opts);

bool do_verification_b64(struct p11_ctx *p11_ctx, const char *cert_b64);

errno_t do_card(TALLOC_CTX *mem_ctx, struct p11_ctx *p11_ctx,
enum op_mode mode, const char *pin,
const char *module_name_in, const char *token_name_in,
const char *key_id_in, char **_multi);
#endif /* __P11_CHILD_H__ */

0 comments on commit b5136cd

Please sign in to comment.