Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/elliotwutingfeng/commodoreeffpassphrase

Generate memorable EFF Dice-Generated Passphrases in Commodore BASIC.
https://github.com/elliotwutingfeng/commodoreeffpassphrase

8-bit authentication basic cbm-basic commander-x16 commodore-128 commodore-64 correct-horse-battery-staple diceware hacktoberfest home-computer microsoft-basic password pet petscii retrocomputing security vic-20 vice xkcd

Last synced: 2 days ago
JSON representation

Generate memorable EFF Dice-Generated Passphrases in Commodore BASIC.

Awesome Lists containing this project

README

        

# Commodore EFF Passphrase

[![Commodore BASIC](https://img.shields.io/badge/Commodore_BASIC-1E2A4E?style=for-the-badge&logo=commodore&logoColor=white)](https://en.wikipedia.org/wiki/Commodore_BASIC)

[![GitHub license](https://img.shields.io/badge/LICENSE-BSD--3--CLAUSE-GREEN?style=for-the-badge)](LICENSE)

Generate memorable [EFF Dice-Generated Passphrases](https://www.eff.org/dice) in [Commodore BASIC](https://en.wikipedia.org/wiki/Commodore_BASIC).

Works on the [Commodore 64](https://en.wikipedia.org/wiki/Commodore_64), [Creative Micro Designs SuperCPU64](https://en.wikipedia.org/wiki/SuperCPU), [Commodore 128](https://en.wikipedia.org/wiki/Commodore_128), [Commodore CBM-II](https://en.wikipedia.org/wiki/Commodore_CBM-II), [Commodore PET](https://en.wikipedia.org/wiki/Commodore_PET), [Commodore Plus/4](https://en.wikipedia.org/wiki/Commodore_Plus/4), [Commodore VIC-20](https://en.wikipedia.org/wiki/Commodore_VIC-20), and [Commander X16](https://commanderx16.com).

Written for the [VICE Emulator](https://vice-emu.sourceforge.io) and [Commander X16 Emulator](https://github.com/X16Community/x16-emulator).

Uses the [EFF short wordlist v2](https://eff.org/files/2016/09/08/eff_short_wordlist_2_0.txt).

![demo](demo.gif)

## Supported devices

| Device (emulator command(s)) | Emulator | BASIC Version | Program File |
|-----------------------------------------------|------------------------|---------------|--------------------------------------|
| Commodore 64 (`x64` or `x64sc` or `x64dtv`) | VICE | V2.0 | [bin/c64.prg](bin/c64.prg) |
| Creative Micro Designs SuperCPU64 (`xscpu64`) | VICE | V2.0 | [bin/c64.prg](bin/c64.prg) |
| Commodore 128 (`x128`) | VICE | V7.0 | [bin/c128.prg](bin/c128.prg) |
| Commodore CBM-II P500 (`xcbm5x0`) | VICE | V4.0 | [bin/cbm5x0.prg](bin/cbm5x0.prg) |
| Commodore CBM-II (`xcbm2`) | VICE | V4.0 | [bin/cbm2_pet.prg](bin/cbm2_pet.prg) |
| Commodore PET (`xpet`) | VICE | V4.0 | [bin/cbm2_pet.prg](bin/cbm2_pet.prg) |
| Commodore Plus/4 (`xplus4`) | VICE | V3.5 | [bin/plus4.prg](bin/plus4.prg) |
| Commodore VIC-20 (`xvic`) | VICE | V2.0 | [bin/vic20.prg](bin/vic20.prg) |
| Commander X16 (`x16emu`) | Commander X16 Emulator | V2.0 | [bin/x16.prg](bin/x16.prg) |

## Warning

- This project is a recreational proof-of-concept to demonstrate how high-entropy passphrases may be generated in Commodore BASIC.
- Random number generators used by Commodore home computers are **not** cryptographically secure.
- If you need dice-generated passphrases for critical applications, follow the directions provided by the [Electronic Frontier Foundation](https://www.eff.org/dice).

## Requirements

- [VICE Emulator](https://vice-emu.sourceforge.io) or [Commander X16 Emulator](https://github.com/X16Community/x16-emulator)
- Optional: Python 2/3 for generating BASIC code.
- Optional: [petcat](https://vice-emu.sourceforge.io/vice_16.html) for compiling BASIC code.

## Usage

### VICE Emulator

#### Additional setup for VIC-20 (`xvic`)

Skip this step if you are not using the VIC-20 (`xvic`).

Commodore VIC-20 requires memory expansion before the program can be loaded into the machine.

In VICE, go to

- **Preferences** → **Settings**
- **Machine** → **Model**
- **Memory expansions** → **Common configurations** → **All (block0/1/2/3/5)**

Then perform a hard reset

- **File** → **Reset** → **Hard reset**

#### Run in VICE Emulator

If you are using the VIC-20 (`xvic`), ensure that you have completed the aforementioned additional setup before proceeding.

In VICE, go to

- **File** → **Smart attach ...**
- Choose the appropriate `.prg` program file from this repository. See [Supported Devices](#supported-devices).
- **Autostart**
- Enter number of words to generate (3-20)

### Commander X16 Emulator

In the terminal, run the following

#### Linux/macOS

```bash
x16emu -run -prg bin/x16.prg
```

#### Windows

```powershell
x16emu.exe -run -prg bin\x16.prg
```

## Development

### Generate BASIC code and compile to PRG format

```bash
make build
```

## Acknowledgements

GOTO with calculated expressions hack for Commodore 64 by [Frithjof Dau](https://lemon64.com/forum/viewtopic.php?t=56869), published on DATA WELT magazine issue 4/85.

## Useful links

-
-
-