From 87ff402478cf4ca40e6055976e2916c0f4d462ee Mon Sep 17 00:00:00 2001 From: 0rangeFox Date: Fri, 2 Apr 2021 01:06:07 +0100 Subject: [PATCH 01/14] Changed the code with the use of namespaces and improvements in order to ensure more reliability. --- .gitignore | 691 +++++++++++++++++- CMakeLists.txt | 11 + README.md | 54 +- b64.h | 47 -- cl.cpp | 31 - encrypt.h | 17 - examples/CMakeLists.txt | 3 + examples/application.cpp | 27 + main.cpp => examples/main.cpp | 16 +- examples/main_base64.cpp | 18 + .../main_vigenere.cpp | 19 +- src/EasyEncryption.cc | 23 + src/EasyEncryption.h | 14 + src/EasyEncryptionConsts.h | 8 + src/base64/Base64.cc | 50 ++ src/base64/Base64.h | 11 + src/vigenere/Vigenere.cc | 51 ++ src/vigenere/Vigenere.h | 14 + vigenere.h | 75 -- wrapper.py | 7 +- 20 files changed, 943 insertions(+), 244 deletions(-) create mode 100644 CMakeLists.txt delete mode 100644 b64.h delete mode 100644 cl.cpp delete mode 100644 encrypt.h create mode 100644 examples/CMakeLists.txt create mode 100644 examples/application.cpp rename main.cpp => examples/main.cpp (58%) create mode 100644 examples/main_base64.cpp rename main_vigenere.cpp => examples/main_vigenere.cpp (58%) create mode 100644 src/EasyEncryption.cc create mode 100644 src/EasyEncryption.h create mode 100644 src/EasyEncryptionConsts.h create mode 100644 src/base64/Base64.cc create mode 100644 src/base64/Base64.h create mode 100644 src/vigenere/Vigenere.cc create mode 100644 src/vigenere/Vigenere.h delete mode 100644 vigenere.h diff --git a/.gitignore b/.gitignore index 170cb77..a957afc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,20 +1,73 @@ +# Created by https://www.toptal.com/developers/gitignore/api/intellij+all,visualstudio,visualstudiocode,c++,c,cmake,python +# Edit at https://www.toptal.com/developers/gitignore?templates=intellij+all,visualstudio,visualstudiocode,c++,c,cmake,python + +### C ### # Prerequisites *.d -# Compiled Object files -*.slo -*.lo +# Object files *.o +*.ko *.obj +*.elf + +# Linker output +*.ilk +*.map +*.exp # Precompiled Headers *.gch *.pch -# Compiled Dynamic libraries +# Libraries +*.lib +*.a +*.la +*.lo + +# Shared objects (inc. Windows DLLs) +*.dll *.so +*.so.* *.dylib -*.dll + +# Executables +*.exe +*.out +*.app +*.i*86 +*.x86_64 +*.hex + +# Debug files +*.dSYM/ +*.su +*.idb +*.pdb + +# Kernel Module Compile Results +*.mod* +*.cmd +.tmp_versions/ +modules.order +Module.symvers +Mkfile.old +dkms.conf + +### C++ ### +# Prerequisites + +# Compiled Object files +*.slo + +# Precompiled Headers + +# Linker files + +# Debugger Files + +# Compiled Dynamic libraries # Fortran module files *.mod @@ -22,13 +75,627 @@ # Compiled Static libraries *.lai -*.la -*.a -*.lib # Executables -*.exe -*.out -*.app -a.out +### CMake ### +CMakeLists.txt.user +CMakeCache.txt +CMakeFiles +CMakeScripts +Testing +Makefile +cmake_install.cmake +install_manifest.txt +compile_commands.json +CTestTestfile.cmake +_deps +CMakeUserPresets.json + +### CMake Patch ### +# External projects +*-prefix/ + +### Intellij+all ### +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/artifacts +# .idea/compiler.xml +# .idea/jarRepositories.xml +# .idea/modules.xml +# .idea/*.iml +# .idea/modules +# *.iml +# *.ipr + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser + +### Intellij+all Patch ### +# Ignores the whole .idea folder and all .iml files +# See https://github.com/joeblau/gitignore.io/issues/186 and https://github.com/joeblau/gitignore.io/issues/360 + +.idea/ + +# Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-249601023 + +*.iml +modules.xml +.idea/misc.xml +*.ipr + +# Sonarlint plugin +.idea/sonarlint + +### Python ### +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +pytestdebug.log + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ +doc/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# poetry +#poetry.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +# .env +.env/ +.venv/ +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ +pythonenv* + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# operating system-related files +*.DS_Store #file properties cache/storage on macOS +Thumbs.db #thumbnail cache on Windows + +# profiling data +.prof + + +### VisualStudioCode ### +.vscode/* +!.vscode/tasks.json +!.vscode/launch.json +*.code-workspace + +### VisualStudioCode Patch ### +# Ignore all local history of files +.history +.ionide + +### VisualStudio ### +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Mono auto generated files +mono_crash.* + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Ww][Ii][Nn]32/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ +[Ll]ogs/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUnit +*.VisualState.xml +TestResult.xml +nunit-*.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ + +# ASP.NET Scaffolding +ScaffoldingReadMe.txt + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_h.h +*.meta +*.iobj +*.ipdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*_wpftmp.csproj +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Coverlet is a free, cross platform Code Coverage Tool +coverage*[.json, .xml, .info] + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# NuGet Symbol Packages +*.snupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx +*.appxbundle +*.appxupload + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!?*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser +*- [Bb]ackup.rdl +*- [Bb]ackup ([0-9]).rdl +*- [Bb]ackup ([0-9][0-9]).rdl + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# BeatPulse healthcheck temp database +healthchecksdb + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 +MigrationBackup/ + +# Ionide (cross platform F# VS Code tools) working folder +.ionide/ + +# Fody - auto-generated XML schema +FodyWeavers.xsd + +# End of https://www.toptal.com/developers/gitignore/api/intellij+all,visualstudio,visualstudiocode,c++,c,cmake,python \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..5a5d7a6 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,11 @@ +cmake_minimum_required(VERSION 3.5) +project(easy_encryption) + +option(EASY_ENCRYPTION_EXAMPLES "Build examples?" ON) + +add_library(${PROJECT_NAME} src/base64/Base64.cc src/vigenere/Vigenere.cc src/EasyEncryption.cc) +target_include_directories(${PROJECT_NAME} PRIVATE ${SRC_DIR}) + +if(EASY_ENCRYPTION_EXAMPLES) + add_subdirectory(examples) +endif() diff --git a/README.md b/README.md index 40774a9..daa71ea 100644 --- a/README.md +++ b/README.md @@ -20,15 +20,19 @@ The reason why we apply b64 encode BEFORE Vigenere is because it's very easy for ## API ### C++ +- **Header** _(Always include this when you want to encrypt/decrypt something.)_ +```c++ +#include "/EasyEncryption.h" +``` - **Encrypt message** ```c++ -std::string encrypt(std::string& msg, std::string& key) +std::string EasyEncryption::encrypt(const std::string &encryptedString, const std::string &key) ``` - **Decrypt message** ```c++ -std::string decrypt(std::string& encrypted_msg, std::string& key) +std::string EasyEncryption::decrypt(const std::string &encryptedString, const std::string &key) ``` ### Python @@ -44,24 +48,11 @@ wrapper.decrypt(encrypted_message, key): returns decrypted message ``` ## Compilation and execution -```bash -g++ cl.cpp -./a.out "Hello world" MYPRIVATEKEY 0 -``` - -The encrypted message is: `ttz9JqxZHBClNtu=`. - -```bash -./a.out ttz9JqxZHBClNtu= MYPRIVATEKEY 1 -``` - -The decrypted message is `Hello world`. +To compile this project, just add the files that are inside the "src" into your project, then give import to them and the magic happens! ## Python wrapper - +To run it in Python, you need to compile the example that is located in "examples/application.cpp". ```bash -rm a.out -g++ cl.cpp python3 wrapper.py ``` @@ -69,33 +60,28 @@ python3 wrapper.py ### Source code ```c++ -#include -#include -#include #include -#include -#include -#include "encrypt.h" +#include "EasyEncryption.h" -using namespace std; +using namespace easy::encryption; int main() { - // std::string msg = "HELLO WORLD"; - std::string msg = "{\"id\":1,\"method\":\"service.subscribe\",\"params\":[\"myapp/0.1c\", null,\"0.0.0.0\",\"80\"]}"; - std::string key = "THISISMYKEY"; - std::cout << " message to send: " << msg << std::endl; - std::string encrypted_msg = encrypt(msg, key); - std::cout << "encrypted message: " << encrypted_msg << std::endl; - std::string decrypted_msg = decrypt(encrypted_msg, key); - std::cout << "decrypted message: " << decrypted_msg << std::endl; + std::string msg = "{\"id\":1,\"method\":\"service.subscribe\",\"params\":[\"myapp/0.1c\", null,\"0.0.0.0\",\"80\"]}"; + std::string key = "THISISMYKEY"; + + std::cout << " message to send: " << msg << std::endl; + std::string encrypted_msg = EasyEncryption::encrypt(msg, key); + std::cout << "encrypted message: " << encrypted_msg << std::endl; + std::string decrypted_msg = EasyEncryption::decrypt(encrypted_msg, key); + std::cout << "decrypted message: " << decrypted_msg << std::endl; + return 0; } - ``` ### Output ``` message to send: {"id":1,"method":"service.subscribe","params":["myapp/0.1c", null,"0.0.0.0","80"]} -encrypted message: X5g7wjjTllj1ItCxShWUb77PKJsfP VNMAB7VtqaLCccGTr0ijkjxqw0IutQvXfSFK4OKo8cnpD1Lge0pdMCZf0fqQ8bjjFjkNn1h pBtdwNJD== +encrypted message: DBmhuTQWQNRFuT5DAPx4IkIYWOsM1M5vf4ecbTwgFginA0SEnTqRWp5eutYZZ9P2regxWvIkSZH5FNL8WLphgN4PXyIKOTJRpvYFmJWFYN5ytB== decrypted message: {"id":1,"method":"service.subscribe","params":["myapp/0.1c", null,"0.0.0.0","80"]} ``` diff --git a/b64.h b/b64.h deleted file mode 100644 index 3dfa854..0000000 --- a/b64.h +++ /dev/null @@ -1,47 +0,0 @@ -#include -#include -#include -#include - -using namespace std; - - -static std::string base64_encode(const std::string &in) { - - std::string out; - - int val=0, valb=-6; - for (int jj = 0; jj < in.size(); jj++) { - char c = in[jj]; - val = (val<<8) + c; - valb += 8; - while (valb>=0) { - out.push_back("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(val>>valb)&0x3F]); - valb-=6; - } - } - if (valb>-6) out.push_back("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[((val<<8)>>(valb+8))&0x3F]); - while (out.size()%4) out.push_back('='); - return out; -} - -static std::string base64_decode(const std::string &in) { - - std::string out; - - std::vector T(256,-1); - for (int i=0; i<64; i++) T["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[i]] = i; - - int val=0, valb=-8; - for (int jj = 0; jj < in.size(); jj++) { - char c = in[jj]; - if (T[c] == -1) break; - val = (val<<6) + T[c]; - valb += 6; - if (valb>=0) { - out.push_back(char((val>>valb)&0xFF)); - valb-=8; - } - } - return out; -} diff --git a/cl.cpp b/cl.cpp deleted file mode 100644 index 8dfe187..0000000 --- a/cl.cpp +++ /dev/null @@ -1,31 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include "encrypt.h" - -using namespace std; - -int main(int argc, char** argv) { - - if(argc != 4) { - std::cout << "Usage: ./a.out message key (0:encrypt|1:decrypt)" << std::endl; - std::cout << "./a.out \"Hello world\" MYPRIVATEKEY 0" << std::endl; - std::cout << "./a.out ttz9JqxZHBClNtu= MYPRIVATEKEY 1" << std::endl; - return -1; - } - - std::string msg = argv[1]; - std::string key = argv[2]; - int encrypt_flag = atoi(argv[3]); - - if(encrypt_flag == 0) { - std::cout << encrypt(msg, key) << std::endl; - } else { - std::cout << decrypt(msg, key) << std::endl; - } - - return 0; -} diff --git a/encrypt.h b/encrypt.h deleted file mode 100644 index ca0128d..0000000 --- a/encrypt.h +++ /dev/null @@ -1,17 +0,0 @@ -#include "b64.h" -#include "vigenere.h" - -std::string encrypt(std::string& msg, std::string& key) { - std::string b64_str = base64_encode(msg); - std::string vigenere_msg = encrypt_vigenere(b64_str, key); - // std::cout << vigenere_msg << std::endl; - return vigenere_msg; -} - - -std::string decrypt(std::string& encrypted_msg, std::string& key) { - std::string newKey = extend_key(encrypted_msg, key); - std::string b64_encoded_str = decrypt_vigenere(encrypted_msg, newKey); - std::string b64_decode_str = base64_decode(b64_encoded_str); - return b64_decode_str; -} \ No newline at end of file diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt new file mode 100644 index 0000000..7347264 --- /dev/null +++ b/examples/CMakeLists.txt @@ -0,0 +1,3 @@ +cmake_minimum_required(VERSION 3.5) + +project(easy_encryption_examples) diff --git a/examples/application.cpp b/examples/application.cpp new file mode 100644 index 0000000..d3202f0 --- /dev/null +++ b/examples/application.cpp @@ -0,0 +1,27 @@ +#include +#include "../src/EasyEncryption.h" + +using namespace easy::encryption; + +int main(int argc, char **argv) { + + if (argc != 4) { + std::cout << "Usage: ./a.out message key (0:encrypt|1:decrypt)" << std::endl; + std::cout << "./a.out \"Hello world\" MYPRIVATEKEY 0" << std::endl; + std::cout << "./a.out ttz9JqxZHBClNtu= MYPRIVATEKEY 1" << std::endl; + + return -1; + } + + std::string msg = argv[1]; + std::string key = argv[2]; + int encrypt_flag = atoi(argv[3]); + + if (encrypt_flag == 0) { + std::cout << EasyEncryption::encrypt(msg, key) << std::endl; + } else { + std::cout << EasyEncryption::decrypt(msg, key) << std::endl; + } + + return 0; +} diff --git a/main.cpp b/examples/main.cpp similarity index 58% rename from main.cpp rename to examples/main.cpp index 4c92cbd..930943e 100644 --- a/main.cpp +++ b/examples/main.cpp @@ -1,21 +1,17 @@ -#include -#include -#include #include -#include -#include -#include "encrypt.h" +#include "../src/EasyEncryption.h" -using namespace std; +using namespace easy::encryption; int main() { - // std::string msg = "HELLO WORLD"; std::string msg = "{\"id\":1,\"method\":\"service.subscribe\",\"params\":[\"myapp/0.1c\", null,\"0.0.0.0\",\"80\"]}"; std::string key = "THISISMYKEY"; + std::cout << " message to send: " << msg << std::endl; - std::string encrypted_msg = encrypt(msg, key); + std::string encrypted_msg = EasyEncryption::encrypt(msg, key); std::cout << "encrypted message: " << encrypted_msg << std::endl; - std::string decrypted_msg = decrypt(encrypted_msg, key); + std::string decrypted_msg = EasyEncryption::decrypt(encrypted_msg, key); std::cout << "decrypted message: " << decrypted_msg << std::endl; + return 0; } diff --git a/examples/main_base64.cpp b/examples/main_base64.cpp new file mode 100644 index 0000000..d6212c0 --- /dev/null +++ b/examples/main_base64.cpp @@ -0,0 +1,18 @@ +#include +#include "../src/base64//Base64.h" + +using namespace easy::encryption::base64; + +int main() { + // Base64 encoding + std::string msg = "HELLO WORLD"; + + std::string encodedMsg = Base64::encode(msg); + std::string decodedMsg = Base64::decode(encodedMsg); + + std::cout << "Original Message : " << msg << std::endl; + std::cout << "Enc Base64 Msg : " << encodedMsg << std::endl; + std::cout << "Dec Base64 Msg : " << decodedMsg << std::endl; + + return 0; +} diff --git a/main_vigenere.cpp b/examples/main_vigenere.cpp similarity index 58% rename from main_vigenere.cpp rename to examples/main_vigenere.cpp index 6fc8e7f..6e0b9ab 100644 --- a/main_vigenere.cpp +++ b/examples/main_vigenere.cpp @@ -1,23 +1,16 @@ -#include -#include -#include #include -#include -#include -#include "vigenere.h" -#include "b64.h" +#include "../src/vigenere/Vigenere.h" -using namespace std; +using namespace easy::encryption::vigenere; int main() { - // Vigenere encoding - std::string msg = "HELLO WORLD"; std::string key = "THISISALONGPRIVATEKEY"; - std::string encryptedMsg = encrypt_vigenere(msg, key); - std::string newKey = extend_key(msg, key); - std::string decryptedMsg = decrypt_vigenere(encryptedMsg, newKey); + + std::string encryptedMsg = Vigenere::encrypt(msg, key); + std::string newKey = Vigenere::extend_key(msg, key); + std::string decryptedMsg = Vigenere::decrypt(encryptedMsg, newKey); std::cout << "Original Message : " << msg << std::endl; std::cout << "Key : " << key << std::endl; diff --git a/src/EasyEncryption.cc b/src/EasyEncryption.cc new file mode 100644 index 0000000..7db626a --- /dev/null +++ b/src/EasyEncryption.cc @@ -0,0 +1,23 @@ +#include "EasyEncryption.h" + +using namespace easy::encryption; + +std::string EasyEncryption::encrypt(const std::string &decryptedString, const std::string &key) { + // Encrypt first as Base64 + const std::string b64_encoded_str = Base64::encode(decryptedString); + + // Last encryption, vigenere + std::string vigenere_encoded_str = Vigenere::encrypt(b64_encoded_str, key); + + return vigenere_encoded_str; +} + +std::string EasyEncryption::decrypt(const std::string &encryptedString, const std::string &key) { + // Decrypt firstly, the vigenere + const std::string vigenere_decoded_str = Vigenere::decrypt(encryptedString, key); + + // Then decrypt the base 64 + std::string b64_decoded_str = Base64::decode(vigenere_decoded_str); + + return b64_decoded_str; +} diff --git a/src/EasyEncryption.h b/src/EasyEncryption.h new file mode 100644 index 0000000..afd0e85 --- /dev/null +++ b/src/EasyEncryption.h @@ -0,0 +1,14 @@ +#pragma once + +#include "base64/Base64.h" +#include "vigenere/Vigenere.h" + +using namespace easy::encryption::base64; +using namespace easy::encryption::vigenere; +namespace easy::encryption { + class EasyEncryption { + public: + static std::string encrypt(const std::string &decryptedString, const std::string &key); + static std::string decrypt(const std::string &encryptedString, const std::string &key); + }; +} diff --git a/src/EasyEncryptionConsts.h b/src/EasyEncryptionConsts.h new file mode 100644 index 0000000..14bd97d --- /dev/null +++ b/src/EasyEncryptionConsts.h @@ -0,0 +1,8 @@ +#pragma once + +#include +#include +#include + +constexpr int AVAILABLE_CHARS_SIZE = 63; +constexpr char AVAILABLE_CHARS[AVAILABLE_CHARS_SIZE] = "0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz"; diff --git a/src/base64/Base64.cc b/src/base64/Base64.cc new file mode 100644 index 0000000..41c80fd --- /dev/null +++ b/src/base64/Base64.cc @@ -0,0 +1,50 @@ +#include "Base64.h" + +using namespace easy::encryption::base64; + +std::string Base64::encode(const std::string &in) { + std::string out; + int valA = 0, valB = -6; + + for (char c : in) { + valA = (valA << 8) + c; + valB += 8; + + while (valB >= 0) { + out.push_back(AVAILABLE_CHARS[(valA >> valB) & 0x3F]); + valB -= 6; + } + } + + if (valB > -6) + out.push_back(AVAILABLE_CHARS[((valA << 8) >> (valB + 8)) & 0x3F]); + + while (out.size() % 4) + out.push_back('='); + + return out; +} + +std::string Base64::decode(const std::string &in) { + std::string out; + std::vector T(256, -1); + + for (int i = 0; i < AVAILABLE_CHARS_SIZE; i++) + T[AVAILABLE_CHARS[i]] = i; + + int valA = 0, valB = -8; + for (char c : in) { + if (T[c] == -1) + break; + + valA = (valA << 6) + T[c]; + valB += 6; + + if (valB >= 0) { + out.push_back(char((valA >> valB) & 0xFF)); + valB -= 8; + } + } + + return out; +} diff --git a/src/base64/Base64.h b/src/base64/Base64.h new file mode 100644 index 0000000..c22ed8d --- /dev/null +++ b/src/base64/Base64.h @@ -0,0 +1,11 @@ +#pragma once + +#include "../EasyEncryptionConsts.h" + +namespace easy::encryption::base64 { + class Base64 { + public: + static std::string encode(const std::string &in); + static std::string decode(const std::string &in); + }; +} diff --git a/src/vigenere/Vigenere.cc b/src/vigenere/Vigenere.cc new file mode 100644 index 0000000..8c1f904 --- /dev/null +++ b/src/vigenere/Vigenere.cc @@ -0,0 +1,51 @@ +#include "Vigenere.h" + +using namespace easy::encryption::vigenere; + +int Vigenere::index(char c) { + for (int i = 0; i < AVAILABLE_CHARS_SIZE; i++) + if (AVAILABLE_CHARS[i] == c) + return i; + return -1; +} + +std::string Vigenere::extend_key(const std::string &string, const std::string &key) { + int i, j, stringLen = string.size(), keyLen = key.size(); + std::string newKey(stringLen, 'x'); + + // Generating new key + for (i = 0, j = 0; i < stringLen; ++i, ++j) { + if (j == keyLen) j = 0; + newKey[i] = key[j]; + } + + newKey[i] = '\0'; + + return newKey; +} + +std::string Vigenere::encrypt(const std::string &decryptedString, const std::string &key) { + int i, decryptedStringLen = decryptedString.size(); + std::string encryptedString(decryptedStringLen, 'x'); + std::string newKey = extend_key(decryptedString, key); + + // Encryption + for (i = 0; i < decryptedStringLen; ++i) + encryptedString[i] = isalnum(decryptedString[i]) or decryptedString[i] == ' ' ? AVAILABLE_CHARS[((index(decryptedString[i]) + index(newKey[i])) % AVAILABLE_CHARS_SIZE)] : decryptedString[i]; + encryptedString[i] = '\0'; + + return encryptedString; +} + +std::string Vigenere::decrypt(const std::string &encryptedString, const std::string &key) { + int i, encryptedStringLen = encryptedString.size(); + std::string decryptedString(encryptedStringLen, 'x'); + std::string newKey = extend_key(encryptedString, key); + + // Decryption + for (i = 0; i < encryptedStringLen; ++i) + decryptedString[i] = isalnum(encryptedString[i]) or encryptedString[i] == ' ' ? AVAILABLE_CHARS[(((index(encryptedString[i]) - index(newKey[i])) + AVAILABLE_CHARS_SIZE) % AVAILABLE_CHARS_SIZE)] : encryptedString[i]; + decryptedString[i] = '\0'; + + return decryptedString; +} diff --git a/src/vigenere/Vigenere.h b/src/vigenere/Vigenere.h new file mode 100644 index 0000000..003785c --- /dev/null +++ b/src/vigenere/Vigenere.h @@ -0,0 +1,14 @@ +#pragma once + +#include "../EasyEncryptionConsts.h" + +namespace easy::encryption::vigenere { + class Vigenere { + public: + static std::string extend_key(const std::string &string, const std::string &key); + static std::string encrypt(const std::string &decryptedString, const std::string &key); + static std::string decrypt(const std::string &encryptedString, const std::string &key); + private: + static int index(char c); + }; +} diff --git a/vigenere.h b/vigenere.h deleted file mode 100644 index ba26628..0000000 --- a/vigenere.h +++ /dev/null @@ -1,75 +0,0 @@ -#include -#include -#include -#include -#include -#include - -using namespace std; - -std::string AVAILABLE_CHARS = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 "; - -int index(char c) { - for(int ii = 0; ii < AVAILABLE_CHARS.size(); ii++) { - if(AVAILABLE_CHARS[ii] == c) { - // std::cout << ii << " " << c << std::endl; - return ii; - } - } - return -1; -} - - -std::string extend_key(std::string& msg, std::string& key) { - //generating new key - int msgLen = msg.size(); - std::string newKey(msgLen, 'x'); - int keyLen = key.size(), i, j; - for(i = 0, j = 0; i < msgLen; ++i, ++j){ - if(j == keyLen) - j = 0; - - newKey[i] = key[j]; - } - newKey[i] = '\0'; - return newKey; -} - - -std::string encrypt_vigenere(std::string& msg, std::string& key) { - int msgLen = msg.size(), keyLen = key.size(), i, j; - std::string encryptedMsg(msgLen, 'x'); - // char newKey[msgLen], encryptedMsg[msgLen], decryptedMsg[msgLen]; - - std::string newKey = extend_key(msg, key); - - //encryption - for(i = 0; i < msgLen; ++i) { - // std::cout << msg[i] << " " << isalnum(msg[i]) << std::endl; - if(isalnum(msg[i]) or msg[i] == ' ') { - encryptedMsg[i] = AVAILABLE_CHARS[((index(msg[i]) + index(newKey[i])) % AVAILABLE_CHARS.size())]; - } else { - encryptedMsg[i] = msg[i]; - } - } - - encryptedMsg[i] = '\0'; - return encryptedMsg; -} - -std::string decrypt_vigenere(std::string& encryptedMsg, std::string& newKey) { - // decryption - int msgLen = encryptedMsg.size(); - std::string decryptedMsg(msgLen, 'x'); - int i; - for(i = 0; i < msgLen; ++i) { - if(isalnum(encryptedMsg[i]) or encryptedMsg[i] == ' ') { - decryptedMsg[i] = AVAILABLE_CHARS[(((index(encryptedMsg[i]) - index(newKey[i])) + AVAILABLE_CHARS.size()) % AVAILABLE_CHARS.size())]; - } else { - decryptedMsg[i] = encryptedMsg[i]; - } - } - decryptedMsg[i] = '\0'; - return decryptedMsg; -} - diff --git a/wrapper.py b/wrapper.py index 4796120..f740e5e 100644 --- a/wrapper.py +++ b/wrapper.py @@ -1,13 +1,10 @@ import subprocess - def decrypt(message, key): - return subprocess.check_output(['./a.out', message, key, "1"]).decode('utf8').strip() - + return subprocess.check_output(['./application.out', message, key, "1"]).decode('utf8').strip() def encrypt(message, key): - return subprocess.check_output(['./a.out', message, key, "0"]).decode('utf8').strip() - + return subprocess.check_output(['./application.out', message, key, "0"]).decode('utf8').strip() if __name__ == '__main__': original_msg = 'Hello world' From cea8598c41e62bc2be81459745f7997ab69e89ce Mon Sep 17 00:00:00 2001 From: 0rangeFox Date: Mon, 19 Apr 2021 12:00:35 +0100 Subject: [PATCH 02/14] Separate the array of characters for each encryption. --- src/EasyEncryptionConsts.h | 7 +++++-- src/base64/Base64.cc | 8 ++++---- src/vigenere/Vigenere.cc | 8 ++++---- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/EasyEncryptionConsts.h b/src/EasyEncryptionConsts.h index 14bd97d..036da7e 100644 --- a/src/EasyEncryptionConsts.h +++ b/src/EasyEncryptionConsts.h @@ -4,5 +4,8 @@ #include #include -constexpr int AVAILABLE_CHARS_SIZE = 63; -constexpr char AVAILABLE_CHARS[AVAILABLE_CHARS_SIZE] = "0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz"; +constexpr int BASE64_AVAILABLE_CHARS_SIZE = 65; +constexpr char BASE64_AVAILABLE_CHARS[BASE64_AVAILABLE_CHARS_SIZE] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/"; + +constexpr int VIGENERE_AVAILABLE_CHARS_SIZE = 63; +constexpr char VIGENERE_AVAILABLE_CHARS[VIGENERE_AVAILABLE_CHARS_SIZE] = "0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz"; diff --git a/src/base64/Base64.cc b/src/base64/Base64.cc index 41c80fd..2d82eb4 100644 --- a/src/base64/Base64.cc +++ b/src/base64/Base64.cc @@ -11,13 +11,13 @@ std::string Base64::encode(const std::string &in) { valB += 8; while (valB >= 0) { - out.push_back(AVAILABLE_CHARS[(valA >> valB) & 0x3F]); + out.push_back(BASE64_AVAILABLE_CHARS[(valA >> valB) & 0x3F]); valB -= 6; } } if (valB > -6) - out.push_back(AVAILABLE_CHARS[((valA << 8) >> (valB + 8)) & 0x3F]); + out.push_back(BASE64_AVAILABLE_CHARS[((valA << 8) >> (valB + 8)) & 0x3F]); while (out.size() % 4) out.push_back('='); @@ -29,8 +29,8 @@ std::string Base64::decode(const std::string &in) { std::string out; std::vector T(256, -1); - for (int i = 0; i < AVAILABLE_CHARS_SIZE; i++) - T[AVAILABLE_CHARS[i]] = i; + for (int i = 0; i < BASE64_AVAILABLE_CHARS_SIZE; i++) + T[BASE64_AVAILABLE_CHARS[i]] = i; int valA = 0, valB = -8; for (char c : in) { diff --git a/src/vigenere/Vigenere.cc b/src/vigenere/Vigenere.cc index 8c1f904..a165ac8 100644 --- a/src/vigenere/Vigenere.cc +++ b/src/vigenere/Vigenere.cc @@ -3,8 +3,8 @@ using namespace easy::encryption::vigenere; int Vigenere::index(char c) { - for (int i = 0; i < AVAILABLE_CHARS_SIZE; i++) - if (AVAILABLE_CHARS[i] == c) + for (int i = 0; i < VIGENERE_AVAILABLE_CHARS_SIZE; i++) + if (VIGENERE_AVAILABLE_CHARS[i] == c) return i; return -1; } @@ -31,7 +31,7 @@ std::string Vigenere::encrypt(const std::string &decryptedString, const std::str // Encryption for (i = 0; i < decryptedStringLen; ++i) - encryptedString[i] = isalnum(decryptedString[i]) or decryptedString[i] == ' ' ? AVAILABLE_CHARS[((index(decryptedString[i]) + index(newKey[i])) % AVAILABLE_CHARS_SIZE)] : decryptedString[i]; + encryptedString[i] = isalnum(decryptedString[i]) or decryptedString[i] == ' ' ? VIGENERE_AVAILABLE_CHARS[((index(decryptedString[i]) + index(newKey[i])) % VIGENERE_AVAILABLE_CHARS_SIZE)] : decryptedString[i]; encryptedString[i] = '\0'; return encryptedString; @@ -44,7 +44,7 @@ std::string Vigenere::decrypt(const std::string &encryptedString, const std::str // Decryption for (i = 0; i < encryptedStringLen; ++i) - decryptedString[i] = isalnum(encryptedString[i]) or encryptedString[i] == ' ' ? AVAILABLE_CHARS[(((index(encryptedString[i]) - index(newKey[i])) + AVAILABLE_CHARS_SIZE) % AVAILABLE_CHARS_SIZE)] : encryptedString[i]; + decryptedString[i] = isalnum(encryptedString[i]) or encryptedString[i] == ' ' ? VIGENERE_AVAILABLE_CHARS[(((index(encryptedString[i]) - index(newKey[i])) + VIGENERE_AVAILABLE_CHARS_SIZE) % VIGENERE_AVAILABLE_CHARS_SIZE)] : encryptedString[i]; decryptedString[i] = '\0'; return decryptedString; From 56807e755cb193d13823bc86e110a87281a3b42a Mon Sep 17 00:00:00 2001 From: 0rangeFox Date: Tue, 20 Apr 2021 19:57:39 +0100 Subject: [PATCH 03/14] Small improvements and add compatibility for versions below C++17. --- src/EasyEncryption.h | 14 ++++++++------ src/base64/Base64.h | 16 ++++++++++------ src/vigenere/Vigenere.cc | 9 ++++++--- src/vigenere/Vigenere.h | 22 +++++++++++++--------- 4 files changed, 37 insertions(+), 24 deletions(-) diff --git a/src/EasyEncryption.h b/src/EasyEncryption.h index afd0e85..b141451 100644 --- a/src/EasyEncryption.h +++ b/src/EasyEncryption.h @@ -5,10 +5,12 @@ using namespace easy::encryption::base64; using namespace easy::encryption::vigenere; -namespace easy::encryption { - class EasyEncryption { - public: - static std::string encrypt(const std::string &decryptedString, const std::string &key); - static std::string decrypt(const std::string &encryptedString, const std::string &key); - }; +namespace easy { + namespace encryption { + class EasyEncryption { + public: + static std::string encrypt(const std::string &decryptedString, const std::string &key); + static std::string decrypt(const std::string &encryptedString, const std::string &key); + }; + } } diff --git a/src/base64/Base64.h b/src/base64/Base64.h index c22ed8d..81d5149 100644 --- a/src/base64/Base64.h +++ b/src/base64/Base64.h @@ -2,10 +2,14 @@ #include "../EasyEncryptionConsts.h" -namespace easy::encryption::base64 { - class Base64 { - public: - static std::string encode(const std::string &in); - static std::string decode(const std::string &in); - }; +namespace easy { + namespace encryption { + namespace base64 { + class Base64 { + public: + static std::string encode(const std::string &in); + static std::string decode(const std::string &in); + }; + } + } } diff --git a/src/vigenere/Vigenere.cc b/src/vigenere/Vigenere.cc index a165ac8..ff9d99b 100644 --- a/src/vigenere/Vigenere.cc +++ b/src/vigenere/Vigenere.cc @@ -10,7 +10,8 @@ int Vigenere::index(char c) { } std::string Vigenere::extend_key(const std::string &string, const std::string &key) { - int i, j, stringLen = string.size(), keyLen = key.size(); + int i, j; + uint64_t stringLen = string.size(), keyLen = key.size(); std::string newKey(stringLen, 'x'); // Generating new key @@ -25,7 +26,8 @@ std::string Vigenere::extend_key(const std::string &string, const std::string &k } std::string Vigenere::encrypt(const std::string &decryptedString, const std::string &key) { - int i, decryptedStringLen = decryptedString.size(); + int i; + uint64_t decryptedStringLen = decryptedString.size(); std::string encryptedString(decryptedStringLen, 'x'); std::string newKey = extend_key(decryptedString, key); @@ -38,7 +40,8 @@ std::string Vigenere::encrypt(const std::string &decryptedString, const std::str } std::string Vigenere::decrypt(const std::string &encryptedString, const std::string &key) { - int i, encryptedStringLen = encryptedString.size(); + int i; + uint64_t encryptedStringLen = encryptedString.size(); std::string decryptedString(encryptedStringLen, 'x'); std::string newKey = extend_key(encryptedString, key); diff --git a/src/vigenere/Vigenere.h b/src/vigenere/Vigenere.h index 003785c..737fd45 100644 --- a/src/vigenere/Vigenere.h +++ b/src/vigenere/Vigenere.h @@ -2,13 +2,17 @@ #include "../EasyEncryptionConsts.h" -namespace easy::encryption::vigenere { - class Vigenere { - public: - static std::string extend_key(const std::string &string, const std::string &key); - static std::string encrypt(const std::string &decryptedString, const std::string &key); - static std::string decrypt(const std::string &encryptedString, const std::string &key); - private: - static int index(char c); - }; +namespace easy { + namespace encryption { + namespace vigenere { + class Vigenere { + public: + static std::string extend_key(const std::string &string, const std::string &key); + static std::string encrypt(const std::string &decryptedString, const std::string &key); + static std::string decrypt(const std::string &encryptedString, const std::string &key); + private: + static int index(char c); + }; + } + } } From b12c25aee3ebf83c23c399938eda8975c4fb1de9 Mon Sep 17 00:00:00 2001 From: 0rangeFox Date: Wed, 21 Apr 2021 01:29:50 +0100 Subject: [PATCH 04/14] Fixed the encryption bug that sometimes fetched a 0x0 after the Vigenere character conversion, and then when decrypting it wouldn't do the rest, and changed all characters to hexadecimal. --- src/vigenere/Vigenere.cc | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/vigenere/Vigenere.cc b/src/vigenere/Vigenere.cc index ff9d99b..d6003a5 100644 --- a/src/vigenere/Vigenere.cc +++ b/src/vigenere/Vigenere.cc @@ -12,7 +12,7 @@ int Vigenere::index(char c) { std::string Vigenere::extend_key(const std::string &string, const std::string &key) { int i, j; uint64_t stringLen = string.size(), keyLen = key.size(); - std::string newKey(stringLen, 'x'); + std::string newKey(stringLen, 0x78); // Generating new key for (i = 0, j = 0; i < stringLen; ++i, ++j) { @@ -20,7 +20,7 @@ std::string Vigenere::extend_key(const std::string &string, const std::string &k newKey[i] = key[j]; } - newKey[i] = '\0'; + newKey[i] = 0x0; return newKey; } @@ -28,13 +28,13 @@ std::string Vigenere::extend_key(const std::string &string, const std::string &k std::string Vigenere::encrypt(const std::string &decryptedString, const std::string &key) { int i; uint64_t decryptedStringLen = decryptedString.size(); - std::string encryptedString(decryptedStringLen, 'x'); std::string newKey = extend_key(decryptedString, key); + std::string encryptedString(decryptedStringLen, 0x78); // Encryption for (i = 0; i < decryptedStringLen; ++i) - encryptedString[i] = isalnum(decryptedString[i]) or decryptedString[i] == ' ' ? VIGENERE_AVAILABLE_CHARS[((index(decryptedString[i]) + index(newKey[i])) % VIGENERE_AVAILABLE_CHARS_SIZE)] : decryptedString[i]; - encryptedString[i] = '\0'; + encryptedString[i] = (isalnum(decryptedString[i]) || decryptedString[i] == 0x20) && decryptedString[i] != 0x30 ? VIGENERE_AVAILABLE_CHARS[((index(decryptedString[i]) + index(newKey[i])) % VIGENERE_AVAILABLE_CHARS_SIZE)] : decryptedString[i]; + encryptedString[i] = 0x0; return encryptedString; } @@ -42,13 +42,13 @@ std::string Vigenere::encrypt(const std::string &decryptedString, const std::str std::string Vigenere::decrypt(const std::string &encryptedString, const std::string &key) { int i; uint64_t encryptedStringLen = encryptedString.size(); - std::string decryptedString(encryptedStringLen, 'x'); std::string newKey = extend_key(encryptedString, key); + std::string decryptedString(encryptedStringLen, 0x78); // Decryption for (i = 0; i < encryptedStringLen; ++i) - decryptedString[i] = isalnum(encryptedString[i]) or encryptedString[i] == ' ' ? VIGENERE_AVAILABLE_CHARS[(((index(encryptedString[i]) - index(newKey[i])) + VIGENERE_AVAILABLE_CHARS_SIZE) % VIGENERE_AVAILABLE_CHARS_SIZE)] : encryptedString[i]; - decryptedString[i] = '\0'; + decryptedString[i] = isalnum(encryptedString[i]) || encryptedString[i] == 0x20 ? VIGENERE_AVAILABLE_CHARS[(((index(encryptedString[i]) - index(newKey[i])) + VIGENERE_AVAILABLE_CHARS_SIZE) % VIGENERE_AVAILABLE_CHARS_SIZE)] : encryptedString[i]; + decryptedString[i] = 0x0; return decryptedString; } From cd833939d5969cf72b034ee0be5c9dcfc057f21c Mon Sep 17 00:00:00 2001 From: 0rangeFox Date: Wed, 21 Apr 2021 02:19:20 +0100 Subject: [PATCH 05/14] Update README. --- README.md | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 85d4f6d..16e9621 100644 --- a/README.md +++ b/README.md @@ -1,21 +1,19 @@ # Easy Encryption -A very simple standalone C++ module (API) to obfuscate/deobfuscate strings based on B64 and Vigenere ciper (symmetric cipher). +A very simple standalone C++11 library to obfuscate/deobfuscate strings based on Base64 and Vigenere cipher (Symmetric cipher). **DISCLAIMER: This encryption is NOT secure and can be used as a "cheap way" to obfuscate some messages in a communication channel. If you need a solid and unbreakable encryption, please use a widely adopted standard and well researched cipher like AES-GCM.** You can find more information there: [pyca](https://github.com/pyca/cryptography). - It works as follows: - -- Alice encodes in base64 the message, then uses the Vigenere private key to encrypt the message. +- Alice encodes in Base64 the message, then uses the Vigenere private key to encrypt the message. - The encrypted message is sent through an unsecured channel. -- Bob gets the message and decrypts it with the Vigenere private key. He then decodes it with base64. +- Bob gets the message and decrypts it with the Vigenere private key, and then decodes it with Base64. Diagram summary: -_______________________________________________________________________________________________________________ -**Message -> B64 ENCODE -> VIGENERE ENCRYPT -> encrypted message -> VIGENERE DECRYPT -> B64 DECODE -> Message** -_______________________________________________________________________________________________________________ +___ +**Message -> Base64 ENCODE -> Vigenere ENCRYPT -> Encrypted Message -> Vigenere DECRYPT -> Base64 DECODE -> Message** +___ -The reason why we apply b64 encode BEFORE Vigenere is because it's very easy for somebody to apply a b64 decode and see about the structure of the message. For example, if we send `{"hello":123}`, an attacker can sniff the message, b64 decode the message and get `{"qsggn":ygf}`. Of course the attacker still needs the Vigenere cipher key, but at least, he can get a pretty clear idea that JSON format messages are sent in the communication channel. The way to avoid this is to encode first in b64 then encrypt it with the Vigenere key. If the attacker tries to b64 decode first, it will see a random string of weird characters. +The reason why we apply Base64 encode **BEFORE** Vigenere is because it's very easy for somebody to apply a Base64 decode and see about the structure of the message. For example, if we send `{"hello":123}`, an attacker can sniff the message, Base64 decode the message and get `{"qsggn":ygf}`. Of course the attacker still needs the Vigenere cipher key, but at least, he can get a pretty clear idea that JSON format messages are sent in the communication channel. The way to avoid this is to encode first in Base64 then encrypt it with the Vigenere key. If the attacker tries to Base64 decode first, it will see a random string of weird characters. ## API From 6d7ab8e57c5f161ee507dcfc15ae908ed3b9cd8f Mon Sep 17 00:00:00 2001 From: 0rangeFox Date: Fri, 30 Apr 2021 23:38:15 +0100 Subject: [PATCH 06/14] The project and its examples can now be compiled. --- CMakeLists.txt | 9 +++++---- examples/CMakeLists.txt | 7 +++++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5a5d7a6..6149805 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,11 +1,12 @@ -cmake_minimum_required(VERSION 3.5) +cmake_minimum_required(VERSION 3.19) project(easy_encryption) option(EASY_ENCRYPTION_EXAMPLES "Build examples?" ON) -add_library(${PROJECT_NAME} src/base64/Base64.cc src/vigenere/Vigenere.cc src/EasyEncryption.cc) -target_include_directories(${PROJECT_NAME} PRIVATE ${SRC_DIR}) +set(CMAKE_CXX_STANDARD 11) + +add_library(${PROJECT_NAME} SHARED src/base64/Base64.cc src/vigenere/Vigenere.cc src/EasyEncryption.cc) if(EASY_ENCRYPTION_EXAMPLES) add_subdirectory(examples) -endif() +endif(EASY_ENCRYPTION_EXAMPLES) diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 7347264..f2a860c 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -1,3 +1,6 @@ -cmake_minimum_required(VERSION 3.5) +link_libraries(${PROJECT_NAME}) -project(easy_encryption_examples) +add_executable(application application.cpp) +add_executable(application_main main.cpp) +add_executable(application_base64 main_base64.cpp) +add_executable(application_vigenere main_vigenere.cpp) From 760e6f9542bb41b714e615e93b6d4f8317c63acd Mon Sep 17 00:00:00 2001 From: 0rangeFox Date: Sat, 1 May 2021 00:04:40 +0100 Subject: [PATCH 07/14] Added workflows and changes on README. --- .github/workflows/linux-cmake.yml | 47 ++++++++++++++++++++++++++++ .github/workflows/macos-cmake.yml | 44 ++++++++++++++++++++++++++ .github/workflows/windows-cmake.yml | 47 ++++++++++++++++++++++++++++ README.md | 5 +++ banner.jpg | Bin 0 -> 603526 bytes 5 files changed, 143 insertions(+) create mode 100644 .github/workflows/linux-cmake.yml create mode 100644 .github/workflows/macos-cmake.yml create mode 100644 .github/workflows/windows-cmake.yml create mode 100644 banner.jpg diff --git a/.github/workflows/linux-cmake.yml b/.github/workflows/linux-cmake.yml new file mode 100644 index 0000000..ebefa49 --- /dev/null +++ b/.github/workflows/linux-cmake.yml @@ -0,0 +1,47 @@ +name: Linux CMake + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +env: + # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) + BUILD_TYPE: Release + +jobs: + build: + # The CMake configure and build commands are platform agnostic and should work equally + # well on Windows or Mac. You can convert this to a matrix build if you need + # cross-platform coverage. + # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix + # OS Supported: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-20.04, ubuntu-18.04, ubuntu-16.04] + + steps: + - uses: actions/checkout@v2 + + - name: Configure CMake + # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. + # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type + run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} + + - name: Build + # Build your program with the given configuration + run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} + + - name: Test + working-directory: ${{github.workspace}}/build + # Execute tests defined by the CMake configuration. + # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail + run: ctest -C ${{env.BUILD_TYPE}} + + - name: Upload a Build Artifact + uses: actions/upload-artifact@v2 + with: + name: Package + path: ${{github.workspace}}/build \ No newline at end of file diff --git a/.github/workflows/macos-cmake.yml b/.github/workflows/macos-cmake.yml new file mode 100644 index 0000000..91509d7 --- /dev/null +++ b/.github/workflows/macos-cmake.yml @@ -0,0 +1,44 @@ +name: macOS CMake + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +env: + # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) + BUILD_TYPE: Release + +jobs: + build: + # The CMake configure and build commands are platform agnostic and should work equally + # well on Windows or Mac. You can convert this to a matrix build if you need + # cross-platform coverage. + # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix + # OS Supported: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources + runs-on: macos-10.15 + + steps: + - uses: actions/checkout@v2 + + - name: Configure CMake + # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. + # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type + run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} + + - name: Build + # Build your program with the given configuration + run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} + + - name: Test + working-directory: ${{github.workspace}}/build + # Execute tests defined by the CMake configuration. + # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail + run: ctest -C ${{env.BUILD_TYPE}} + + - name: Upload a Build Artifact + uses: actions/upload-artifact@v2 + with: + name: Package + path: ${{github.workspace}}/build \ No newline at end of file diff --git a/.github/workflows/windows-cmake.yml b/.github/workflows/windows-cmake.yml new file mode 100644 index 0000000..5f5e893 --- /dev/null +++ b/.github/workflows/windows-cmake.yml @@ -0,0 +1,47 @@ +name: Windows CMake + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +env: + # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) + BUILD_TYPE: Release + +jobs: + build: + # The CMake configure and build commands are platform agnostic and should work equally + # well on Windows or Mac. You can convert this to a matrix build if you need + # cross-platform coverage. + # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix + # OS Supported: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [windows-2019, windows-2016] + + steps: + - uses: actions/checkout@v2 + + - name: Configure CMake + # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. + # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type + run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} + + - name: Build + # Build your program with the given configuration + run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} + + - name: Test + working-directory: ${{github.workspace}}/build + # Execute tests defined by the CMake configuration. + # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail + run: ctest -C ${{env.BUILD_TYPE}} + + - name: Upload a Build Artifact + uses: actions/upload-artifact@v2 + with: + name: Package + path: ${{github.workspace}}/build \ No newline at end of file diff --git a/README.md b/README.md index 16e9621..6093f98 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,8 @@ +![](banner.jpg) +[![](https://img.shields.io/github/workflow/status/philipperemy/easy-encryption/Windows%20CMake?label=Windows%20Build&logo=windows&logoColor=%23FFFFFF&style=flat-square)](https://github.com/philipperemy/easy-encryption/actions/workflows/windows-cmake.yml) +[![](https://img.shields.io/github/workflow/status/philipperemy/easy-encryption/Linux%20CMake?label=Linux%20Build&logo=linux&logoColor=%23FFFFFF&style=flat-square)](https://github.com/philipperemy/easy-encryption/actions/workflows/linux-cmake.yml) +[![](https://img.shields.io/github/workflow/status/philipperemy/easy-encryption/macOS%20CMake?label=macOS%20Build&logo=apple&logoColor=%23FFFFFF&style=flat-square)](https://github.com/philipperemy/easy-encryption/actions/workflows/macos-cmake.yml) + # Easy Encryption A very simple standalone C++11 library to obfuscate/deobfuscate strings based on Base64 and Vigenere cipher (Symmetric cipher). diff --git a/banner.jpg b/banner.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d0ab00a5bfc95a0d72525aa5687cf078c15ac7f5 GIT binary patch literal 603526 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
Iyafftc*5_qreZ!DcQn~G7kt)_sL!I2aZ4~0 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

