12,925
回編集
125行目: | 125行目: | ||
* パディング | * パディング | ||
*: PKCS7パディングを使用しており、復号時にパディングの妥当性を確認する。 | *: PKCS7パディングを使用しており、復号時にパディングの妥当性を確認する。 | ||
<br> | |||
<syntaxhighlight lang="cmake"> | |||
# CMakeLists.txtファイル | |||
cmake_minimum_required(VERSION 3.21) | |||
project(AESEncryptionProject LANGUAGES CXX) | |||
set(CMAKE_INCLUDE_CURRENT_DIR ON) | |||
set(CMAKE_AUTOUIC ON) | |||
set(CMAKE_AUTOMOC ON) | |||
set(CMAKE_AUTORCC ON) | |||
set(CMAKE_CXX_STANDARD 17) | |||
set(CMAKE_CXX_STANDARD_REQUIRED ON) | |||
# Pkg-configの使用 | |||
find_package(PkgConfig REQUIRED) | |||
# Qtライブラリの検索 | |||
find_package(QT NAMES Qt6 Qt5 COMPONENTS Core REQUIRED) | |||
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core REQUIRED) | |||
# OpenSSLライブラリの検索 | |||
find_package(OpenSSL REQUIRED) | |||
# ソースコードファイル群 | |||
set(SOURCES | |||
main.cpp | |||
AES.cpp | |||
) | |||
set(HEADERS | |||
AES.h | |||
) | |||
# 実行バイナリファイルの生成 | |||
add_executable(${PROJECT_NAME} ${SOURCES} ${HEADERS}) | |||
# Qtライブラリのリンク | |||
target_link_libraries(${PROJECT_NAME} PRIVATE Qt${QT_VERSION_MAJOR}::Core) | |||
# OpenSSLライブラリのリンク | |||
target_link_libraries(${PROJECT_NAME} PRIVATE OpenSSL::SSL OpenSSL::Crypto) | |||
# OpenSSLのインクルードディレクトリ | |||
target_include_directories(${PROJECT_NAME} PRIVATE ${OPENSSL_INCLUDE_DIR}) | |||
# C++コンパイラフラグの設定 | |||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang") | |||
target_compile_options(${PROJECT_NAME} PRIVATE -Wall -Wextra -pedantic) | |||
elseif(MSVC) | |||
target_compile_options(${PROJECT_NAME} PRIVATE /W4) | |||
endif() | |||
</syntaxhighlight> | |||
<br> | <br> | ||
<syntaxhighlight lang="c++"> | <syntaxhighlight lang="c++"> | ||
333行目: | 386行目: | ||
<br> | <br> | ||
<syntaxhighlight lang="c++"> | <syntaxhighlight lang="c++"> | ||
// main.cppファイル | |||
#include <QCoreApplication> | #include <QCoreApplication> | ||
#include <QDebug> | #include <QDebug> |