YKCS11: add basic tests.
Signed-off-by: Alessio Di Mauro <alessio@yubico.com>
This commit is contained in:
@@ -216,6 +216,7 @@ AC_CONFIG_FILES([
|
|||||||
ykcs11/Makefile
|
ykcs11/Makefile
|
||||||
ykcs11/ykcs11-version.h
|
ykcs11/ykcs11-version.h
|
||||||
ykcs11/ykcs11.pc
|
ykcs11/ykcs11.pc
|
||||||
|
ykcs11/tests/Makefile
|
||||||
])
|
])
|
||||||
AC_OUTPUT
|
AC_OUTPUT
|
||||||
|
|
||||||
|
|||||||
+1
-2
@@ -24,8 +24,7 @@
|
|||||||
# non-source form of such a combination shall include the source code
|
# non-source form of such a combination shall include the source code
|
||||||
# for the parts of OpenSSL used as well as that of the covered work.
|
# for the parts of OpenSSL used as well as that of the covered work.
|
||||||
|
|
||||||
SUBDIRS = .
|
SUBDIRS = . tests
|
||||||
#tests
|
|
||||||
|
|
||||||
AM_CFLAGS = $(WERROR_CFLAGS) $(WARN_CFLAGS)
|
AM_CFLAGS = $(WERROR_CFLAGS) $(WARN_CFLAGS)
|
||||||
AM_CPPFLAGS = $(OPENSSL_CFLAGS) $(PCSC_CFLAGS)
|
AM_CPPFLAGS = $(OPENSSL_CFLAGS) $(PCSC_CFLAGS)
|
||||||
|
|||||||
@@ -0,0 +1,46 @@
|
|||||||
|
# Copyright (c) 2014 Yubico AB
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions are
|
||||||
|
# met:
|
||||||
|
#
|
||||||
|
# * Redistributions of source code must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
#
|
||||||
|
# * Redistributions in binary form must reproduce the above
|
||||||
|
# copyright notice, this list of conditions and the following
|
||||||
|
# disclaimer in the documentation and/or other materials provided
|
||||||
|
# with the distribution.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
#TESTS_ENVIRONMENT = export VERSION=$(PACKAGE_VERSION); export EXEEXT=$(EXEEXT);
|
||||||
|
|
||||||
|
#LOG_COMPILER = $(VALGRIND)
|
||||||
|
|
||||||
|
AM_CFLAGS = $(WARN_CFLAGS)
|
||||||
|
AM_CPPFLAGS = -I$(top_srcdir)/lib -I$(top_builddir)/lib
|
||||||
|
AM_CPPFLAGS += -I$(top_srcdir)/ykcs11 -I$(top_builddir)/ykcs11
|
||||||
|
AM_CPPFLAGS += $(OPENSSL_CFLAGS)
|
||||||
|
|
||||||
|
AM_LDFLAGS = -no-install
|
||||||
|
|
||||||
|
ykcs11_tests_LDADD = ../libykcs11.la $(OPENSSL_LIBS)
|
||||||
|
|
||||||
|
check_PROGRAMS = ykcs11_tests
|
||||||
|
TESTS = $(check_PROGRAMS)
|
||||||
|
|
||||||
|
if ENABLE_COV
|
||||||
|
AM_LDFLAGS += --coverage
|
||||||
|
endif
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
========================================================
|
||||||
|
yubico-piv-tool 1.1.2: ykcs11/tests/test-suite.log
|
||||||
|
========================================================
|
||||||
|
|
||||||
|
# TOTAL: 1
|
||||||
|
# PASS: 1
|
||||||
|
# SKIP: 0
|
||||||
|
# XFAIL: 0
|
||||||
|
# FAIL: 0
|
||||||
|
# XPASS: 0
|
||||||
|
# ERROR: 0
|
||||||
|
|
||||||
|
.. contents:: :depth: 2
|
||||||
|
|
||||||
Executable
BIN
Binary file not shown.
@@ -0,0 +1,67 @@
|
|||||||
|
#include <ykcs11.h>
|
||||||
|
#include <ykcs11-version.h>
|
||||||
|
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#define MANUFACTURER_ID "Yubico (www.yubico.com)"
|
||||||
|
#define YKCS11_DESCRIPTION "PKCS#11 PIV Library (SP-800-73)"
|
||||||
|
#define CRYPTOKI_VERSION_MAJ 2
|
||||||
|
#define CRYPTOKI_VERSION_MIN 40
|
||||||
|
|
||||||
|
|
||||||
|
static void lib_info() {
|
||||||
|
|
||||||
|
CK_INFO info;
|
||||||
|
CK_FUNCTION_LIST_PTR funcs;
|
||||||
|
|
||||||
|
if (C_GetFunctionList(&funcs) != CKR_OK) {
|
||||||
|
fprintf(stderr, "Get function list failed\n");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (funcs->C_Initialize(NULL) != CKR_OK) {
|
||||||
|
fprintf(stderr, "Initialize failed\n");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (funcs->C_GetInfo(&info) != CKR_OK) {
|
||||||
|
fprintf(stderr, "GetInfo failed\n");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (strcmp(info.manufacturerID, MANUFACTURER_ID) != 0) {
|
||||||
|
fprintf(stderr, "unexpected manufacturer ID %s\n", info.manufacturerID);
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (info.cryptokiVersion.major != CRYPTOKI_VERSION_MAJ ||
|
||||||
|
info.cryptokiVersion.minor != CRYPTOKI_VERSION_MIN ) {
|
||||||
|
fprintf(stderr, "unexpected Cryptoki version %d.%d\n", info.cryptokiVersion.major, info.cryptokiVersion.minor);
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (info.libraryVersion.major != YKCS11_VERSION_MAJOR ||
|
||||||
|
info.libraryVersion.minor != ((YKCS11_VERSION_MINOR * 100) + YKCS11_VERSION_PATCH )) {
|
||||||
|
fprintf(stderr, "unexpected YKCS11 version %d.%d\n", info.libraryVersion.major, info.libraryVersion.minor);
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (strcmp(info.libraryDescription, YKCS11_DESCRIPTION) != 0) {
|
||||||
|
fprintf(stderr, "unexpected description %s\n", info.libraryDescription);
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (funcs->C_Finalize(NULL) != CKR_OK) {
|
||||||
|
fprintf(stderr, "Finalize failed\n");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
|
||||||
|
lib_info();
|
||||||
|
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
PASS ykcs11_tests (exit status: 0)
|
||||||
Binary file not shown.
@@ -0,0 +1,4 @@
|
|||||||
|
:test-result: PASS
|
||||||
|
:global-test-result: PASS
|
||||||
|
:recheck: no
|
||||||
|
:copy-in-global-log: no
|
||||||
Reference in New Issue
Block a user