+g22+f0h&Nu!ceFsw^ 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�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 a{%L^Y|3o+b@(1%<7yiErL$~}n^ Date: Sat, 1 May 2021 02:01:29 +0100 Subject: [PATCH 08/14] Fix Windows workflow. --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6149805..6aca06f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,7 +5,7 @@ option(EASY_ENCRYPTION_EXAMPLES "Build examples?" ON) set(CMAKE_CXX_STANDARD 11) -add_library(${PROJECT_NAME} SHARED src/base64/Base64.cc src/vigenere/Vigenere.cc src/EasyEncryption.cc) +add_library(${PROJECT_NAME} STATIC src/base64/Base64.cc src/vigenere/Vigenere.cc src/EasyEncryption.cc) if(EASY_ENCRYPTION_EXAMPLES) add_subdirectory(examples) From e38bc3791e3ff3c155f2171e3882b95823e2e191 Mon Sep 17 00:00:00 2001 From: 0rangeFox Date: Sat, 1 May 2021 02:20:16 +0100 Subject: [PATCH 09/14] Cleaning up some code. --- src/EasyEncryption.h | 4 ++-- src/base64/Base64.cc | 4 ++-- src/base64/Base64.h | 14 +++++++------- src/vigenere/Vigenere.cc | 23 ++++++++--------------- src/vigenere/Vigenere.h | 20 ++++++++++---------- 5 files changed, 29 insertions(+), 36 deletions(-) diff --git a/src/EasyEncryption.h b/src/EasyEncryption.h index b141451..8508468 100644 --- a/src/EasyEncryption.h +++ b/src/EasyEncryption.h @@ -3,14 +3,14 @@ #include "base64/Base64.h" #include "vigenere/Vigenere.h" -using namespace easy::encryption::base64; -using namespace easy::encryption::vigenere; namespace easy { namespace encryption { + class EasyEncryption { public: static std::string encrypt(const std::string &decryptedString, const std::string &key); static std::string decrypt(const std::string &encryptedString, const std::string &key); }; + } } diff --git a/src/base64/Base64.cc b/src/base64/Base64.cc index 2d82eb4..9b9be70 100644 --- a/src/base64/Base64.cc +++ b/src/base64/Base64.cc @@ -1,6 +1,6 @@ #include "Base64.h" -using namespace easy::encryption::base64; +using namespace easy::encryption; std::string Base64::encode(const std::string &in) { std::string out; @@ -20,7 +20,7 @@ std::string Base64::encode(const std::string &in) { out.push_back(BASE64_AVAILABLE_CHARS[((valA << 8) >> (valB + 8)) & 0x3F]); while (out.size() % 4) - out.push_back('='); + out.push_back(0x3D); return out; } diff --git a/src/base64/Base64.h b/src/base64/Base64.h index 81d5149..1d11612 100644 --- a/src/base64/Base64.h +++ b/src/base64/Base64.h @@ -4,12 +4,12 @@ namespace easy { namespace encryption { - namespace base64 { - class Base64 { - public: - static std::string encode(const std::string &in); - static std::string decode(const std::string &in); - }; - } + + class Base64 { + public: + static std::string encode(const std::string &in); + static std::string decode(const std::string &in); + }; + } } diff --git a/src/vigenere/Vigenere.cc b/src/vigenere/Vigenere.cc index d6003a5..a4fc1c7 100644 --- a/src/vigenere/Vigenere.cc +++ b/src/vigenere/Vigenere.cc @@ -1,6 +1,6 @@ #include "Vigenere.h" -using namespace easy::encryption::vigenere; +using namespace easy::encryption; int Vigenere::index(char c) { for (int i = 0; i < VIGENERE_AVAILABLE_CHARS_SIZE; i++) @@ -10,45 +10,38 @@ int Vigenere::index(char c) { } std::string Vigenere::extend_key(const std::string &string, const std::string &key) { - int i, j; uint64_t stringLen = string.size(), keyLen = key.size(); - std::string newKey(stringLen, 0x78); + std::string newKey(stringLen, 0x0); // Generating new key - for (i = 0, j = 0; i < stringLen; ++i, ++j) { + for (int i = 0, j = 0; i < stringLen; ++i, ++j) { if (j == keyLen) j = 0; newKey[i] = key[j]; } - newKey[i] = 0x0; - return newKey; } std::string Vigenere::encrypt(const std::string &decryptedString, const std::string &key) { - int i; uint64_t decryptedStringLen = decryptedString.size(); std::string newKey = extend_key(decryptedString, key); - std::string encryptedString(decryptedStringLen, 0x78); + std::string encryptedString(decryptedStringLen, 0x0); // Encryption - for (i = 0; i < decryptedStringLen; ++i) - encryptedString[i] = (isalnum(decryptedString[i]) || decryptedString[i] == 0x20) && decryptedString[i] != 0x30 ? VIGENERE_AVAILABLE_CHARS[((index(decryptedString[i]) + index(newKey[i])) % VIGENERE_AVAILABLE_CHARS_SIZE)] : decryptedString[i]; - encryptedString[i] = 0x0; + for (int i = 0; i < decryptedStringLen; ++i) + encryptedString[i] = isalnum(decryptedString[i]) || decryptedString[i] == 0x20 ? VIGENERE_AVAILABLE_CHARS[((index(decryptedString[i]) + index(newKey[i])) % VIGENERE_AVAILABLE_CHARS_SIZE)] : decryptedString[i]; return encryptedString; } std::string Vigenere::decrypt(const std::string &encryptedString, const std::string &key) { - int i; uint64_t encryptedStringLen = encryptedString.size(); std::string newKey = extend_key(encryptedString, key); - std::string decryptedString(encryptedStringLen, 0x78); + std::string decryptedString(encryptedStringLen, 0x0); // Decryption - for (i = 0; i < encryptedStringLen; ++i) + for (int i = 0; i < encryptedStringLen; ++i) decryptedString[i] = isalnum(encryptedString[i]) || encryptedString[i] == 0x20 ? VIGENERE_AVAILABLE_CHARS[(((index(encryptedString[i]) - index(newKey[i])) + VIGENERE_AVAILABLE_CHARS_SIZE) % VIGENERE_AVAILABLE_CHARS_SIZE)] : encryptedString[i]; - decryptedString[i] = 0x0; return decryptedString; } diff --git a/src/vigenere/Vigenere.h b/src/vigenere/Vigenere.h index 737fd45..c7d39a2 100644 --- a/src/vigenere/Vigenere.h +++ b/src/vigenere/Vigenere.h @@ -4,15 +4,15 @@ namespace easy { namespace encryption { - namespace vigenere { - class Vigenere { - public: - static std::string extend_key(const std::string &string, const std::string &key); - static std::string encrypt(const std::string &decryptedString, const std::string &key); - static std::string decrypt(const std::string &encryptedString, const std::string &key); - private: - static int index(char c); - }; - } + + class Vigenere { + public: + static std::string extend_key(const std::string &string, const std::string &key); + static std::string encrypt(const std::string &decryptedString, const std::string &key); + static std::string decrypt(const std::string &encryptedString, const std::string &key); + private: + static int index(char c); + }; + } } From bad26063d9ade680c3020c27f098430b9cb14115 Mon Sep 17 00:00:00 2001 From: 0rangeFox Date: Sat, 1 May 2021 02:26:16 +0100 Subject: [PATCH 10/14] Fix namespaces. --- src/EasyEncryption.cc | 2 -- src/EasyEncryption.h | 1 + 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/EasyEncryption.cc b/src/EasyEncryption.cc index 7db626a..9ed78e5 100644 --- a/src/EasyEncryption.cc +++ b/src/EasyEncryption.cc @@ -1,7 +1,5 @@ #include "EasyEncryption.h" -using namespace easy::encryption; - std::string EasyEncryption::encrypt(const std::string &decryptedString, const std::string &key) { // Encrypt first as Base64 const std::string b64_encoded_str = Base64::encode(decryptedString); diff --git a/src/EasyEncryption.h b/src/EasyEncryption.h index 8508468..27d42c4 100644 --- a/src/EasyEncryption.h +++ b/src/EasyEncryption.h @@ -3,6 +3,7 @@ #include "base64/Base64.h" #include "vigenere/Vigenere.h" +using namespace easy::encryption; namespace easy { namespace encryption { From 8c9b578d5cc67d48fa54a7a10d9d30c40f2e003f Mon Sep 17 00:00:00 2001 From: 0rangeFox Date: Sat, 1 May 2021 02:28:17 +0100 Subject: [PATCH 11/14] Fix namespaces on examples. --- examples/main_base64.cpp | 2 +- examples/main_vigenere.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/main_base64.cpp b/examples/main_base64.cpp index d6212c0..d2582f8 100644 --- a/examples/main_base64.cpp +++ b/examples/main_base64.cpp @@ -1,7 +1,7 @@ #include #include "../src/base64//Base64.h" -using namespace easy::encryption::base64; +using namespace easy::encryption; int main() { // Base64 encoding diff --git a/examples/main_vigenere.cpp b/examples/main_vigenere.cpp index 6e0b9ab..1ff300c 100644 --- a/examples/main_vigenere.cpp +++ b/examples/main_vigenere.cpp @@ -1,7 +1,7 @@ #include #include "../src/vigenere/Vigenere.h" -using namespace easy::encryption::vigenere; +using namespace easy::encryption; int main() { // Vigenere encoding From 226e831d98c98a52252c485b0ef47714fa4570be Mon Sep 17 00:00:00 2001 From: 0rangeFox Date: Sat, 1 May 2021 15:38:32 +0100 Subject: [PATCH 12/14] Change the project version to C++98. --- CMakeLists.txt | 2 +- README.md | 35 +++-------------------------------- examples/application.cpp | 7 ++++++- src/EasyEncryptionConsts.h | 9 ++++----- src/base64/Base64.cc | 19 +++++++++++-------- src/vigenere/Vigenere.cc | 7 ++++--- 6 files changed, 29 insertions(+), 50 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6aca06f..5252d86 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,7 +3,7 @@ project(easy_encryption) option(EASY_ENCRYPTION_EXAMPLES "Build examples?" ON) -set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD 98) add_library(${PROJECT_NAME} STATIC src/base64/Base64.cc src/vigenere/Vigenere.cc src/EasyEncryption.cc) diff --git a/README.md b/README.md index 6093f98..01f673c 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,11 @@ ![](banner.jpg) +[![](https://img.shields.io/static/v1?label=C%2B%2B%20Version&message=98&color=%2300599C&logo=c%2B%2B&logoColor=%23FFFFFF&style=flat-square)](https://www.cplusplus.com/doc/oldtutorial/) [![](https://img.shields.io/github/workflow/status/philipperemy/easy-encryption/Windows%20CMake?label=Windows%20Build&logo=windows&logoColor=%23FFFFFF&style=flat-square)](https://github.com/philipperemy/easy-encryption/actions/workflows/windows-cmake.yml) [![](https://img.shields.io/github/workflow/status/philipperemy/easy-encryption/Linux%20CMake?label=Linux%20Build&logo=linux&logoColor=%23FFFFFF&style=flat-square)](https://github.com/philipperemy/easy-encryption/actions/workflows/linux-cmake.yml) [![](https://img.shields.io/github/workflow/status/philipperemy/easy-encryption/macOS%20CMake?label=macOS%20Build&logo=apple&logoColor=%23FFFFFF&style=flat-square)](https://github.com/philipperemy/easy-encryption/actions/workflows/macos-cmake.yml) # Easy Encryption -A very simple standalone C++11 library to obfuscate/deobfuscate strings based on Base64 and Vigenere cipher (Symmetric cipher). +A very simple standalone C++98 library to obfuscate/deobfuscate strings based on Base64 and Vigenere cipher (Symmetric cipher). **DISCLAIMER: This encryption is NOT secure and can be used as a "cheap way" to obfuscate some messages in a communication channel. If you need a solid and unbreakable encryption, please use a widely adopted standard and well researched cipher like AES-GCM.** You can find more information there: [pyca](https://github.com/pyca/cryptography). @@ -57,34 +58,4 @@ To compile this project, just add the files that are inside the "src" into your To run it in Python, you need to compile the example that is located in "examples/application.cpp". ```bash python3 wrapper.py -``` - -## Example - Encoding/Decoding JSON format - -### Source code -```c++ -#include -#include "EasyEncryption.h" - -using namespace easy::encryption; - -int main() { - std::string msg = "{\"id\":1,\"method\":\"service.subscribe\",\"params\":[\"myapp/0.1c\", null,\"0.0.0.0\",\"80\"]}"; - std::string key = "THISISMYKEY"; - - std::cout << " message to send: " << msg << std::endl; - std::string encrypted_msg = EasyEncryption::encrypt(msg, key); - std::cout << "encrypted message: " << encrypted_msg << std::endl; - std::string decrypted_msg = EasyEncryption::decrypt(encrypted_msg, key); - std::cout << "decrypted message: " << decrypted_msg << std::endl; - - return 0; -} -``` - -### Output -``` - message to send: {"id":1,"method":"service.subscribe","params":["myapp/0.1c", null,"0.0.0.0","80"]} -encrypted message: DBmhuTQWQNRFuT5DAPx4IkIYWOsM1M5vf4ecbTwgFginA0SEnTqRWp5eutYZZ9P2regxWvIkSZH5FNL8WLphgN4PXyIKOTJRpvYFmJWFYN5ytB== -decrypted message: {"id":1,"method":"service.subscribe","params":["myapp/0.1c", null,"0.0.0.0","80"]} -``` +``` \ No newline at end of file diff --git a/examples/application.cpp b/examples/application.cpp index d3202f0..8fb341c 100644 --- a/examples/application.cpp +++ b/examples/application.cpp @@ -1,4 +1,6 @@ #include +#include + #include "../src/EasyEncryption.h" using namespace easy::encryption; @@ -15,7 +17,10 @@ int main(int argc, char **argv) { std::string msg = argv[1]; std::string key = argv[2]; - int encrypt_flag = atoi(argv[3]); + std::stringstream encrypt_flag_string(argv[3]); + + int encrypt_flag = 0; + encrypt_flag_string >> encrypt_flag; if (encrypt_flag == 0) { std::cout << EasyEncryption::encrypt(msg, key) << std::endl; diff --git a/src/EasyEncryptionConsts.h b/src/EasyEncryptionConsts.h index 036da7e..0093bc6 100644 --- a/src/EasyEncryptionConsts.h +++ b/src/EasyEncryptionConsts.h @@ -2,10 +2,9 @@ #include #include -#include -constexpr int BASE64_AVAILABLE_CHARS_SIZE = 65; -constexpr char BASE64_AVAILABLE_CHARS[BASE64_AVAILABLE_CHARS_SIZE] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/"; +static const int BASE64_AVAILABLE_CHARS_SIZE = 65; +static const char BASE64_AVAILABLE_CHARS[BASE64_AVAILABLE_CHARS_SIZE] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/"; -constexpr int VIGENERE_AVAILABLE_CHARS_SIZE = 63; -constexpr char VIGENERE_AVAILABLE_CHARS[VIGENERE_AVAILABLE_CHARS_SIZE] = "0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz"; +static const int VIGENERE_AVAILABLE_CHARS_SIZE = 63; +static const char VIGENERE_AVAILABLE_CHARS[VIGENERE_AVAILABLE_CHARS_SIZE] = "0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz"; diff --git a/src/base64/Base64.cc b/src/base64/Base64.cc index 9b9be70..087602b 100644 --- a/src/base64/Base64.cc +++ b/src/base64/Base64.cc @@ -3,11 +3,12 @@ using namespace easy::encryption; std::string Base64::encode(const std::string &in) { - std::string out; + unsigned long long int inStringLen = in.size(); int valA = 0, valB = -6; + std::string out; - for (char c : in) { - valA = (valA << 8) + c; + for (int i = 0; i < inStringLen; i++) { + valA = (valA << 8) + in[i]; valB += 8; while (valB >= 0) { @@ -26,18 +27,20 @@ std::string Base64::encode(const std::string &in) { } std::string Base64::decode(const std::string &in) { - std::string out; + unsigned long long int inStringLen = in.size(); std::vector T(256, -1); + std::string out; - for (int i = 0; i < BASE64_AVAILABLE_CHARS_SIZE; i++) + int i; + for (i = 0; i < BASE64_AVAILABLE_CHARS_SIZE; i++) T[BASE64_AVAILABLE_CHARS[i]] = i; int valA = 0, valB = -8; - for (char c : in) { - if (T[c] == -1) + for (i = 0; i < inStringLen; i++) { + if (T[in[i]] == -1) break; - valA = (valA << 6) + T[c]; + valA = (valA << 6) + T[in[i]]; valB += 6; if (valB >= 0) { diff --git a/src/vigenere/Vigenere.cc b/src/vigenere/Vigenere.cc index a4fc1c7..9f645f1 100644 --- a/src/vigenere/Vigenere.cc +++ b/src/vigenere/Vigenere.cc @@ -1,3 +1,4 @@ +#include #include "Vigenere.h" using namespace easy::encryption; @@ -10,7 +11,7 @@ int Vigenere::index(char c) { } std::string Vigenere::extend_key(const std::string &string, const std::string &key) { - uint64_t stringLen = string.size(), keyLen = key.size(); + unsigned long long int stringLen = string.size(), keyLen = key.size(); std::string newKey(stringLen, 0x0); // Generating new key @@ -23,7 +24,7 @@ std::string Vigenere::extend_key(const std::string &string, const std::string &k } std::string Vigenere::encrypt(const std::string &decryptedString, const std::string &key) { - uint64_t decryptedStringLen = decryptedString.size(); + unsigned long long int decryptedStringLen = decryptedString.size(); std::string newKey = extend_key(decryptedString, key); std::string encryptedString(decryptedStringLen, 0x0); @@ -35,7 +36,7 @@ std::string Vigenere::encrypt(const std::string &decryptedString, const std::str } std::string Vigenere::decrypt(const std::string &encryptedString, const std::string &key) { - uint64_t encryptedStringLen = encryptedString.size(); + unsigned long long int encryptedStringLen = encryptedString.size(); std::string newKey = extend_key(encryptedString, key); std::string decryptedString(encryptedStringLen, 0x0); From 1f6e3094f24295cce0e902f516a58b3c9795e9ab Mon Sep 17 00:00:00 2001 From: 0rangeFox Date: Sat, 8 Jun 2024 14:32:00 +0100 Subject: [PATCH 13/14] Fix vigenere encryption and small tweaks. --- Base64.cpp | 220 ------------------------------------- Base64.h | 75 ------------- examples/application.cpp | 19 ++-- examples/main.cpp | 17 ++- examples/main_base64.cpp | 12 +- examples/main_vigenere.cpp | 18 +-- src/EasyEncryption.cc | 16 +-- src/EasyEncryptionConsts.h | 5 +- src/base64/Base64.cc | 62 ++++++++--- src/base64/Base64.h | 10 +- src/vigenere/Vigenere.cc | 25 ++--- src/vigenere/Vigenere.h | 1 + 12 files changed, 104 insertions(+), 376 deletions(-) delete mode 100644 Base64.cpp delete mode 100644 Base64.h diff --git a/Base64.cpp b/Base64.cpp deleted file mode 100644 index 7481ec6..0000000 --- a/Base64.cpp +++ /dev/null @@ -1,220 +0,0 @@ -/////////////////////////////////////////////////////////////////////// -// Base64.cpp declares class that encodes binary data into a string // -// ver 2.0 and decodes the string back to binary data // -// // -// Language: Visual C++, ver 7.1 // -// Platfrom: Dell Dimension 8300, Windows XP, SP1 // -// Application: CSE687 - Object Oriented Design, Spring 2004 // -// Author: Jim Fawcett, CST 2-187, Syracuse University // -// (315) 443-3948, jfawcett@twcny.rr.com // -/////////////////////////////////////////////////////////////////////// -// based on: // -//********************************************************************* -//* Base64 - a simple base64 encoder and decoder. -//* -//* Copyright (c) 1999, Bob Withers - bwit@pobox.com -//* -//* This code may be freely used for any purpose, either personal -//* or commercial, provided the authors copyright notice remains -//* intact. -//********************************************************************* - -#include "Base64.h" -#include - -const char fillchar = '='; - - // 00000000001111111111222222 - // 01234567890123456789012345 -static std::string cvt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" - - // 22223333333333444444444455 - // 67890123456789012345678901 - "abcdefghijklmnopqrstuvwxyz" - - // 555555556666 - // 234567890123 - "0123456789+/"; - -// -//----< convert vector of bytes to std::string >--------------------- - -std::string Base64::encode(const std::vector& data) -{ - std::string::size_type i; - char c; - unsigned int len = data.size(); - std::string ret; - - for (i = 0; i < len; ++i) - { - c = (data[i] >> 2) & 0x3f; - ret.append(1, cvt[c]); - c = (data[i] << 4) & 0x3f; - if (++i < len) - c |= (data[i] >> 4) & 0x0f; - - ret.append(1, cvt[c]); - if (i < len) - { - c = (data[i] << 2) & 0x3f; - if (++i < len) - c |= (data[i] >> 6) & 0x03; - - ret.append(1, cvt[c]); - } - else - { - ++i; - ret.append(1, fillchar); - } - - if (i < len) - { - c = data[i] & 0x3f; - ret.append(1, cvt[c]); - } - else - { - ret.append(1, fillchar); - } - } - - return(ret); -} -// -//----< convert std::string to vector of bytes >--------------------- - -std::vector Base64::decode(const std::string& data) -{ - std::string::size_type i; - char c; - char c1; - std::string::size_type len = data.length(); - std::vector ret; - - for (i = 0; i < len; ++i) - { - c = (char) cvt.find(data[i]); - ++i; - c1 = (char) cvt.find(data[i]); - c = (c << 2) | ((c1 >> 4) & 0x3); - ret.push_back(c); - if (++i < len) - { - c = data[i]; - if (fillchar == c) - break; - c = (char) cvt.find(c); - c1 = ((c1 << 4) & 0xf0) | ((c >> 2) & 0xf); - ret.push_back(c1); - } - if (++i < len) - { - c1 = data[i]; - if (fillchar == c1) - break; - c1 = (char) cvt.find(c1); - c = ((c << 6) & 0xc0) | c1; - ret.push_back(c); - } - } - return(ret); -} - -// -//----< create encoded string from binary file contents >------------ - -std::string Base64::encodeFromFile(const std::string& inFileName) -{ - std::ifstream in; - in.open(inFileName.c_str(),std::ios::binary); - if(!in.good()) - { - throw std::invalid_argument(std::string("can't open file ") + inFileName); - } - std::vector fBytes; - while(in.good()) - fBytes.push_back(in.get()); - fBytes.pop_back(); - in.close(); - - return Base64::encode(fBytes); -} -//----< create new binary file from encoded string >----------------- - -void Base64::decodeToFile( - const std::string& outFileName, const std::string& encodedString - ) -{ - std::ofstream out; - out.open(outFileName.c_str(),std::ios::binary); - if(!out.good()) - { - throw std::invalid_argument(std::string("can't open file ") + outFileName); - } - std::vector fdecodedBytes = Base64::decode(encodedString); - - for(unsigned int i=0; i -//#include - -void main() -{ - std::cout << "\n Demonstrate Base64 Encoding and Decoding " - << "\n ==========================================\n"; - - /////////////////////////////////////////////////////////////////// - // encoding ascii string - - std::string msg - = "We're not in Kansas anymore, Toto!"; - - std::vector vmsg(msg.begin(),msg.end()); - std::string encodedMsg = Base64::encode(vmsg); - std::vector vdecoded = Base64::decode(encodedMsg); - std::string decodedMsg(vdecoded.begin(),vdecoded.end()); - - std::cout << "\n original: " << msg; - std::cout << "\n encoded: " << encodedMsg; - std::cout << "\n decoded: " << decodedMsg; - std::cout << "\n"; - - //////////////////////////////////////////////////////////////////// - // encoding binary file - - const std::string ifile = "debug\\Base64Encoding.exe"; - const std::string ofile1 = "debug\\temp.dat"; - const std::string ofile2 = "debug\\temp.exe"; - - try - { - std::cout << "\n creating encoded string from binary file " - << ifile << std::endl; - std::string encodedString = Base64::encodeFromFile(ifile); - - std::string temp(encodedString.begin(), encodedString.begin() + 50); - std::cout << "\n First fifty bytes of encoded string:\n " - << temp << "\n"; - - std::cout << "\n writing decoded string to binary file " - << ofile2 << "\n"; - Base64::decodeToFile(ofile2,encodedString); - - std::cout << "\n Use fc to demonstrate that " - << ifile << "\n is identical to " << ofile2 << "\n\n"; - } - catch(std::exception& e) - { - std::cout << "\n " << e.what() << "\n\n"; - } -} - -#endif diff --git a/Base64.h b/Base64.h deleted file mode 100644 index 7d5b9be..0000000 --- a/Base64.h +++ /dev/null @@ -1,75 +0,0 @@ -#ifndef BASE64_H -#define BASE64_H -/////////////////////////////////////////////////////////////////////// -// Base64.h - declares class that encodes binary data into a string // -// ver 2.0 and decodes the string back to binary data // -// // -// Language: Visual C++, ver 7.1 // -// Platfrom: Dell Dimension 8300, Windows XP, SP1 // -// Application: CSE687 - Object Oriented Design, Spring 2004 // -// Author: Jim Fawcett, CST 2-187, Syracuse University // -// (315) 443-3948, jfawcett@twcny.rr.com // -/////////////////////////////////////////////////////////////////////// -// based on: // -//********************************************************************* -//* C_Base64 - a simple base64 encoder and decoder. -//* -//* Copyright (c) 1999, Bob Withers - bwit@pobox.com -//* -//* This code may be freely used for any purpose, either personal -//* or commercial, provided the authors copyright notice remains -//* intact. -//********************************************************************* -/* - * Module Operation: - * ================= - * The Base64 class provides static encode and decode functions that - * use base64 encoding to render a vector of bytes into a std::string - * of ASCII characters and back again. This supports the transmission - * of binary data as XML messages. - * - * Public Interface: - * ================= - * std::vector vBytes; - * // vBytes filed, perhaps from a file - * std::string encodedString = Base64::encode(vBytes); - * // do something with string, perhaps send as XML message - * std::vector vDecodedBytes = Base64::decode(encodedMsg); - * - * Build Process: - * ============== - * Required files - Base64.h, Base64.cpp - * - * compiler command - cl /EHsc /DTEST_BASE64 Base64.cpp - * - * Maintenance History: - * ==================== - * ver 1.0 : 25 Mar 04 - * - first release, based on code by Bob Withers - * ver 2.0 : 20 Apr 04 - * - changed interface from std::strings for both input and output - * to std::vector for binary data and std::string for its - * endcoding. Test stub shows how to use this to encode binary - * files. - * - * Planned Modifications: - * ====================== - * - add functions to support chunking of large files - */ - -// -#include -#include - -class Base64 -{ -public: - static std::string encode(const std::vector& data); - static std::vector decode(const std::string& data); - static std::string encodeFromFile(const std::string& inFileName); - static void decodeToFile( - const std::string& outFileName, const std::string& encodedString - ); -}; - -#endif diff --git a/examples/application.cpp b/examples/application.cpp index 8fb341c..5dc4b82 100644 --- a/examples/application.cpp +++ b/examples/application.cpp @@ -3,30 +3,25 @@ #include "../src/EasyEncryption.h" -using namespace easy::encryption; - int main(int argc, char **argv) { - if (argc != 4) { - std::cout << "Usage: ./a.out message key (0:encrypt|1:decrypt)" << std::endl; - std::cout << "./a.out \"Hello world\" MYPRIVATEKEY 0" << std::endl; - std::cout << "./a.out ttz9JqxZHBClNtu= MYPRIVATEKEY 1" << std::endl; + std::cout << "Usage: ./a.out message key (0:encrypt|1:decrypt)" << std::endl + << "./a.out \"Hello world\" MYPRIVATEKEY 0" << std::endl + << "./a.out ttz9JqxZHBClNtu= MYPRIVATEKEY 1" << std::endl; return -1; } std::string msg = argv[1]; std::string key = argv[2]; - std::stringstream encrypt_flag_string(argv[3]); - int encrypt_flag = 0; - encrypt_flag_string >> encrypt_flag; - if (encrypt_flag == 0) { + std::stringstream(argv[3]) >> encrypt_flag; + + if (!encrypt_flag) std::cout << EasyEncryption::encrypt(msg, key) << std::endl; - } else { + else std::cout << EasyEncryption::decrypt(msg, key) << std::endl; - } return 0; } diff --git a/examples/main.cpp b/examples/main.cpp index 930943e..833873c 100644 --- a/examples/main.cpp +++ b/examples/main.cpp @@ -5,13 +5,18 @@ using namespace easy::encryption; int main() { std::string msg = "{\"id\":1,\"method\":\"service.subscribe\",\"params\":[\"myapp/0.1c\", null,\"0.0.0.0\",\"80\"]}"; - std::string key = "THISISMYKEY"; + std::string key = "THISISMYKEY"; - std::cout << " message to send: " << msg << std::endl; - std::string encrypted_msg = EasyEncryption::encrypt(msg, key); - std::cout << "encrypted message: " << encrypted_msg << std::endl; - std::string decrypted_msg = EasyEncryption::decrypt(encrypted_msg, key); - std::cout << "decrypted message: " << decrypted_msg << std::endl; + std::string encryptedMsg = EasyEncryption::encrypt(msg, key); + std::string decryptedMsg = EasyEncryption::decrypt(encryptedMsg, key); + + std::cout << "Easy Encryption =================================" << std::endl + << "Key: " << key << std::endl + << "Original Message: " << msg << std::endl + << "Encrypted Message: " << encryptedMsg << std::endl + << "Decrypted Message: " << decryptedMsg << std::endl + << "Is message identical: " << (msg == decryptedMsg ? "True" : "False") << std::endl + << "=================================================" << std::endl; return 0; } diff --git a/examples/main_base64.cpp b/examples/main_base64.cpp index d2582f8..6aeff3d 100644 --- a/examples/main_base64.cpp +++ b/examples/main_base64.cpp @@ -1,18 +1,20 @@ #include -#include "../src/base64//Base64.h" +#include "../src/base64/Base64.h" using namespace easy::encryption; int main() { - // Base64 encoding std::string msg = "HELLO WORLD"; std::string encodedMsg = Base64::encode(msg); std::string decodedMsg = Base64::decode(encodedMsg); - std::cout << "Original Message : " << msg << std::endl; - std::cout << "Enc Base64 Msg : " << encodedMsg << std::endl; - std::cout << "Dec Base64 Msg : " << decodedMsg << std::endl; + std::cout << "Base64 =================================" << std::endl + << "Original Message: " << msg << std::endl + << "Encoded Message: " << encodedMsg << std::endl + << "Decoded Message: " << decodedMsg << std::endl + << "Is message identical: " << (msg == decodedMsg ? "True" : "False") << std::endl + << "========================================" << std::endl; return 0; } diff --git a/examples/main_vigenere.cpp b/examples/main_vigenere.cpp index 1ff300c..778c917 100644 --- a/examples/main_vigenere.cpp +++ b/examples/main_vigenere.cpp @@ -4,19 +4,19 @@ using namespace easy::encryption; int main() { - // Vigenere encoding std::string msg = "HELLO WORLD"; std::string key = "THISISALONGPRIVATEKEY"; std::string encryptedMsg = Vigenere::encrypt(msg, key); - std::string newKey = Vigenere::extend_key(msg, key); - std::string decryptedMsg = Vigenere::decrypt(encryptedMsg, newKey); + std::string decryptedMsg = Vigenere::decrypt(encryptedMsg, key); + + std::cout << "Vigenere =================================" << std::endl + << "Key: " << key << std::endl + << "Original Message: " << msg << std::endl + << "Encrypted Message: " << encryptedMsg << std::endl + << "Decrypted Message: " << decryptedMsg << std::endl + << "Is message identical: " << (msg == decryptedMsg ? "True" : "False") << std::endl + << "==========================================" << std::endl; - std::cout << "Original Message : " << msg << std::endl; - std::cout << "Key : " << key << std::endl; - std::cout << "New Generated Key: " << newKey << std::endl; - std::cout << "Enc Vigenere Msg : " << encryptedMsg << std::endl; - std::cout << "Dec Vigenere Msg : " << decryptedMsg << std::endl; - return 0; } diff --git a/src/EasyEncryption.cc b/src/EasyEncryption.cc index 9ed78e5..ed4a777 100644 --- a/src/EasyEncryption.cc +++ b/src/EasyEncryption.cc @@ -1,21 +1,9 @@ #include "EasyEncryption.h" std::string EasyEncryption::encrypt(const std::string &decryptedString, const std::string &key) { - // Encrypt first as Base64 - const std::string b64_encoded_str = Base64::encode(decryptedString); - - // Last encryption, vigenere - std::string vigenere_encoded_str = Vigenere::encrypt(b64_encoded_str, key); - - return vigenere_encoded_str; + return Vigenere::encrypt(Base64::encode(decryptedString), key); } std::string EasyEncryption::decrypt(const std::string &encryptedString, const std::string &key) { - // Decrypt firstly, the vigenere - const std::string vigenere_decoded_str = Vigenere::decrypt(encryptedString, key); - - // Then decrypt the base 64 - std::string b64_decoded_str = Base64::decode(vigenere_decoded_str); - - return b64_decoded_str; + return Base64::decode(Vigenere::decrypt(encryptedString, key)); } diff --git a/src/EasyEncryptionConsts.h b/src/EasyEncryptionConsts.h index 0093bc6..6200f15 100644 --- a/src/EasyEncryptionConsts.h +++ b/src/EasyEncryptionConsts.h @@ -1,10 +1,7 @@ #pragma once -#include -#include - static const int BASE64_AVAILABLE_CHARS_SIZE = 65; static const char BASE64_AVAILABLE_CHARS[BASE64_AVAILABLE_CHARS_SIZE] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/"; static const int VIGENERE_AVAILABLE_CHARS_SIZE = 63; -static const char VIGENERE_AVAILABLE_CHARS[VIGENERE_AVAILABLE_CHARS_SIZE] = "0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz"; +static const char VIGENERE_AVAILABLE_CHARS[VIGENERE_AVAILABLE_CHARS_SIZE] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; diff --git a/src/base64/Base64.cc b/src/base64/Base64.cc index 087602b..44de986 100644 --- a/src/base64/Base64.cc +++ b/src/base64/Base64.cc @@ -1,14 +1,22 @@ +#include #include "Base64.h" using namespace easy::encryption; -std::string Base64::encode(const std::string &in) { - unsigned long long int inStringLen = in.size(); +int Base64::index(char c) { + for (int i = 0; i < BASE64_AVAILABLE_CHARS_SIZE; ++i) + if (BASE64_AVAILABLE_CHARS[i] == c) + return i; + return -1; +} + +std::string Base64::encode(const std::string &data) { + unsigned long long int inStringLen = data.size(); int valA = 0, valB = -6; std::string out; for (int i = 0; i < inStringLen; i++) { - valA = (valA << 8) + in[i]; + valA = (valA << 8) + data[i]; valB += 8; while (valB >= 0) { @@ -26,21 +34,16 @@ std::string Base64::encode(const std::string &in) { return out; } -std::string Base64::decode(const std::string &in) { - unsigned long long int inStringLen = in.size(); - std::vector T(256, -1); +std::string Base64::decode(const std::string &data) { + unsigned long long int inStringLen = data.size(); std::string out; - int i; - for (i = 0; i < BASE64_AVAILABLE_CHARS_SIZE; i++) - T[BASE64_AVAILABLE_CHARS[i]] = i; - int valA = 0, valB = -8; - for (i = 0; i < inStringLen; i++) { - if (T[in[i]] == -1) - break; + for (int i = 0; i < inStringLen; i++) { + int charIndex = index(data[i]); + if (charIndex < 0) break; - valA = (valA << 6) + T[in[i]]; + valA = (valA << 6) + charIndex; valB += 6; if (valB >= 0) { @@ -51,3 +54,34 @@ std::string Base64::decode(const std::string &in) { return out; } + +std::string Base64::encodeFromFile(const std::string &inFileName) { + std::ifstream in; + in.open(inFileName.c_str(), std::ios::binary); + + if (!in.good()) + throw std::invalid_argument(std::string("can't open file ") + inFileName); + + std::string encodedBytes; + while (in.good()) + encodedBytes.push_back((char) in.get()); + + encodedBytes.pop_back(); + in.close(); + + return Base64::encode(encodedBytes); +} + +void Base64::decodeToFile(const std::string &outFileName, const std::string &encodedString) { + std::ofstream out; + out.open(outFileName.c_str(), std::ios::binary); + + if (!out.good()) + throw std::invalid_argument(std::string("can't open file ") + outFileName); + + std::string decodedString = Base64::decode(encodedString); + for (unsigned int i = 0; i < decodedString.size(); ++i) + out.put(decodedString[i]); + + out.close(); +} diff --git a/src/base64/Base64.h b/src/base64/Base64.h index 1d11612..f9dfa35 100644 --- a/src/base64/Base64.h +++ b/src/base64/Base64.h @@ -1,5 +1,7 @@ #pragma once +#include +#include #include "../EasyEncryptionConsts.h" namespace easy { @@ -7,8 +9,12 @@ namespace easy { class Base64 { public: - static std::string encode(const std::string &in); - static std::string decode(const std::string &in); + static std::string encode(const std::string& data); + static std::string decode(const std::string& data); + static std::string encodeFromFile(const std::string& inFileName); + static void decodeToFile(const std::string& outFileName, const std::string& encodedString); + private: + static int index(char c); }; } diff --git a/src/vigenere/Vigenere.cc b/src/vigenere/Vigenere.cc index 9f645f1..c1a7a41 100644 --- a/src/vigenere/Vigenere.cc +++ b/src/vigenere/Vigenere.cc @@ -1,4 +1,3 @@ -#include #include "Vigenere.h" using namespace easy::encryption; @@ -11,38 +10,34 @@ int Vigenere::index(char c) { } std::string Vigenere::extend_key(const std::string &string, const std::string &key) { - unsigned long long int stringLen = string.size(), keyLen = key.size(); - std::string newKey(stringLen, 0x0); + unsigned long long int keyLen = key.size(); + std::string newKey(string.size(), 0x0); // Generating new key - for (int i = 0, j = 0; i < stringLen; ++i, ++j) { - if (j == keyLen) j = 0; - newKey[i] = key[j]; - } + for (int i = 0, j = 0; i < newKey.size(); ++i, ++j) + newKey[i] = key[j == keyLen ? j = 0 : j]; return newKey; } std::string Vigenere::encrypt(const std::string &decryptedString, const std::string &key) { - unsigned long long int decryptedStringLen = decryptedString.size(); std::string newKey = extend_key(decryptedString, key); - std::string encryptedString(decryptedStringLen, 0x0); + std::string encryptedString(decryptedString.size(), 0x0); // Encryption - for (int i = 0; i < decryptedStringLen; ++i) - encryptedString[i] = isalnum(decryptedString[i]) || decryptedString[i] == 0x20 ? VIGENERE_AVAILABLE_CHARS[((index(decryptedString[i]) + index(newKey[i])) % VIGENERE_AVAILABLE_CHARS_SIZE)] : decryptedString[i]; + for (int i = 0; i < encryptedString.size(); ++i) + encryptedString[i] = isalnum(decryptedString[i]) ? VIGENERE_AVAILABLE_CHARS[((index(decryptedString[i]) + index(newKey[i])) % VIGENERE_AVAILABLE_CHARS_SIZE)] : decryptedString[i]; return encryptedString; } std::string Vigenere::decrypt(const std::string &encryptedString, const std::string &key) { - unsigned long long int encryptedStringLen = encryptedString.size(); std::string newKey = extend_key(encryptedString, key); - std::string decryptedString(encryptedStringLen, 0x0); + std::string decryptedString(encryptedString.size(), 0x0); // Decryption - for (int i = 0; i < encryptedStringLen; ++i) - decryptedString[i] = isalnum(encryptedString[i]) || encryptedString[i] == 0x20 ? VIGENERE_AVAILABLE_CHARS[(((index(encryptedString[i]) - index(newKey[i])) + VIGENERE_AVAILABLE_CHARS_SIZE) % VIGENERE_AVAILABLE_CHARS_SIZE)] : encryptedString[i]; + for (int i = 0; i < decryptedString.size(); ++i) + decryptedString[i] = index(encryptedString[i]) >= 0 ? VIGENERE_AVAILABLE_CHARS[(((index(encryptedString[i]) - index(newKey[i])) + VIGENERE_AVAILABLE_CHARS_SIZE) % VIGENERE_AVAILABLE_CHARS_SIZE)] : encryptedString[i]; return decryptedString; } diff --git a/src/vigenere/Vigenere.h b/src/vigenere/Vigenere.h index c7d39a2..3d91058 100644 --- a/src/vigenere/Vigenere.h +++ b/src/vigenere/Vigenere.h @@ -1,5 +1,6 @@ #pragma once +#include #include "../EasyEncryptionConsts.h" namespace easy { From 49462ba4d57a3d6d4ae1d585d2c6abf773536562 Mon Sep 17 00:00:00 2001 From: 0rangeFox Date: Sat, 8 Jun 2024 14:49:54 +0100 Subject: [PATCH 14/14] Fix github actions. --- README.md | 6 +++--- src/base64/Base64.cc | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 2eb96b1..90fe471 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ ![](banner.jpg) [![](https://img.shields.io/static/v1?label=C%2B%2B%20Version&message=98&color=%2300599C&logo=c%2B%2B&logoColor=%23FFFFFF&style=flat-square)](https://www.cplusplus.com/doc/oldtutorial/) -[![](https://img.shields.io/github/workflow/status/philipperemy/easy-encryption/Windows%20CMake?label=Windows%20Build&logo=windows&logoColor=%23FFFFFF&style=flat-square)](https://github.com/philipperemy/easy-encryption/actions/workflows/windows-cmake.yml) -[![](https://img.shields.io/github/workflow/status/philipperemy/easy-encryption/Linux%20CMake?label=Linux%20Build&logo=linux&logoColor=%23FFFFFF&style=flat-square)](https://github.com/philipperemy/easy-encryption/actions/workflows/linux-cmake.yml) -[![](https://img.shields.io/github/workflow/status/philipperemy/easy-encryption/macOS%20CMake?label=macOS%20Build&logo=apple&logoColor=%23FFFFFF&style=flat-square)](https://github.com/philipperemy/easy-encryption/actions/workflows/macos-cmake.yml) +[![](https://img.shields.io/github/actions/workflow/status/philipperemy/easy-encryption/windows-cmake.yml?branch=master&label=Windows%20Build&logo=windows&logoColor=%23FFFFFF&style=flat-square)](https://github.com/philipperemy/easy-encryption/actions/workflows/windows-cmake.yml) +[![](https://img.shields.io/github/actions/workflow/status/philipperemy/easy-encryption/linux-cmake.yml?branch=master&label=Linux%20Build&logo=linux&logoColor=%23FFFFFF&style=flat-square)](https://github.com/philipperemy/easy-encryption/actions/workflows/linux-cmake.yml) +[![](https://img.shields.io/github/actions/workflow/status/philipperemy/easy-encryption/macos-cmake.yml?branch=master&label=macOS%20Build&logo=apple&logoColor=%23FFFFFF&style=flat-square)](https://github.com/philipperemy/easy-encryption/actions/workflows/macos-cmake.yml) # Easy Encryption A very simple standalone C++98 library to obfuscate/deobfuscate strings based on Base64 and Vigenere cipher (Symmetric cipher). diff --git a/src/base64/Base64.cc b/src/base64/Base64.cc index 44de986..316f55b 100644 --- a/src/base64/Base64.cc +++ b/src/base64/Base64.cc @@ -66,7 +66,7 @@ std::string Base64::encodeFromFile(const std::string &inFileName) { while (in.good()) encodedBytes.push_back((char) in.get()); - encodedBytes.pop_back(); + encodedBytes.erase(encodedBytes.size() - 1); // Equivalent to pop_back in.close(); return Base64::encode(encodedBytes);