「Qtの応用 - AES」の版間の差分

ナビゲーションに移動 検索に移動
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>

案内メニュー