Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding Support for Post-Quantum and Composite Algorithms. #68

Closed
wants to merge 6 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ src/drivers/pkcs11/utils/.dirstamp
src/global-vars
src/libpki/config.h
src/libpki/libpkiv.h
src/libpki/pki_config.h
src/libpki/pki_config_types.h
src/libpki/stamp-h1
src/scripts/libpki-config
src/tools/pki-cert
Expand Down
9 changes: 5 additions & 4 deletions Makefile.in
Original file line number Diff line number Diff line change
Expand Up @@ -108,8 +108,9 @@ am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
mkinstalldirs = $(SHELL) $(top_srcdir)/build/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/src/libpki/config.h \
$(top_builddir)/src/libpki/libpki_enables.h
CONFIG_CLEAN_FILES = src/scripts/libpki-config src/libpki/pki_config.h \
src/libpki/libpkiv.h contrib/libpki.pc contrib/libpki-inst.xml \
CONFIG_CLEAN_FILES = src/scripts/libpki-config \
src/libpki/pki_config_types.h src/libpki/libpkiv.h \
contrib/libpki.pc contrib/libpki-inst.xml \
examples/prqp/Makefile examples/profiles/Makefile \
examples/token/Makefile examples/url/Makefile \
examples/crl/Makefile examples/pkcs11/Makefile \
Expand Down Expand Up @@ -398,7 +399,7 @@ am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/build/compile \
$(top_srcdir)/src/libpki/config.h.in \
$(top_srcdir)/src/libpki/libpki_enables.h.in \
$(top_srcdir)/src/libpki/libpkiv.h.in \
$(top_srcdir)/src/libpki/pki_config.h.in \
$(top_srcdir)/src/libpki/pki_config_types.h.in \
$(top_srcdir)/src/scripts/libpki-config.in AUTHORS COPYING \
ChangeLog INSTALL NEWS README TODO build/compile \
build/config.guess build/config.sub build/depcomp \
Expand Down Expand Up @@ -830,7 +831,7 @@ distclean-hdr:
-rm -f src/libpki/config.h src/libpki/stamp-h1 src/libpki/libpki_enables.h src/libpki/stamp-h2
src/scripts/libpki-config: $(top_builddir)/config.status $(top_srcdir)/src/scripts/libpki-config.in
cd $(top_builddir) && $(SHELL) ./config.status $@
src/libpki/pki_config.h: $(top_builddir)/config.status $(top_srcdir)/src/libpki/pki_config.h.in
src/libpki/pki_config_types.h: $(top_builddir)/config.status $(top_srcdir)/src/libpki/pki_config_types.h.in
cd $(top_builddir) && $(SHELL) ./config.status $@
src/libpki/libpkiv.h: $(top_builddir)/config.status $(top_srcdir)/src/libpki/libpkiv.h.in
cd $(top_builddir) && $(SHELL) ./config.status $@
Expand Down
4 changes: 2 additions & 2 deletions configure
Original file line number Diff line number Diff line change
Expand Up @@ -18808,7 +18808,7 @@ etc_dir=${prefix}/etc



ac_config_files="$ac_config_files Makefile src/global-vars src/Makefile src/drivers/Makefile src/drivers/openssl/Makefile src/drivers/engine/Makefile src/drivers/pkcs11/Makefile src/drivers/kmf/Makefile src/openssl/composite/Makefile src/openssl/pqc/Makefile src/openssl/Makefile src/io/Makefile src/net/Makefile src/est/Makefile src/scep/Makefile src/cmc/Makefile src/prqp/Makefile src/tools/Makefile src/scripts/libpki-config src/tests/Makefile src/libpki/pki_config.h src/libpki/libpkiv.h contrib/libpki.pc contrib/libpki-inst.xml examples/prqp/Makefile examples/profiles/Makefile examples/token/Makefile examples/url/Makefile examples/crl/Makefile examples/pkcs11/Makefile examples/pkcs12/Makefile examples/fips-mode/Makefile docs/Makefile docs/pkginfo etc/Makefile etc/profile.d/test.xml etc/profile.d/user.xml etc/profile.d/server.xml etc/store.d/empty.xml"
ac_config_files="$ac_config_files Makefile src/global-vars src/Makefile src/drivers/Makefile src/drivers/openssl/Makefile src/drivers/engine/Makefile src/drivers/pkcs11/Makefile src/drivers/kmf/Makefile src/openssl/composite/Makefile src/openssl/pqc/Makefile src/openssl/Makefile src/io/Makefile src/net/Makefile src/est/Makefile src/scep/Makefile src/cmc/Makefile src/prqp/Makefile src/tools/Makefile src/scripts/libpki-config src/tests/Makefile src/libpki/pki_config_types.h src/libpki/libpkiv.h contrib/libpki.pc contrib/libpki-inst.xml examples/prqp/Makefile examples/profiles/Makefile examples/token/Makefile examples/url/Makefile examples/crl/Makefile examples/pkcs11/Makefile examples/pkcs12/Makefile examples/fips-mode/Makefile docs/Makefile docs/pkginfo etc/Makefile etc/profile.d/test.xml etc/profile.d/user.xml etc/profile.d/server.xml etc/store.d/empty.xml"


