MIPS Assembly German IBAN Validator & Generator

CI VERIFIED
Conversion History MIPS Assembly • FastAPI • Docker • SQLite • Heroku Cloud

Choose between Validator or Generator mode!

Convert between a valid german IBAN and its underlying German banking identifiers BLZ and KNR.

You may use your german debit card to validate it via IBAN → KNR + BLZ.
To generate a valid IBAN, please use the KNR + BLZ → IBAN.

Sensitive identifiers are masked before persistence for the conversion history database.


        

Continuous Integration

        test_iban_to_knr_blz ... PASSED
        test_knr_blz_to_iban ... PASSED
        test_invalid_iban ... PASSED
        test_invalid_knr_blz ... PASSED
        test_validateChecksum ... PASSED

        ✔ All MIPS tests passed via GitHub CI.
        ✔ All Python frontend tests passed via GitHub CI.
        ✔ All Python backend tests passed via GitHub CI.
        

About This Tool

A verified implementation of a German IBAN validator and generator, built on deterministic MIPS execution. Now extended and exposed via a modern web API.

Implementation

  • Initial MIPS assembly implementation 2023
    • Written in MIPS assembly language
    • Executed via MARS simulator
    • Verified via local test suite
  • Extension Phase 1 2025
    • FastAPI backend as a thin execution and validation layer
    • Dockerized MIPS environment for reproducible execution
    • Automated test suite executed in GitHub CI
  • Extension Phase 2 2025
    • MIPS core IBAN extended, validation in IBAN to KNRBLZ mode
    • Implemented persistent conversion history backed by SQLite
    • Added structured logging alongside backend input validation
    • Deployed to AWS

German IBAN format

An IBAN (International Bank Account Number) uniquely identifies a bank account and embeds a checksum to detect input errors.

DE AA BBBBBBBB CCCCCCCCCC
  • DE — country code
  • AA — checksum digits
  • BBBBBBBB — BLZ (bank code)
  • CCCCCCCCCC — KNR (account number)

Conversion modes

Validator Mode: IBAN → KNR + BLZ

Parses a German IBAN, validates it via verify_iban and then extracts the embedded BLZ and KNR. It uses validate_checksum.

verify_iban, validate_checksum, iban2knr.asm
Generator Mode: KNR + BLZ → IBAN

Validates the inputs, computes the checksum using string-based modulo arithmetic, and outputs a fully valid German IBAN.

knr2iban.asm, moduloStr.asm, validateChecksum.asm