/** * @since 0.9.8 */ @Override public String toString() { StringBuilder buf = new StringBuilder(64); buf.append('[').append(getClass().getSimpleName()).append(' ').append(_type).append(": "); int length = length(); if (_data == null) { buf.append("null"); } else if (length <= 32) { buf.append(toBase64()); } else { buf.append("size: ").append(Integer.toString(length)); } buf.append(']'); return buf.toString(); }
/** * Number of bytes, NOT including signature */ @Override public int size() { int rv = _destination.size() + 10 + (_leases.size() * MetaLease.LENGTH); if (isOffline()) rv += 6 + _transientSigningPublicKey.length() + _offlineSignature.length(); if (_options != null && !_options.isEmpty()) { try { rv += DataHelper.toProperties(_options).length; } catch (DataFormatException dfe) { throw new IllegalStateException("bad options", dfe); } } else { rv += 2; } // revocations TODO // rv += 32 * numRevocations return rv; }
private final void toFlagString(StringBuilder buf) { if (isFlagSet(FLAG_NO_ACK)) buf.append(" NO_ACK"); else buf.append(" ACK ").append(getAckThrough()); if (_nacks != null) { buf.append(" NACK"); for (int i = 0; i < _nacks.length; i++) { buf.append(' ').append(_nacks[i]); } } if (isFlagSet(FLAG_CLOSE)) buf.append(" CLOSE"); if (isFlagSet(FLAG_DELAY_REQUESTED)) buf.append(" DELAY ").append(_optionDelay); if (isFlagSet(FLAG_ECHO)) buf.append(" ECHO"); if (isFlagSet(FLAG_FROM_INCLUDED)) buf.append(" FROM ").append(_optionFrom.size()); if (isFlagSet(FLAG_MAX_PACKET_SIZE_INCLUDED)) buf.append(" MS ").append(_optionMaxSize); if (isFlagSet(FLAG_PROFILE_INTERACTIVE)) buf.append(" INTERACTIVE"); if (isFlagSet(FLAG_RESET)) buf.append(" RESET"); if (isFlagSet(FLAG_SIGNATURE_INCLUDED)) { if (_optionSignature != null) buf.append(" SIG ").append(_optionSignature.length()); else buf.append(" (to be signed)"); } if (isFlagSet(FLAG_SIGNATURE_REQUESTED)) buf.append(" SIGREQ"); if (isFlagSet(FLAG_SYNCHRONIZE)) buf.append(" SYN"); }
/** * Number of bytes, NOT including signature */ @Override public int size() { int rv = _signingKey.length() + 12; if (_encryptedData != null) rv += _encryptedData.length; else rv += 99; // TODO if (isOffline()) rv += 6 + _transientSigningPublicKey.length() + _offlineSignature.length(); return rv; }
/** * Number of bytes, NOT including signature */ @Override public int size() { int rv = _destination.size() + 10 + (_leases.size() * Lease2.LENGTH); for (PublicKey key : getEncryptionKeys()) { rv += 4; rv += key.length(); } if (isOffline()) rv += 6 + _transientSigningPublicKey.length() + _offlineSignature.length(); if (_options != null && !_options.isEmpty()) { try { rv += DataHelper.toProperties(_options).length; } catch (DataFormatException dfe) { throw new IllegalStateException("bad options", dfe); } } else { rv += 2; } return rv; }
size += 2; if (isFlagSet(FLAG_SIGNATURE_INCLUDED)) size += _optionSignature.length();
int siglen = sig.length(); System.arraycopy(sig.getData(), 0, data, off, siglen); off += siglen;
int siglen = sig.length(); int rem = siglen % AES_SIZE; int padding;
+ (isFlagSet(FLAG_FROM_INCLUDED) ? _optionFrom.size() : 0) + (isFlagSet(FLAG_MAX_PACKET_SIZE_INCLUDED) ? 2 : 0); System.arraycopy(_optionSignature.getData(), 0, buffer, signatureOffset, _optionSignature.length()); return size;
optionSize += fakeSigLen; else if (_optionSignature != null) optionSize += _optionSignature.length(); else throw new IllegalStateException(); if (fakeSigLen == 0) { System.arraycopy(_optionSignature.getData(), 0, buffer, cur, _optionSignature.length()); cur += _optionSignature.length(); } else { Arrays.fill(buffer, cur, cur + fakeSigLen, (byte)0x0);
int siglen = sig.length(); int mod = (off + siglen) & 0x0f; if (mod != 0) {
byte buf[] = new byte[optionSignature.length()]; System.arraycopy(buffer, cur, buf, 0, buf.length); optionSignature.setData(buf);
type.getSigLen() == _optionSignature.length()) _optionSignature = new Signature(type, _optionSignature.getData());
private final void toFlagString(StringBuilder buf) { if (isFlagSet(FLAG_NO_ACK)) buf.append(" NO_ACK"); else buf.append(" ACK ").append(getAckThrough()); if (_nacks != null) { buf.append(" NACK"); for (int i = 0; i < _nacks.length; i++) { buf.append(' ').append(_nacks[i]); } } if (isFlagSet(FLAG_CLOSE)) buf.append(" CLOSE"); if (isFlagSet(FLAG_DELAY_REQUESTED)) buf.append(" DELAY ").append(_optionDelay); if (isFlagSet(FLAG_ECHO)) buf.append(" ECHO"); if (isFlagSet(FLAG_FROM_INCLUDED)) buf.append(" FROM ").append(_optionFrom.size()); if (isFlagSet(FLAG_MAX_PACKET_SIZE_INCLUDED)) buf.append(" MS ").append(_optionMaxSize); if (isFlagSet(FLAG_PROFILE_INTERACTIVE)) buf.append(" INTERACTIVE"); if (isFlagSet(FLAG_RESET)) buf.append(" RESET"); if (isFlagSet(FLAG_SIGNATURE_INCLUDED)) { if (_optionSignature != null) buf.append(" SIG ").append(_optionSignature.length()); else buf.append(" (to be signed)"); } if (isFlagSet(FLAG_SIGNATURE_REQUESTED)) buf.append(" SIGREQ"); if (isFlagSet(FLAG_SYNCHRONIZE)) buf.append(" SYN"); }
size += 2; if (isFlagSet(FLAG_SIGNATURE_INCLUDED)) size += _optionSignature.length();
+ (isFlagSet(FLAG_FROM_INCLUDED) ? _optionFrom.size() : 0) + (isFlagSet(FLAG_MAX_PACKET_SIZE_INCLUDED) ? 2 : 0); System.arraycopy(_optionSignature.getData(), 0, buffer, signatureOffset, _optionSignature.length()); return size;
optionSize += fakeSigLen; else if (_optionSignature != null) optionSize += _optionSignature.length(); else throw new IllegalStateException(); if (fakeSigLen == 0) { System.arraycopy(_optionSignature.getData(), 0, buffer, cur, _optionSignature.length()); cur += _optionSignature.length(); } else { Arrays.fill(buffer, cur, cur + fakeSigLen, (byte)0x0);
byte buf[] = new byte[optionSignature.length()]; System.arraycopy(buffer, cur, buf, 0, buf.length); optionSignature.setData(buf);
type.getSigLen() == _optionSignature.length()) _optionSignature = new Signature(type, _optionSignature.getData());