cat >confcache <<\_ACEOF
Expand Down Expand Up @@ -19906,7 +19906,7 @@ do
"src/tools/Makefile") CONFIG_FILES="$CONFIG_FILES src/tools/Makefile" ;;
"src/scripts/libpki-config") CONFIG_FILES="$CONFIG_FILES src/scripts/libpki-config" ;;
"src/tests/Makefile") CONFIG_FILES="$CONFIG_FILES src/tests/Makefile" ;;
"src/libpki/pki_config.h") CONFIG_FILES="$CONFIG_FILES src/libpki/pki_config.h" ;;
"src/libpki/pki_config_types.h") CONFIG_FILES="$CONFIG_FILES src/libpki/pki_config_types.h" ;;
"src/libpki/libpkiv.h") CONFIG_FILES="$CONFIG_FILES src/libpki/libpkiv.h" ;;
"contrib/libpki.pc") CONFIG_FILES="$CONFIG_FILES contrib/libpki.pc" ;;
"contrib/libpki-inst.xml") CONFIG_FILES="$CONFIG_FILES contrib/libpki-inst.xml" ;;
Expand Down
2 changes: 1 addition & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -1792,7 +1792,7 @@ AC_CONFIG_FILES(
src/tools/Makefile
src/scripts/libpki-config
src/tests/Makefile
src/libpki/pki_config.h
src/libpki/pki_config_types.h
src/libpki/libpkiv.h
contrib/libpki.pc
contrib/libpki-inst.xml
Expand Down
3 changes: 2 additions & 1 deletion src/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,9 @@ nobase_include_HEADERS = \

SRCS = \
banners.c\
pki_init.c \
stack.c \
pki_init.c \
pki_memory.c \
pki_mem.c \
pki_cred.c \
pki_err.c \
Expand Down
29 changes: 21 additions & 8 deletions src/Makefile.in
Original file line number Diff line number Diff line change
Expand Up @@ -141,8 +141,9 @@ libpki_la_DEPENDENCIES = $(CRYPTO_SRC_PREFIX)/libpki-openssl.la \
drivers/libpki-token.la io/libpki-io.la net/libpki-net.la \
cmc/libpki-cmc.la est/libpki-est.la scep/libpki-scep.la \
prqp/libpki-prqp.la
am__objects_1 = libpki_la-banners.lo libpki_la-pki_init.lo \
libpki_la-stack.lo libpki_la-pki_mem.lo libpki_la-pki_cred.lo \
am__objects_1 = libpki_la-banners.lo libpki_la-stack.lo \
libpki_la-pki_init.lo libpki_la-pki_memory.lo \
libpki_la-pki_mem.lo libpki_la-pki_cred.lo \
libpki_la-pki_err.lo libpki_la-pki_log.lo \
libpki_la-pki_threads_vars.lo libpki_la-pki_threads.lo \
libpki_la-token.lo libpki_la-token_id.lo \
Expand Down Expand Up @@ -184,6 +185,7 @@ am__depfiles_remade = ./$(DEPDIR)/libpki_la-banners.Plo \
./$(DEPDIR)/libpki_la-pki_init.Plo \
./$(DEPDIR)/libpki_la-pki_log.Plo \
./$(DEPDIR)/libpki_la-pki_mem.Plo \
./$(DEPDIR)/libpki_la-pki_memory.Plo \
./$(DEPDIR)/libpki_la-pki_msg_req.Plo \
./$(DEPDIR)/libpki_la-pki_msg_resp.Plo \
./$(DEPDIR)/libpki_la-pki_threads.Plo \
Expand Down Expand Up @@ -568,8 +570,9 @@ nobase_include_HEADERS = \

SRCS = \
banners.c\
pki_init.c \
stack.c \
pki_init.c \
pki_memory.c \
pki_mem.c \
pki_cred.c \
pki_err.c \
Expand Down Expand Up @@ -732,6 +735,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpki_la-pki_init.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpki_la-pki_log.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpki_la-pki_mem.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpki_la-pki_memory.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpki_la-pki_msg_req.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpki_la-pki_msg_resp.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpki_la-pki_threads.Plo@am__quote@ # am--include-marker
Expand Down Expand Up @@ -783,19 +787,26 @@ libpki_la-banners.lo: banners.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpki_la_CFLAGS) $(CFLAGS) -c -o libpki_la-banners.lo `test -f 'banners.c' || echo '$(srcdir)/'`banners.c

