Skip to content
Open
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
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,11 @@ CPackSourceConfig.cmake
# compiled files
*.o
*.so*
*~
usbk_cli/usbk
usbk_cli_pp/usbk++
config.h
config.hpp

# vim swap files
*.swp
Expand Down
13 changes: 11 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
PROJECT (usbk)

# CMAKE Settings
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
SET(CMAKE_COLOR_MAKEFILE ON)
SET(CMAKE_VERBOSE_MAKEFILE OFF)

Expand All @@ -24,7 +24,11 @@ SET(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules;${CMAKE_MODULE_P
INCLUDE (Uninstaller)

ADD_SUBDIRECTORY( libusbk )
ADD_SUBDIRECTORY( libusbk++ )
ADD_SUBDIRECTORY( usbk_cli )

ADD_SUBDIRECTORY( usbk_cli_pp ) # temporary test cli

ADD_SUBDIRECTORY( man )

UNINSTALLLER_FEATURE()
Expand Down Expand Up @@ -54,6 +58,8 @@ IF (UNIX)
cmake.check_depends
CMakeCache.txt
*/CMakeCache.txt
install_manifest.txt

cmake.check_cache
*.cmake
Makefile
Expand All @@ -63,7 +69,9 @@ IF (UNIX)
*/Makefile
*/CMakeFiles
*/cmake_install.cmake
libusbk/*.so*
libusbk*/*.so*
libusbk*/src/config.h
libusbk*/src/config.hpp
usbk_cli/usbk
man/*.gz
)
Expand All @@ -75,6 +83,7 @@ IF (UNIX)
ARGS -Rf CMakeTmp ${DISTCLEANED}
TARGET distclean
)

ENDIF(UNIX)

# Settings for debian package
Expand Down
12 changes: 12 additions & 0 deletions TODO
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
TODO
====
- Write unit tests for each function both for libusbk and libusbk++

- libusbk enhancement
. make struct USBK fully abstracted (as before)
. prevent segfaults caused by root access
. write more controls for NULL pointer addressing (still we have some problems)

- libusbk++ enhancements
. same as libusbk

167 changes: 167 additions & 0 deletions libusbk++/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,167 @@
#
# Build file of USBK CryptoBridge
#
# Tamara Electronics (C) 2010
#
# GNU General Public License
#

IF(UNIX)
message(STATUS "Cmake for Unix")
ENDIF(UNIX)

IF(WIN32)
message(STATUS "Cmake for Windows")
ENDIF(WIN32)

IF(APPLE)
message(FATAL_ERROR "APPLE NOT SUPPORTED")
ENDIF(APPLE)

# Project name
PROJECT (USBK_LIB_CPP_BINDING)

# CMAKE Settings
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
SET(CMAKE_COLOR_MAKEFILE ON)
SET(CMAKE_VERBOSE_MAKEFILE OFF)

# The libUSBK version number.
SET(${PROJECT_NAME}_VERSION_MAJOR 0)
SET(${PROJECT_NAME}_VERSION_MINOR 0)
SET(${PROJECT_NAME}_VERSION_PATCH 1)

SET(${PROJECT_NAME}_VERSION "${${PROJECT_NAME}_VERSION_MAJOR}.${${PROJECT_NAME}_VERSION_MINOR}")
SET(${PROJECT_NAME}_VERSION_FULL "${${PROJECT_NAME}_VERSION}.${${PROJECT_NAME}_VERSION_PATCH}")
SET(${PROJECT_NAME}_SOVERSION "${${PROJECT_NAME}_VERSION_FULL}")

CONFIGURE_FILE(src/config.hpp.cmake src/config.hpp)

IF(UNIX AND NOT APPLE)
# Header files are located in these directories
SET (${PROJECT_NAME}_INCLUDE_DIRS
${${PROJECT_NAME}_SOURCE_DIR}/../libusbk/src
${${PROJECT_NAME}_SOURCE_DIR}/src/
${CMAKE_SYSTEM_INCLUDE_PATH}
)
INCLUDE_DIRECTORIES (${${PROJECT_NAME}_INCLUDE_DIRS})

# Libraries are located in these directories
SET (${PROJECT_NAME}_LIBRARY_DIRS
${CMAKE_CURRENT_BINARY_DIR}/../libusbk/
${CMAKE_SYSTEM_LIBRARY_PATH}
)
LINK_DIRECTORIES ( ${${PROJECT_NAME}_LIBRARY_DIRS})

# Depend Includes
SET (${PROJECT_NAME}_INCLUDES
libusbk.h
libusbk.hpp
)

# Libraries are located in these directories
SET (${PROJECT_NAME}_LIBRARIES_PATH
${CMAKE_SYSTEM_LIBRARY_PATH}
)
LINK_DIRECTORIES (${${PROJECT_NAME}_LIBRARIES_PATH})

# Source Files
#AUX_SOURCE_DIRECTORY (src ${PROJECT_NAME}_SOURCES)

FILE(GLOB SRC_FILES "src/*" )

# Create Library File
ADD_LIBRARY( ${PROJECT_NAME} SHARED ${SRC_FILES})

# These are the symbols for the linker
TARGET_LINK_LIBRARIES(${PROJECT_NAME} udev)

# change lib_target properties
SET_TARGET_PROPERTIES( ${PROJECT_NAME} PROPERTIES
# create *nix style library versions + symbolic links
VERSION ${${PROJECT_NAME}_VERSION_FULL}
SOVERSION ${${PROJECT_NAME}_SOVERSION}

# allow creating static and shared libs without conflicts
CLEAN_DIRECT_OUTPUT 1

# avoid conflicts between library and binary target names
OUTPUT_NAME usbk++
)

# Install this library
INSTALL(TARGETS ${PROJECT_NAME}
LIBRARY DESTINATION /usr/lib
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)

INSTALL(FILES src/libusbk.hpp
DESTINATION /usr/include
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)

IF (${CMAKE_PROJECT_NAME} MATCHES ${PROJECT_NAME})

# Settings for debian package
SET(CPACK_GENERATOR "DEB")
SET(CPACK_DEBIAN_PACKAGE_NAME ${PROJECT_NAME})
SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "Tamara Elektronik <tamara@tamara.com.tr>")
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "USBK CryptoBridge Library")
SET(CPACK_DEBIAN_PACKAGE_DESCRIPTION " USBK CryptoBridge Library\n USBK CryptoBridge encrypts data independent by the operation systems and all filesystems.\n USBK works in SCSI level and encrypts/decrypts data on the fly. USBK has two model as A101\n and A103. A103 model uses 3 keys and A101 model uses 1 key. A password for this operation.\n Whenever user inserts USB-K into USB Hub of the PC, USB-K must be initialized (there is an\n exceptional situation!).")
SET(CPACK_PACKAGE_VERSION "${${PROJECT_NAME}_VERSION}")
SET(CPACK_DEBIAN_PACKAGE_VERSION "${${PROJECT_NAME}_VERSION}")
#SET(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "i386")
SET(CPACK_DEBIAN_PACKAGE_DEPENDS "udev (>= 151-12.3)")
SET(CPACK_DEBIAN_PACKAGE_SECTION "devel")
SET(CPACK_DEBIAN_PACKAGE_PRIORITY "optional")
SET(CPACK_DEBIAN_PACKAGE_RECOMMENDS "recommends")
SET(CPACK_DEBIAN_PACKAGE_SUGGESTS "suggests")
INCLUDE(CPack)

ENDIF (${CMAKE_PROJECT_NAME} MATCHES ${PROJECT_NAME})

ELSEIF(WIN32)

# Header files are located in these directories
SET (${PROJECT_NAME}_INCLUDE_DIRS
${${PROJECT_NAME}_SOURCE_DIR}/src/
${${PROJECT_NAME}_SOURCE_DIR}/src/windows/
${CMAKE_SYSTEM_INCLUDE_PATH}
)
INCLUDE_DIRECTORIES (${${PROJECT_NAME}_INCLUDE_DIRS})

# Libraries are located in these directories
SET (${PROJECT_NAME}_LIBRARIES_PATH
${CMAKE_SYSTEM_LIBRARY_PATH}
)
LINK_DIRECTORIES (${${PROJECT_NAME}_LIBRARIES_PATH})

FILE(GLOB SRC_FILES "src/*" "src/windows/*")

ADD_LIBRARY( ${PROJECT_NAME} SHARED ${SRC_FILES})

SET_TARGET_PROPERTIES( ${PROJECT_NAME} PROPERTIES
VERSION ${${PROJECT_NAME}_VERSION}
SOVERSION ${${PROJECT_NAME}_SOVERSION}

# allow creating static and shared libs without conflicts
CLEAN_DIRECT_OUTPUT 1

# avoid conflicts between library and binary target names
OUTPUT_NAME libusbk++
)

INSTALL(TARGETS
${PROJECT_NAME}
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
RUNTIME DESTINATION bin
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
)

INCLUDE(CPack)

ELSEIF(APPLE)

ELSE(UNIX AND NOT APPLE)
message(FATAL_ERROR "Undefined Operating System")
ENDIF(UNIX AND NOT APPLE)

14 changes: 14 additions & 0 deletions libusbk++/src/config.hpp.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
/**
*
* @project @PROJECT_NAME@
* @file config.hpp
*
*/

#ifndef LIBUSBK_PP_CONFIG_HPP_
#define LIBUSBK_PP_CONFIG_HPP_

#define USBK_CPP_LIB_VERSION_FULL "@USBK_LIB_CPP_BINDING_VERSION_FULL@"

#endif // LIBUSBK_PP_CONFIG_HPP_

Loading