Skip to content

What the signature guarantees ​

A signed .oim carries an ECDSA signature issued by OIM. This page states exactly what that signature covers and what it does not, because a guarantee that promises too much is worth less than a small one that always holds.

What the signature does guarantee ​

The document data has not been altered since OIM packaged it. The signature covers the file's metadata: the slots, their per-language content, positions, styles, animations, and the entire dynamic layer.

Change a single character inside that data and verification fails. The player detects it before painting anything:

  • the signature state becomes invalid_signature;
  • the dynamic layer does not run: no slots, no animations, no interactions;
  • the base image remains, visible as an ordinary image.

A tampered file does not "degrade" — it stops being an OIM document and becomes a PNG.

The content passed through OIM's sanitiser before being signed. Since 22 August 2026 the backend sanitises content before signing it, not after. Active vectors are removed: on* event handlers, <script>, <iframe>, <object>, <embed>, and any URL scheme other than http, https, data:image/, or an in-document reference. The player sanitises again at paint time — two barriers, not one replacing the other.

The base image's own metadata does not travel. Packaging discards the input PNG's text chunks and a JPEG's EXIF. An .oim carries no comments, camera data, or geolocation from the original image.

What the signature does not guarantee ​

The base image's pixels are not inspected. If someone hides something inside them — steganography — it travels with the file, and the signature covers it as part of the document.

This follows from the format, not from an oversight. An .oim stores its image losslessly, which is exactly what a design format should do: edges stay clean, gradients stay smooth, and one export is identical to the next. A message hidden in the least significant bits survives that save for precisely the same reason the author's work survives it.

The alternative would be a lossy re-encode of every incoming image. It would destroy the hidden payload, and with it the quality of every image, legitimate ones included. We would rather not degrade the product for everyone to close a door that can be worked around anyway.

Reliable detection of LSB steganography is not possible, so we do not promise to detect it.

The signature does not say who made the file. Authorship is not stored inside the document: it is personal data, and it would be sealed into a file its author can no longer delete. It lives in the registry, which can be corrected. The signature says "this came from OIM and has not changed", not "this person made it".

The signature does not say the content is accurate, truthful, or appropriate. It is a guarantee of integrity and provenance, not a judgement about what the document says.

In one sentence ​

The signature guarantees that the document data has not been altered since OIM packaged it, and that it passed through our sanitiser. It does not inspect the base image: if someone hides something in its pixels, it travels with the file.

If you integrate the format ​

If you write your own .oim reader, verify the signature before using anything from the document, and sanitise content before inserting it into a live document. The backend's sanitiser removes most of the surface, but the last barrier always belongs to whoever paints.