All Projects → speed47 → dvdisaster

speed47 / dvdisaster

Licence: GPL-3.0 license
A tool providing additional ECC protection for optical media (unofficial version)

Programming Languages

c
50402 projects - #5 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to dvdisaster

littleca
littleca是一个基于BC的小型ca库,支持ecc,rsa,dsa,sm2的证书签发,加密解密,签名验签操作,支持国密加解密,证书签发
Stars: ✭ 44 (-62.07%)
Mutual labels:  ecc
Practical Cryptography For Developers Book
Practical Cryptography for Developers: Hashes, MAC, Key Derivation, DHKE, Symmetric and Asymmetric Ciphers, Public Key Cryptosystems, RSA, Elliptic Curves, ECC, secp256k1, ECDH, ECIES, Digital Signatures, ECDSA, EdDSA
Stars: ✭ 2,400 (+1968.97%)
Mutual labels:  ecc
public
BitDust project source codes : official Public Git repository (mirror on GitHub) : https://bitdust.io
Stars: ✭ 19 (-83.62%)
Mutual labels:  ecc
pyecsca
Python Elliptic Curve Side-Channel Analysis toolkit.
Stars: ✭ 23 (-80.17%)
Mutual labels:  ecc
EllipticCurve
An elliptic curve library written in Swift 4
Stars: ✭ 18 (-84.48%)
Mutual labels:  ecc
enigma
A fast, native, cryptographic engine for the web
Stars: ✭ 101 (-12.93%)
Mutual labels:  ecc
elliptic-curve
A polymorphic interface for elliptic curve operations
Stars: ✭ 37 (-68.1%)
Mutual labels:  ecc
wave-gui
Yet another data-over-sound tool
Stars: ✭ 64 (-44.83%)
Mutual labels:  ecc
Udpspeeder
A Tunnel which Improves your Network Quality on a High-latency Lossy Link by using Forward Error Correction, possible for All Traffics(TCP/UDP/ICMP)
Stars: ✭ 3,699 (+3088.79%)
Mutual labels:  ecc
keystore-idb
In-browser key management with IndexedDB and the Web Crypto API
Stars: ✭ 37 (-68.1%)
Mutual labels:  ecc
interesting-keys
Interesting collected (leaked) encryption/decryption keys
Stars: ✭ 33 (-71.55%)
Mutual labels:  ecc
ACMECert
PHP client library for Let's Encrypt (ACME v2 - RFC 8555)
Stars: ✭ 83 (-28.45%)
Mutual labels:  ecc
optiga-trust-m
OPTIGA™ Trust M Software Framework
Stars: ✭ 86 (-25.86%)
Mutual labels:  ecc
pairing
Optimised bilinear pairings over elliptic curves
Stars: ✭ 44 (-62.07%)
Mutual labels:  ecc
libgoldilocks
An implementation of Mike Hamburg's Ed448 (Goldilocks) curve - derived from libdecaf. This is a mirror of https://bugs.otr.im/otrv4/libgoldilocks
Stars: ✭ 17 (-85.34%)
Mutual labels:  ecc
noble-ed25519
Fastest JS implementation of ed25519, x25519 & ristretto255. Independently audited, high-security, 0-dependency EDDSA signatures and ECDH key agreement
Stars: ✭ 220 (+89.66%)
Mutual labels:  ecc
sodalite
tweetnacl in rust
Stars: ✭ 26 (-77.59%)
Mutual labels:  ecc
ParPar
High performance PAR2 create client for NodeJS
Stars: ✭ 110 (-5.17%)
Mutual labels:  ecc
elliptic-php
Fast, general Elliptic Curve Cryptography library. Supports curves used in Bitcoin, Ethereum and other cryptocurrencies (secp256k1, ed25519, ..)
Stars: ✭ 178 (+53.45%)
Mutual labels:  ecc
oseid
Microchip AVR based smartcard/token with ECC and RSA cryptography
Stars: ✭ 17 (-85.34%)
Mutual labels:  ecc

💿 What is dvdisaster?

dvdisaster provides additional ECC protection for optical media. If a medium gets damaged, dvdisaster can recover it as long as the amount of damage is smaller than the amount of ECC data you added to protect it.