libpki_la-stack.lo: stack.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpki_la_CFLAGS) $(CFLAGS) -MT libpki_la-stack.lo -MD -MP -MF $(DEPDIR)/libpki_la-stack.Tpo -c -o libpki_la-stack.lo `test -f 'stack.c' || echo '$(srcdir)/'`stack.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libpki_la-stack.Tpo $(DEPDIR)/libpki_la-stack.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stack.c' object='libpki_la-stack.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpki_la_CFLAGS) $(CFLAGS) -c -o libpki_la-stack.lo `test -f 'stack.c' || echo '$(srcdir)/'`stack.c

libpki_la-pki_init.lo: pki_init.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpki_la_CFLAGS) $(CFLAGS) -MT libpki_la-pki_init.lo -MD -MP -MF $(DEPDIR)/libpki_la-pki_init.Tpo -c -o libpki_la-pki_init.lo `test -f 'pki_init.c' || echo '$(srcdir)/'`pki_init.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libpki_la-pki_init.Tpo $(DEPDIR)/libpki_la-pki_init.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pki_init.c' object='libpki_la-pki_init.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpki_la_CFLAGS) $(CFLAGS) -c -o libpki_la-pki_init.lo `test -f 'pki_init.c' || echo '$(srcdir)/'`pki_init.c

libpki_la-stack.lo: stack.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpki_la_CFLAGS) $(CFLAGS) -MT libpki_la-stack.lo -MD -MP -MF $(DEPDIR)/libpki_la-stack.Tpo -c -o libpki_la-stack.lo `test -f 'stack.c' || echo '$(srcdir)/'`stack.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libpki_la-stack.Tpo $(DEPDIR)/libpki_la-stack.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stack.c' object='libpki_la-stack.lo' libtool=yes @AMDEPBACKSLASH@
libpki_la-pki_memory.lo: pki_memory.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpki_la_CFLAGS) $(CFLAGS) -MT libpki_la-pki_memory.lo -MD -MP -MF $(DEPDIR)/libpki_la-pki_memory.Tpo -c -o libpki_la-pki_memory.lo `test -f 'pki_memory.c' || echo '$(srcdir)/'`pki_memory.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libpki_la-pki_memory.Tpo $(DEPDIR)/libpki_la-pki_memory.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pki_memory.c' object='libpki_la-pki_memory.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpki_la_CFLAGS) $(CFLAGS) -c -o libpki_la-stack.lo `test -f 'stack.c' || echo '$(srcdir)/'`stack.c
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpki_la_CFLAGS) $(CFLAGS) -c -o libpki_la-pki_memory.lo `test -f 'pki_memory.c' || echo '$(srcdir)/'`pki_memory.c

