[sword-devel] locked modules and osis2mod
DM Smith
dmsmith at crosswire.org
Wed Jul 1 04:59:35 MST 2009
Sorry for the new thread. I can't find Brian's email to reply.
I'll try to give a reply to what I remember was asked.
Running the program will give a short synopsis of how to run it but it
sometimes is not enough.
The documentation for osis2mod can be found here:
http://www.crosswire.org/wiki/Osis2mod#Usage
If it is not complete enough, feel free to change it or to poke me.
To create a locked OSIS module, use the -c flag, as in:
osis2mod ./modules/texts/rawtext/kjv kjv.xml -c abcd1234efgh5678
It appears that the -c flag is broken. It used to work. As we don't do
many locked modules, I can't say when it was last used successfully.
This will create a raw module and put the files into the pre-existing
./modules/texts/rawtext/kjv folder. (You could have just as well used
any folder, but I find this easiest in zipping up the module for
inclusion into a repository.)
To verify that the module has been enciphered you can look at the built
raw file with a text editor or pager:
less ./modules/texts/rawtext/kjv/nt
To create a module both osis2mod and the conf have to agree. This is not
an obvious task and thus not easy. Later we'll have osis2mod spit out a
suggested conf. (Tei2mod writes one to standard out.)
Documentation for the conf is here:
http://www.crosswire.org/wiki/DevTools:confFiles
To indicate a module is locked add the following to the conf:
CipherKey=
The fact that it is present will indicate that the module is enciphered.
That it is empty will indicate that it is locked.
To unlock a module, provide the cipher as in:
CipherKey=abcd1234efgh5678
It needs to be the same as what was used to create the module.
Note on the cipher:
We use Sapphire II to do the locking and unlocking. It will use a key
from 1 to 256 bytes long, or 8 to 2048 bits. We typically use 16 ascii
characters. Using unprintable characters is possible.
I find it interesting that enciphering and deciphering are identical
code paths. Give plan text and a key and the routine will encipher the
text. Give the enciphered text and the key and the same routine will
decipher it.
Hope this helps.
Brian, separately I'll send you an enciphered module.
In Him,
DM
More information about the sword-devel
mailing list