It can loosely be compared to .par2 files, but the protection works at the iso level instead of working at the file level. This way, even if metadata from the optical medium filesystem is damaged, dvdisaster can still work flawlessly.

Please refer to the PDF manual for more information.

🔧 Unofficial version

The last upstream version by Carsten Gnörlich is dated 2017, and could be found on the official website which is now down. The original source code repository doesn't have it, but Debian sources does, thanks to the maintainer there. The original README has been left untouched in this repository.

This version is built on top of the latest upstream version, with the following notable enhancements:

  • Added pre-defined sizes for BD-R Triple Layer (100GB), BD-R Quadruple Layer (128GB)
  • Added an option to use more space for ECC on BD-R
  • Windows build supported again (it was dropped upstream a few versions back)
  • A new CLI-only version, not depending on gtk (./configure --with-gui=no && make clean && make -j4)
  • Non-regression tests on each code change, for Linux64 and Windows32/64, CLI and GUI versions
  • Prebuilt binaries for Windows32, Windows64, Linux64 (static builds and AppImage builds), CLI and GUI versions
  • Fixed a bunch of (minor) quirks, a few (minor) bugs, added a couple (minor) features

Please refer to the CHANGELOG for all the details.

📢 As of 2021, upstream development resumed on a new website. We're working with the new team to upstream as much code as possible from this unofficial version. Even if at some point we succeed in upstreaming all our patches, and both codebases are exactly the same, this repository will stay up as it provides automated tests and prebuilt binaries.

This version will never break compatibility with upstream versions, the goal is to ensure an optical media protected by upstream dvdisaster will still be able to be repaired with this version 10+ years from now. Regression tests are here to ensure this is the case.

🔀 3 available protection modes ("codecs")

For a more detailed explanation of the algorithms, please refer to the codecs specification PDF.

1️⃣ RS01 creates error correction files which are stored separately from the image they belong to. The artefact is an ecc file, which must be stored on another media than the one we're protecting.

2️⃣ RS02 creates error correction data which is added to the medium to protect, we call this augmenting the image we're protecting. Damaged sectors in the error correction information reduce the data recovering capacity, but do not make recovery impossible - a second medium for keeping or protecting the error correction information is not required.

3️⃣ RS03 is a further development of RS01 and RS02. It can create both error correction files and augmented images, with the following added features:

  • RS03 can use multiple CPU cores and is therefore much faster than RS01/RS02 on modern hardware.
  • RS03 error correction files are - contrary to RS01, and to a lesser extent RS02 - robust against damage.
  • RS03 is more robust, but also more restrictive: The augmented image must completely fill the medium now while the size of augmented images can be freely chosen in RS02. The changes for parallel computation and higher robustness make RS03 a bit less space efficient, e.g. RS03 error correction data has slighly less (around -3%) error correction capacity than its RS01/RS02 counterparts on images with equal size.

Rough comparison table:

Codecs RS01 RS02 RS03
Robustness*
Speed
Space efficiency
Augmented images ✔️ ✔️
Separate files ✔️ ✔️

*Robustness against corruption of the dvdisaster-added ECC parts themselves

💡 Rationale

Even if the optical media era is sunsetting now, and has been for a few years, it's still of some value for off-site backups. In any case, we still have media in our hands that we want to be able to repair, should it be damaged, during the next years/decades. Repairing is actually pretty much the very reason of dvdisaster existence (as long as parity data has been added, of course). The idea of this unofficial version is to ensure dvdisaster doesn't get hard to find, use or compile, should upstream development never resume (we hope it does!) This is also why precompiled Windows binaries and a precompiled static CLI-only Linux version are available here.

🔨 Compiling

See the INSTALL file. The workflow file that is used to automatically build binaries for each release can also help.

📷 Screenshots

Reading a damaged CD under Windows:

dvdisaster_damaged_cd

Verifying the ECC correction data from the damaged image:

dvdisaster_cd_verify

Repairing the damaged image thanks to augmented data:

dvdisaster_cd_repair

Verification of the image after correction:

dvdisaster_cd_verify_ok

Reading a quad-layer multi-session BDXL with Linux GUI:

dvdisaster_bdxl_read

Note that the disc still has some room for more sessions (capacity is 128 GB).

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].