Decrypt and encrypt Nicolaudie SSL2 fixture library files.
SSL2 is the encrypted fixture profile format used by ESA Pro 2, Daslight, Sunlite Suite, and myDMX. The files contain XML fixture definitions encrypted with the AraCrypt stream cipher.
The Nicolaudie fixture store hosts thousands of these files.
npm install -g ssl2-tools
Or use without installing:
npx ssl2-tools decrypt fixture.ssl2
# Decrypt SSL2 to XML
ssl2 decrypt fixture.ssl2
ssl2 decrypt fixture.ssl2 output.xml
# Encrypt XML back to SSL2
ssl2 encrypt fixture.xml
ssl2 encrypt fixture.xml output.ssl2
# Print decrypted XML to stdout
ssl2 dump fixture.ssl2
ssl2 dump fixture.ssl2 | xmllint --format -
import { decrypt, encrypt } from 'ssl2-tools'
import { readFileSync, writeFileSync } from 'fs'
const ssl2 = readFileSync('fixture.ssl2')
const xml = decrypt(ssl2)
console.log(xml.toString('utf-8'))
const reEncrypted = encrypt(xml)
writeFileSync('fixture-copy.ssl2', reEncrypted)Decrypted files contain XML with this structure:
<?xml version="1.0" encoding="UTF-8"?>
<DLMFILE VERSION="3" TYPE="SSLLIBRARY">
<SSLLIBRARY SSLNAME="Fixture Name" ...>
<SSLPROPERTIES SSLBRAND="Brand" ... />
<SSLMODES SSLNBMODE="1">
<SSLMODE SSLMODENAME="Mode Name" SSLNBCHANNEL="6">
<SSLCHANNEL SSLCHANNELTYPE="25" SSLCHANNELNAME="Red" ...>
<SSLPRESETS ...>
<SSLPRESET SSLPRESETNAME="Red" SSLPRESETDMXSTART="0" SSLPRESETDMXEND="255" ... />
</SSLPRESETS>
</SSLCHANNEL>
<!-- more channels -->
</SSLMODE>
</SSLMODES>
</SSLLIBRARY>
</DLMFILE>| Type | Name |
|---|---|
| 0 | Generic |
| 7 | Dimmer |
| 14 | Zoom |
| 15 | Shutter / Strobe |
| 18 | Speed |
| 23 | Color Temperature |
| 25 | Red |
| 26 | Green |
| 27 | Blue |
| 31 | White |
| 37 | Auto Programs |
| 43 | Warm White |
| 44 | Cold White |
| 45 | Amber |
| 46 | UV |
| 48 | Lime |
Encryption was reverse-engineered by @HakanL — see open-fixture-library#99.
MIT