prusa3d / prusa3d/libbgcode

Digital signature on code

Open
#37 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
G-code
Stars
73
Forks
23
PR merge metrics
No merged PRs in 30d

Description

Something sorely needed in the CNC world is security. GCode isn't just used for 3D printing, it is used in CNC equipment moving tons of material at high speed. We have actual real world instances of state actors corrupting code to destroy machinery.

Making space for a digital signature wrapper around the Gcode would provide the option of signing it. Basically you just have a preamble saying it is going to be signed and the digest value is X and then comes the data and then the computed signature goes at the end.

While 3D printers don't move massive amounts of material in quite the same way as a CNC lathe, signatures could be very useful for making copyright claims. In a production environment, they can be used to make sure that printers are building the correct part rather than a modified one.

There are standard packaging formats and support libraries that can be used.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue does not name any files, tests, or entry points. Start by reviewing the existing G-code format and the standard packaging formats and support libraries mentioned, then define the signing and verification scope, format, compatibility requirements, and acceptance criteria before implementation.

Written by the indexing model from the issue text.

Assessment

Domain
cryptography, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.