# plugins/preauth/wpse
# plugins/preauth/cksum_body
# plugins/authdata/greet
-SUBDIRS=util include plugins/prng plugin_core lib \
- plugins/prng/plugin_yarrow plugin_core/impl \
+SUBDIRS=util include plugin_core plugins/prng lib \
@ldap_plugin_dir@ \
plugins/kdb/db2 \
plugins/preauth/pkinit \
BUILDTOP=$(REL)$(C)
LOCALINCLUDES = -I$(srcdir)
+# plugins/prng/plugin_yarrow
+
SRCS =
HDRS =
GSS_DEPLIB = $(TOPLIBD)/libgssapi_krb5$(DEPLIBEXT)
KRB5_DEPLIB = $(TOPLIBD)/libkrb5$(DEPLIBEXT)
CRYPTO_DEPLIB = $(TOPLIBD)/libk5crypto$(DEPLIBEXT)
-PLUGIN_CORE_DEPLIB = $(TOPLIBD)/../plugin_core/plugin_core$(DEPLIBEXT)
-PLUGIN_PRNG_DEPLIB = $(TOPLIBD)/../plugins/prng/plugin_prng$(DEPLIBEXT)
+PLUGIN_CORE_DEPLIB = $(TOPLIBD)/../plugin_core/libplugin_core$(DEPLIBEXT)
+PLUGIN_PRNG_DEPLIB = $(TOPLIBD)/../plugins/prng/libplugin_prng.a
COM_ERR_DEPLIB = $(COM_ERR_DEPLIB-@COM_ERR_VERSION@)
COM_ERR_DEPLIB-sys = # empty
COM_ERR_DEPLIB-k5 = $(TOPLIBD)/libcom_err$(DEPLIBEXT)
mydir=lib
-SUBDIRS=crypto krb5 gssapi rpc kdb kadm5 apputils
+SUBDIRS=crypto ../plugins/prng/plugin_yarrow ../plugin_core/impl krb5 gssapi rpc kdb kadm5 apputils
BUILDTOP=$(REL)..
all-unix::
DEFS=
PLUGINS_LIBS = \
- ../../../plugin_core/impl/plugin_default_manager.so \
- ../../../plugin_core/impl/plugin_default_factory.so \
- ../../../plugins/prng/plugin_yarrow/plugin_prng_impl.so \
- ../../../plugins/prng/plugin_yarrow/yarrow.so \
- ../../../plugins/prng/plugin_yarrow/ycipher.so
+ $(srcdir)/../../libplugin_impl.a $(srcdir)/../../libplugin_yarrow.a
EXTRADEPSRCS=\
$(srcdir)/t_nfold.c \
# checksums that interoperate.
# check-unix:: t_nfold t_encrypt t_prf t_prng t_hmac \
#
-check-unix:: t_prng t_nfold t_encrypt t_hmac t_prf\
+check-unix:: t_encrypt t_prng t_nfold t_encrypt t_hmac t_prf\
t_cksum4 t_cksum5 \
aes-test \
t_mddriver4 t_mddriver \
t_crc t_cts t_short
+ $(RUN_SETUP) $(VALGRIND) ./t_encrypt
$(RUN_SETUP) $(VALGRIND) ./t_prng <$(srcdir)/t_prng.seed >t_prng.output && \
diff t_prng.output $(srcdir)/t_prng.expected
$(RUN_SETUP) $(VALGRIND) ./t_nfold
- $(RUN_SETUP) $(VALGRIND) ./t_encrypt
$(RUN_SETUP) $(VALGRIND) ./t_hmac
$(RUN_SETUP) $(VALGRIND) ./t_prf <$(srcdir)/t_prf.in >t_prf.output
diff t_prf.output $(srcdir)/t_prf.expected
krb5_data input, output;
unsigned int source_id, seed_length;
unsigned int i;
+//#if 0
plugin_manager* default_manager;
const char conf_path[] = "plugin_conf.yml";
plugin_manager_configure(conf_path);
plugin_manager_start();
-
+//#endif
while (1) {
/* Read source*/
if (scanf ("%u", &source_id ) == EOF )
mydir=lib/krb5
BUILDTOP=$(REL)..$(S)..
-LOCALINCLUDES = -I$(srcdir)/ccache -I$(srcdir)/keytab -I$(srcdir)/rcache -I$(srcdir)/os -I$(srcdir)/unicode
+LOCALINCLUDES = -I$(srcdir)/ccache -I$(srcdir)/keytab -I$(srcdir)/rcache -I$(srcdir)/os -I$(srcdir)/unicode \
+ -I$(srcdir)/../../plugin_core/ -I$(srcdir)/../../plugins/prng/ -I$(srcdir)/../../plugin_core/impl
+
SUBDIRS= error_tables asn.1 ccache keytab krb os rcache unicode
DEFS=
+PLUGINS_LIBS = \
+ ../../plugin_core/impl/libplugin_impl.a $(PLUGIN_CORE_DEPLIB) \
+ ../../plugins/prng/plugin_yarrow/libplugin_yarrow.a
+
+
##DOSBUILDTOP = ..\..
##DOSLIBNAME=$(OUTPRE)krb5.lib
##DOSOBJFILEDEP=$(OUTPRE)asn1.lst $(OUTPRE)ccache.lst $(OUTPRE)err_tbls.lst $(OUTPRE)keytab.lst $(OUTPRE)krb.lst $(OUTPRE)os.lst $(OUTPRE)posix.lst $(OUTPRE)rcache.lst $(OUTPRE)krb5.lst $(OUTPRE)unicode.lst
RELDIR=krb5
SHLIB_EXPDEPS = \
$(TOPLIBD)/libk5crypto$(SHLIBEXT) \
- $(COM_ERR_DEPLIB) $(SUPPORT_DEPLIB)
-SHLIB_EXPLIBS=-lk5crypto -lcom_err $(SUPPORT_LIB) @GEN_LIB@ $(LIBS)
+ $(COM_ERR_DEPLIB) $(SUPPORT_DEPLIB)
+SHLIB_EXPLIBS=-lk5crypto -lcom_err $(SUPPORT_LIB) @GEN_LIB@ $(LIBS) $(PLUGINS_LIBS)
SHLIB_DIRS=-L$(TOPLIBD)
SHLIB_RDIRS=$(KRB5_LIBDIR)
all-windows::
-clean-unix:: clean-liblinks clean-libs clean-libobjs
+clean-unix:: clean-liblinks clean-libs clean-libobjs
+
+
clean-windows::
$(RM) $(OUTPRE)krb5.lib krb5.bak
#include "kt-int.h"
#include "rc-int.h"
#include "os-proto.h"
+#include <plugin_default_manager.h>
+#include <plugin_prng.h>
+
/*
* Initialize the Kerberos v5 library.
int krb5int_lib_init(void)
{
int err;
+ plugin_manager* default_manager;
+ const char conf_path[] = "/tmp/plugin_conf.yml";
krb5int_set_error_info_callout_fn (error_message);
add_error_table(&et_kdb5_error_table);
add_error_table(&et_asn1_error_table);
add_error_table(&et_k524_error_table);
-
err = krb5int_rc_finish_init();
if (err)
return err;
err = krb5int_cc_initialize();
if (err)
return err;
+
+ /* Plugin initialization */
+ default_manager = plugin_default_manager_get_instance();
+ set_plugin_manager_instance(default_manager);
+ plugin_manager_configure(conf_path);
+ plugin_manager_start();
+
err = k5_mutex_finish_init(&krb5int_us_time_mutex);
if (err)
return err;
mydir=plugin_core
BUILDTOP=$(REL)..
+RELDIR=../plugin_core
PROG_LIBPATH=-L$(TOPLIBD)
PROG_RPATH=$(KRB5_LIBDIR)
DEFS=
LOCALINCLUDES = -I$(srcdir)/include/krb5 -I$(srcdir)/. -I$(srcdir)/../plugins/prng
-LIBBASE=plugin_core
+LIBBASE= plugin_core
LIBMAJOR=0
LIBMINOR=0
SO_EXT=.so
SHLIB_DIRS=-L$(TOPLIBD)
SHLIB_RDIRS=$(KRB5_LIBDIR)
-STOBJLISTS=OBJS.ST ../plugins/prng/OBJS.SH
+STOBJLISTS=OBJS.ST
SHLIB_EXPLIBS= $(LIBS_UTILS)
SRCS= plugin_manager.c plugin_factory.c yaml_parser.c
-# all-unix:: all-libobjs
all-unix:: all-liblinks
install-unix:: install-libs
-clean-unix:: clean-libs clean-libobjs
+clean-unix:: clean-libs clean-libobjs clean-liblinks
clean::
$(RM) lib$(LIBBASE)$(SO_EXT)
-@libnover_frag@
+@lib_frag@
@libobj_frag@
mydir=impl
BUILDTOP=$(REL)../..
+RELDIR=../plugin_core/impl
PROG_LIBPATH=-L$(TOPLIBD)
PROG_RPATH=$(KRB5_LIBDIR)
DEFS=
-I$(srcdir)/../../plugins/prng/plugin_yarrow -I$(srcdir)/../../plugins/prng \
-I$(srcdir)/..
-
-STLIBOBJS= plugin_default_factory.o plugin_default_manager.o
+LIBBASE=plugin_impl
-OBJS=\
- $(OUTPRE)plugin_default_manager.$(OBJEXT) \
- $(OUTPRE)plugin_default_factory.$(OBJEXT)
+STLIBOBJS= plugin_default_factory.o plugin_default_manager.o
SRCS= plugin_default_factory.c plugin_default_manager.c
-all-unix:: all-libobjs
+STOBJLISTS=OBJS.ST
-includes:: depend
+LIBS_UTILS = ../plugin_core$(SO_EXT) \
+ ../../plugins/prng/plugin_yarrow/plugin_prng_impl$(SO_EXT) \
+ ../../plugins/prng/plugin_yarrow/ycipher$(SO_EXT) \
+ ../../plugins/prng/plugin_yarrow/yarrow$(SO_EXT)
-depend:: $(SRCS)
+SHLIB_EXPLIBS= $(LIBS_UTILS) $(CRYPTO_DEPLIB) $(SUPPORT_DEPLIB)
-clean-unix:: clean-libobjs
+all-unix:: all-liblinks
+clean-unix:: clean-liblinks clean-libs clean-libobjs
+install-unix:: install-libs
-@libobj_frag@
+@libpriv_frag@
+@lib_frag@
+@libobj_frag@
static plugin_factory* _default_factory_instance = NULL;
-static plugin_descr _table[] = {
+static plugin_descr plugin_default_factory_table[] = {
{"plugin_yarrow_prng", plugin_yarrow_prng_create},
//{"plugin_simple_prng", plugin_simple_prng_create},
{"plugin_ldap_audit", NULL},
{NULL,NULL}
};
-
/* Factory API implementation */
static void
_get_factory_content (const char* container[]) {
plugin_descr *ptr = NULL;
int i = 0;
- for( ptr = _table; ptr->plugin_name != NULL; ptr++,i++) {
+ for( ptr = plugin_default_factory_table; ptr->plugin_name != NULL; ptr++,i++) {
container[i] = ptr->plugin_name;
}
}
plugin_descr *ptr = NULL;
handle.api = NULL;
- for( ptr = _table; ptr->plugin_name != NULL; ptr++) {
+ for( ptr = plugin_default_factory_table; ptr->plugin_name != NULL; ptr++) {
if (strcmp(ptr->plugin_name, plugin_name) == 0) {
handle = ptr->plugin_creator();
break;
*
*/
-#ifndef SIMPLE_PLUGIN_FACTORY_H_
-#define SIMPLE_PLUGIN_FACTORY_H_
+#ifndef PLUGIN_DEFAULT_FACTORY_H_
+#define PLUGIN_DEFAULT_FACTORY_H_
#include <plugin_factory.h>
+#include "plugin_prng_impl.h"
+
factory_handle plugin_default_factory_get_instance(void);
-#endif /* SIMPLE_PLUGIN_FACTORY_H_ */
+#endif /* PLUGIN_DEFAULT_FACTORY_H_ */
mydir=plugins/prng
BUILDTOP=$(REL)../..
-KRB5_RUN_ENV = @KRB5_RUN_ENV@
-KRB5_CONFIG_SETUP =
+RELDIR=../plugins/prng
PROG_LIBPATH=-L$(TOPLIBD)
PROG_RPATH=$(KRB5_LIBDIR)
-MODULE_INSTALL_DIR =
-DEFS=@DEFS@
+DEFS=
LOCALINCLUDES = -I../../include/krb5 -I. -I../../plugin_core
-STLIBOBJS= plugin_prng.o
-OBJS= $(OUTPRE)plugin_prng.$(OBJEXT)
-SRCS= plugin_prng.c
+LIBBASE=plugin_prng
-#all-unix:: all-liblinks
-all-unix:: all-libobjs
+STLIBOBJS= plugin_prng.o
+SRCS= plugin_prng.c
+STOBJLISTS=OBJS.ST
-includes:: depend
-
-depend:: $(SRCS)
-
-clean-unix:: clean-libobjs
+all-unix:: all-liblinks
+clean-unix:: clean-liblinks clean-libs clean-libobjs
+install-unix:: install-libs
+@libpriv_frag@
+@lib_frag@
@libobj_frag@
-
mydir=plugins/prng/plugin_yarrow
BUILDTOP=$(REL)../../..
+RELDIR=../plugins/prng/plugin_yarrow
PROG_LIBPATH=-L$(TOPLIBD)
PROG_RPATH=$(KRB5_LIBDIR)
DEFS=
-I$(srcdir)/../../../lib/crypto/@CRYPTO_IMPL@/sha1 \
-I$(srcdir)/../../../lib/crypto/@CRYPTO_IMPL@/enc_provider
+LIBBASE=plugin_yarrow
-
-STLIBOBJS=\
- yarrow.o \
- ycipher.o \
- plugin_prng_impl.o
-
-OBJS=\
- $(OUTPRE)yarrow.$(OBJEXT) \
- $(OUTPRE)ycipher.$(OBJEXT) \
- $(OUTPRE)plugin_prng_impl.$(OBJEXT)
-
+STLIBOBJS= yarrow.o ycipher.o plugin_prng_impl.o
SRCS=\
$(srcdir)/yarrow.c \
$(srcdir)/ycipher.c \
$(srcdir)/plugin_prng_impl.c
-all-unix:: all-libobjs
-
-includes:: depend
+STOBJLISTS=OBJS.ST
-depend:: $(SRCS)
+all-unix:: all-liblinks
+clean-unix:: clean-liblinks clean-libs clean-libobjs
+install-unix:: install-libs
-clean-unix:: clean-libobjs
+@libpriv_frag@
+@lib_frag@
@libobj_frag@
$(BUILDTOP)/include/krb5/krb5.h $(COM_ERR_DEPS) $(top_srcdir)/plugins/prng/plugin_yarrow/plugin_prng_impl.h \
$(top_srcdir)/plugin_core/plugin_manager.h \
$(top_srcdir)/plugin_core/plugin_factory.h \
+ $(srcdir)/../../../lib/crypto/builtin/yhash.h \
+ $(srcdir)/../../../lib/crypto/builtin/enc_provider/enc_provider.h \
plugin_prng_impl.c
+++ /dev/null
-plugin_prng_seed
-plugin_prng_os_seed
-plugin_prng_rand
-plugin_prng_init
-plugin_prng_cleanup