rskeygen(1)
β¨ rskeygen β bestie edition β¨
ok so this is rskeygen(1), a page from the General Commands Manual, and it's about making private key pairs for TI graphing calculators. yes THE calculators. the ones from math class. we're doing cryptography on them, it's giving iconic π
π NAME π
rskeygen β generate private key pairs for TI graphing calculators
no cap, that's the whole job. keys. TI. calculators. let's go π¦
πΈ SYNOPSIS πΈ
rskeygen [ --secure ] [ --ti ] [ --length nbytes ]
that's it, that's the whole command. three lil options, all optional, all vibes β¨
π DESCRIPTION π
okay so here's the tea, bestie π« β rskeygen generates application and OS signing keys for the Texas Instruments TI-73, TI-83 Plus, TI-84 Plus, TI-89, and TI-92 Plus graphing calculators.
these keys are made of two prime numbers, p and q, plus their product, n. that's the whole key right there, three numbers just vibing together π₯
now here's the constraint that lowkey runs everything: current calculator models impose a limit of 512 bits (64 bytes) on the size of n. so p and q are generally about 256 bits each. as of this writing, that means factoring n is beyond the reach of most people β but bestie, that will undoubtedly change in the future. π nothing stays secure forever, that's just the way of the world.
and now for the part that's giving sad girl hours π₯: the keys generated by rskeygen are not very useful at the moment, because in order for an application or OS to be accepted by the calculator, the key used to sign it must itself be signed using the calculator's own (possibly unique) private key β and that key is only known to TI. periodt. π
nevertheless, rskeygen is provided in the hope that it can be useful, both for testing and for devising new signature schemes based on TI's. so it's not useless, it's just... aspirational. main character energy honestly π
β OPTIONS β
--secureβ attempt to generate a ``secure'' key using the system's entropy pool,/dev/random(seerandom(4)). the actual security is thus dependent on your system's implementation of/dev/random, so like, it's only as good as your system is, iykyk.
and listen β without --secure, the keys are generated based on the current time and process ID, which is not secure in the slightest. like not even a little bit. zero. nada. π this is the "I just need something that works for testing" mode.
--tiβ generate keys which are palatable to TI's official app signing programs. this forcespto be congruent to 3 andqto be 7 modulo 8. π§
bestie you do not need this when using rabbitsign(1), and you do not need it for the calculator to validate signatures properly. it's purely for keeping TI's own tooling happy π
--length nbytesβ specify the length in bytes of the modulusn;pandqare each calculated to be approximately half this length.
β οΈ this should not be greater than 64 for current calculators, and it must be less than 256 in any event, due to a limitation of the key file format. do not test the format. the format will win. π
π¦ SEE ALSO π¦
rabbitsign(1), packxxk(1) β your other faves, go say hi π«Ά
π AUTHOR π
Benjamin Moody <floppusmaximus@users.sf.net>
okay that's the whole page, and for the record this is RabbitSign 2.0, dated July 2009 β yes we're reading a classic, and yes it still ate. π go make some keys, bestie, and remember: --secure or it's literally just your clock and your PID out there pretending to be cryptography. πβ¨
π¦ where this page comes from
- debian bookworm: rabbitsign 2.1+dmca1-2
- debian trixie: rabbitsign 2.1+dmca1-3
- fedora 43: rabbitsign 2.1-7.fc43 Β· GPL-3.0-or-later AND GPL-2.0-or-later
- fedora 44: rabbitsign 2.1-8.fc44 Β· GPL-3.0-or-later AND GPL-2.0-or-later
- ubuntu jammy: rabbitsign 2.1+dmca1-2
- ubuntu noble: rabbitsign 2.1+dmca1-2
- ubuntu questing: rabbitsign 2.1+dmca1-3
- ubuntu resolute: rabbitsign 2.1+dmca1-3build1
- ubuntu stonking: rabbitsign 2.1+dmca1-4
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms