michael@0: michael@0: michael@0:
michael@0:PKCS #11 modules can be packaged into JAR files that support automatic michael@0: installation onto the filesystem and into the security module database. michael@0: The JAR file should contain: michael@0:
If the michael@0: JAR file is to be run by a server, modutil, or any other program that michael@0: doesn't interpret Javascript, a special information file must be included michael@0: in the format described in this document. michael@0: michael@0:
Pkcs11_install_script
. Meta-information is put in the manifest
michael@0: file by putting it in a file which is passed to
michael@0: Signtool. For example,
michael@0: suppose the PKCS #11 installer script is in the file pk11install
.
michael@0: In Signtool's metainfo file, you would have a line like this:
michael@0: michael@0: michael@0:michael@0: + Pkcs11_install_script: pk11install michael@0:
michael@0: michael@0:michael@0: ForwardCompatible { IRIX:6.2:mips Solaris:5.5.1:sparc } michael@0: Platforms { michael@0: WINNT::x86 { michael@0: ModuleName { "Fortezza Module" } michael@0: ModuleFile { win32/fort32.dll } michael@0: DefaultMechanismFlags{0x0001} michael@0: DefaultCipherFlags{0x0001} michael@0: Files { michael@0: win32/setup.exe { michael@0: Executable michael@0: RelativePath { %temp%/setup.exe } michael@0: } michael@0: win32/setup.hlp { michael@0: RelativePath { %temp%/setup.hlp } michael@0: } michael@0: win32/setup.cab { michael@0: RelativePath { %temp%/setup.cab } michael@0: } michael@0: } michael@0: } michael@0: WIN95::x86 { michael@0: EquivalentPlatform {WINNT::x86} michael@0: } michael@0: Solaris:5.5.1:sparc { michael@0: ModuleName { "Fortezza UNIX Module" } michael@0: ModuleFile { unix/fort.so } michael@0: DefaultMechanismFlags{0x0001} michael@0: CipherEnableFlags{0x0001} michael@0: Files { michael@0: unix/fort.so { michael@0: RelativePath{%root%/lib/fort.so} michael@0: AbsolutePath{/usr/local/netscape/lib/fort.so} michael@0: FilePermissions{555} michael@0: } michael@0: xplat/instr.html { michael@0: RelativePath{%root%/docs/inst.html} michael@0: AbsolutePath{/usr/local/netscape/docs/inst.html} michael@0: FilePermissions{555} michael@0: } michael@0: } michael@0: } michael@0: IRIX:6.2:mips { michael@0: EquivalentPlatform { Solaris:5.5.1:sparc } michael@0: } michael@0: } michael@0:
michael@0: Outside of complex strings, all whitespace (space, tab, newline) is considered michael@0: equal and is used only to delimit tokens. michael@0: michael@0:michael@0: --> valuelist michael@0: michael@0: valuelist --> value valuelist michael@0: <null> michael@0: michael@0: value --> key_value_pair michael@0: string michael@0: michael@0: key_value_pair --> key { valuelist } michael@0: michael@0: key --> string michael@0: michael@0: string --> simple_string michael@0: "complex_string" michael@0: michael@0: simple_string --> [^ \t\n\""{""}"]+ (no whitespace, quotes, or braces) michael@0: michael@0: complex_string --> ([^\"\\\r\n]|(\\\")|(\\\\))+ (quotes and backslashes must be escaped with a backslash, no newlines or carriage returns are allowed in the string) michael@0:
ForwardCompatible
michael@0: Platforms
(required)
michael@0:
michael@0:
michael@0: - AIX (rs6000)
michael@0:
- BSDI (x86)
michael@0:
- FREEBSD (x86)
michael@0:
- HPUX (hppa1.1)
michael@0:
- IRIX (mips)
michael@0:
- LINUX (ppc, alpha, x86)
michael@0:
- MacOS (PowerPC)
(Note: NSPR actually defines the OS as
michael@0: "Mac OS
". The
michael@0: space makes the name unsuitable for being embedded in identifiers. Until
michael@0: NSPR changes, you will have to add some special code to deal with this case.
michael@0: )
michael@0: - NCR (x86)
michael@0:
- NEC (mips)
michael@0:
- OS2 (x86)
michael@0:
- OSF (alpha)
michael@0:
- ReliantUNIX (mips)
michael@0:
- SCO (x86)
michael@0:
- SOLARIS (sparc)
michael@0:
- SONY (mips)
michael@0:
- SUNOS (sparc)
michael@0:
- UnixWare (x86)
michael@0:
- WIN95 (x86)
michael@0:
- WINNT (x86)
michael@0:
michael@0:
michael@0: Examples of valid platform strings: IRIX:6.2:mips, Solaris:5.5.1:sparc,
michael@0: Linux:2.0.32:x86, WIN95::x86
.
michael@0: Platforms
list.
michael@0: ModuleName
(required)
michael@0: ModuleFile
(required)
michael@0: Files
(required)
michael@0: DefaultMechanismFlags
michael@0: DefaultMechanismFlags
michael@0: entry is omitted, the value will default to 0x0.
michael@0: michael@0:michael@0: RSA: 0x0000 0001 michael@0: DSA: 0x0000 0002 michael@0: RC2: 0x0000 0004 michael@0: RC4: 0x0000 0008 michael@0: DES: 0x0000 0010 michael@0: DH: 0x0000 0020 michael@0: FORTEZZA: 0x0000 0040 michael@0: RC5: 0x0000 0080 michael@0: SHA1: 0x0000 0100 michael@0: MD5: 0x0000 0200 michael@0: MD2: 0x0000 0400 michael@0: RANDOM: 0x0800 0000 michael@0: FRIENDLY: 0x1000 0000 michael@0: OWN_PW_DEFAULTS: 0x2000 0000 michael@0: DISABLE: 0x4000 0000 michael@0:
CipherEnableFlags
michael@0: CipherEnableFlags
entry is omitted, the
michael@0: value will default to 0x0.
michael@0: michael@0:michael@0: FORTEZZA: 0x0000 0001 michael@0:
EquivalentPlatform
michael@0: Files
list. At least one of RelativePath
and
michael@0: AbsolutePath
must be specified. If both are specified, the
michael@0: relative path will be tried first and the absolute path used only if no
michael@0: relative root directory is provided by the installer program.
michael@0: RelativePath
michael@0: setup.exe
installation program, a help file, and a .cab file
michael@0: containing compressed information. All these files could be installed into the
michael@0: temporary directory. Files destined for the temporary directory are guaranteed
michael@0: to be in place before any executable file is run, and will not be deleted
michael@0: until all executable files have finished.
michael@0: AbsoluteDir
michael@0: Executable
michael@0: setup.exe
.
michael@0: More than one file can be specified as executable, in which case they will
michael@0: be run in the order they are specified in the script file.
michael@0: FilePermissions
michael@0: michael@0: Some platforms may not understand these permissions. They will only be michael@0: applied insofar as makes sense for the current platform. If this attribute michael@0: is omitted, a default of 777 is assumed. michael@0: michael@0: michael@0:michael@0: user read: 400 michael@0: user write: 200 michael@0: user execute: 100 michael@0: group read: 040 michael@0: group write: 020 michael@0: group execute: 010 michael@0: other read: 004 michael@0: other write: 002 michael@0: other execute: 001 michael@0: