Well, I made some alterations to my old C version of my HMAC cipher. It[...]
uses some non-portable API's in order to try to get a TRNG. It prints
out its usage, just run the program with no arguments, look in ct_help.
Well, can anybody else get it to compile _and_ run on their end? Thanks everybody!
The secret key is hardcoded to Password and SHA2-512:
On 2/12/2026 9:40 PM, Chris M. Thomasson wrote:
Well, I made some alterations to my old C version of my HMAC cipher. It uses some non-portable API's in order to try to get a TRNG. It prints
out its usage, just run the program with no arguments, look in ct_help.
Well, can anybody else get it to compile _and_ run on their end? Thanks everybody!
The secret key is hardcoded to Password and SHA2-512:[...]
I put it up on github:
https://github.com/ChrisMThomasson/ct_HMAC_Cipher_Experiment/blob/main/ct_hmac_sha2_512.c
Chris M. Thomasson wrote:
On 2/12/2026 9:40 PM, Chris M. Thomasson wrote:
Well, I made some alterations to my old C version of my HMAC cipher. It[...]
uses some non-portable API's in order to try to get a TRNG. It prints
out its usage, just run the program with no arguments, look in ct_help.
Well, can anybody else get it to compile _and_ run on their end? Thanks
everybody!
The secret key is hardcoded to Password and SHA2-512:
I put it up on github:
https://github.com/ChrisMThomasson/ct_HMAC_Cipher_Experiment/blob/main/ct_hmac_sha2_512.c
Why I do not like your code snippets:
$ gcc hmac.c -o hmac
hmac.c:29:10: fatal error: hmac_sha2.h: No such file or directory
29 | #include "hmac_sha2.h"
| ^~~~~~~~~~~~~
compilation terminated.
You should definetly learn Go or Rust...!!! BTW. speaking of TRNG,
your's is not a TRNG, use instead on your Windows box your TPM 2.0
hardware TRNG module, like I did, for example with pwgen:
https://github.com/Ch1ffr3punk/pwgen
Or if your computer is too old for TPM 2.0 usage try to use Quantum
Random bytes:
https://github.com/Ch1ffr3punk/qrng
https://github.com/Ch1ffr3punk/pnr
HTH!
On 2/14/2026 6:48 AM, Stefan Claas wrote:
Chris M. Thomasson wrote:
On 2/12/2026 9:40 PM, Chris M. Thomasson wrote:
Well, I made some alterations to my old C version of my HMAC cipher. It uses some non-portable API's in order to try to get a TRNG. It prints out its usage, just run the program with no arguments, look in ct_help.
Well, can anybody else get it to compile _and_ run on their end? Thanks everybody!
The secret key is hardcoded to Password and SHA2-512:[...]
I put it up on github:
https://github.com/ChrisMThomasson/ct_HMAC_Cipher_Experiment/blob/main/ct_hmac_sha2_512.c
Why I do not like your code snippets:
$ gcc hmac.c -o hmac
hmac.c:29:10: fatal error: hmac_sha2.h: No such file or directory
29 | #include "hmac_sha2.h"
| ^~~~~~~~~~~~~
compilation terminated.
Well, it uses the following lib:
https://github.com/ogay/hmac
So, go get it. Actually, its pretty nice. That is the only dependency.
After that, it should work fine. I cannot just copy those files from
ogay into my repository, right? :^)
You should definetly learn Go or Rust...!!! BTW. speaking of TRNG,
your's is not a TRNG, use instead on your Windows box your TPM 2.0
hardware TRNG module, like I did, for example with pwgen:
Well, if somebody has access to a "real" TRNG device, they can adapt my
code to use its API.
https://github.com/Ch1ffr3punk/pwgen
Or if your computer is too old for TPM 2.0 usage try to use Quantum
Random bytes:
https://github.com/Ch1ffr3punk/qrng
https://github.com/Ch1ffr3punk/pnr
HTH!
That is a TRNG? I thought I needed a special device for that?
Chris M. Thomasson wrote:
On 2/14/2026 6:48 AM, Stefan Claas wrote:
Chris M. Thomasson wrote:
On 2/12/2026 9:40 PM, Chris M. Thomasson wrote:
Well, I made some alterations to my old C version of my HMAC cipher. It >>>>> uses some non-portable API's in order to try to get a TRNG. It prints >>>>> out its usage, just run the program with no arguments, look in ct_help. >>>>>[...]
Well, can anybody else get it to compile _and_ run on their end? Thanks >>>>> everybody!
The secret key is hardcoded to Password and SHA2-512:
I put it up on github:
https://github.com/ChrisMThomasson/ct_HMAC_Cipher_Experiment/blob/main/ct_hmac_sha2_512.c
Why I do not like your code snippets:
$ gcc hmac.c -o hmac
hmac.c:29:10: fatal error: hmac_sha2.h: No such file or directory
29 | #include "hmac_sha2.h"
| ^~~~~~~~~~~~~
compilation terminated.
Well, it uses the following lib:
https://github.com/ogay/hmac
So, go get it. Actually, its pretty nice. That is the only dependency.
After that, it should work fine. I cannot just copy those files from
ogay into my repository, right? :^)
Oh well, at least you should have mentioned in your OP the dependencies!
You should definetly learn Go or Rust...!!! BTW. speaking of TRNG,
your's is not a TRNG, use instead on your Windows box your TPM 2.0
hardware TRNG module, like I did, for example with pwgen:
Well, if somebody has access to a "real" TRNG device, they can adapt my
code to use its API.
So, you don't have one in your PC? Then you should also not speak in the future about TRNG in your code, when it is not!
https://github.com/Ch1ffr3punk/pwgen
Or if your computer is too old for TPM 2.0 usage try to use Quantum
Random bytes:
https://github.com/Ch1ffr3punk/qrng
https://github.com/Ch1ffr3punk/pnr
HTH!
That is a TRNG? I thought I needed a special device for that?
Yes, it uses a real TRNG in my PC, i.e. the TMP 2.0 hardware module.
On 2/14/2026 1:46 PM, Stefan Claas wrote:
Chris M. Thomasson wrote:
On 2/14/2026 6:48 AM, Stefan Claas wrote:
Chris M. Thomasson wrote:
On 2/12/2026 9:40 PM, Chris M. Thomasson wrote:
Well, I made some alterations to my old C version of my HMAC cipher. It
uses some non-portable API's in order to try to get a TRNG. It prints
out its usage, just run the program with no arguments, look in ct_help.
Well, can anybody else get it to compile _and_ run on their end? Thanks
everybody!
The secret key is hardcoded to Password and SHA2-512:[...]
I put it up on github:
https://github.com/ChrisMThomasson/ct_HMAC_Cipher_Experiment/blob/main/ct_hmac_sha2_512.c
Why I do not like your code snippets:
$ gcc hmac.c -o hmac
hmac.c:29:10: fatal error: hmac_sha2.h: No such file or directory
29 | #include "hmac_sha2.h"
| ^~~~~~~~~~~~~
compilation terminated.
Well, it uses the following lib:
https://github.com/ogay/hmac
So, go get it. Actually, its pretty nice. That is the only dependency. After that, it should work fine. I cannot just copy those files from
ogay into my repository, right? :^)
Oh well, at least you should have mentioned in your OP the dependencies!
You should definetly learn Go or Rust...!!! BTW. speaking of TRNG, your's is not a TRNG, use instead on your Windows box your TPM 2.0 hardware TRNG module, like I did, for example with pwgen:
Well, if somebody has access to a "real" TRNG device, they can adapt my code to use its API.
So, you don't have one in your PC? Then you should also not speak in the future about TRNG in your code, when it is not!
https://github.com/Ch1ffr3punk/pwgen
Or if your computer is too old for TPM 2.0 usage try to use Quantum Random bytes:
https://github.com/Ch1ffr3punk/qrng
https://github.com/Ch1ffr3punk/pnr
HTH!
That is a TRNG? I thought I needed a special device for that?
Yes, it uses a real TRNG in my PC, i.e. the TMP 2.0 hardware module.
I put DrMoron up online. Here is a message encrypted using the default
key. Click it, and you should see the message:
https://fractallife247.com/test/hmac_cipher/drmoron/?ct_hmac_cipher=0decd464be7496f9534ef9fabee04f8d283ee784811a8a9bff4193329f2bcaa859fb8288acc5c096618dcaf71c19304cce3f02d7a9e60975fdb9b468fbf3093a29c266846ff228c4ef1ca0fc8b6e81b7654857a35440a75a4d44711efb61a18fb2d26b4f373d5cc86ee5809dcadf96f42f5ed62e27e1d6bb2fe3c8574047fcc55d92066a9faa0958edaa93c371939a50c08b1f0885d42e028d8190f10609
Chris M. Thomasson wrote:
On 2/14/2026 1:46 PM, Stefan Claas wrote:
Chris M. Thomasson wrote:
On 2/14/2026 6:48 AM, Stefan Claas wrote:
Chris M. Thomasson wrote:
On 2/12/2026 9:40 PM, Chris M. Thomasson wrote:
Well, I made some alterations to my old C version of my HMAC cipher. It >>>>>>> uses some non-portable API's in order to try to get a TRNG. It prints >>>>>>> out its usage, just run the program with no arguments, look in ct_help. >>>>>>>[...]
Well, can anybody else get it to compile _and_ run on their end? Thanks >>>>>>> everybody!
The secret key is hardcoded to Password and SHA2-512:
I put it up on github:
https://github.com/ChrisMThomasson/ct_HMAC_Cipher_Experiment/blob/main/ct_hmac_sha2_512.c
Why I do not like your code snippets:
$ gcc hmac.c -o hmac
hmac.c:29:10: fatal error: hmac_sha2.h: No such file or directory
29 | #include "hmac_sha2.h"
| ^~~~~~~~~~~~~
compilation terminated.
Well, it uses the following lib:
https://github.com/ogay/hmac
So, go get it. Actually, its pretty nice. That is the only dependency. >>>> After that, it should work fine. I cannot just copy those files from
ogay into my repository, right? :^)
Oh well, at least you should have mentioned in your OP the dependencies! >>>
You should definetly learn Go or Rust...!!! BTW. speaking of TRNG,
your's is not a TRNG, use instead on your Windows box your TPM 2.0
hardware TRNG module, like I did, for example with pwgen:
Well, if somebody has access to a "real" TRNG device, they can adapt my >>>> code to use its API.
So, you don't have one in your PC? Then you should also not speak in the >>> future about TRNG in your code, when it is not!
https://github.com/Ch1ffr3punk/pwgen
Or if your computer is too old for TPM 2.0 usage try to use Quantum
Random bytes:
https://github.com/Ch1ffr3punk/qrng
https://github.com/Ch1ffr3punk/pnr
HTH!
That is a TRNG? I thought I needed a special device for that?
Yes, it uses a real TRNG in my PC, i.e. the TMP 2.0 hardware module.
I put DrMoron up online. Here is a message encrypted using the default
key. Click it, and you should see the message:
https://fractallife247.com/test/hmac_cipher/drmoron/?ct_hmac_cipher=0decd464be7496f9534ef9fabee04f8d283ee784811a8a9bff4193329f2bcaa859fb8288acc5c096618dcaf71c19304cce3f02d7a9e60975fdb9b468fbf3093a29c266846ff228c4ef1ca0fc8b6e81b7654857a35440a75a4d44711efb61a18fb2d26b4f373d5cc86ee5809dcadf96f42f5ed62e27e1d6bb2fe3c8574047fcc55d92066a9faa0958edaa93c371939a50c08b1f0885d42e028d8190f10609
I will try out your online cipher, once your website is secured with:
https://github.com/Ch1ffr3punk/mfv
because best security pratices should be used when someone is offering
online encryption, so that the site and owner can be trusted.
On 2/15/2026 2:00 AM, Stefan Claas wrote:
because best security pratices should be used when someone is offering online encryption, so that the site and owner can be trusted.
Well, one can download the files for the site and run it offline for
sure. No server, no internet connection needed. Fair enough? Btw, has
_your_ work been properly peer reviewed?
Chris M. Thomasson wrote:
On 2/15/2026 2:00 AM, Stefan Claas wrote:
because best security pratices should be used when someone is offering
online encryption, so that the site and owner can be trusted.
Well, one can download the files for the site and run it offline for
sure. No server, no internet connection needed. Fair enough? Btw, has
_your_ work been properly peer reviewed?
Many thousands of people have seen it on reddit, in various forums,
and no programmer there had complained. I showed it also to the
guys of opentimestamps.org and they liked it too. You can show it
to your Go friend, if you are unsure, or discuss it with your C
friends on Usenet. You can also take a look at the source code,
prior installing it on your website and I can tell you too that Go
crypto libraries had an audit. The advantage of Go and Rust over C(++)
is that those programming languages are made with security in mind
unlike C(++) and others. So give it at try and you will be amazed.
On 2/15/2026 12:58 PM, Stefan Claas wrote:
Chris M. Thomasson wrote:
On 2/15/2026 2:00 AM, Stefan Claas wrote:
because best security pratices should be used when someone is offering online encryption, so that the site and owner can be trusted.
Well, one can download the files for the site and run it offline for sure. No server, no internet connection needed. Fair enough? Btw, has _your_ work been properly peer reviewed?
Many thousands of people have seen it on reddit, in various forums,
and no programmer there had complained. I showed it also to the
guys of opentimestamps.org and they liked it too. You can show it
to your Go friend, if you are unsure, or discuss it with your C
friends on Usenet. You can also take a look at the source code,
prior installing it on your website and I can tell you too that Go
crypto libraries had an audit. The advantage of Go and Rust over C(++)
is that those programming languages are made with security in mind
unlike C(++) and others. So give it at try and you will be amazed.
People seem to like my DrMoron on reddit as well. But, that is NOT a
proper review by professionals?
https://www.reddit.com/r/crypto/comments/1r369lv/drmoron_a_cipher/
Chris M. Thomasson wrote:
On 2/15/2026 12:58 PM, Stefan Claas wrote:
Chris M. Thomasson wrote:
On 2/15/2026 2:00 AM, Stefan Claas wrote:
because best security pratices should be used when someone is offering >>>>> online encryption, so that the site and owner can be trusted.
Well, one can download the files for the site and run it offline for
sure. No server, no internet connection needed. Fair enough? Btw, has
_your_ work been properly peer reviewed?
Many thousands of people have seen it on reddit, in various forums,
and no programmer there had complained. I showed it also to the
guys of opentimestamps.org and they liked it too. You can show it
to your Go friend, if you are unsure, or discuss it with your C
friends on Usenet. You can also take a look at the source code,
prior installing it on your website and I can tell you too that Go
crypto libraries had an audit. The advantage of Go and Rust over C(++)
is that those programming languages are made with security in mind
unlike C(++) and others. So give it at try and you will be amazed.
People seem to like my DrMoron on reddit as well. But, that is NOT a
proper review by professionals?
https://www.reddit.com/r/crypto/comments/1r369lv/drmoron_a_cipher/
You can do of course an audit by professionals, like cure53, wich cost
money.
https://cure53.de/
It would be better if that project made a library to link against, soWhy I do not like your code snippets:
$ gcc hmac.c -o hmac
hmac.c:29:10: fatal error: hmac_sha2.h: No such file or directory
29 | #include "hmac_sha2.h"
| ^~~~~~~~~~~~~
compilation terminated.
Well, it uses the following lib:
https://github.com/ogay/hmac
"Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> writes:
It would be better if that project made a library to link against, soWhy I do not like your code snippets:
$ gcc hmac.c -o hmac
hmac.c:29:10: fatal error: hmac_sha2.h: No such file or directory
29 | #include "hmac_sha2.h"
| ^~~~~~~~~~~~~
compilation terminated.
Well, it uses the following lib:
https://github.com/ogay/hmac
that you didn't have to put it all on the command line.
[12:24] jayjwa@ibushi:~/hmac$ gcc -pipe -o ct_hmac_sha2_512
jayjwa <jayjwa@atr2.ath.cx.invalid> writes:...
[12:24] jayjwa@ibushi:~/hmac$ gcc -pipe -o ct_hmac_sha2_512
You'd have more command line to work with if you set PS1="$ ".
I mean, surely you know which host you're logged into and
which user you logged in with without a constant reminder
eating up half the command line :-)
In my case, the current host and working directory is stashed in the
xterm title bar automatically by a shell function wrapping the cd command.
On 2026-02-18 13:06, Scott Lurndal wrote:
jayjwa <jayjwa@atr2.ath.cx.invalid> writes:...
[12:24] jayjwa@ibushi:~/hmac$ gcc -pipe -o ct_hmac_sha2_512
You'd have more command line to work with if you set PS1="$ ".
I mean, surely you know which host you're logged into and
which user you logged in with without a constant reminder
eating up half the command line :-)
It depends very much upon your work environment. I've worked in
environments where I might often be logged into multiple hosts in
different windows at the same time, and in some cases there were
multiple different users I might have been logged into a given host.
In my case, the current host and working directory is stashed in the
xterm title bar automatically by a shell function wrapping the cd command.
I agree that the title bar is a more appropriate location for current
host and current user information. However, I've found it useful to be
able to tell directly which directory was the current one when I issued
each command. If the cd (or pushd or popd) command is still on screen,
it can be figured out, but it is easier when it's part of the prompt. Of course, the value of this depends upon how much work you do at the
command line. While I was working on NASA projects, most of my work was
done at the command line.
"Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> writes:
It would be better if that project made a library to link against, soWhy I do not like your code snippets:
$ gcc hmac.c -o hmac
hmac.c:29:10: fatal error: hmac_sha2.h: No such file or directory
29 | #include "hmac_sha2.h"
| ^~~~~~~~~~~~~
compilation terminated.
Well, it uses the following lib:
https://github.com/ogay/hmac
that you didn't have to put it all on the command line.
[12:24] jayjwa@ibushi:~/hmac$ gcc -pipe -o ct_hmac_sha2_512 ct_hmac_sha2_512.c hmac_sha2.c sha2.c
[12:25] jayjwa@ibushi:~/hmac$ echo "How now brown cow?" > test.txt
[12:26] jayjwa@ibushi:~/hmac$ ./ct_hmac_sha2_512 test.txt test.enc -e
=== DrMoron Cipher (Fixed TRNG Version) ===
Mode: ENCRYPT
WARNING: Using hardcoded demo key - NOT SECURE for production!
Input file: test.txt
Output file: test.enc
Generating 73 bytes of cryptographically secure random data...
Random prefix generated successfully
Crypt Round 0:
________________________
P_I = 92 of 92
Crypt Round 1:
________________________
P_I = 92 of 92
Encryption complete!
[12:26] jayjwa@ibushi:~/hmac$ ./ct_hmac_sha2_512 test.enc test.new -d
=== DrMoron Cipher (Fixed TRNG Version) ===
Mode: DECRYPT
WARNING: Using hardcoded demo key - NOT SECURE for production!
Input file: test.enc
Output file: test.new
Crypt Round 0:
________________________
P_I = 92 of 92
Crypt Round 1:
________________________
P_I = 92 of 92
Decryption complete!
[12:27] jayjwa@ibushi:~/hmac$ cat test.new
How now brown cow?
[12:34] jayjwa@ibushi:~/hmac$ uname -a
SunOS ibushi 5.11 illumos-f8f3128c12 i86pc i386 i86pc
On 2/18/2026 9:41 AM, jayjwa wrote:[...]
"Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> writes:
It would be better if that project made a library to link against, soWhy I do not like your code snippets:
$ gcc hmac.c -o hmac
hmac.c:29:10: fatal error: hmac_sha2.h: No such file or directory
29 | #include "hmac_sha2.h"
| ^~~~~~~~~~~~~
compilation terminated.
Well, it uses the following lib:
https://github.com/ogay/hmac
that you didn't have to put it all on the command line.
It would be more convenient for sure. Also, I don't want to put ogay's
hmac files in my repository. A makefile would also help.
Excellent! Thanks for giving it a go. My next version will allow one to create a secret key file and use it.
Well, it uses the following lib:
https://github.com/ogay/hmac
So, go get it. Actually, its pretty nice. That is the only
dependency. After that, it should work fine. I cannot just copy
those files from ogay into my repository, right? :^)
| Sysop: | DaiTengu |
|---|---|
| Location: | Appleton, WI |
| Users: | 1,097 |
| Nodes: | 10 (0 / 10) |
| Uptime: | 21:13:49 |
| Calls: | 14,089 |
| Files: | 187,111 |
| D/L today: |
1,311 files (437M bytes) |
| Messages: | 2,490,428 |