public class Certificate extends DataStructureImpl
Modifier and Type | Field and Description |
---|---|
protected byte[] |
_payload |
protected int |
_type |
static int |
CERTIFICATE_LENGTH_SIGNED_WITH_HASH |
static int |
CERTIFICATE_TYPE_HASHCASH
specifies a Hashcash style certificate
|
static int |
CERTIFICATE_TYPE_HIDDEN
we should not be used for anything (don't use us in the netDb, in tunnels, or tell others about us)
|
static int |
CERTIFICATE_TYPE_KEY |
static int |
CERTIFICATE_TYPE_MULTIPLE
Contains multiple certs
|
static int |
CERTIFICATE_TYPE_NULL
Specifies a null certificate type with no payload
|
static int |
CERTIFICATE_TYPE_SIGNED
Signed with 40-byte Signature and (optional) 32-byte hash
|
static Certificate |
NULL_CERT |
Constructor and Description |
---|
Certificate() |
Certificate(int type,
byte[] payload) |
Modifier and Type | Method and Description |
---|---|
static Certificate |
create(byte[] data,
int off)
If null, P256 key, or Ed25519 key cert, return immutable static instance, else create new
|
static Certificate |
create(InputStream in)
If null, P256 key, or Ed25519 key cert, return immutable static instance, else create new
|
boolean |
equals(Object object) |
int |
getCertificateType() |
byte[] |
getPayload() |
int |
hashCode() |
int |
readBytes(byte[] source,
int offset) |
void |
readBytes(InputStream in)
Load up the current object with data from the given stream.
|
void |
setCertificateType(int type) |
void |
setPayload(byte[] payload) |
int |
size() |
KeyCertificate |
toKeyCertificate()
Up-convert this to a KeyCertificate
|
String |
toString() |
int |
writeBytes(byte[] target,
int offset) |
void |
writeBytes(OutputStream out)
Write out the data structure to the stream, using the format defined in the
I2P data structure specification.
|
calculateHash, fromBase64, fromByteArray, read, toBase64, toByteArray
public static final Certificate NULL_CERT
protected int _type
protected byte[] _payload
public static final int CERTIFICATE_TYPE_NULL
public static final int CERTIFICATE_TYPE_HASHCASH
public static final int CERTIFICATE_TYPE_HIDDEN
public static final int CERTIFICATE_TYPE_SIGNED
public static final int CERTIFICATE_LENGTH_SIGNED_WITH_HASH
public static final int CERTIFICATE_TYPE_MULTIPLE
public static final int CERTIFICATE_TYPE_KEY
public Certificate()
public Certificate(int type, byte[] payload)
IllegalArgumentException
- if type < 0public static Certificate create(byte[] data, int off) throws DataFormatException
DataFormatException
- if not enough bytespublic static Certificate create(InputStream in) throws DataFormatException, IOException
DataFormatException
IOException
public int getCertificateType()
public void setCertificateType(int type)
IllegalArgumentException
- if type < 0IllegalStateException
- if already setpublic byte[] getPayload()
public void setPayload(byte[] payload)
IllegalStateException
- if already setpublic void readBytes(InputStream in) throws DataFormatException, IOException
DataStructure
in
- stream to read fromIllegalStateException
- if already setDataFormatException
- if the data is improperly formattedIOException
- if there was a problem reading the streampublic void writeBytes(OutputStream out) throws DataFormatException, IOException
DataStructure
out
- stream to write toDataFormatException
- if the data was incomplete or not yet ready to be writtenIOException
- if there was a problem writing to the streampublic int writeBytes(byte[] target, int offset)
public int readBytes(byte[] source, int offset) throws DataFormatException
IllegalStateException
- if already setDataFormatException
public int size()
public KeyCertificate toKeyCertificate() throws DataFormatException
DataFormatException
- if cert type != CERTIFICATE_TYPE_KEY