Package net.i2p.crypto
Class SU3File
java.lang.Object
net.i2p.crypto.SU3File
public class SU3File extends Object
Succesor to the ".sud" format used in TrustedUpdate.
Format specified in http://www.i2p2.de/updates
- Since:
- 0.9.8
-
Field Summary
Fields Modifier and Type Field Description static int
CONTENT_BLOCKLIST
static int
CONTENT_NEWS
static int
CONTENT_PLUGIN
static int
CONTENT_RESEED
static int
CONTENT_ROUTER
static int
CONTENT_UNKNOWN
static String
MAGIC
static int
TYPE_DMG
static int
TYPE_EXE
static int
TYPE_HTML
static int
TYPE_TXT_GZ
static int
TYPE_XML
static int
TYPE_XML_GZ
static int
TYPE_ZIP
The file type is advisory and is application-dependent. -
Constructor Summary
-
Method Summary
Modifier and Type Method Description int
getContentType()
The ContentType is the trust domain for the content.int
getFileType()
The file type is advisory and is application-dependent.String
getSignerString()
This does not check the signature, but it will fail if the signer is unknown, unless setVerifySignature(false) has been called.SigType
getSigType()
This does not check the signature, but it will fail if the signer is unknown, unless setVerifySignature(false) has been called.String
getVersionString()
This does not check the signature, but it will fail if the signer is unknown, unless setVerifySignature(false) has been called.static void
main(String[] args)
Parses command line arguments when this class is used from the command line.void
setVerifySignature(boolean shouldVerify)
Should the signature be verified? Default trueboolean
verify()
One-pass verify.boolean
verifyAndMigrate(File migrateTo)
One-pass verify and extract the content.void
verifyHeader()
This does not check the signature, but it will fail if the signer is unknown, unless setVerifySignature(false) has been called.void
write(File content, int fileType, int contentType, String version, String signer, PrivateKey privkey, SigType sigType)
One-pass wrap and sign the content.
-
Field Details
-
MAGIC
- See Also:
- Constant Field Values
-
TYPE_ZIP
public static final int TYPE_ZIPThe file type is advisory and is application-dependent. The following values are defined but any value 0-255 is allowed.- See Also:
- Constant Field Values
-
TYPE_XML
public static final int TYPE_XML- Since:
- 0.9.15
- See Also:
- Constant Field Values
-
TYPE_HTML
public static final int TYPE_HTML- Since:
- 0.9.15
- See Also:
- Constant Field Values
-
TYPE_XML_GZ
public static final int TYPE_XML_GZ- Since:
- 0.9.17
- See Also:
- Constant Field Values
-
TYPE_TXT_GZ
public static final int TYPE_TXT_GZ- Since:
- 0.9.28
- See Also:
- Constant Field Values
-
TYPE_DMG
public static final int TYPE_DMG- Since:
- 0.9.51
- See Also:
- Constant Field Values
-
TYPE_EXE
public static final int TYPE_EXE- Since:
- 0.9.51
- See Also:
- Constant Field Values
-
CONTENT_UNKNOWN
public static final int CONTENT_UNKNOWN- See Also:
- Constant Field Values
-
CONTENT_ROUTER
public static final int CONTENT_ROUTER- See Also:
- Constant Field Values
-
CONTENT_PLUGIN
public static final int CONTENT_PLUGIN- See Also:
- Constant Field Values
-
CONTENT_RESEED
public static final int CONTENT_RESEED- See Also:
- Constant Field Values
-
CONTENT_NEWS
public static final int CONTENT_NEWS- Since:
- 0.9.15
- See Also:
- Constant Field Values
-
CONTENT_BLOCKLIST
public static final int CONTENT_BLOCKLIST- Since:
- 0.9.28
- See Also:
- Constant Field Values
-
-
Constructor Details
-
Method Details
-
setVerifySignature
public void setVerifySignature(boolean shouldVerify)Should the signature be verified? Default true- Since:
- 0.9.15
-
getVersionString
This does not check the signature, but it will fail if the signer is unknown, unless setVerifySignature(false) has been called.- Throws:
IOException
-
getSignerString
This does not check the signature, but it will fail if the signer is unknown, unless setVerifySignature(false) has been called.- Throws:
IOException
-
getSigType
This does not check the signature, but it will fail if the signer is unknown, unless setVerifySignature(false) has been called.- Returns:
- null if unknown
- Throws:
IOException
- Since:
- 0.9.9
-
getContentType
The ContentType is the trust domain for the content. The signer and signature will be checked with the trusted certificates for that type. This does not check the signature, but it will fail if the signer is unknown, unless setVerifySignature(false) has been called.- Returns:
- -1 if unknown
- Throws:
IOException
- Since:
- 0.9.9
-
getFileType
The file type is advisory and is application-dependent. The following values are defined but any value 0-255 is allowed. This does not check the signature, but it will fail if the signer is unknown, unless setVerifySignature(false) has been called.- Returns:
- 0-255 or -1 if unknown
- Throws:
IOException
- Since:
- 0.9.15
-
verifyHeader
This does not check the signature, but it will fail if the signer is unknown, unless setVerifySignature(false) has been called. Throws IOE if verify vails.- Throws:
IOException
-
verify
One-pass verify. Throws IOE on all format errors.- Returns:
- true if signature is good
- Throws:
IOException
- Since:
- 0.9.9
-
verifyAndMigrate
One-pass verify and extract the content. Recommend extracting to a temp location as the sig is not checked until after extraction. This will delete the file if the sig does not verify. Throws IOE on all format errors.- Parameters:
migrateTo
- the output file, probably in zip format. Null for verify only.- Returns:
- true if signature is good
- Throws:
IOException
-
write
public void write(File content, int fileType, int contentType, String version, String signer, PrivateKey privkey, SigType sigType) throws IOExceptionOne-pass wrap and sign the content. Writes to the file specified in the constructor. Throws on all errors.- Parameters:
content
- the input file, probably in zip formatfileType
- 0-255, 0 for zipcontentType
- 0-255version
- 1-255 bytes when converted to UTF-8signer
- ID of the public key, 1-255 bytes when converted to UTF-8- Throws:
IOException
-
main
Parses command line arguments when this class is used from the command line. Exits 1 on failure so this can be used in scripts.- Parameters:
args
- Command line parameters.
-