Thursday, April 7, 2016

fizzbuzz.asm

It's finally here. I just got done cleaning up fizzbuzz.asm. Endless amusement.

https://gist.github.com/beta0x64/d3b6762c638b4a6784edd81a80d95aa7

I tried making doing values -50 to +50 but for some reason it did not work on the negative modulo. For example, -50 would not be considered fizz or buzz (divisible by 3 or 5). I didn't look into it any further.

Sunday, April 3, 2016

Weekly update - Progress was slow! Not anymore

The past couple weeks have been slow for me, but that is all in the past. I had some medical stuff go on that made me quite sluggish and a little irritable.

General update: I would like to reinstall this machine. In my opinion, Ubuntu has declined in quality lately. I would ideally like to install a couple operating systems with a large shared filesystem. For example, I would like to try Fedora, OpenSUSE and Debian.

Remote backup update: I realized that Amazon Web Services only provides disk level encryption (EBS volume encryption) for instances over a certain massive size. No thank you! I might try this out on Linode. Anyway, a surefire solution would be to use cryptoLUKS containers and possibly git. Put the entire backup in cryptoLUKS containers, then use a git filesystem inside of that to keep track of the changes.

Security system: I am having an issue running my cartonized perl. No idea why this is. Anyway, I decided to start working on new features in branches finally. Right now, there's a 'show_incidents' branch for Rootcrit here: https://github.com/beta0x64/Rootcrit/tree/show_incidents I noticed that when opening a very large number of images and attempting to decrypt them, asynchronous processes would apparently timeout inevitably. That's a challenge of client-side JS programming: how can I know what the client is capable of? How do we recover in that situation? Well, my plan is to pool the workers at least. I would also like to add paging, but that is a little bit outside of my paygrade right now when it comes to Cassandra. I know it can be done, though.

Statistics: I've been doing some work on z-scores lately. There's not much to say about this. z-scores will tell me where a value lies on a normal distribution, which lets me answer questions like "How likely is it that someone is X or more and Y or more?" etc. etc..

Assembly: I haven't done much of anything here. I have not so much as edited my FizzBuzz program, which is very disappointing, I know. :) After looking at it briefly, I think the main issue I had was in "knowing when to stop." Or in other words, my loop was broken. I should look into how to write functions in nasm. That would help keep the repetition down tremendously.

That's all I can think of for now to update.

Goals for next Sunday:

General: Reinstall this computer.

Remote backups: Make it easy to work with cryptoLUKS (probably a perl or ruby wrapper).

Rootcrit: Reinstall carton and get Rootcrit running again. Then check out the decryption pooling.

Statistics: Keep on chugging along.

Assembly: Find out how to write a function in nasm. Address the fizzbuzz loop.

Saturday, March 26, 2016

Security system update - we have decryption!

Good news everyone, I got OpenPGP.js to work. I gave up on jBinary and decided to go with a plain XHR request that uses the arraybuffer type. From there, it's a cinch to load the binary data into OpenPGP.js. I've never been so happy to decrypt a file. :)

However, there are bugs and the current UX is terrible. It tries to list all the files in Cassandra (lol), and it also seems to be decrypting only the last image in the list despite loading all the others. No good! I would also like to make it easier to view individual images.

Anyway, I also learned that Google has its own end-to-end PGP encryption in the works. I think that's pretty awesome, and I hope we see more uses for client side encryption. SSL is not enough! Especially in today's cloud-driven world where it's all too easy to lose control of your own data.

Monday, March 21, 2016

Reverse engineering with GDB? Maybe

I'm learning a bit about reverse engineering, and I have to say: using GDB is a real pain. Gee, I wish I had IDA Pro right now! Anyway, GDB is a pain to use because I can't view all the registers and flags at once. Allegedly, I should be able to also reverse-step in gdb 7 but I am not seeing the option to. I might need to custom compile my own. I'll need to get a lot more comfortable with gdb so I can expand some tools for my own dev work. They should become quite valuable since gdb isn't going anywhere soon.

Also, 'gdb -tui' and thank me later.

'Ctrl-x 2' will split the screen for source and assembly code. Then, 'layout asm', 'break *start', 'run', 'step' and 'next.' That's the quick and dirty primer for you. Expect to see me talk more about this later.

Sunday, March 20, 2016

Another security system update

I'm running into issues loading the GPG encrypted data into a Uint8Array which should then be read by OpenPGP.js. I am seeing a discrepancy between the values of what is going in the Uint8Array and what I am seeing in a hex editor. xxd hex editor shows a leading value of 133. The Uint8Array is showing a value of 125. I downloaded the gpg encrypted file and decrypted it with gpg2, so the file is actually valid. It must be how I'm transporting it. I'm loading over AJAX right now.

Here's my first pass: OpenPGP.js Nightmare

I am getting an error on line 19 of the gist.

I'll keep at it and see what I can uncover. I knew I was going to run into issues with encoding, especially with a language as hectic as JavaScript. Sometimes web developers forget that there's anything but strings and numbers out there!

Saturday, March 19, 2016

Security system update

I made a little bit of progress. I've added a textarea for the GPG private key. Basically, you just paste the ASCII private key into the textarea, we load it into openpgp, prompt for a password, then we begin decrypting all of the incident data. There's a lot more work to be done here.

Redmine, AWS Backup, and more

So, I was looking for a private issue tracker for my personal use. I discovered Redmine and installed it on cloud AWS. I assigned it a domain name and now I can connect and check on my issues, estimating time etc.. It's so extremely convenient. I hope to expand its utility into planning etc.. I'm already reaping the benefits of having priority management built in an accessible manner.

I'm toying with the idea of backing up my data to AWS. I can import a keypair, so the data should remain secure. Right now, I have a 512 GB Magnetic EBS volume attached to one of my micro instances. It should be interesting to try to upload the data to it and see what happens.