Пример #1
0
  public void writeObject(PemObjectGenerator objGen) throws IOException {
    PemObject obj = objGen.generate();

    writePreEncapsulationBoundary(obj.getType());

    if (!obj.getHeaders().isEmpty()) {
      for (Iterator it = obj.getHeaders().iterator(); it.hasNext(); ) {
        PemHeader hdr = (PemHeader) it.next();

        this.write(hdr.getName());
        this.write(": ");
        this.write(hdr.getValue());
        this.newLine();
      }

      this.newLine();
    }

    writeEncoded(obj.getContent());
    writePostEncapsulationBoundary(obj.getType());
  }
Пример #2
0
  /**
   * Return the number of bytes or characters required to contain the passed in object if it is PEM
   * encoded.
   *
   * @param obj pem object to be output
   * @return an estimate of the number of bytes
   */
  public int getOutputSize(PemObject obj) {
    // BEGIN and END boundaries.
    int size = (2 * (obj.getType().length() + 10 + nlLength)) + 6 + 4;

    if (!obj.getHeaders().isEmpty()) {
      for (Iterator it = obj.getHeaders().iterator(); it.hasNext(); ) {
        PemHeader hdr = (PemHeader) it.next();

        size += hdr.getName().length() + ": ".length() + hdr.getValue().length() + nlLength;
      }

      size += nlLength;
    }

    // base64 encoding
    int dataLen = ((obj.getContent().length + 2) / 3) * 4;

    size += dataLen + (((dataLen + LINE_LENGTH - 1) / LINE_LENGTH) * nlLength);

    return size;
  }