chore: add find_package for mbedtls and cn-cbor
diff --git a/.gitignore b/.gitignore
index b898e9f..d2165dc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -45,7 +45,6 @@
 CMakeFiles
 CMakeCache.txt
 Makefile
-*.cmake
 build
 
 # Visual Studio files
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 42afdcd..c9e6bc6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -25,6 +25,7 @@
 option (COSE_C_BUILD_DUMPER      "build dumper" ON )
 option (BUILD_SHARED_LIBS "Build Shared Libraries" ON)
 option (COSE_C_USE_MBEDTLS    "Use MBedTLS for the Crypto Package" OFF)
+option(COSE_C_USE_FIND_PACKAGE "Use cmake find_package instead of using cmake project_add" OFF)
 option (include_encrypt  "Include COSE_ENCRYPT" ON)
 option (include_encrypt0 "Include COSE_ENCRYPT0" ON)
 option (include_mac      "Include COSE_MAC" ON)
@@ -134,50 +135,60 @@
    install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html DESTINATION share/doc)
 endif()
 
-Include(ExternalProject)
-ExternalProject_Add(
-  project_cn-cbor
-  GIT_REPOSITORY https://github.com/jimsch/cn-cbor
-  GIT_TAG master
-  CMAKE_ARGS -Doptimize=OFF -Duse_context=${use_context} -Dbuild_docs=OFF -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -Dcoveralls=OFF -DBUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} -Dfatal_warnings=OFF
-  INSTALL_DIR "${dist_dir}"
-  UPDATE_DISCONNECTED 1
-)
+if(COSE_C_USE_FIND_PACKAGE)
+   find_package(cn-cbor REQUIRED)
+else()
+   include(ExternalProject)
+   ExternalProject_Add(
+   project_cn-cbor
+   GIT_REPOSITORY https://github.com/jimsch/cn-cbor
+   GIT_TAG master
+   CMAKE_ARGS -Doptimize=OFF -Duse_context=${use_context} -Dbuild_docs=OFF -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -Dcoveralls=OFF -DBUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} -Dfatal_warnings=OFF
+   INSTALL_DIR "${dist_dir}"
+   UPDATE_DISCONNECTED 1
+   )
 
-ExternalProject_Get_Property(project_cn-cbor install_dir)
-include_directories ( "${install_dir}/include" )
+   ExternalProject_Get_Property(project_cn-cbor install_dir)
+   include_directories ( "${install_dir}/include" )
 
-if (MSVC)
-   add_library (cn-cbor STATIC IMPORTED)
-   set_property (TARGET cn-cbor PROPERTY IMPORTED_LOCATION "${install_dir}/lib/${CMAKE_SHARED_MODULE_PREFIX}cn-cbor.lib")
-else ()
-   add_library (cn-cbor STATIC IMPORTED)
-   set_property (TARGET cn-cbor PROPERTY IMPORTED_LOCATION "${install_dir}/lib/${CMAKE_SHARED_MODULE_PREFIX}cn-cbor${CMAKE_SHARED_LIBRARY_SUFFIX}")
-endif ()
+   if (MSVC)
+      add_library (cn-cbor STATIC IMPORTED)
+      set_property (TARGET cn-cbor PROPERTY IMPORTED_LOCATION "${install_dir}/lib/${CMAKE_SHARED_MODULE_PREFIX}cn-cbor.lib")
+   else ()
+      add_library (cn-cbor STATIC IMPORTED)
+      set_property (TARGET cn-cbor PROPERTY IMPORTED_LOCATION "${install_dir}/lib/${CMAKE_SHARED_MODULE_PREFIX}cn-cbor${CMAKE_SHARED_LIBRARY_SUFFIX}")
+   endif ()
 
-add_dependencies(cn-cbor project_cn-cbor)
+   add_dependencies(cn-cbor project_cn-cbor)
+endif()
 
 if (COSE_C_USE_MBEDTLS)
    add_definitions( -DUSE_MBED_TLS )
-   ExternalProject_Add(
-     project_mbedtls
-     GIT_REPOSITORY https://github.com/ARMmbed/mbedtls
-     CMAKE_ARGS -DENABLED_PROGRAMS=OFF -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -Dcoveralls=OFF -DUSE_SHARED_MBEDTLS_LIBRARY=${BUILD_SHARED_LIBS} -Dfatal_warnings=OFF -DENABLE_TESTING=OFF -DLIB_INSTALL_DIR=${install_dir}/lib
-     INTALL_DIR "${dist_dir}"
-     UPDATE_DISCONNECTED 1
-   )
 
-   ExternalProject_Get_Property(project_mbedtls install_dir)
-   include_directories( "${install_dir}/include" )
-   add_library( mbedtls STATIC IMPORTED)
-   if (MSVC)
-      set_property (TARGET mbedtls PROPERTY IMPORTED_LOCATION "${dist_dir}/lib/${CMAKE_SHARED_MODULE_PREFIX}mbedcrypto.lib")
-   else ()
-      set_property (TARGET mbedtls PROPERTY IMPORTED_LOCATION "${dist_dir}/lib/${CMAKE_SHARED_MODULE_PREFIX}mbedcrypto${CMAKE_SHARED_LIBRARY_SUFFIX}")
-   endif ()
-   add_dependencies(mbedtls project_mbedtls)
+   if(COSE_C_USE_FIND_PACKAGE)
+      find_package(MbedTLS REQUIRED)
    else()
