Cypher scrambles things it shouldn't

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

Using the beta jar from https://forum.plantuml.net/10964/sequence-queuebordercolor-not-respected?show=10986#c10986 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

became

hide ritrlgfbtr

---

!define COLOR_TEXT_LIGHT #fff
!define COLOR_TEXT_DARK #fff
!define COLOR_FILL #438DD5
!define COLOR_FILL_EXTERNAL #999
!define COLOR_BORDER #3c7fc0
!define COLOR_BORDER_EXTERNAL #8a8a8a
!define FONT_TEXT "Helvetica"

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

became

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 by plantuml (230,800 points)
Many thanks for the report.

We have fixed this cypher option in last beta http://beta.plantuml.net/plantuml.jar

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

Thanks!
commented Mar 13 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
@enduml

Expected

"My Queue" would be replaced with gibberish

Actual

@startuml jsueejh
queue "fbxr Queue" as makkxwu
@enduml

commented Mar 13 by plantuml (230,800 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 by jvinding (140 points)
Works for me, thanks.
...