Cypher scrambles things it shouldn't

0 votes
asked Mar 13, 2020 in Bug by jvinding (140 points)

Using the beta jar from I ran plantuml with -cypher, and got a broken file.

At least some, i'm not sure if all, of the broken bits are from an !include

Some of the incorrect scrambled bits are:

hide stereotype


hide ritrlgfbtr


!define COLOR_TEXT_LIGHT #fff
!define COLOR_TEXT_DARK #fff
!define COLOR_FILL #438DD5
!define COLOR_BORDER #3c7fc0
!define FONT_TEXT "Helvetica"

skinparam FontColor COLOR_TEXT_DARK
skinparam shadowing false
skinparam arrow {
    FontName FONT_TEXT
    Color #333


skinparam kslkifrql #stht
skinparam shadowing uqtrc
skinparam qfuie {
    casjpdkn "xhgsrjlga"
    vbume #sqfo


Full file It seems the full file is too long to post, so here's a list of more:

  • FontName
  • FontColor
  • BorderColor
  • skinparam BoxPadding 10 became skinparam BoxPadding iguo
  • skinparam SequenceLifeLineBorderColor #333 became skinparam SequenceLifeLineBorderColor #dqml
  • skinparam MaxMessageSize 100 became skinparam MaxMessageSize uzpp

1 Answer

0 votes
answered Mar 13, 2020 by plantuml (293,520 points)
Many thanks for the report.

We have fixed this cypher option in last beta

There might be other issues, so please post here when you'll find some.

commented Mar 13, 2020 by jvinding (140 points)

Thank you that one works much better, however a "queue" that has the word "queue" does not get fully scrambled.

Steps to reproduce

run "cypher" on this file:

@startuml example
queue "My Queue" as MyQueue


"My Queue" would be replaced with gibberish


@startuml jsueejh
queue "fbxr Queue" as makkxwu

commented Mar 13, 2020 by plantuml (293,520 points)
Well, in theory you are right, this might sound like an issue. But in practice, this is not a real issue. The content is still gibberish. We just know that your "queue" makkxwu has "Queue" in its label. Which does not provide much information about what this queue is designed for.

The fact is that the cyphering engine is pretty simple : it just scramble everything but some keywords (including "queue" for example) and skinparam blocs. If you use "queue" in any line (including comments), it will stay unchanged. It's not perfect, but I think it's good enough.

Agreed ?
commented Mar 16, 2020 by jvinding (140 points)
Works for me, thanks.