-      find_package(OpenSSL REQUIRED)
+      ExternalProject_Add(
+         project_mbedtls
+         GIT_REPOSITORY https://github.com/ARMmbed/mbedtls
+         CMAKE_ARGS -DENABLED_PROGRAMS=OFF -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -Dcoveralls=OFF -DUSE_SHARED_MBEDTLS_LIBRARY=${BUILD_SHARED_LIBS} -Dfatal_warnings=OFF -DENABLE_TESTING=OFF -DLIB_INSTALL_DIR=${install_dir}/lib
+         INTALL_DIR "${dist_dir}"
+         UPDATE_DISCONNECTED 1
+      )
+
+      ExternalProject_Get_Property(project_mbedtls install_dir)
+      include_directories( "${install_dir}/include" )
+      add_library( mbedtls STATIC IMPORTED)
+      if (MSVC)
+         set_property (TARGET mbedtls PROPERTY IMPORTED_LOCATION "${dist_dir}/lib/${CMAKE_SHARED_MODULE_PREFIX}mbedcrypto.lib")
+      else ()
+         set_property (TARGET mbedtls PROPERTY IMPORTED_LOCATION "${dist_dir}/lib/${CMAKE_SHARED_MODULE_PREFIX}mbedcrypto${CMAKE_SHARED_LIBRARY_SUFFIX}")
+      endif ()
+      add_dependencies(mbedtls project_mbedtls)
+   endif()
+
+else()
+   find_package(OpenSSL REQUIRED)
 endif ()
 
 ## include the parts
@@ -207,6 +218,7 @@
 message(STATUS "COSE_C_BUILD_TESTS:..................${COSE_C_BUILD_TESTS}")
 message(STATUS "COSE_C_BUILD_DOCS:...................${COSE_C_BUILD_DOCS}")
 message(STATUS "COSE_C_USE_MBEDTLS:..................${COSE_C_USE_MBEDTLS}")
+message(STATUS "COSE_C_USE_FIND_PACKAGE:.............${COSE_C_USE_FIND_PACKAGE}")
 message(STATUS "COSE_C_BUILD_DUMPER:.................${COSE_C_BUILD_DUMPER}")
 message(STATUS "CMAKE_BUILD_TYPE:....................${CMAKE_BUILD_TYPE}")
 message(STATUS "BUILD_SHARED_LIBS:...................${BUILD_SHARED_LIBS}")
diff --git a/cmake/FindMbedTLS.cmake b/cmake/FindMbedTLS.cmake
new file mode 100644
index 0000000..f7d5a72
--- /dev/null
+++ b/cmake/FindMbedTLS.cmake
@@ -0,0 +1,23 @@
+find_path(MBEDTLS_INCLUDE_DIRS mbedtls/ssl.h PATHS "/usr/local" "/usr" "C:/Program Files (x86)/mbed TLS/include")
+
+find_library(MBEDTLS_LIBRARY mbedtls PATHS "C:/Program Files (x86)/mbed TLS/lib")
+find_library(MBEDX509_LIBRARY mbedx509 PATHS "C:/Program Files (x86)/mbed TLS/lib")
+find_library(MBEDCRYPTO_LIBRARY mbedcrypto PATHS "C:/Program Files (x86)/mbed TLS/lib")
+
+set(MBEDTLS_LIBRARIES "${MBEDTLS_LIBRARY}" "${MBEDX509_LIBRARY}" "${MBEDCRYPTO_LIBRARY}")
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(MBEDTLS DEFAULT_MSG MBEDTLS_INCLUDE_DIRS MBEDTLS_LIBRARY MBEDX509_LIBRARY
+                                  MBEDCRYPTO_LIBRARY)
+
+mark_as_advanced(MBEDTLS_INCLUDE_DIRS MBEDTLS_LIBRARY MBEDX509_LIBRARY MBEDCRYPTO_LIBRARY)
+
+message(STATUS "MBEDTLS_INCLUDE_DIRS: ${MBEDTLS_INCLUDE_DIRS}")
+message(STATUS "MBEDTLS_LIBRARY: ${MBEDTLS_LIBRARY}")
+message(STATUS "MBEDX509_LIBRARY: ${MBEDX509_LIBRARY}")
+message(STATUS "MBEDCRYPTO_LIBRARY: ${MBEDCRYPTO_LIBRARY}")
+message(STATUS "MBEDTLS_LIBRARIES: ${MBEDTLS_LIBRARIES}")
+
+add_library(mbedtls IMPORTED UNKNOWN)
+set_target_properties(mbedtls PROPERTIES IMPORTED_LOCATION ${MBEDTLS_LIBRARIES})
+set_target_properties(mbedtls PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${MBEDTLS_INCLUDE_DIRS}")