What is pcsprng? It stands for Personal Cryptographically Secure Pseudo-Random Number Generator. pcsprng takes a private and a public byte-string and constructs a csprng from it. The pcsprng cli supports outputting raw bytes and choosing values from a user provided list.
For what purpose? You can generate passwords and keyfiles all from a single master password. In that case the private string is your master password and the public string is whatever you are creating a password/keyfile for.
Security pcsprng is written in rust and uses state of the art cryptography. ChaCha20 was chosen for the csprng. Sha3-256 was chosen to generate a seed for the csprng from the private and public strings.
Current status The way the csprng works is stable. The crypto primitives are tested against testvectors. The cli is in development. Its interface might change.
seriously nigger, your repo is two hours old and you already shill it here? fuck off
Justin Peterson
thx for the feedback guys. i will add you to the CONTRIBUTORS.txt.
Owen Evans
I'm stupid what is this software for exactly
Adrian Robinson
...
Eli Baker
...
Brandon White
It's tail-wagging-the-dog-ware. `cat /dev/urandom` gets you the output of a ChaCha20 PRNG too, only it's properly seeded.
Parker Scott
fucking lol. reseeding a csprng is not a smart thing to do. especially not when you are getting your seeds from a intel backdoored cpu. blog.cr.yp.to/20140205-entropy.html
Juan Scott
btw the point of pcsprng is that if you lose/forget your password/keyfile you can just generate it again. if you create a keyfile from urandom for your encrypted hdd and you lose, all you terabytes of animoo porn are gone.
Dylan Gonzalez
also just
Julian Green
i wrote a program in rust to generate trips.
Jaxson Powell
same
Thomas Thomas
savage :^)
Cooper Reed
epic non-trips right here
Blake Cook
what does this do? Given a master password, it will give the same output for "reddit.com" no matter what computer I generate it from? Great so now I have a master password I can go use on 20 different public computers and this is perfectly fine because it's 2015, and my security model is still literally: le hashes and shit checkmate hackers.
Ryder Walker
yes. what are you trying to say with "le hashes"?
Brayden Evans
Could you post pseudocode of your algo for generating these passwords? Just because you use secure primitives doesn't mean the end result is secure.
Asher Reyes
not being disciplined enough to know how to correctly code in C using centralized shit instead of gitlab
James Barnes
Top kek matey
Matthew Sanders
pcsprng uses chacha20 as its csprng. the key for chacha20 is computed as follows: constant VERSION = 1;key = sha3-256(LEB128(VERSION) || private || LEB128(len(private)) || public || LEB128(len(public)); || is byte string concatenation. since there is no use for a nonce pcsprng uses it to extend the position bits to 128 bit.
gitlab is also centralized faggot
Jordan Perry
If I wanted a password-based key, I'd use a password-based key derivation function, not some Jenga-tower software stack and random github code.
Brody Jones
pbkdfs are meant to strengthen a weak password by doing some expensive irreversible operation on it. just use a strong password and you dont need a pbkdf. with pcsprng you only need one password and generate all your passwords/keyfiles (and maybe private keys) from it.
Elijah Foster
Like I said, it's 2015, so my password of nigger123 that I reuse on my bank and 10 forums is perfectly fine, because they use hashing algorithms with salt and 9000 iterations, and it's illegal to run a website without such hashing algorithms, plus everything's gone 2FA now, so even if they magically figured out a way to crack or intercept my password, they still couldn't log onto my shit.
But now that I have this tool, I can be even more secure! I can have unique strong passwords for all my sites and log into them from any machine without having to remember them! You may think using a master password on untrusted computers is a bad idea, but don't worry, they aren't saved to disk so it's super secure!
Connor Phillips
wtf are you even trying to say? of course doing shit on untrusted computers is bad.
Liam Campbell
...
Oliver Scott
ebin. i am a #cmissile now
Thomas Scott
I can do the same with password-store and be reasonably confident that the crypto code behind it is written by someone competent.