186 Commits
Author SHA1 Message Date
leonetienne 521ec2bc2e fix git remote ids 2024-09-26 10:26:48 +02:00
Leon Etienne 88a1295383 Install graphviz for doxygen pipelione
continuous-integration/drone/push Build is passing
2022-10-25 22:18:42 +00:00
Leon Etienne 626ca33536 Fix readme cropping for doxygen
continuous-integration/drone/push Build is passing
2022-10-25 22:15:33 +00:00
Leon Etienne 535c90b92c Add build status to readme
continuous-integration/drone/push Build is passing
2022-10-25 21:47:43 +00:00
Leon Etienne b1abc77f32 Import working drone config
continuous-integration/drone/push Build is passing
2022-10-25 21:44:05 +00:00
Leon Etienne 827622a0b7 Cicd-test
continuous-integration/drone/push Build is failing
2022-10-25 20:10:42 +00:00
Leonetienne d507bd1b2f Merge branch 'master' of gitea.leonetienne.de:leonetienne/GCrypt 2022-08-12 09:13:10 +02:00
Leonetienne 4561620eac CLI: Fix typo in option name 2022-08-12 09:12:44 +02:00
Leonetienne f6b8e9fbad typo readme 2022-07-07 14:09:26 +02:00
Leonetienne e5d4211761 Improved tests for block class 2022-06-04 00:01:21 +02:00
Leonetienne f0456193a9 Adjust makefile doxygen 2022-06-01 21:35:46 +02:00
Leonetienne 656934634b Fix image alt tag in readme, that screwed with doxygen 2022-06-01 21:01:38 +02:00
Leonetienne 573674a0b7 Update project name in doxygen config 2022-06-01 20:59:26 +02:00
Leonetienne 7410bc1b54 Add docs link to readme 2022-06-01 20:58:31 +02:00
Leonetienne 377099907b Readme 2022-06-01 19:57:55 +02:00
Leonetienne 9a02c37a68 Readme 2022-06-01 19:56:08 +02:00
Leonetienne fc6208f08a Update readme 2022-06-01 19:55:06 +02:00
Leonetienne afa07d0aca Merge branch 'master' of gitea.leonetienne.de:leonetienne/GCrypt 2022-06-01 16:54:25 +02:00
Leonetienne 2f5e65b334 A bit of code cleanup 2022-06-01 16:54:14 +02:00
Leonetienne 00d0f81bd9 Fix compiler warning on macos 2022-06-01 15:28:17 +02:00
Leonetienne f0db047316 Typo readme 2022-06-01 04:01:12 +02:00
Leonetienne 27ebdb8d63 Fixes in cli readme 2022-06-01 03:58:48 +02:00
Leonetienne 4f73996d79 Update help page in cli readme 2022-06-01 03:47:58 +02:00
Leonetienne 35a5c9496d Wording in help page 2022-06-01 03:46:27 +02:00
Leonetienne 309dacadc8 Adjust links in readme 2022-06-01 03:32:01 +02:00
Leonetienne 74883458ba Merge branch 'feature/relaunch' into master 2022-06-01 03:30:55 +02:00
Leonetienne 08f6e7d907 Add parameter to control progress report interval 2022-06-01 03:30:18 +02:00
Leonetienne e8d81af6f2 Implement progress output 2022-06-01 03:29:05 +02:00
Leonetienne fb1e6a9e8c Update CLI readme 2022-06-01 02:49:49 +02:00
Leonetienne 855ecaaa2f Fix docs 2022-06-01 02:34:16 +02:00
Leonetienne 136e03e65e Doxygen now using makefile 2022-06-01 02:34:11 +02:00
Leonetienne 834b799849 Fix outdated information in readme 2022-06-01 02:29:20 +02:00
Leonetienne b87ba395e3 Docs 2022-06-01 02:23:51 +02:00
Leonetienne 70111f906c Bump version 2022-06-01 02:10:08 +02:00
Leonetienne ffea2bfb5b Added module for hashing 2022-06-01 02:09:49 +02:00
Leonetienne bf8a6454ae Implemented low space-complexity stream decoding for all ioformats 2022-06-01 01:53:52 +02:00
Leonetienne 4c8c45ad04 Fix wrong minlen for base ugh 2022-06-01 01:49:10 +02:00
Leonetienne 0917e9c6cb Fix wrong minlen for base uwu 2022-05-31 22:19:01 +02:00
Leonetienne a93b3b3fe5 Sophisticated and bug-fixed DataOutput/InputLayer, and added ModuleDecryption 2022-05-31 21:40:13 +02:00
Leonetienne d9fb90a01e Now by-default prepending a newline to stdout 2022-05-31 18:26:02 +02:00
Leonetienne ba37b4325c Integrated DataOutputLayer to ModuleGenerateKey 2022-05-31 18:19:12 +02:00
Leonetienne 0ab87de23c More streamlined handling of io bases 2022-05-31 18:17:29 +02:00
Leonetienne fd75678ea3 Added encryption module, and data output layer 2022-05-31 17:35:05 +02:00
Leonetienne a00b8cc310 Fix Indentation 2022-05-31 17:07:45 +02:00
Leonetienne f979b9c187 Add additional methods to data ingestion layer 2022-05-31 15:32:17 +02:00
Leonetienne 6a14b7b428 Forbid instanciation of static classes 2022-05-31 14:28:17 +02:00
Leonetienne 2f6df42696 Implement relevant methods for DataIngestionLayer 2022-05-31 14:25:23 +02:00
Leonetienne 3823eb6cc7 Fix typo in comment 2022-05-31 10:44:05 +02:00
Leonetienne 87987f6fe2 Implement unified istream for ingestion layer 2022-05-27 18:26:48 +02:00
Leonetienne 5df625e610 Rename cmake cli target name 2022-05-27 17:21:30 +02:00
Leonetienne b9d81d1425 Change module GenerateKeyfile to more versatile GenerateKey, which doesnt have to output to a file 2022-05-27 17:21:10 +02:00
Leonetienne 93be4d9cdc Implement GenerateKeyfile module 2022-05-27 17:04:16 +02:00
Leonetienne 191b17c631 Fix Key::WriteToFile method being not const qualified 2022-05-27 17:04:05 +02:00
Leonetienne 5365233b43 A bit of cleanup 2022-05-27 16:50:18 +02:00
Leonetienne b0d0f831d9 Removed bunch of garbage from main.cpp 2022-05-27 16:14:24 +02:00
Leonetienne 186fea1383 More tests on data formatter 2022-05-27 16:08:24 +02:00
Leonetienne cf22f8c569 Added tests for recoding single blocks to all formats 2022-05-27 15:56:28 +02:00
Leonetienne 2fa67b6860 Renamed method, and added first test to cli 2022-05-27 15:34:16 +02:00
Leonetienne 612157bcac Added test project 2022-05-27 15:27:33 +02:00
Leonetienne b888585f75 A bit of error handling and better comments 2022-05-27 14:47:26 +02:00
Leonetienne 2eb0754b4e Remove unused code 2022-05-27 03:34:02 +02:00
Leonetienne 0a248b6d86 Fix multiple definition issue 2022-05-27 03:30:11 +02:00
Leonetienne 0e47b11a2c Proper include guard 2022-05-27 03:29:51 +02:00
Leonetienne 6834ea4ad8 Move blocklenght lookup table to Bases.h 2022-05-27 03:27:43 +02:00
Leonetienne 407c0ad5bc Better comment. 2022-05-27 03:01:47 +02:00
Leonetienne 2ecf0cc427 Added multiblocks methods to data formatter 2022-05-27 03:00:34 +02:00
Leonetienne 8e04e91e88 Got block conversions working... 2022-05-27 02:13:05 +02:00
Leonetienne f6d646da55 Implemented to-block methods of dataformatter 2022-05-26 23:22:04 +02:00
Leonetienne 6ac775105b Implement output formatting module 2022-05-26 22:30:59 +02:00
Leonetienne fad87e9944 Add exceptoins 2022-05-26 22:06:04 +02:00
Leonetienne dddc2d16f6 Added module PrepareKey 2022-05-26 21:56:15 +02:00
Leonetienne 8b9221e2e0 Add Configuration class to intelligently decide default settings 2022-05-26 21:32:55 +02:00
Leonetienne f28e510dba Adjust cli parameter definitions 2022-05-26 20:19:15 +02:00
Leonetienne 0f46ed7115 GCryptLib version bump 2022-05-26 19:59:16 +02:00
Leonetienne 75c4b0a0d9 More streamlined naming scheme for digestion method of ghash 2022-05-26 19:57:14 +02:00
Leonetienne f246e3a5ef Fix dangling hint 2022-05-26 19:34:58 +02:00
Leonetienne 2194ad1ce3 Fix apple linker problem 2022-05-26 19:25:40 +02:00
Leonetienne 876129f05f Added how2compile to readme 2022-05-26 19:05:35 +02:00
Leonetienne 849d34613e Add new visualizations 2022-05-26 18:59:59 +02:00
Leonetienne cad96a19a2 Fix bad filename in visualization 2022-05-26 18:59:05 +02:00
Leonetienne c0418766d9 Tidied up example/static test executables 2022-05-26 18:24:44 +02:00
Leonetienne e7c1e17e2c Got rid of flexblocks 2022-05-26 15:47:24 +02:00
Leonetienne 143ec19bf3 Many methods now using vectors of blocks instead of flexblocks 2022-05-26 15:04:39 +02:00
Leonetienne 800140bafa Added a method to GPrng to get a random uint32, which is about twice as fast as GetRandom<uint32_t> 2022-05-26 12:52:04 +02:00
Leonetienne e9377699f2 Made GPrng::GetBlock() faster by a factor of 100 2022-05-26 12:23:27 +02:00
Leonetienne 660ab5e999 Unstupided mathematical expression 2022-05-26 04:40:23 +02:00
Leonetienne c3ff7a1326 Fix markup in artifacts 2022-05-26 04:25:02 +02:00
Leonetienne 8cf8ad2628 Add artifact directory 2022-05-26 04:23:32 +02:00
Leonetienne 81a9570673 Implement direct file i/o to- and from blocks. 2022-05-26 04:22:42 +02:00
Leonetienne 101a1e0fd6 Add additional jumbling-up in feistel rounds 2022-05-26 02:44:22 +02:00
Leonetienne bc3dae96a3 Implement new sbox, reduction, and expansion function 2022-05-26 02:30:16 +02:00
Leonetienne 8ddd9d6bfb Replaced halfblock with instanciation of Basic_Block 2022-05-26 00:55:24 +02:00
Leonetienne 1f913b3a54 Typo in comment 2022-05-25 16:51:38 +02:00
Leonetienne f7d8093668 Templatified block class 2022-05-25 16:38:16 +02:00
Leonetienne 21cbd80488 Merge origin feature/relaunch into feature/relaunch 2022-05-25 14:58:40 +02:00
Leonetienne 3630243d8d Fix macos compile issue 2022-05-25 14:57:40 +02:00
Leonetienne edbf36eb6d Cipher now using new block class 2022-05-25 13:05:25 +02:00
Leonetienne b5369a3c32 Added bitshift methods to block class 2022-05-25 12:54:26 +02:00
Leonetienne 9a9cd05bed Add SetBit, and FlipBit methods to block 2022-05-24 23:51:17 +02:00
Leonetienne e552e1a6f8 Add GetBit() method to Block 2022-05-24 23:18:39 +02:00
Leonetienne db0add6e6e Implemented remaining operands for block class 2022-05-24 22:09:06 +02:00
Leonetienne 83854e42cb Fix blanklines in block.cpp 2022-05-24 01:07:00 +02:00
Leonetienne fa47a48dae Add comment 2022-05-24 01:05:45 +02:00
Leonetienne 939df4731b [Progress:] Completely re-done Block class to not use bitsets, and provide custom operators. 2022-05-24 01:02:06 +02:00
Leonetienne ed45b69342 Experimentally implement matrix-mult 2022-05-23 22:42:14 +02:00
Leonetienne 3819fbe693 Typo readme 2022-05-22 23:27:23 +02:00
Leonetienne 2815be238b Merge branch 'feature/relaunch' of gitea.leonetienne.de:leonetienne/GCrypt into feature/relaunch 2022-05-22 23:23:31 +02:00
Leonetienne 7cf55414b5 Wording readme 2022-05-22 23:22:54 +02:00
Leonetienne b873c13bf2 Fix typo in readme 2022-05-22 23:16:57 +02:00
Leonetienne 12b0f6b031 Fix typo in readme 2022-05-22 22:39:25 +02:00
Leonetienne 3978bb6b18 Fix invalid html in readme 2022-05-22 21:25:53 +02:00
Leonetienne 8c7506297f Added another visualization to readme 2022-05-22 21:22:02 +02:00
Leon Etienne 17dece8daf Put images in readme next to each other 2022-05-22 20:55:04 +02:00
Leonetienne 1e479986fc Readme and visualizations 2022-05-22 20:40:56 +02:00
Leonetienne 5677d94e6a Improved security 2022-05-22 20:13:41 +02:00
Leonetienne 19660fc696 Add method to load and save keyfiles 2022-05-22 17:54:26 +02:00
Leonetienne 88cb36fd7b Fix include guard 2022-05-22 17:54:04 +02:00
Leonetienne cd119f21bb Indentation 2022-05-22 17:32:54 +02:00
Leonetienne 91819c9723 Bump gcryptlib version 2022-05-22 17:30:15 +02:00
Leonetienne cb6c50b684 Now using actual include guards 2022-05-22 17:29:38 +02:00
Leonetienne a3c04b957f Implemented a Key::Random() method 2022-05-22 17:24:56 +02:00
Leonetienne 04c67436c4 Implemented GPrng pnrg 2022-05-22 16:54:40 +02:00
Leonetienne bedfc91e04 GHash now uses a full-size key for the cipher 2022-05-22 14:30:24 +02:00
Leonetienne fe6ec11672 Adjusted tests 2022-05-22 14:29:21 +02:00
Leonetienne 967eba2f03 Cmake make colored output 2022-05-22 14:21:21 +02:00
Leonetienne b0e0c0cd99 Moved utility functions to cpp file 2022-05-22 14:13:10 +02:00
Leonetienne fedb30bb43 Added padding direction option for Util::StringToBitblock 2022-05-22 13:54:03 +02:00
Leonetienne 9fdc642bd6 Implemented a key class 2022-05-22 13:45:40 +02:00
Leonetienne bb76cbb2d7 Renamed class GCryptWrapper to GWrapper 2022-05-22 13:07:40 +02:00
Leonetienne cf784ca8ac Renamed method DigestFlexblock to CipherFlexblock, and made it public 2022-05-22 13:04:20 +02:00
Leonetienne 734324ec10 Renamed class Hasher to GHash 2022-05-22 12:55:39 +02:00
Leonetienne 4e2f99c28e Renamed class Cipher to GCipher 2022-05-22 12:51:58 +02:00
Leonetienne 1cc01a840d Cmake specify color output as always 2022-05-22 12:51:29 +02:00
Leonetienne 29f0efbba5 Fix warning 2022-05-22 12:31:48 +02:00
Leonetienne 201917d385 Warnings are now treated as errors 2022-05-22 12:31:33 +02:00
Leonetienne 6dce12b6ee Added class for hashing, that is now used for password to key transformation 2022-05-22 00:23:10 +02:00
Leonetienne f3b6dc155c Implemented digestion (feeding one block at a time) 2022-05-21 20:41:09 +02:00
Leonetienne 71de8270d8 Added warning to readme 2022-05-21 20:40:44 +02:00
Leonetienne 985aca1ef0 Merge branch 'master' of gitea.leonetienne.de:leonetienne/GCrypt 2022-05-20 10:19:45 +02:00
Leon Etienne baf3190665 Fix typo in code samples in readme 2022-05-17 14:16:17 +02:00
Leonetienne 61577acd9e Add ideas for cli relaunch 2022-05-17 12:32:30 +02:00
Leonetienne 4015ee5dda Switch to https-based git submodules 2022-05-17 01:31:26 +02:00
Leonetienne 9faea67af3 Version bump gcryptlib 2022-05-17 01:18:00 +02:00
Leonetienne 7a61d2e6c3 Step 2: fix broken submodule config 2022-05-17 01:17:48 +02:00
Leonetienne e416fe05cb Step 1: fix broken submodule config 2022-05-17 01:16:25 +02:00
Leonetienne a8230086d3 Streamlined workflow of GCryptCLI 2022-05-17 01:13:42 +02:00
Leonetienne 845c77a985 unbloated readme 2022-05-16 23:49:08 +02:00
Leonetienne e8305399ea Fix dangling var in cmakelist of gcryptlib 2022-05-16 23:47:36 +02:00
Leonetienne 5fb38e1ed3 Update readme 2022-05-16 23:37:14 +02:00
Leonetienne f75a41d8dc Translated encryption/decryption consistency tests to catch2 2022-05-16 23:26:29 +02:00
Leonetienne 14e1fbe32c Translated password2key transformation collision resistance tests to catch2 2022-05-16 23:03:55 +02:00
Leonetienne b998a51e11 Renamed ghettocryptwrapper class to gcryptwrapper 2022-05-16 22:50:52 +02:00
Leonetienne 13a7abd82d Translated gcrypt wrapper tests to catch2 2022-05-16 22:47:41 +02:00
Leonetienne 7fe9dcc6dc GCryptLib: Fix include paths 2022-05-16 22:35:28 +02:00
Leonetienne 9432325b4a Fix directory structure for include dir 2022-05-16 22:22:42 +02:00
Leonetienne 7c556e5b3d Doxygen adjustment, and better directory name for GCryptLib 2022-05-16 22:19:20 +02:00
Leonetienne acf9dea387 Gcryptlib: new brace style, and moved to Leonetienne namespace 2022-05-16 22:15:34 +02:00
Leonetienne c551f5fa64 retabbed gcryptlib 2022-05-16 22:01:52 +02:00
Leonetienne ae276e49af New directory structure for libghettocrypt 2022-05-16 21:43:22 +02:00
Leon Etienne 9772c5fcf8 Added comment 2022-05-16 00:21:01 +02:00
Leonetienne a29e199125 Remove bunch of microsoft crap 2022-05-13 22:28:01 +02:00
Leon Etienne b8d6be8f4c Typos 2022-05-13 22:12:59 +02:00
Leon Etienne ec3dd1ab07 Rename header in cli/readme 2022-05-13 12:46:56 +02:00
Leon Etienne 518fc054ed Update readme.md 2022-05-13 11:58:34 +02:00
Leon Etienne 5afd772a84 Update documentation for PasswordToKey function 2022-05-13 11:37:08 +02:00
Leon Etienne 754db08e7d Update 'readme.md' 2022-04-13 18:56:56 +02:00
Leonetienne 17ba2a373e Rename cli cmake target 2022-03-18 17:10:32 +01:00
Leon Etienne c7b13ca7ab Fix filename 2022-03-16 22:45:56 +01:00
Leonetienne 698647f7af readme 2022-03-16 01:42:19 +01:00
Leonetienne 4a40dfbba4 Update readme 2022-03-16 01:37:53 +01:00
Leonetienne 117798d0fb Implemented hashsum mode 2022-03-16 01:31:28 +01:00
Leonetienne cdad33c738 Updated hazelnupp 2022-03-13 19:48:29 +01:00
Leonetienne 6e13a5196a fix broken base uwu 2022-03-13 19:36:29 +01:00
Leonetienne 6f08848aed more digits for uwu base 2022-03-13 19:23:13 +01:00
Leonetienne 3359fdab17 Fix build command 2022-03-13 19:15:43 +01:00
Leonetienne ea0778e203 Fix build command 2022-03-13 19:15:29 +01:00
Leonetienne 29117aff0c Updated installation instructions, and removed useless non-crossplatform binary 2022-03-13 19:13:54 +01:00
Leonetienne f250f77557 readme 2022-03-13 19:08:09 +01:00
Leonetienne 09e6dff9d3 more uwu digits and readme 2022-03-13 19:06:14 +01:00
Leonetienne c9953a1078 readme 2022-03-13 18:56:55 +01:00
Leonetienne 829de7c1f4 More uwu digits, and included warning in readme 2022-03-13 18:55:56 +01:00
Leonetienne bfe7152f1f readme 2022-03-13 18:26:24 +01:00
Leonetienne a64c0541ed readme 2022-03-13 18:25:20 +01:00
Leonetienne aa860bad76 readme 2022-03-13 18:24:11 +01:00
Leonetienne 6eae039c37 readme 2022-03-13 18:23:16 +01:00
Leonetienne 5722110bce Merge branch 'master' of github.com:Leonetienne/GhettoCrypt 2022-03-13 18:22:30 +01:00
2 changed files with 12 additions and 9 deletions
+1 -1
View File
@@ -44,7 +44,7 @@ PROJECT_NUMBER =
# for a project that appears at the top of each page and should give viewer a # for a project that appears at the top of each page and should give viewer a
# quick idea about the purpose of the project. Keep the description short. # quick idea about the purpose of the project. Keep the description short.
PROJECT_BRIEF = "An educational cryptography library (GCrypt / GNU Crypt)" PROJECT_BRIEF = "Ghetto (but also super easy) cryptography!"
# With the PROJECT_LOGO tag one can specify a logo or an icon that is included # With the PROJECT_LOGO tag one can specify a logo or an icon that is included
# in the documentation. The maximum height of the logo should not exceed 55 # in the documentation. The maximum height of the logo should not exceed 55
+11 -8
View File
@@ -1,22 +1,24 @@
[![Build Status](https://drone.leonetienne.de/api/badges/leonetienne/GCrypt/status.svg)](https://drone.leonetienne.de/leonetienne/GCrypt) [![Build Status](https://drone.leonetienne.de/api/badges/leonetienne/GCrypt/status.svg)](https://drone.leonetienne.de/leonetienne/GCrypt)
# GCrypt # GCrypt
*GCrypt (GNU Crypt) — an educational project for learning how block ciphers work* *(GhettoCrypt), because frankly I have no idea what the fuck I'm doing*
<sub>*Please don't use this for anything critical*</sub> <sub>*Please don't use this for anything critical*</sub>
> **Note:** This project is unrelated to [libgcrypt](https://www.gnupg.org/software/libgcrypt/index.html), the cryptographic library used by GnuPG. Any naming similarity is coincidental — "GCrypt" here just stands for "GNU Crypt".
## [Documentation](https://gcrypt.rtfm.leonetienne.de/) ## [Documentation](https://gcrypt.rtfm.leonetienne.de/)
## What is this? ## What the hell is this?
An educational project on implementing a block cipher using a feistel network. An educational project on implementing a block cipher using a feistel network.
This block cipher employs a few modes of operation. Read more about them [here](#modes-of-operation). This block cipher employs a few modes of operation. Read more about them [here](#modes-of-operation).
## Features ## Features
* Very easy to use * It has very easy syntax
* It's slow
* It's probably super insecure
* But the syntax is pythonlike easy🙇
* 512-bit keys * 512-bit keys
* Not performance-optimized, and not audited for security
It's pretty ghetto, you know?
## What are the actual advantages? ## What are the actual advantages?
* It's two files to import into your project * It's two files to import into your project
@@ -28,8 +30,9 @@ This block cipher employs a few modes of operation. Read more about them [here](
* For data obfuscation * For data obfuscation
* If your only other option would be no encryption at all * If your only other option would be no encryption at all
### Seriously, don't use this for anything critical. Homebrew ciphers are rarely secure — this one included. ### I am not kidding, don't use this for critical stuff! Homebrew ciphers tend to be shit!
Even assuming it's a good cipher, its implementation leaves a lot to be desired in terms of being cryptographically secure. Especially mine!🗡️
Even assumed it's a good cipher, it's implementation leaves a lot to be desired in terms of being cryptographically secure.
## How do I use this? ## How do I use this?
### *"I don't care about the library. Just let me use it from the command line!"* ### *"I don't care about the library. Just let me use it from the command line!"*