Package ch.ethz.inf.vs.scandium.util

Examples of ch.ethz.inf.vs.scandium.util.DatagramWriter


 
  // Serialization //////////////////////////////////////////////////
 
  @Override
  public byte[] toByteArray() {
    DatagramWriter writer = new DatagramWriter();
    writer.writeBytes(super.toByteArray());

    int listLength = ecPointFormatList.size();
    // list length + list length field (1 byte)
    writer.write(listLength + 1, LENGTH_BITS);
    writer.write(listLength, LIST_LENGTH_BITS);

    for (ECPointFormat format : ecPointFormatList) {
      writer.write(format.getId(), POINT_FORMAT_BITS);
    }

    return writer.toByteArray();
  }
View Full Code Here


  // Serialization //////////////////////////////////////////////////

  @Override
  public byte[] fragmentToByteArray() {
    DatagramWriter writer = new DatagramWriter();

    writer.write(certificateTypes.size(), CERTIFICATE_TYPES_LENGTH_BITS);
    for (ClientCertificateType certificateType : certificateTypes) {
      writer.write(certificateType.getCode(), CERTIFICATE_TYPE_BITS);
    }

    writer.write(supportedSignatureAlgorithms.size() * 2, SUPPORTED_SIGNATURE_LENGTH_BITS);
    for (SignatureAndHashAlgorithm signatureAndHashAlgorithm : supportedSignatureAlgorithms) {
      writer.write(signatureAndHashAlgorithm.getHash().getCode(), SUPPORTED_SIGNATURE_BITS);
      writer.write(signatureAndHashAlgorithm.getSignature().getCode(), SUPPORTED_SIGNATURE_BITS);
    }
   
    writer.write(getCertificateAuthoritiesLength(), CERTIFICATE_AUTHORITIES_LENGTH_BITS);
    for (DistinguishedName distinguishedName : certificateAuthorities) {
      // since a distinguished name has variable length, we need to write length field for each name as well, has influence on total length!
      writer.write(distinguishedName.getName().length, CERTIFICATE_AUTHORITY_LENGTH_BITS);
      writer.writeBytes(distinguishedName.getName());
    }

    return writer.toByteArray();
  }
View Full Code Here

  // Serialization //////////////////////////////////////////////////

  @Override
  public byte[] fragmentToByteArray() {
    DatagramWriter writer = new DatagramWriter();
   
    writer.writeBytes(verifyData);

    return writer.toByteArray();
  }
View Full Code Here

  // Serialization //////////////////////////////////////////////////

  @Override
  public byte[] fragmentToByteArray() {
    DatagramWriter writer = new DatagramWriter();

    // according to http://tools.ietf.org/html/rfc5246#section-4.7 the
    // signature algorithm must also be included
    writer.write(signatureAndHashAlgorithm.getHash().getCode(), HASH_ALGORITHM_BITS);
    writer.write(signatureAndHashAlgorithm.getSignature().getCode(), SIGNATURE_ALGORITHM_BITS);

    writer.write(signatureBytes.length, SIGNATURE_LENGTH_BITS);
    writer.writeBytes(signatureBytes);

    return writer.toByteArray();
  }
View Full Code Here

 
  // Serialization //////////////////////////////////////////////////

  @Override
  public byte[] fragmentToByteArray() {
    DatagramWriter writer = new DatagramWriter();

    writer.write(serverVersion.getMajor(), VERSION_BITS);
    writer.write(serverVersion.getMinor(), VERSION_BITS);

    writer.write(cookie.length(), COOKIE_LENGTH_BITS);
    writer.writeBytes(cookie.getCookie());

    return writer.toByteArray();
  }
View Full Code Here

  // Serialization //////////////////////////////////////////////////

  @Override
  public byte[] fragmentToByteArray() {
    DatagramWriter writer = new DatagramWriter();

    if (rawPublicKeyBytes == null) {
      // the size of the certificate chain
      writer.write(getMessageLength() - (CERTIFICATE_LIST_LENGTH/8), CERTIFICATE_LIST_LENGTH);
      for (byte[] encoded : encodedChain) {
        // the size of the current certificate
        writer.write(encoded.length, CERTIFICATE_LENGTH_BITS);
        // the encoded current certificate
        writer.writeBytes(encoded);
      }
    } else {
      writer.write(getMessageLength() - 3, CERTIFICATE_LIST_LENGTH);
      writer.write(rawPublicKeyBytes.length, CERTIFICATE_LENGTH_BITS);
      writer.writeBytes(rawPublicKeyBytes);
    }

    return writer.toByteArray();
  }
View Full Code Here

   *
   * @return the byte representation of the handshake message.
   */
  public byte[] toByteArray() {
    // create datagram writer to encode message data
    DatagramWriter writer = new DatagramWriter();

    // write fixed-size handshake message header
    writer.write(getMessageType().getCode(), MESSAGE_TYPE_BITS);
    writer.write(getMessageLength(), MESSAGE_LENGTH_BITS);

    writer.write(messageSeq, MESSAGE_SEQ_BITS);
   
    if (fragmentOffset < 0) {
      // message not fragmented
      fragmentOffset = 0;
    }
    writer.write(fragmentOffset, FRAGMENT_OFFSET_BITS);
   
    if (fragmentLength < 0) {
      // unfragmented message is a degenerate case with fragment_offset=0
      // and fragment_length=length
      fragmentLength = getMessageLength();
    }
    writer.write(fragmentLength, FRAGMENT_LENGTH_BITS);
   
    writer.writeBytes(fragmentToByteArray());

    return writer.toByteArray();
  }
View Full Code Here

  }

  // Serialization //////////////////////////////////////////////////

  public byte[] toByteArray() {
    DatagramWriter writer = new DatagramWriter();

    writer.write(getLength(), LENGTH_BITS);
    for (HelloExtension extension : extensions) {
      writer.writeBytes(extension.toByteArray());
    }

    return writer.toByteArray();
  }
View Full Code Here

 
  // Serialization //////////////////////////////////////////////////

  @Override
  public byte[] toByteArray() {
    DatagramWriter writer = new DatagramWriter();
    writer.writeBytes(super.toByteArray());

    int listLength = ellipticCurveList.size() * 2;
    writer.write(listLength + 2, LENGTH_BITS);
    writer.write(listLength, LIST_LENGTH_BITS);

    for (Integer curveId : ellipticCurveList) {
      writer.write(curveId, CURVE_BITS);
    }

    return writer.toByteArray();
  }
View Full Code Here

 
  // Serialization //////////////////////////////////////////////////

  // @Override
  public byte[] toByteArray() {
    DatagramWriter writer = new DatagramWriter();
    writer.write(CCSProtocolType.getCode(), CCS_BITS);

    return writer.toByteArray();
  }
View Full Code Here

TOP

Related Classes of ch.ethz.inf.vs.scandium.util.DatagramWriter

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.