libpki_la-pki_mem.lo: pki_mem.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpki_la_CFLAGS) $(CFLAGS) -MT libpki_la-pki_mem.lo -MD -MP -MF $(DEPDIR)/libpki_la-pki_mem.Tpo -c -o libpki_la-pki_mem.lo `test -f 'pki_mem.c' || echo '$(srcdir)/'`pki_mem.c
Expand Down Expand Up @@ -1161,6 +1172,7 @@ distclean: distclean-recursive
-rm -f ./$(DEPDIR)/libpki_la-pki_init.Plo
-rm -f ./$(DEPDIR)/libpki_la-pki_log.Plo
-rm -f ./$(DEPDIR)/libpki_la-pki_mem.Plo
-rm -f ./$(DEPDIR)/libpki_la-pki_memory.Plo
-rm -f ./$(DEPDIR)/libpki_la-pki_msg_req.Plo
-rm -f ./$(DEPDIR)/libpki_la-pki_msg_resp.Plo
-rm -f ./$(DEPDIR)/libpki_la-pki_threads.Plo
Expand Down Expand Up @@ -1227,6 +1239,7 @@ maintainer-clean: maintainer-clean-recursive
-rm -f ./$(DEPDIR)/libpki_la-pki_init.Plo
-rm -f ./$(DEPDIR)/libpki_la-pki_log.Plo
-rm -f ./$(DEPDIR)/libpki_la-pki_mem.Plo
-rm -f ./$(DEPDIR)/libpki_la-pki_memory.Plo
-rm -f ./$(DEPDIR)/libpki_la-pki_msg_req.Plo
-rm -f ./$(DEPDIR)/libpki_la-pki_msg_resp.Plo
-rm -f ./$(DEPDIR)/libpki_la-pki_threads.Plo
Expand Down
19 changes: 18 additions & 1 deletion src/drivers/openssl/openssl_hsm.c
Original file line number Diff line number Diff line change
@@ -1,7 +1,24 @@
/* HSM Object Management Functions */

// Single Include
#ifndef _LIBPKI_HSM_OPENSSL_H
#include <libpki/drivers/openssl/openssl_hsm.h>
#endif

#ifndef _LIBPKI_HEADERS_OPENSSL_PKEY_H
#include <libpki/drivers/openssl/openssl_hsm_pkey.h>
#endif

#ifndef _LIBPKI_OPENSSL_HSM_CB_H
#include <libpki/drivers/openssl/openssl_hsm_cb.h>
#endif

#ifndef _LIBPKI_ERR_H
#include <libpki/pki_err.h>
#endif

#ifndef HEADER_ERR_H
#include <openssl/err.h>
#endif

/* Callbacks for Software OpenSSL HSM */
const HSM_CALLBACKS openssl_hsm_callbacks = {
Expand Down
5 changes: 1 addition & 4 deletions src/drivers/openssl/openssl_hsm_cb.c
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
#include <libpki/pki.h>
#include <libpki/scep/scep.h>

#include <openssl/cms.h>
#include <libpki/pki_x509_cms.h>
#include <libpki/drivers/openssl/openssl_hsm_cb.h>

const PKI_X509_CALLBACKS PKI_OPENSSL_X509_KEYPAIR_CALLBACKS = {
// Memory Management
Expand Down
11 changes: 10 additions & 1 deletion src/drivers/openssl/openssl_hsm_pkey.c
Original file line number Diff line number Diff line change
Expand Up @@ -386,10 +386,13 @@ PKI_COMPOSITE_KEY * _pki_composite_new( PKI_KEYPARAMS *kp ) {

if ((k = COMPOSITE_KEY_new()) == NULL) {
// Memory Allocation Error
PKI_ERROR(PKI_ERR_MEMORY_ALLOC, "Too low Entropy");
PKI_ERROR(PKI_ERR_MEMORY_ALLOC, NULL);
return NULL;
}

fprintf(stderr, "[%s:%s():%d] Composite Key Param: pointer = 0x%p, value = %ld\n",
__FILE__, __func__, __LINE__, kp->comp.k_of_n, ASN1_INTEGER_get(kp->comp.k_of_n));

if (kp->comp.k_stack != NULL) {

for (int i = 0; i < PKI_STACK_X509_KEYPAIR_elements(kp->comp.k_stack); i++) {
Expand All @@ -411,6 +414,12 @@ PKI_COMPOSITE_KEY * _pki_composite_new( PKI_KEYPARAMS *kp ) {
}
}

// Adds the Parameter (k-of-n) to the key
if (kp->comp.k_of_n != NULL) {
if (k->params) ASN1_INTEGER_free(k->params);
k->params = ASN1_INTEGER_dup(kp->comp.k_of_n);
}

// All Done.
return k;
}
Expand Down
Loading